【发布时间】:2010-05-29 13:31:33
【问题描述】:
考虑这个非常简单的日志类:
class MockLog
# ...
end
让我们为所有类添加日志记录:
class Module
def has_logging()
class_eval {
@log = MockLog.new
def log
self.class.instance_variable_get :@log
end
}
end
end
现在,为什么这不起作用?
class Foo
has_logging
end
Foo.new.log.nil? # => false, as expected
class Bar < Foo
end
Bar.new.log.nil? # => true?! Why wasn't the `log` method inherited?
【问题讨论】: