require 'foo'
Rubyは、ロードパス内のすべてのディレクトリにファイルfoo.rb
をチェックし、見つかった最初のファイルをロードします。 foo.rb
という名前のファイルが見つからず、でない場合、Rubygemsを使用しているである場合、LoadError
が発生します。
場合(おそらくそれは1.9+ルビーに含まれていることを与えられている)を使用してRubygemsのある、その後、代わりにすぐにLoadError
インストールされているすべての宝石を1つのファイルfoo.rb
が含まれているかどうかを確認するために検索される調達の。そのようなGemが見つかった場合は、それがロードパスに追加され、ファイルがロードされます。
ライブラリの特定のバージョンが確実に使用されるようにするには、ロードパスを自分で操作できます。通常これは推奨されるものではありませんが、これはあなたがやりたい状況のようなものです。
ロードパスにディレクトリを追加する方法は2通りあります。
$LOAD_PATH.unshift '/path/to/the/gems/lib/'
require 'the_gem'
注普段宝石、ない宝石のトップレベルのディレクトリのlib
DIRを(追加する:まず、$LOAD_PATH
(または$:
)グローバル変数を使用して、実際のコードでそれを行うことができます実際にはこれは実際のGemに依存して変わる可能性があり、複数のディレクトリを追加する必要がありますが、lib
が標準です)。
他の方法はruby
実行可能ファイルに-I
コマンドラインスイッチを使用することです:
$ ruby -I/path/to/the/gems/lib/ test.rb
通常、あなたがからロードパスをいじりされないようにするため、この方法では、ビットクリーナーかもしれませんあなたのコードの中にはありますが、ライブラリをテストしているだけであれば多分問題はありません。
gemディレクトリに 'test.rb'を作成した場合は' require 'gemname''を使ってください。 –
gemfileがありますか? – apneadiving
可能であれば、gemディレクトリの外にtest.rbを作成したいと思います。そして、私はgemfileを持っていません。 – foobar