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].