IRB (インタラクティブ Ruby コンソール) を使用して、Ruby でプログラミングする方法を学習しています。最初にテキスト エディタでプログラムを作成した場合、ファイルをコンソールにロードするにはどうすればよいですか?
8 に答える
IRB にファイルを 1 つだけロードする必要があるirb -r ./your_file.rb
場合は、それが同じディレクトリにある場合に呼び出すことができます。
これにより、ファイルが自動的に必要になり、すぐに作業できるようになります。
Ubuntu 14.04 で ruby 1.9.3 を使用するirb
と、次のコマンド ラインで現在のディレクトリからファイルを読み込むことができます。
irb -I . -r foo.rb
foo.rb
現在のディレクトリからロードするファイルはどこにありますか。この-I
オプションは.
、ruby の man ページで説明されているように、現在のディレクトリ ( ) を ruby のロード パスに追加するために必要です。これによりrequire
、現在のディレクトリからファイルを取得できるようになります。これは、-r
オプションがirb
達成するものです。
この問題を抱えていたとき、私にとって明らかではなかった重要な部分は-I
オプションです。require 'foo.rb'
これを行うと、現在のディレクトリ内irb
の任意のファイルに対して内部から呼び出すことができます。もちろん、オプションだけ.
でなく、任意のディレクトリを指定でき-I
ます。ロード パスに複数のディレクトリを含めるには、コロン (:) で区切ります。次に例を示します。
irb -I foo/:bar/:baz/
このコマンドは、ディレクトリ、、およびを ruby のロード パスに追加foo
しbar
ますbaz
。
最後の代替手段は、ファイルを使用require
または-r
ロードするときに、ファイルへの相対パスまたは絶対パスを使用することです。
irb -r ./foo.rb
または内からirb
:
> require './foo.rb'
ふたつのやり方:
- プログラムを実行せずにソースをロードする - これにより、すべての変数と関数にアクセスできます。
source("filename.rb")
- プログラムを実行してからインタラクティブモードにドロップします-これにより、変数ではなく関数へのアクセスのみが許可されます。
require("filename.rb")
それはあなたのルビーに依存します。Ruby 1.8 には現在のパスが含まれていますが、Ruby 1.9 には含まれていません。$:
パスが含まれているかどうかを判断するために評価します。したがって、Ruby 1.9 ではパス全体を使用する必要がありますが、これは常に安全な方法です。
次に、require
またはを使用load
してファイルを含めることができます。
require
ファイルを検索しようとするときにファイルの接尾辞を追加する必要はなく、ファイルは一度だけ含まれます。 ほとんどの場合ではrequire
なく使用する必要があります。load
ruby 1.8 を使用する場合は、「$LOAD_PATH (Ruby) にディレクトリを追加する」を参照してください。