0
如果我有以下项目结构ruby在遇到“include module”语句时包含了什么?
project/ lib/ subproject/ a.rb b.rb lib.rb
其中lib.rb看起来是这样的: -
module Subproject
def foo
do_some_stuff
end
end
和a.rb和b.rb都需要混入lib.rb内的一些方法并且都在一个模块内的命名空间,如下所示: -
require 'subproject/lib'
module Subproject
class A
include Subproject
def initialize()
foo()
end
end
end
是什么红宝石做的,当它遇到包含语句?它是如何知道我只想包含lib.rb中的mixin而不是包含A类和B类的整个模块,这是纯粹基于subproject/lib的要求还是我错了,它是包括整个模块,包括A类和B类的定义在内?
所以,如果我只是想包括lib.rb功能,然后我有一个名为SubprojectLib或类似的模块来定义它,只是包括? – 2010-03-18 10:53:50
这是正确的。 – 2010-03-18 11:08:24