IRB(interactive Ruby console)を使用してRubyでプログラムする方法を学習しています。最初にテキストエディターでプログラムを作成する場合、コンソールにファイルを読み込むにはどうすればよいですか?
1つのファイルのみをIRBにロードする必要がある場合は、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
現在のディレクトリから。これは、irb
の-r
オプションが達成するものです。
この問題が発生したときに私にとって明らかではなかった重要な部分は、-I
オプションです。これを行うと、現在のディレクトリ内の任意のファイルに対して、irb
内からrequire 'foo.rb'
を呼び出すことができます。そしてもちろん、.
オプションで-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が同じディレクトリにあることを前提としています。それに応じて調整します。
二つの方法:
source("filename.rb")
require("filename.rb")
Rubyに依存します。 Ruby 1.8には現在のパスが含まれますが、Ruby 1.9には含まれません。評価$:
パスが含まれているかどうかを判断します。したがって、Ruby 1.9では、パス全体を使用する必要があります。これは常に安全な方法です。
次に、require
またはload
を使用してファイルを含めることができます。
require
では、ファイルの検索時にファイルのサフィックスを追加する必要はなく、ファイルは1回だけ含まれます。ほとんどの場合、require
の代わりにload
を使用する必要があります。
チェックアウト $ LOAD_PATH(Ruby)へのディレクトリの追加 Ruby 1.8を使用する場合
別のディレクトリから.rbファイルをロードする場合。ディレクトリの文字列表現を$:変数に追加するだけです。
> $: << "/directory/to/the/required/rb/file"
> require "some_file"
パスをirbにロードする別の方法は、単にrequireと入力してから、ファイルをターミナルにドラッグアンドドロップすることです。 -Linux Mintを使用してテスト済み。