Dan*_*iro 6 ruby metaprogramming
Ruby已经有几个内置的回调.这种情况有回调吗?有点像method_added,但对于模块内的类(或常量),而不是类中的实例方法.
据我所知,没有什么与你所描述的完全一样的。然而,您可以通过以下方式创建自己的,使用Class::inherited.
module MyModule
def self.class_added(klass)
# ... handle it
end
class ::Class
alias_method :old_inherited, :inherited
def inherited(subclass)
MyModule.class_added(subclass) if /^MyModule::\w+/.match subclass.name
old_inherited(subclass)
end
end
end
module MyModule
# now add classes
end
Run Code Online (Sandbox Code Playgroud)