制作rubygem - 错误:未初始化的常量

时间:2013-06-24 14:20:19

标签: ruby scripting build gem centos

我正在尝试用脚本创建一个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脚本不在同一个目录中,那么它也会产生相同的错误。看来我错过了什么。

对于我在这里所缺少的任何帮助,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

bundle gem使用git来管理gem manifest。

如果在gem项目目录中运行git ls-files时没有看到所有预期的文件,则需要添加它们。

添加单个文件:

git add <filename>

添加所有内容(从项目的根目录运行):

git add .

如果您不希望在项目中使用git,这可能会让您失望。如果您不了解git并且有时间,建议您真正帮助您管理项目代码。事实上,bundle只是假设你想做的事情(尽管其他代码管理工具可用)