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.