Gilles Filippini wrote: > http://www.ruby-talk.org/blade/31020 > > | require "irb/main" > | IRB.start > > How is it different from your solution? Hm, there doesn't seem to be an irb/main on my system, and my irb install is only a few days old. The reasons for the IRB.start_session as opposed to just IRB.start (which is what start_session is based on) are: 1. start_session doesn't expect to be invoked from the command line, though if you do, and pass it a script file, it will execute it, 2. it leaves the Irb object in $irb, and only calls IRB initialization when the first Irb object is created, so you can exit the IRB session (with ^D), and then the app can can start_session again later, 3. you can specify the object to be used as self when the session starts i.e., IRB.start_session([1,2,3]) starts a session in which self is [1,2,3].