【发布时间】:2010-10-21 21:30:00
【问题描述】:
#inherited 在class Foo 语句之后被调用。我想要只在关闭类声明的end 语句之后运行的东西。
这里有一些代码来举例说明我需要什么:
class Class
def inherited m
puts "In #inherited for #{m}"
end
end
class Foo
puts "In Foo"
end
puts "I really wanted to have #inherited tiggered here."
### Output:
# In #inherited for Foo
# In Foo
# I really wanted to have #inherited tiggered here.
这样的东西存在吗?可以创建吗?我完全不走运吗?
【问题讨论】:
-
我的第一个想法是,可能有更好的方法来实现您心目中的功能。当然,如果没有更多信息,很难肯定地说,我怀疑你已经继续前进了。
-
现在可以使用
TracePoint轻松完成此操作。请参阅下面我的回答,或我对这个类似问题的回答:stackoverflow.com/questions/32233860/…
标签: ruby class inheritance metaprogramming