我定制了一个红宝石。调用它,然后文件包含:
module MyGem
module InnerModule
def self.foo(); puts "Hello world!"; end
end
end
要从另一个正在开发的gem中引用此内容,我必须执行以下操作:
require 'mygem'
require 'innermodule'
这是正常行为,还是gempec for
MyGem
有问题? 最佳答案
我不知道这是否一定是gempec的问题,因为您通常只指定gem中要包含哪些文件。gempec实际上与gem进入另一个应用程序的方式无关。
听起来,gem的构建/打包方式有问题,特别是在命名和文件路径约定方面。
对于构建gems和我上面提到的东西,通常遵循一些常见的约定
http://guides.rubygems.org/patterns/有一个很好的概述。
基本上,您通常希望创建一个位于“lib”目录中的文件(通常是gem的名称)。在这种情况下,“lib/mygem.rb”对gem的内部依赖项有单独的需求。
#lib/mygem.rb
require 'innermodule'
然后要在任何其他应用程序中包含gem(以及内部模块),您可以
require 'mygem'