【发布时间】:2013-07-20 13:29:21
【问题描述】:
我正在扩展BasicObject,我想实现Object#class 方法。除了像这样对返回值进行硬编码之外,我不确定如何执行此操作:
class MyObject < BasicObject
def class
::Kernel::eval "::MyObject"
end
end
MyObject.new.class
#=> MyObject
使用此解决方案,任何从MyObject 继承的类都必须覆盖此方法以保持其准确性。有没有更好的办法?
【问题讨论】:
-
@falsetru:这完全有效!我实际上正在做类似的事情,但我还没有完全做到。谢谢!
标签: ruby