Hi all, 这个问题真心水,但是我搞了半天竟然都没有玩出来,就是如何将一个 module extend 进所有 Module 中?尝试了 instance_exec class_exec module_exec,都不对。。 谢谢大家啦。。
require 'active_support/all'
class Module
include ActiveSupport::Autoload
end
module A
autoload :B
end
# => ArgumentError: wrong number of arguments(1 for 2)
module M
def foo
p 'foo'
end
end
=> nil
class Module
include M
end
=> Module
module N
end
=> nil
N.foo
"foo"
=> "foo"
class Module
include ActiveSupport::Autoload
extend ActiveSupport::Autoload
end
同时兼顾了类方法和实例方法
require 'active_support/all'
class Module
remove_method :autoload
include ActiveSupport::Autoload
end
module A
autoload :B
end