mode ruby Include tab-completion in irb require irb completion IRB con

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# -*- mode: ruby -*-
# Include tab-completion in irb
require 'irb/completion'
IRB.conf[:USE_READLINE] = true
require 'rubygems'
require 'wirble'
Wirble.init
Wirble.colorize
# Load and save each command in irb so we don't have to re-type stuff. Taken from ctran.
# http://snipplr.com/view/1026/my-irbrc/
HISTFILE = "~/.irb_history"
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
# Let's you use the "ri" command inside irb. Taken from Programming Ruby 2.
def ri(*names)
system(%{ri #{names.map { |name| name.to_s }.join(" ")}})
end