0

現在、スクリプトから ruby​​ gem を作成しようとしていますが、スクリプトを取得して同じディレクトリに配置すると機能しますが、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

また、lib スクリプトを同じディレクトリに配置せずに /bin の下で「cjp」スクリプトを手動で実行しようとすると、同じエラーが発生することにも気付きました。何かが足りないようです。

これを機能させるためにここで欠けているものについての助けをいただければ幸いです。

4

1 に答える 1

0

bundle gemgit を使用して gem マニフェストを管理します。

gem プロジェクト dir で実行git ls-filesしたときに期待されるすべてのファイルが表示されない場合は、それらを追加する必要があります。

個々のファイルを追加するには:

git add <filename>

すべてを追加するには (プロジェクトのルートから実行):

git add .

gitあなたのプロジェクトで使用することを期待していなかった場合、これはあなたを捕まえたかもしれません. git を知らず、時間がある場合は、プロジェクト コードの管理を支援することをお勧めします。実際にbundleは、それがあなたがやりたいことだと単純に仮定しているだけです (他のコード管理ツールが利用可能ですが)。

于 2013-06-24T18:11:57.283 に答える