Rubyでプログラミングする方法を学ぶためにIRB(インタラクティブRubyコンソール)を使用しています。最初にテキストエディタでプログラムを作成した場合、コンソールにファイルをロードするにはどうすればよいですか?
Rubyでプログラミングする方法を学ぶためにIRB(インタラクティブRubyコンソール)を使用しています。最初にテキストエディタでプログラムを作成した場合、コンソールにファイルをロードするにはどうすればよいですか?
回答:
1つのファイルのみをIRBにロードする必要があるirb -r ./your_file.rb
場合は、同じディレクトリにある場合にそれを呼び出すことができます。
これには自動的にファイルが必要であり、すぐに操作できます。
rake irb
、すべてを実行できます。
irb -r /foo/foo.rb
Ubuntu14.04でruby1.9.3を使用するirb
と、次のコマンドラインで現在のディレクトリからファイルをロードできます。
irb -I . -r foo.rb
foo.rb
現在のディレクトリからロードしたいファイルはどこにありますか。この-I
オプションは.
、rubyのマニュアルページで説明されているように、現在のディレクトリ()をrubyのロードパスに追加するために必要です。これによりrequire
、現在のディレクトリからファイルを作成できるようになります。これは、実行する-r
オプションirb
です。
私がこの問題を抱えていたときに私には明らかではなかった重要な部分は-I
オプションです。これを行うと、現在のディレクトリrequire 'foo.rb'
内irb
の任意のファイルを内部から呼び出すことができます。もちろん、オプションだけ.
でなく、任意のディレクトリを指定できます-I
。ロードパスに複数のディレクトリを含めるには、それらをコロン(:)で区切ります。例:
irb -I foo/:bar/:baz/
このコマンドは、ディレクトリを追加しますfoo
、bar
とbaz
Rubyのロードパスに。
最後の代替方法は、ファイルを使用require
または-r
ロードするときに、ファイルへの相対パスまたは絶対パスを使用することです。
irb -r ./foo.rb
または内部からirb
:
> require './foo.rb'
入力します irb
その後
require './ruby_file.rb'
これは、ruby_file.rbが同じディレクトリにあることを前提としています。それに応じて調整します。
require_relative
。例require "./lib/foo"
は同じことをしますrequire_relative "lib/foo"
.rb
オプションで、require './ruby_file'. I checked in
ruby 1.9.3p551`を書くことができます
二通り:
source("filename.rb")
require("filename.rb")
require
スクリプトをリロードしていないように見える(元のソースへの変更はセッションに反映されていない)が、source
元のスクリプトへの変更を反映しているように見えるものを使用していました。
それはあなたのルビーに依存します。Ruby 1.8には現在のパスが含まれていますが、ruby1.9には含まれていません。$:
パスが含まれているかどうかを判断するために評価します。したがって、ruby 1.9では、パス全体を使用する必要があります。これは常に安全な方法です。
次に、require
またはload
を使用してファイルを含めることができます。
require
ファイルを検索するときにファイルのサフィックスを追加する必要はなく、ファイルは1回だけ含まれます。 ほとんどのrequire
場合の代わりに使用する必要がありますload
。
ruby 1.8を使用する場合は、$ LOAD_PATH(Ruby)へのディレクトリの追加を確認してください。