1. ホーム
  2. ruby

[解決済み] define_methodを使ってクラスメソッドを作成するには?

2022-10-03 19:07:22

質問

これは、クラスメソッドをメタプログラミングで作成しようとしている場合に便利です。

def self.create_methods(method_name)
    # To create instance methods:
    define_method method_name do
      ...
    end

    # To create class methods that refer to the args on create_methods:
    ???
end

続く私の答え...

どのように解決するのですか?

Ruby 1.9では、このようなことができると思います。

class A
  define_singleton_method :loudly do |message|
    puts message.upcase
  end
end

A.loudly "my message"

# >> MY MESSAGE