我正在尝试用脚本创建一个ruby gem,如果我将脚本放在同一个目录中,如果我在生成后将它们放在相应的/ bin和/ lib目录中,它会起作用我的宝石结构,构建宝石然后尝试执行它我给了未初始化的常量错误。在/ bin下,文件“cjp”中的相关部分是:
Cjb.new(crontabDir, logDir, allowedFrequency, printOnly, testRun).
find_violations autoFix
该类在/ lib
下的文件cjp.rb中定义class Cjb
def initialize(crontabDir, logDir, allowedFrequency, printOnly, testRun)
@crontabDir, @logDir, @allowedFrequency, @printOnly, @testRun =
crontabDir, logDir, allowedFrequency, printOnly, testRun
尽管如此,我得到的错误是:
ERROR: uninitialized constant Cjb
我还注意到,如果我尝试在/ bin下手动执行“cjp”脚本而lib脚本不在同一个目录中,那么它也会产生相同的错误。看来我错过了什么。
对于我在这里所缺少的任何帮助,我们将不胜感激。
答案 0 :(得分:0)
bundle gem
使用git来管理gem manifest。
如果在gem项目目录中运行git ls-files
时没有看到所有预期的文件,则需要添加它们。
添加单个文件:
git add <filename>
添加所有内容(从项目的根目录运行):
git add .
如果您不希望在项目中使用git
,这可能会让您失望。如果您不了解git并且有时间,建议您真正帮助您管理项目代码。事实上,bundle
只是假设你想做的事情(尽管其他代码管理工具可用)