生成rubygem-错误:未初始化常量

生成rubygem-错误:未初始化常量,ruby,scripting,build,gem,centos,Ruby,Scripting,Build,Gem,Centos,我目前正试图用一个脚本创建一个ruby gem,当我获取脚本并将它们放在同一个目录中时,如果我在生成gem结构后将它们放在适当的/bin和/lib目录中,构建gem并尝试执行它,我会收到未初始化常量错误。在/bin下,文件“cjp”中的相关部分为: 该类在/lib下的文件cjp.rb中定义 class Cjb def initialize(crontabDir, logDir, allowedFrequency, printOnly, testRun) @crontabDir, @l

我目前正试图用一个脚本创建一个ruby gem,当我获取脚本并将它们放在同一个目录中时,如果我在生成gem结构后将它们放在适当的/bin和/lib目录中,构建gem并尝试执行它,我会收到未初始化常量错误。在/bin下,文件“cjp”中的相关部分为:

该类在/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脚本不在同一目录中,那么它也会给出相同的错误。看来我遗漏了什么


如果您能帮我完成这项工作,我将不胜感激。

bundle gem
使用git管理gem清单

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

要添加单个文件,请执行以下操作:

git add <filename>

如果您不希望在项目中使用
git
,这可能会让您大吃一惊。如果您不了解git,并且有时间,建议您帮助管理项目代码。事实上,
bundle
简单地假设这就是您想要做的(尽管有其他代码管理工具可用)

您的gem的名称是什么?gem的名称只是“cjp”。我用:bundle gem cjp-b生成了这个结构。仅供参考,如果我试图更改cjp.rb文件的名称,我将无法构建它,因为它声明[“lib/cjp.rb”]不是文件。
bundle gem
使用git管理gem清单。在gem项目目录中运行
git ls files
时,您是否看到了所有预期的文件?不,我没有。我该如何解决这个问题?我基本上只有两个文件需要加载:bin中的cjp和lib中的cjp.rb。作为答案添加,因为我认为这是您问题的原因。感谢您花时间回答。我重新生成了结构,将代码复制到/bin和/lib,git列出了正确的文件(我用git ls files命令确保了这一点),但是gem在构建和安装之后,继续给我错误“error:uninitialized constant Cjb”,所以我猜代码在某个地方有问题。
git add <filename>
git add .