Methods
- #
- C
- D
- E
- F
- H
- I
- M
- N
- P
- S
- T
- U
- V
- W
Constants
NOPRINTING_IVARS | = | ["@last_value"] |
NO_INSPECTING_IVARS | = | ["@irb", "@io"] |
IDNAME_IVARS | = | ["@prompt_mode"] |
Attributes
[RW] | ap_name | |
[RW] | auto_indent_mode | |
[RW] | back_trace_limit | |
[R] | debug_level | |
[RW] | echo | |
[RW] | echo? | |
[R] | eval_history | |
[RW] | ignore_eof | |
[RW] | ignore_eof? | |
[RW] | ignore_sigint | |
[RW] | ignore_sigint? | |
[R] | inspect_mode | |
[RW] | io | |
[RW] | irb | |
[RW] | irb_name | |
[RW] | irb_path | |
[R] | last_value | |
[RW] | load_modules | |
[R] | math? | |
[R] | math_mode | |
[RW] | prompt_c | |
[RW] | prompt_i | |
[R] | prompt_mode | |
[RW] | prompt_n | |
[RW] | prompt_s | |
[RW] | rc | |
[RW] | rc? | |
[RW] | return_format | |
[R] | thread | |
[R] | use_readline | |
[R] | use_readline? | |
[R] | use_tracer | |
[R] | use_tracer? | |
[RW] | verbose | |
[RW] | workspace | |
[R] | workspace_home |
Class Public methods
new(irb, workspace = nil, input_method = nil, output_method = nil)
Link
Arguments:
input_method: nil -- stdin or readline
String -- File
other -- using this as InputMethod
# File ../ruby/lib/irb/context.rb, line 22 def initialize(irb, workspace = nil, input_method = nil, output_method = nil) @irb = irb if workspace @workspace = workspace else @workspace = WorkSpace.new end @thread = Thread.current if defined? Thread # @irb_level = 0 # copy of default configuration @ap_name = IRB.conf[:AP_NAME] @rc = IRB.conf[:RC] @load_modules = IRB.conf[:LOAD_MODULES] @use_readline = IRB.conf[:USE_READLINE] @verbose = IRB.conf[:VERBOSE] @io = nil self.inspect_mode = IRB.conf[:INSPECT_MODE] self.math_mode = IRB.conf[:MATH_MODE] if IRB.conf[:MATH_MODE] self.use_tracer = IRB.conf[:USE_TRACER] if IRB.conf[:USE_TRACER] self.use_loader = IRB.conf[:USE_LOADER] if IRB.conf[:USE_LOADER] self.eval_history = IRB.conf[:EVAL_HISTORY] if IRB.conf[:EVAL_HISTORY] @ignore_sigint = IRB.conf[:IGNORE_SIGINT] @ignore_eof = IRB.conf[:IGNORE_EOF] @back_trace_limit = IRB.conf[:BACK_TRACE_LIMIT] self.prompt_mode = IRB.conf[:PROMPT_MODE] if IRB.conf[:SINGLE_IRB] or !defined?(JobManager) @irb_name = IRB.conf[:IRB_NAME] else @irb_name = "irb#"+IRB.JobManager.n_jobs.to_s end @irb_path = "(" + @irb_name + ")" case input_method when nil case use_readline? when nil if (defined?(ReadlineInputMethod) && STDIN.tty? && IRB.conf[:PROMPT_MODE] != :INF_RUBY) @io = ReadlineInputMethod.new else @io = StdioInputMethod.new end when false @io = StdioInputMethod.new when true if defined?(ReadlineInputMethod) @io = ReadlineInputMethod.new else @io = StdioInputMethod.new end end when String @io = FileInputMethod.new(input_method) @irb_name = File.basename(input_method) @irb_path = input_method else @io = input_method end self.save_history = IRB.conf[:SAVE_HISTORY] if IRB.conf[:SAVE_HISTORY] if output_method @output_method = output_method else @output_method = StdioOutputMethod.new end @echo = IRB.conf[:ECHO] if @echo.nil? @echo = true end @debug_level = IRB.conf[:DEBUG_LEVEL] end
Instance Public methods
change_workspace(*_main)
Link
# File ../ruby/lib/irb/ext/change-ws.rb, line 23 def change_workspace(*_main) if _main.empty? @workspace = home_workspace return main end @workspace = WorkSpace.new(_main[0]) if !(class<<main;ancestors;end).include?(ExtendCommandBundle) main.extend ExtendCommandBundle end end
debug?()
Link
debug_level=(value)
Link
eval_history=(no)
Link
# File ../ruby/lib/irb/ext/history.rb, line 33 def eval_history=(no) if no if defined?(@eval_history) && @eval_history @eval_history_values.size(no) else @eval_history_values = History.new(no) IRB.conf[:__TMP__EHV__] = @eval_history_values @workspace.evaluate(self, "__ = IRB.conf[:__TMP__EHV__]") IRB.conf.delete(:__TMP_EHV__) end else @eval_history_values = nil end @eval_history = no end
evaluate(line, line_no)
Link
file_input?()
Link
history_file()
Link
history_file=(hist)
Link
home_workspace()
Link
init_save_history()
Link
inspect()
Link
Also aliased as: __inspect__, to_s
# File ../ruby/lib/irb/context.rb, line 273 def inspect array = [] for ivar in instance_variables.sort{|e1, e2| e1 <=> e2} ivar = ivar.to_s name = ivar.sub(/^@(.*)$/, '\1') val = instance_eval(ivar) case ivar when *NOPRINTING_IVARS array.push format("conf.%s=%s", name, "...") when *NO_INSPECTING_IVARS array.push format("conf.%s=%s", name, val.to_s) when *IDNAME_IVARS array.push format("conf.%s=:%s", name, val.id2name) else array.push format("conf.%s=%s", name, val.inspect) end end array.join("\n") end
inspect?()
Link
inspect_last_value()
Link
inspect_mode=(opt)
Link
# File ../ruby/lib/irb/context.rb, line 193 def inspect_mode=(opt) if i = INSPECTORS[opt] @inspect_mode = opt @inspect_method = i i.init else case opt when nil if INSPECTORS.keys_with_inspector(INSPECTORS[true]).include?(@inspect_mode) self.inspect_mode = false elsif INSPECTORS.keys_with_inspector(INSPECTORS[false]).include?(@inspect_mode) self.inspect_mode = true else puts "Can't switch inspect mode." return end when /^\s*\{.*\}\s*$/ begin inspector = eval "proc#{opt}" rescue Exception puts "Can't switch inspect mode(#{opt})." return end self.inspect_mode = inspector when Proc self.inspect_mode = IRB::Inspector(opt) when Inspector prefix = "usr%d" i = 1 while INSPECTORS[format(prefix, i)]; i += 1; end @inspect_mode = format(prefix, i) @inspect_method = opt INSPECTORS.def_inspector(format(prefix, i), @inspect_method) else puts "Can't switch inspect mode(#{opt})." return end end print "Switch to#{unless @inspect_mode; ' non';end} inspect mode.\n" if verbose? @inspect_mode end
irb_level()
Link
main()
Link
math_mode=(opt)
Link
pop_workspace()
Link
prompt_mode=(mode)
Link
# File ../ruby/lib/irb/context.rb, line 170 def prompt_mode=(mode) @prompt_mode = mode pconf = IRB.conf[:PROMPT][mode] @prompt_i = pconf[:PROMPT_I] @prompt_s = pconf[:PROMPT_S] @prompt_c = pconf[:PROMPT_C] @prompt_n = pconf[:PROMPT_N] @return_format = pconf[:RETURN] if ai = pconf.include?(:AUTO_INDENT) @auto_indent_mode = ai else @auto_indent_mode = IRB.conf[:AUTO_INDENT] end end
prompting?()
Link
push_workspace(*_main)
Link
# File ../ruby/lib/irb/ext/workspaces.rb, line 27 def push_workspace(*_main) if _main.empty? if workspaces.empty? print "No other workspace\n" return nil end ws = workspaces.pop workspaces.push @workspace @workspace = ws return workspaces end workspaces.push @workspace @workspace = WorkSpace.new(@workspace.binding, _main[0]) if !(class<<main;ancestors;end).include?(ExtendCommandBundle) main.extend ExtendCommandBundle end end
save_history()
Link
save_history=(val)
Link
use_loader=(opt)
Link
# File ../ruby/lib/irb/ext/use-loader.rb, line 40 def use_loader=(opt) if IRB.conf[:USE_LOADER] != opt IRB.conf[:USE_LOADER] = opt if opt if !$".include?("irb/cmd/load") end (class<<@workspace.main;self;end).instance_eval { alias_method :load, :irb_load alias_method :require, :irb_require } else (class<<@workspace.main;self;end).instance_eval { alias_method :load, :__original__load__IRB_use_loader__ alias_method :require, :__original__require__IRB_use_loader__ } end end print "Switch to load/require#{unless use_loader; ' non';end} trace mode.\n" if verbose? opt end
use_readline=(opt)
Link
use_tracer=(opt)
Link
verbose?()
Link