我正在看一个模块X,它包含两个名为" InstanceMethods"和" ClassMethods"的模块.
模块X中的最后一个定义是:
def self.included(base)
base.send :include, InstanceMethods
base.send :extend, ClassMethods
end
Run Code Online (Sandbox Code Playgroud)
这是做什么的?
toh*_*lio 10
included只要模块包含在另一个模块或类中,就会调用它.在这种情况下,它会尝试调用base的include方法来获取模块的方法,变量和常量从InstanceMethods加入base,然后将尝试调用base的extend方法来获得实例方法,从ClassMethods加入base.
它也可能是
def self.included( base )
base.include( InstanceMethods )
base.extend( ClassMethods )
end
Run Code Online (Sandbox Code Playgroud)