98

I am starting out with Ruby on Rails. I am currently going through a tutorial that says that I have to run a .rb file from IRB to create a .xml file in my current directory.

My question is how do I run a .rb file in IRB?

I tried the following: just typing irb on the command line in the directory of the file. That starts an IRB session as far as I understand.
Then I typed

irb filename.rb

which went through, but didn't create anything in the current directory.

Aiden Cullo
  • 312
  • 3
  • 15
Katrina
  • 981
  • 1
  • 7
  • 5

3 Answers3

185

You can "run" a file in irb by just requiring or loading it.

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

To change your current working directory within irb, you can use FileUtils:

>> require 'fileutils'
>> FileUtils.pwd # prints working directory
>> FileUtils.cd '/path/to/somewhere' # changes the directory
J-_-L
  • 9,079
  • 2
  • 40
  • 37
  • 3
    to require it from irb you need to provide the fully qualified path, thus: `require '~/myrubystuff/coolstuff.rb'` instead of just `require 'coolstuff'` – runlevel0 Jun 29 '15 at 15:17
  • I was able to require `fileutils` by name alone, no directory path needed. I'm sure it's environment dependent and not everyone will need to use the qualified path. – volx757 May 09 '18 at 15:47
  • note local variables aren't available automatically, although there are easy workarounds https://stackoverflow.com/questions/2699324/how-can-i-access-a-variable-defined-in-a-ruby-file-i-required-in-irb – Aiden Cullo Aug 25 '23 at 14:21
8

In case you want to have your file loaded in the irb session and you are using Ruby 2+ you can load a file in irb like this:

irb -r ./the_name_of_your_file.rb

This opens an irb session with the given file loaded.

Imagine you have file with a class like this:

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

  def print__example
    p name
  end
end

You will be able to use the Example class in the irb session.

Gabriel Lidenor
  • 2,905
  • 2
  • 25
  • 26
3

We can just create a .rb file in the directory which you are currently working in using any text editor and type all the code in that and then use the command ruby filename.rb in the terminal, not in the irb, then it shows the output in irb.

Kevin Panko
  • 8,356
  • 19
  • 50
  • 61
Sreenivas
  • 95
  • 1