From: James Tucker Date: 2007-12-25T23:01:54+09:00 Subject: Re: Calling Irb from inside an application Merry christmas! This was mercilessly stolen and adapted from a post on Errs blog (only google has the answer ;): require 'irb' module IRB def self.start_session(binding) IRB.setup(nil) workspace = WorkSpace.new(binding) if @CONF[:SCRIPT] irb = Irb.new(workspace, @CONF[:SCRIPT]) else irb = Irb.new(workspace) end @CONF[:IRB_RC].call(irb.context) if @CONF[:IRB_RC] @CONF[:MAIN_CONTEXT] = irb.context trap("SIGINT") do irb.signal_handle end catch(:IRB_EXIT) do irb.eval_input end end end def meths(o); puts (o.methods - Class.new.methods).join("\n"); end def dROP! b old_args = ARGV ARGV.size.times { ARGV.shift } if defined? IRBHelper foo = Class.new foo.instance_eval do include IRBHelper end puts "Helper Methods: #{(foo.new.methods - Class.new.methods).sort.join(', ')}" include IRBHelper end IRB.start_session b old_args.each { |a| ARGV << a } end On 25 Dec 2007, at 13:26, Stefano Crocco wrote: > Alle marted́ 25 dicembre 2007, Bertram Scharpf ha scritto: >> Hi, >> >> >> this may be easy to anwer but it is difficult to google for. >> >> While developping I would like to play around with objects from >> time to time. Just like this: >> >> irb(main):001:0> class C ; def f ; "F" ; end ; end >> => nil >> irb(main):002:0> irb C.new >> irb#1(#):001:0> f >> => "F" >> irb#1(#):002:0> >> >> In common my classes are not so easy to type in. So, I would like >> to call Irb from somewhere inside the application as I do here: >> >> ---->-call_irb.rb--------------- >> #!/usr/bin/ruby >> >> class C >> def f >> "F" >> end >> end >> >> if $0 == __FILE__ then >> require "irb" >> $c = C.new >> IRB.start >> end >> ----<--------------------------- >> >> and then >> >> user@host $ ./call_irb.rb >> irb(main):001:0> irb $c >> irb#1(#):001:0> f >> => "F" >> irb#1(#):002:0> >> >> Is there a way how I can call C.new's Irb directly without doing >> the long-winded definition of a global variable first? I already >> examined the irb sources but this seems to be well-hidden to me. >> >> Thanks in advance and Merry Christmas, >> >> Bertram > > Not a direct answer to your question, but can't you load the file > with the > definition of the class in irb? > > Stefano >