| Class | Bio::Shell::Irb |
| In: |
lib/bio/shell/irb.rb
|
| Parent: | Object |
# File lib/bio/shell/irb.rb, line 15
15: def initialize
16: require 'irb'
17: begin
18: require 'irb/completion'
19: Bio::Shell.cache[:readline] = true
20: rescue LoadError
21: Bio::Shell.cache[:readline] = false
22: end
23: IRB.setup(nil)
24: setup_irb
25: start_irb
26: end
# File lib/bio/shell/irb.rb, line 58
58: def setup_irbsetup_irb
59: # set application name
60: IRB.conf[:AP_NAME] = 'bioruby'
61:
62: # change prompt for bioruby
63: $_ = Bio::Shell.colors
64: IRB.conf[:PROMPT][:BIORUBY_COLOR] = {
65: :PROMPT_I => "bio#{$_[:ruby]}ruby#{$_[:none]}> ",
66: :PROMPT_S => "bio#{$_[:ruby]}ruby#{$_[:none]}%l ",
67: :PROMPT_C => "bio#{$_[:ruby]}ruby#{$_[:none]}+ ",
68: :RETURN => " ==> %s\n"
69: }
70: IRB.conf[:PROMPT][:BIORUBY] = {
71: :PROMPT_I => "bioruby> ",
72: :PROMPT_S => "bioruby%l ",
73: :PROMPT_C => "bioruby+ ",
74: :RETURN => " ==> %s\n"
75: }
76: if Bio::Shell.config[:color]
77: IRB.conf[:PROMPT_MODE] = :BIORUBY_COLOR
78: else
79: IRB.conf[:PROMPT_MODE] = :BIORUBY
80: end
81:
82: # echo mode (uncomment to off by default)
83: #IRB.conf[:ECHO] = Bio::Shell.config[:echo] || false
84:
85: # irb/input-method.rb >= v1.5 (not in 1.8.2)
86: #IRB.conf[:SAVE_HISTORY] = 100000
87:
88: # not nicely works
89: #IRB.conf[:AUTO_INDENT] = true
90: end
# File lib/bio/shell/irb.rb, line 28
28: def start_irb
29: Bio::Shell.cache[:irb] = IRB::Irb.new
30:
31: # needed for method completion
32: IRB.conf[:MAIN_CONTEXT] = Bio::Shell.cache[:irb].context
33:
34: # store binding for evaluation
35: Bio::Shell.cache[:binding] = IRB.conf[:MAIN_CONTEXT].workspace.binding
36:
37: # overwrite gets to store history with time stamp
38: io = IRB.conf[:MAIN_CONTEXT].io
39: io.class.class_eval do
40: alias_method :irb_original_gets, :gets
41: end
42:
43: def io.gets
44: line = irb_original_gets
45: if line
46: Bio::Shell.store_history(line)
47: end
48: return line
49: end
50:
51: if File.exists?("./config/boot.rb")
52: require "./config/boot"
53: require "./config/environment"
54: #require 'commands/console'
55: end
56: end