IRBから.rbファイルを実行する方法


88

Ruby on Railsから始めます。私は現在、IRBから.rbファイルを実行する必要があり、現在のディレクトリに.xmlファイルを作成するというチュートリアルを行っています。

IRBで.rbファイルを実行するにはどうすればよいですか?
IRBで実行するとき、この.rbファイルが存在するディレクトリにいる必要がありますか?

私は次のことを試しました:irbファイルのディレクトリのコマンドラインでタイプするだけです。私が理解している限り、これによりIRBセッションが開始されます。
次に、入力irb "filename.rb"しましたが、現在のディレクトリに何も作成されませんでしたが、少なくともエラーは発生しませんでした。

私はまた、私にエラーを与えた他のたくさんのものも試しました。だから私はこれを自分で解決することはできないと思います、そして問題をググリングすることはまったく助けにはなりませんでした。

Leopardを実行しています。

回答:


175

irbでファイルを要求またはロードするだけで「実行」できます。

$ irb
>> load './filename.rb'

irb内の現在の作業ディレクトリを変更するには、FileUtilsを使用できます

>> require 'fileutils'
>> FileUtils.pwd # prints working directory
>> FileUtils.cd '/path/to/somewhere' # changes the directory

3
:IRBからそれを必要とするために、あなたは、このように、完全修飾パスを提供する必要がある require '~/myrubystuff/coolstuff.rb' だけではなくの require 'coolstuff'
runlevel0

fileutils名前だけで要求でき、ディレクトリパスは必要ありませんでした。私はそれが環境に依存し、誰もが修飾パスを使用する必要があるとは限らないと確信しています。
volx757

5

irbセッションでファイルをロードする必要があり、Ruby 2+を使用している場合は、次のようにirbにファイルをロードできます。

irb -r ./the_name_of_your_file.rb

これにより、指定されたファイルがロードされたirbセッションが開きます。

次のようなクラスのファイルがあるとします。

class Example
  def initialize(name)
    @name = name
  end

  def print__example
    p name
  end
end

irbセッションでExampleクラスを使用できるようになります。


それは私が実際に探していたものでした、本当にありがとう!
トーマス

これにより、ファイルに定義された変数ではなく、関数にのみアクセスできます。
Radon Rosborough

1

テキストエディターを使用して現在作業しているディレクトリに.rbファイルを作成し、そこにすべてのコードを入力してからruby filename.rb、irbではなくターミナルでコマンドを使用すると、出力がirbに表示されます。


4
しかし、ファイルをロードすることで、そこで定義された変数にアクセスできます。トラブルシューティングやライブラリの操作に便利です。
ソニアハミルトン

@Sreenivasこれはまさに私が探していたものでした。ありがとう!
ジョシュアピンター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.