rails module include way

以下方式的代码在rails中源码中的相当多见,其中的self.included(base)方法是一个回调方法,当此module被其他名为basemodule (或者class) included的时候触发此方法。通过class_evalincludeextend加入了实例方法和类方法到base中,代码划分得很干净。

module
module Components
def self.included(base)
base.class_eval do
include InstanceMethods
extend ClassMethods
helper HelperMethods
end
end
module ClassMethods
end
module HelperMethods
end
module InstanceMethods
end
end
end