How to run a .rb file from IRB?

Ruby on-RailsRubyIrb

Ruby on-Rails Problem Overview


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

My question is how do I run a .rb file in IRB?
And do I have to be in the directory where this .rb file lives when I run it 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 but at least it didn't give any errors.

I also tried a whole bunch of other stuff that plain gave me errors. So I don't think I can solve this myself and googling the matter didn't help at all.

I am running Leopard.

Ruby on-Rails Solutions


Solution 1 - Ruby on-Rails

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

Solution 2 - Ruby on-Rails

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.

Solution 3 - Ruby on-Rails

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionKatrinaView Question on Stackoverflow
Solution 1 - Ruby on-RailsJ-_-LView Answer on Stackoverflow
Solution 2 - Ruby on-RailsGabriel LidenorView Answer on Stackoverflow
Solution 3 - Ruby on-RailsSreenivasView Answer on Stackoverflow