c3d2-wiki/Irb.mw

65 lines
1.7 KiB
Plaintext

[[Kategorie:Wissen]][[Kategorie:Ruby]]
Den folgenden Code einfach in die ~/.irbrc tun und schon steht die besschriebene Funktionalität zur Verfügung.
=History=
<pre>
HISTFILE = "~/.irb.hist"
MAXHISTSIZE = 10000
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
</pre>
=ri in irb=
<pre>
def ri arg
puts `ri #{arg}`
end
class Module
def ri(meth=nil)
if meth
if instance_methods(false).include? meth.to_s
puts `ri #{self}##{meth}`
else
super
end
else
puts `ri #{self}`
end
end
end
</pre>
=Tab completion und Einrückung=
<pre>
IRB.conf[:AUTO_INDENT] = true
IRB.conf[:USE_READLINE] = true
IRB.conf[:LOAD_MODULES] ||= []
IRB.conf[:LOAD_MODULES] |= ['irb/completion']
</pre>
Alternative: [http://www.rubyinside.com/wirble-tab-completion-and-syntax-coloring-for-irb-336.html Wirble]
{{Rübÿ Spëëd Mëtäl Cödïng}}