我对
Ruby很新,所以还在学习.我正在研究如何动态添加方法,我成功地创建了实例方法,但是在创建类方法时并不成功.
class B def before_method puts "before method" end def self.run(method) send :define_method,method do before_method puts "method #{method}" end end end class A < B run :m run :n end
解决方法
这里重新使用类方法:
class B def self.before_method puts "before method" end def self.run(method) define_singleton_method(method) do before_method puts "method #{method}" end end end
更新:使用来自Ruby 1.9的define_singleton_method
,它正确分配给eigenclass.