7

ruby コードを gem に詰め込みます。gem のコードを別のコードで参照したい。そのため、Gemfile では、gem の名前、バージョン、およびローカル パスを指定します。お気に入り:

gem 'gemname','0.x', :path => 'RELATIVE_PATH_TO_GEM_FILE'

バンドルのインストール後、

Using gemname (0.x) from source at RELATIVE_PATH_TO_GEM_FILE

しかし、コードを実行すると、gem でコードが見つかりません。LOAD_PATH は ABSOLUTE_PATH_TO_GEM_FILE/lib を示します。

コードが見つからないのも不思議ではありません。ABSOLUTE_PATH_TO_GEM_FILE の下には gem ファイルしかありません。未開封です。したがって、lib ディレクトリはありません。

そのgemファイルを自分のシステムにgemインストールすると、すべて正常に動作します。gem ファイルがソース コード ファイルに展開されていることがわかります。しかし、私の質問は、何らかの方法でローカルの gem ファイルを直接参照できるかどうかです。

4

2 に答える 2

7

いいえ、.gemファイルを直接参照することはできません。

あなたの用語では、「開梱された」宝石を使用する必要があります。

:path => '/foo/bar/'

ここで、など/foo/bar/を含む(gem)ディレクトリです。lib/

于 2011-06-22T19:11:29.680 に答える
1

ローカル (システム全体ではない) の gem の場所を作成しました。これらの環境変数を設定します。

GEM_HOME=/path/to/rubygems-1.3.4
RUBYLIB=/path/to/rubygems-1.3.4/lib/

それらを設定することで、'gem install ...' を実行して、ビルドされた gem をそのディレクトリに置くことができ、ruby はそれらの場所を認識します。

于 2011-06-30T20:07:25.873 に答える