Rails has useful command rails console
, which downloads all necessary data and then we can interact with rails project in irb
. Is there the same technique for Ruby project (built on Ruby language)? By this trick I can play with Ruby project in the irb
without concerning about loading libraries, modules, classes, files and so on.
Thanks
Asked
Active
Viewed 6,222 times
16

megas
- 21,401
- 12
- 79
- 130
3 Answers
22
Your project should have one file which loads the environment. Assuming your project is in lib/project.rb then simply:
$ irb -Ilib -rproject

cldwalker
- 6,155
- 2
- 27
- 19
1
From one of my projects:
# Creates an IRB console useful for debugging experiments
# Loads up the environment for the condition passed
def console
File.open("./tmp/irb-setup.rb", 'w') do |f|
f.puts "# Initializes the environment for IRb."
f.puts "Code to initialize your project here"
f.puts "$: << '#{File.expand_path(".")}/'" #handle load path
end
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
# require your code
libs = " -r irb/completion"
libs << " -r #{File.dirname(__FILE__) + "/base"}"
libs << " -r ./tmp/irb-setup.rb" # require the config file you just wrote
puts "Loading #{@options.env} environment..."
exec "#{irb} #{libs} --simple-prompt"
end
The trick is that you construct the irb command to autorequire all the code you need. I also needed to set up some configuration so I add the magick of writing a file I then require in IRb.

Jakub Hampl
- 39,863
- 10
- 77
- 106
-
Please explain where to put this function in the project and how to call it. – megas Mar 24 '11 at 20:46
-
That kind of depends on how your project is organized. I have it a file that contains a commandline utility that does things like generators, servers, running the code etc. But if you put in a file `console.rb` and at the end simply add `console` then it should work when you run it with `ruby console.rb` it should work. You'll have to customize it to suite your needs, I've tried to indicate where. – Jakub Hampl Mar 24 '11 at 20:52
0
In my case my initialization script was in the current working directory. The below worked for me.
irb -r ./setup.rb

Russell Silva
- 2,772
- 3
- 26
- 36