source: extensions/gsdl-video/trunk/installed/cmdline/lib/ruby/1.8/irb/init.rb@ 18425

Last change on this file since 18425 was 18425, checked in by davidb, 15 years ago

Video extension to Greenstone

File size: 5.8 KB
Line 
1#
2# irb/init.rb - irb initialize module
3# $Release Version: 0.9.5$
4# $Revision: 11708 $
5# $Date: 2007-02-13 08:01:19 +0900 (Tue, 13 Feb 2007) $
6# by Keiju ISHITSUKA([email protected])
7#
8# --
9#
10#
11#
12
13module IRB
14
15 # initialize config
16 def IRB.setup(ap_path)
17 IRB.init_config(ap_path)
18 IRB.init_error
19 IRB.parse_opts
20 IRB.run_config
21 IRB.load_modules
22
23 unless @CONF[:PROMPT][@CONF[:PROMPT_MODE]]
24 IRB.fail(UndefinedPromptMode, @CONF[:PROMPT_MODE])
25 end
26 end
27
28 # @CONF default setting
29 def IRB.init_config(ap_path)
30 # class instance variables
31 @TRACER_INITIALIZED = false
32
33 # default configurations
34 unless ap_path and @CONF[:AP_NAME]
35 ap_path = File.join(File.dirname(File.dirname(__FILE__)), "irb.rb")
36 end
37 @CONF[:AP_NAME] = File::basename(ap_path, ".rb")
38
39 @CONF[:IRB_NAME] = "irb"
40 @CONF[:IRB_LIB_PATH] = File.dirname(__FILE__)
41
42 @CONF[:RC] = true
43 @CONF[:LOAD_MODULES] = []
44 @CONF[:IRB_RC] = nil
45
46 @CONF[:MATH_MODE] = false
47 @CONF[:USE_READLINE] = false unless defined?(ReadlineInputMethod)
48 @CONF[:INSPECT_MODE] = nil
49 @CONF[:USE_TRACER] = false
50 @CONF[:USE_LOADER] = false
51 @CONF[:IGNORE_SIGINT] = true
52 @CONF[:IGNORE_EOF] = false
53 @CONF[:ECHO] = nil
54 @CONF[:VERBOSE] = nil
55
56 @CONF[:EVAL_HISTORY] = nil
57 @CONF[:SAVE_HISTORY] = nil
58
59 @CONF[:BACK_TRACE_LIMIT] = 16
60
61 @CONF[:PROMPT] = {
62 :NULL => {
63 :PROMPT_I => nil,
64 :PROMPT_N => nil,
65 :PROMPT_S => nil,
66 :PROMPT_C => nil,
67 :RETURN => "%s\n"
68 },
69 :DEFAULT => {
70 :PROMPT_I => "%N(%m):%03n:%i> ",
71 :PROMPT_N => "%N(%m):%03n:%i> ",
72 :PROMPT_S => "%N(%m):%03n:%i%l ",
73 :PROMPT_C => "%N(%m):%03n:%i* ",
74 :RETURN => "=> %s\n"
75 },
76 :CLASSIC => {
77 :PROMPT_I => "%N(%m):%03n:%i> ",
78 :PROMPT_N => "%N(%m):%03n:%i> ",
79 :PROMPT_S => "%N(%m):%03n:%i%l ",
80 :PROMPT_C => "%N(%m):%03n:%i* ",
81 :RETURN => "%s\n"
82 },
83 :SIMPLE => {
84 :PROMPT_I => ">> ",
85 :PROMPT_N => ">> ",
86 :PROMPT_S => nil,
87 :PROMPT_C => "?> ",
88 :RETURN => "=> %s\n"
89 },
90 :INF_RUBY => {
91 :PROMPT_I => "%N(%m):%03n:%i> ",
92# :PROMPT_N => "%N(%m):%03n:%i> ",
93 :PROMPT_N => nil,
94 :PROMPT_S => nil,
95 :PROMPT_C => nil,
96 :RETURN => "%s\n",
97 :AUTO_INDENT => true
98 },
99 :XMP => {
100 :PROMPT_I => nil,
101 :PROMPT_N => nil,
102 :PROMPT_S => nil,
103 :PROMPT_C => nil,
104 :RETURN => " ==>%s\n"
105 }
106 }
107
108 @CONF[:PROMPT_MODE] = (STDIN.tty? ? :DEFAULT : :NULL)
109 @CONF[:AUTO_INDENT] = false
110
111 @CONF[:CONTEXT_MODE] = 3 # use binding in function on TOPLEVEL_BINDING
112 @CONF[:SINGLE_IRB] = false
113
114# @CONF[:LC_MESSAGES] = "en"
115 @CONF[:LC_MESSAGES] = Locale.new
116
117 @CONF[:DEBUG_LEVEL] = 1
118 end
119
120 def IRB.init_error
121 @CONF[:LC_MESSAGES].load("irb/error.rb")
122 end
123
124 FEATURE_IOPT_CHANGE_VERSION = "1.9.0"
125
126 # option analyzing
127 def IRB.parse_opts
128 load_path = []
129 while opt = ARGV.shift
130 case opt
131 when "-f"
132 @CONF[:RC] = false
133 when "-m"
134 @CONF[:MATH_MODE] = true
135 when "-d"
136 $DEBUG = true
137 when /^-r(.+)?/
138 opt = $1 || ARGV.shift
139 @CONF[:LOAD_MODULES].push opt if opt
140 when /^-I(.+)?/
141 opt = $1 || ARGV.shift
142 load_path.concat(opt.split(File::PATH_SEPARATOR)) if opt
143 when /^-K(.)/
144 $KCODE = $1
145 when "--inspect"
146 @CONF[:INSPECT_MODE] = true
147 when "--noinspect"
148 @CONF[:INSPECT_MODE] = false
149 when "--readline"
150 @CONF[:USE_READLINE] = true
151 when "--noreadline"
152 @CONF[:USE_READLINE] = false
153 when "--echo"
154 @CONF[:ECHO] = true
155 when "--noecho"
156 @CONF[:ECHO] = false
157 when "--verbose"
158 @CONF[:VERBOSE] = true
159 when "--noverbose"
160 @CONF[:VERBOSE] = false
161 when "--prompt-mode", "--prompt"
162 prompt_mode = ARGV.shift.upcase.tr("-", "_").intern
163 @CONF[:PROMPT_MODE] = prompt_mode
164 when "--noprompt"
165 @CONF[:PROMPT_MODE] = :NULL
166 when "--inf-ruby-mode"
167 @CONF[:PROMPT_MODE] = :INF_RUBY
168 when "--sample-book-mode", "--simple-prompt"
169 @CONF[:PROMPT_MODE] = :SIMPLE
170 when "--tracer"
171 @CONF[:USE_TRACER] = true
172 when "--back-trace-limit"
173 @CONF[:BACK_TRACE_LIMIT] = ARGV.shift.to_i
174 when "--context-mode"
175 @CONF[:CONTEXT_MODE] = ARGV.shift.to_i
176 when "--single-irb"
177 @CONF[:SINGLE_IRB] = true
178 when "--irb_debug"
179 @CONF[:DEBUG_LEVEL] = ARGV.shift.to_i
180 when "-v", "--version"
181 print IRB.version, "\n"
182 exit 0
183 when "-h", "--help"
184 require "irb/help"
185 IRB.print_usage
186 exit 0
187 when /^-/
188 IRB.fail UnrecognizedSwitch, opt
189 else
190 @CONF[:SCRIPT] = opt
191 $0 = opt
192 break
193 end
194 end
195 if RUBY_VERSION >= FEATURE_IOPT_CHANGE_VERSION
196 load_path.collect! do |path|
197 /\A\.\// =~ path ? path : File.expand_path(path)
198 end
199 end
200 $LOAD_PATH.unshift(*load_path)
201 end
202
203 # running config
204 def IRB.run_config
205 if @CONF[:RC]
206 begin
207 load rc_file
208 rescue LoadError, Errno::ENOENT
209 rescue
210 print "load error: #{rc_file}\n"
211 print $!.class, ": ", $!, "\n"
212 for err in $@[0, [email protected] - 2]
213 print "\t", err, "\n"
214 end
215 end
216 end
217 end
218
219 IRBRC_EXT = "rc"
220 def IRB.rc_file(ext = IRBRC_EXT)
221 if !@CONF[:RC_NAME_GENERATOR]
222 rc_file_generators do |rcgen|
223 @CONF[:RC_NAME_GENERATOR] ||= rcgen
224 if File.exist?(rcgen.call(IRBRC_EXT))
225 @CONF[:RC_NAME_GENERATOR] = rcgen
226 break
227 end
228 end
229 end
230 @CONF[:RC_NAME_GENERATOR].call ext
231 end
232
233 # enumerate possible rc-file base name generators
234 def IRB.rc_file_generators
235 if irbrc = ENV["IRBRC"]
236 yield proc{|rc| rc == "rc" ? irbrc : irbrc+rc}
237 end
238 if home = ENV["HOME"]
239 yield proc{|rc| home+"/.irb#{rc}"}
240 end
241 home = Dir.pwd
242 yield proc{|rc| home+"/.irb#{rc}"}
243 yield proc{|rc| home+"/irb#{rc.sub(/\A_?/, '.')}"}
244 yield proc{|rc| home+"/_irb#{rc}"}
245 yield proc{|rc| home+"/$irb#{rc}"}
246 end
247
248 # loading modules
249 def IRB.load_modules
250 for m in @CONF[:LOAD_MODULES]
251 begin
252 require m
253 rescue
254 print $@[0], ":", $!.class, ": ", $!, "\n"
255 end
256 end
257 end
258
259end
Note: See TracBrowser for help on using the repository browser.