Using irb as a REPL - RUBY

This is a discussion on Using irb as a REPL - RUBY ; Lisp programmers often use the REPL (similar to IRB) as a simple way to make an interactive interface to their app. I'd like to do the same thing with irb - that is, define my classes, and load irb in ...

+ Reply to Thread
Results 1 to 8 of 8

Using irb as a REPL

  1. Default Using irb as a REPL

    Lisp programmers often use the REPL (similar to IRB) as a simple way
    to make an interactive interface to their app. I'd like to do the
    same thing with irb - that is, define my classes, and load irb in the
    context.

    I can get about half way there:

    require 'irb'
    IRB.start
    my_class = MyClass.new(...) # I want this to be the context
    irb my_class

    ....works, but you have to type "quit" to load. Is there a better way
    to leverage IRB from within my code? What do the Ruby hackers say? (I
    know a lot have a Lisp background, and so wouldn't want Ruby to not
    have a REPL shell...)

  2. Default Re: Using irb as a REPL

    On Nov 19, 6:21 pm, "S. Robert James" <srobertja...@gmail.com> wrote:
    > Lisp programmers often use the REPL (similar to IRB) as a simple way
    > to make an interactive interface to their app. I'd like to do the
    > same thing with irb - that is, define my classes, and load irb in the
    > context.
    >
    > I can get about half way there:
    >
    > require 'irb'
    > IRB.start
    > my_class = MyClass.new(...) # I want this to be the context
    > irb my_class
    >
    > ...works, but you have to type "quit" to load. Is there a better way
    > to leverage IRB from within my code? What do the Ruby hackers say? (I
    > know a lot have a Lisp background, and so wouldn't want Ruby to not
    > have a REPL shell...)


    Another, similar problem with the above:
    irb my_class
    conf.prompt_mode = :SIMPLE # This line is ignored

  3. Default Re: Using irb as a REPL

    On 11/19/07, S. Robert James <srobertjames@gmail.com> wrote:
    > On Nov 19, 6:21 pm, "S. Robert James" <srobertja...@gmail.com> wrote:
    > > Lisp programmers often use the REPL (similar to IRB) as a simple way
    > > to make an interactive interface to their app. I'd like to do the
    > > same thing with irb - that is, define my classes, and load irb in the
    > > context.
    > >
    > > I can get about half way there:
    > >
    > > require 'irb'
    > > IRB.start
    > > my_class = MyClass.new(...) # I want this to be the context
    > > irb my_class
    > >
    > > ...works, but you have to type "quit" to load. Is there a better way
    > > to leverage IRB from within my code? What do the Ruby hackers say? (I
    > > know a lot have a Lisp background, and so wouldn't want Ruby to not
    > > have a REPL shell...)

    >
    > Another, similar problem with the above:
    > irb my_class
    > conf.prompt_mode = :SIMPLE # This line is ignored


    hmmm, I've also had some problems trying to add a command interface to
    some code. I found trying to bend IRB to fit the needs seems to be
    trickier than just coding up a solution in readline directly. Is that
    really the best solution?

    Cameron


  4. Default Re: Using irb as a REPL

    On Nov 19, 9:07 pm, Cameron McBride <cameron.mcbr...@gmail.com> wrote:
    >
    > hmmm, I've also had some problems trying to add a command interface to
    > some code. I found trying to bend IRB to fit the needs seems to be
    > trickier than just coding up a solution in readline directly. Is that
    > really the best solution?
    >
    > Cameron


    Then you miss out on the full power of Ruby in your interface!
    The beauty of using a REPL or IRB is that you have an easy command
    line interface, with automatic scripting when you need it, expandable
    to the full power of the host language as needed.

  5. Default Re: Using irb as a REPL

    On 11/19/07, S. Robert James <srobertjames@gmail.com> wrote:
    > On Nov 19, 9:07 pm, Cameron McBride <cameron.mcbr...@gmail.com> wrote:
    > >
    > > hmmm, I've also had some problems trying to add a command interface to
    > > some code. I found trying to bend IRB to fit the needs seems to be
    > > trickier than just coding up a solution in readline directly. Is that
    > > really the best solution?
    > >
    > > Cameron

    >
    > Then you miss out on the full power of Ruby in your interface!
    > The beauty of using a REPL or IRB is that you have an easy command
    > line interface, with automatic scripting when you need it, expandable
    > to the full power of the host language as needed.


    Sorry, I wasn't clear. I'm talking about building a ruby library and
    then the CLI with readline does a stateful eval. Problem is that it
    reimplements functionality that already exists in IRB.

    Cameron


  6. Default Re: Using irb as a REPL

    On Tue, Nov 20, 2007 at 08:25:00AM +0900, S. Robert James wrote:
    > Lisp programmers often use the REPL (similar to IRB) as a simple way
    > to make an interactive interface to their app. I'd like to do the
    > same thing with irb - that is, define my classes, and load irb in the
    > context.


    There's an example of this in Shoes:

    http://code.whytheluckystiff.net/svn...samples/irb.rb

    The MimickIRB class just wraps IRB's RubyLex class in a very simple
    REPL. I don't know if this is exactly what you're looking for
    (since it doesn't do debugging, .irbrc, or frames) but it's nice if
    you want to start your own from nothing.

    _why


  7. Default Re: Using irb as a REPL

    On 11/19/07, S. Robert James <srobertjames@gmail.com> wrote:
    > Lisp programmers often use the REPL (similar to IRB) as a simple way
    > to make an interactive interface to their app. I'd like to do the
    > same thing with irb - that is, define my classes, and load irb in the
    > context.


    There's one very simple way to do this. Do

    gem install aws-s3

    And have a look at s3sh in the bin dir. It's basically just a shell
    script. It just aims regular old IRB at a setup file which establishes
    some relevant variables and loads some relevant modules.

    Rails console does nearly exactly the same thing - all it really adds
    in is more libraries and some command-line args with optparse.

    --
    Giles Bowkett

    Podcast: http://hollywoodgrit.blogspot.com
    Blog: http://gilesbowkett.blogspot.com
    Portfolio: http://www.gilesgoatboy.org
    Tumblelog: http://giles.tumblr.com


  8. Default Re: Using irb as a REPL

    S. Robert James wrote:
    > Lisp programmers often use the REPL (similar to IRB) as a simple way
    > to make an interactive interface to their app. I'd like to do the
    > same thing with irb - that is, define my classes, and load irb in the
    > context.
    >
    > I can get about half way there:
    >
    > require 'irb'
    > IRB.start
    > my_class = MyClass.new(...) # I want this to be the context
    > irb my_class
    >
    > ...works, but you have to type "quit" to load. Is there a better way
    > to leverage IRB from within my code? What do the Ruby hackers say? (I
    > know a lot have a Lisp background, and so wouldn't want Ruby to not
    > have a REPL shell...)


    This might help:

    http://blade.nagaokaut.ac.jp/cgi-bin...by-talk/244139

    --
    vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407


+ Reply to Thread

Similar Threads

  1. Please explain this REPL behaviour
    By Application Development in forum lisp
    Replies: 7
    Last Post: 10-16-2007, 07:35 PM
  2. REPL?
    By Application Development in forum lisp
    Replies: 14
    Last Post: 10-07-2007, 04:19 PM
  3. 'REPL' style IDE
    By Application Development in forum Python
    Replies: 8
    Last Post: 08-22-2007, 02:15 AM
  4. Merge Repl, Firewall, Proxy
    By Application Development in forum DOTNET
    Replies: 1
    Last Post: 08-20-2007, 10:40 AM
  5. Why does the SBCL REPL suck so bad?
    By Application Development in forum lisp
    Replies: 32
    Last Post: 08-09-2007, 04:43 AM