【发布时间】:2014-06-04 06:26:16
【问题描述】:
是否有可能在继承的匿名类中获得name,而不是引发“失败A”?应通过Class 对象创建(无 eval 或类似)进行。
class A
def self.inherited(base)
raise 'fail A' unless base.name
end
end
B = Class.new(A)
# or
Object.const_set :B, Class.new(A)
上面的代码不起作用,因为匿名类还没有初始化,所以不能设置为特定的常量。
【问题讨论】:
标签: ruby class metaprogramming