是否有可以在加载类时执行的回调。我在想这样的事情。
register_callback('Foo', :debug_message)
def debug_message
puts "Foo has been loaded"
end
require 'foo'
答案 0 :(得分:7)
不,没有。并且不能,原因很简单,Ruby中的类 open :它们从不完全“加载”,你可以总是在以后任何时候添加,删除,重命名和覆盖方法。
例如,以下课程何时被“加载”?
# foo.rb
class Foo
def some_method
end
end
# bar.rb
class Foo
def some_other_method
end
end
# baz.rb
class Foo
def some_method
end
end
require 'foo'
require 'bar'
require 'baz' if rand > 0.5