IRB - correcting errors in blocks

Hi,

When running IRB, and I have made an error, I miss a facility, which lets me correct the error and rerun, whitout the need to copy entire blocks line by line. When running Unix scripts interactivly, it concatenates blocks into one line making it easy to correct and rerun.

A great facility would also be to stream the lines in an IRB session to a file.

I'm new to IRB, so forgive me and help me.

regards
Hardy

My .irbrc saves my irb history to a file, among other things. Maybe that would help. Here's the file:

require 'irb/completion'
ARGV.concat [ "--readline" ]

if $0 == "irb"
   IRB.conf[:PROMPT_MODE] = :SIMPLE

   IRB.conf[:EVAL_HISTORY] = 1000
   IRB.conf[:SAVE_HISTORY] = 100

   HISTFILE = "~/.irb.hist"
   MAXHISTSIZE = 100

   begin
     if defined? Readline::HISTORY
       histfile = File::expand_path( HISTFILE )
       if File::exists?( histfile )
         lines = IO::readlines( histfile ).collect {|line| line.chomp}
         puts "Read %d saved history commands from %s." %
              [ lines.nitems, histfile ] if $DEBUG || $VERBOSE
         Readline::HISTORY.push( *lines )
       else
         puts "History file '%s' was empty or non-existant." %
              histfile if $DEBUG || $VERBOSE
       end

       Kernel::at_exit {
         lines = Readline::HISTORY.to_a.reverse.uniq.reverse
         lines = lines[ -MAXHISTSIZE, MAXHISTSIZE ] if lines.nitems > MAXHISTSIZE
         $stderr.puts "Saving %d history lines to %s." %
                      [ lines.length, histfile ] if $VERBOSE || $DEBUG
         File::open( histfile, File::WRONLY|File::CREAT|File::TRUNC ) {|ofh|
           lines.each {|line| ofh.puts line }
         }
       }
     end
   end

   def ri(*names)
     system(%{ri #{names.map {|name| name.to_s}.join(" ")}})
   end
end

James Edward Gray II

ยทยทยท

On Oct 31, 2005, at 3:25 AM, Hardy Henneberg wrote:

A great facility would also be to stream the lines in an IRB session to a file.