我有以下代码:
class A
def self.scope
yield
end
def self.method_added method
self.instance_eval %{
# do something involving the added method
}
end
end
class B < A
scope do
def foo
end
end
end
当method_added
钩子被触发时,里面的代码会instance_eval
在与添加的方法相同的范围内运行吗?或者,它会在它之外运行吗?
这其中有哪些注意事项和陷阱?