クラスメソッドtest
を動的に作成したいと考えています。そのためには、メソッドをinstance_eval
に使用しています。私はコードの下にクラスメソッドtest
を作成することを期待していましたが、代わりにコードはインスタンスメソッドtest
を作成しています。何がこの理由だろうか?以下は私のコードです。Ruby:クラスメソッドの代わりにインスタンスメソッドを作成するクラスのインスタンスeval
module Accessor
def define_accessor_for_class(method)
self.instance_eval do
define_method :test do
end
end
end
end
class Employee
extend Accessor
define_accessor_for_class :name
end
Employee.name = "sanjay"
Employee.name
Employee.instance_methods(false) ==> [:test]
Employee.methods(false) => []