Class: IRB::Context
| Relationships & Source Files | |
| Inherits: | Object |
| Defined in: | lib/irb/context.rb, lib/irb/ext/change-ws.rb, lib/irb/ext/history.rb, lib/irb/ext/save-history.rb, lib/irb/ext/tracer.rb, lib/irb/ext/use-loader.rb, lib/irb/ext/workspaces.rb |
Overview
A class that wraps the current state of the irb session, including the configuration of conf.
Constant Summary
-
IDNAME_IVARS =
Internal use only
# File 'lib/irb/context.rb', line 395["@prompt_mode"] -
NOPRINTING_IVARS =
Internal use only
# File 'lib/irb/context.rb', line 393["@last_value"] -
NO_INSPECTING_IVARS =
Internal use only
# File 'lib/irb/context.rb', line 394["@irb", "@io"]
Class Method Summary
-
.new(irb, workspace = nil, input_method = nil, output_method = nil) ⇒ Context
constructor
Creates a new ::IRB context.
Instance Attribute Summary
-
#ap_name
rw
A copy of the default
IRB.conf[:AP_NAME]. -
#auto_indent_mode
rw
Can be either the default
IRB.conf[:AUTO_INDENT], or the mode set by #prompt_mode= -
#back_trace_limit
rw
The limit of backtrace lines displayed as top
nand tailn. -
#debug? ⇒ Boolean
readonly
Whether or not debug mode is enabled, see #debug_level=.
-
#debug_level
rw
The debug level of irb.
-
#debug_level=(value)
rw
Sets the debug level of irb.
-
#echo?
rw
Alias for #echo.
-
#eval_history
rw
The command result history limit.
-
#eval_history=(no)
rw
Sets command result history limit.
- #file_input? ⇒ Boolean readonly
-
#history_file
rw
A copy of the default
IRB.conf[:HISTORY_FILE]. -
#history_file=(hist)
rw
Set
IRB.conf[:HISTORY_FILE]to the givenhist. -
#ignore_eof?
rw
Alias for #ignore_eof.
-
#ignore_sigint?
rw
Alias for #ignore_sigint.
-
#inspect? ⇒ Boolean
readonly
Whether #inspect_mode is set or not, see #inspect_mode= for more detail.
-
#inspect_mode
rw
A copy of the default
IRB.conf[:INSPECT_MODE]. -
#inspect_mode=(opt)
rw
Specifies the inspect mode with
opt: -
#io
rw
The current input method.
-
#irb
rw
Current irb session.
-
#irb_name
rw
Can be either name from
IRB.conf[:IRB_NAME], or the number of the current job set by JobManager, such asirb#2. - #irb_path rw
-
#last_value
readonly
The return value of the last statement evaluated.
-
#load_modules
rw
A copy of the default
IRB.conf[:LOAD_MODULES]. -
#prompt_c
rw
::IRB prompt for continuated statement (e.g. immediately after an
if). -
#prompt_i
rw
Standard IRB prompt.
-
#prompt_mode
rw
A copy of the default
IRB.conf[:PROMPT_MODE]. -
#prompt_mode=(mode)
rw
Sets the
modeof the prompt in this context. -
#prompt_n
rw
See IRB@Customizing+the+IRB+Prompt for more information.
-
#prompt_s
rw
::IRB prompt for continuated strings.
-
#prompting? ⇒ Boolean
readonly
Whether #verbose? is
true, andinput_methodis either StdioInputMethod or ReadlineInputMethod, see #io for more information. -
#rc?
rw
Alias for #rc.
-
#return_format
rw
The format of the return statement, set by #prompt_mode= using the
:RETURNof themodepassed to set the current #prompt_mode. -
#save_history
rw
A copy of the default
IRB.conf[:SAVE_HISTORY]. -
#save_history=(val)
rw
Sets
IRB.conf[:SAVE_HISTORY]to the givenvaland calls #init_save_history with this context. -
#thread
readonly
The current thread in this context.
-
#use_loader
(also: #use_loader?)
rw
Returns whether #irb's own file reader method is used by
load/requireor not. -
#use_loader=(opt)
rw
Sets IRB.conf.
-
#use_loader?
rw
Alias for #use_loader.
-
#use_readline=(opt)
rw
Obsolete method.
-
#use_readline?
rw
Alias for #use_readline.
-
#use_tracer=(opt)
rw
Sets whether or not to use the Tracer library when evaluating statements in this context.
-
#use_tracer?
rw
Alias for #use_tracer.
-
#verbose
rw
Whether verbose messages are displayed or not.
-
#verbose? ⇒ Boolean
rw
Returns whether messages are displayed or not.
-
#workspace
rw
WorkSpace in the current context.
-
#workspace_home
readonly
The toplevel workspace, see #home_workspace
Instance Method Summary
- #__exit__
- #__inspect__
- #__to_s__
-
#_set_last_value(value)
Alias for #set_last_value.
-
#change_workspace(*_main)
Changes the current workspace to given object or binding.
-
#echo
(also: #echo?)
rw
Whether to echo the return value to output or not.
-
#exit(ret = 0)
Exits the current session, see irb_exit
-
#home_workspace
Inherited from
TOPLEVEL_BINDING. -
#ignore_eof
(also: #ignore_eof?)
rw
Whether
^D(control-d) will be ignored or not. -
#ignore_sigint
(also: #ignore_sigint?)
rw
Whether
^C(control-c) will be ignored or not. -
#irb_level
Size of the current WorkSpace stack.
-
#main
The top-level workspace, see WorkSpace#main
-
#pop_workspace
Removes the last element from the current #workspaces stack and returns it, or
nilif the current workspace stack is empty. -
#push_workspace(*_main)
Creates a new workspace with the given object or binding, and appends it onto the current #workspaces stack.
-
#rc
(also: #rc?)
rw
A copy of the default
IRB.conf[:RC]. -
#set_last_value(value)
(also: #_set_last_value)
Sets the return value from the last statement evaluated in this context to #last_value.
-
#to_s
Alias for #inspect.
-
#use_readline
(also: #use_readline?)
rw
Whether
Readlineis enabled or not. -
#use_tracer
(also: #use_tracer?)
rw
Whether Tracer is used when evaluating statements in this context.
-
#workspaces
WorkSpaces in the current stack.
- #evaluate(line, line_no) Internal use only
- #init_save_history Internal use only
- #inspect (also: #to_s) readonly Internal use only
- #inspect_last_value Internal use only
Constructor Details
.new(irb, workspace = nil, input_method = nil, output_method = nil) ⇒ Context
Creates a new ::IRB context.
The optional input_method argument:
nil-
uses stdin or Readline
String-
uses a File
other-
uses this as InputMethod
# File 'lib/irb/context.rb', line 27
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
# 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.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?(IRB::JobManager)
@irb_name = IRB.conf[:IRB_NAME]
else
@irb_name = IRB.conf[:IRB_NAME]"#"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
self.debug_level = IRB.conf[:DEBUG_LEVEL]
end
Instance Attribute Details
#ap_name (rw)
A copy of the default IRB.conf[:AP_NAME]
# File 'lib/irb/context.rb', line 127
attr_accessor :ap_name
#auto_indent_mode (rw)
Can be either the default IRB.conf[:AUTO_INDENT], or the mode set by #prompt_mode=
To enable auto-indentation in irb:
IRB.conf[:AUTO_INDENT] = true
or
irb_context.auto_indent_mode = true
or
IRB.CurrentContext.auto_indent_mode = true
See IRB@Configuration for more information.
# File 'lib/irb/context.rb', line 180
attr_accessor :auto_indent_mode
#back_trace_limit (rw)
The limit of backtrace lines displayed as top n and tail n.
The default value is 16.
Can also be set using the --back-trace-limit command line option.
See IRB@Command+line+options for more command line options.
# File 'lib/irb/context.rb', line 225
attr_accessor :back_trace_limit
#debug? ⇒ Boolean (readonly)
Whether or not debug mode is enabled, see #debug_level=.
# File 'lib/irb/context.rb', line 374
def debug? @debug_level > 0 end
#debug_level (rw)
The debug level of irb
See #debug_level= for more information.
# File 'lib/irb/context.rb', line 216
attr_reader :debug_level
#debug_level=(value) (rw)
Sets the debug level of irb
Can also be set using the --irb_debug command line option.
See IRB@Command+line+options for more command line options.
# File 'lib/irb/context.rb', line 368
def debug_level=(value) @debug_level = value RubyLex.debug_level = value end
#echo? (rw)
Alias for #echo.
# File 'lib/irb/context.rb', line 233
alias echo? echo
#eval_history (rw)
The command result history limit.
# File 'lib/irb/ext/history.rb', line 34
attr_reader :eval_history
#eval_history=(no) (rw)
Sets command result history limit.
no is an Integer or nil.
Returns no of history items if greater than 0.
If no is 0, the number of history items is unlimited.
If no is nil, execution result history isn't used (default).
# File 'lib/irb/ext/history.rb', line 44
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
#file_input? ⇒ Boolean (readonly)
[ GitHub ]
# File 'lib/irb/context.rb', line 292
def file_input? @io.class == FileInputMethod end
#history_file (rw)
A copy of the default IRB.conf[:HISTORY_FILE]
#history_file=(hist) (rw)
Set IRB.conf[:HISTORY_FILE] to the given hist.
#ignore_eof? (rw)
Alias for #ignore_eof.
# File 'lib/irb/context.rb', line 232
alias ignore_eof? ignore_eof
#ignore_sigint? (rw)
Alias for #ignore_sigint.
# File 'lib/irb/context.rb', line 231
alias ignore_sigint? ignore_sigint
#inspect? ⇒ Boolean (readonly)
Whether #inspect_mode is set or not, see #inspect_mode= for more detail.
# File 'lib/irb/context.rb', line 286
def inspect? @inspect_mode.nil? or @inspect_mode end
#inspect_mode (rw)
A copy of the default IRB.conf[:INSPECT_MODE]
# File 'lib/irb/context.rb', line 146
attr_reader :inspect_mode
#inspect_mode=(opt) (rw)
Specifies the inspect mode with opt:
true-
display #inspect
false-
display #to_s
nil-
inspect mode in non-math mode, non-inspect mode in math mode
See Inspector for more information.
Can also be set using the --inspect and --noinspect command line options.
See IRB@Command+line+options for more command line options.
# File 'lib/irb/context.rb', line 309
def inspect_mode=(opt) if i = Inspector::INSPECTORS[opt] @inspect_mode = opt @inspect_method = i i.init else case opt when nil if Inspector.keys_with_inspector(Inspector::INSPECTORS[true]).include?(@inspect_mode) self.inspect_mode = false elsif Inspector.keys_with_inspector(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 Inspector::INSPECTORS[format(prefix, i)]; i += 1; end @inspect_mode = format(prefix, i) @inspect_method = opt Inspector.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
#io (rw)
The current input method
Can be either StdioInputMethod, ReadlineInputMethod, FileInputMethod or other specified when the context is created. See .new for more information on input_method.
# File 'lib/irb/context.rb', line 122
attr_accessor :io
#irb (rw)
Current irb session
# File 'lib/irb/context.rb', line 125
attr_accessor :irb
#irb_name (rw)
Can be either name from IRB.conf[:IRB_NAME], or the number of the current job set by JobManager, such as irb#2
# File 'lib/irb/context.rb', line 134
attr_accessor :irb_name
#irb_path (rw)
[ GitHub ]# File 'lib/irb/context.rb', line 137
attr_accessor :irb_path
#last_value (readonly)
The return value of the last statement evaluated.
# File 'lib/irb/context.rb', line 258
attr_reader :last_value
#load_modules (rw)
A copy of the default IRB.conf[:LOAD_MODULES]
# File 'lib/irb/context.rb', line 131
attr_accessor :load_modules
#prompt_c (rw)
::IRB prompt for continuated statement (e.g. immediately after an if)
See IRB@Customizing+the+IRB+Prompt for more information.
# File 'lib/irb/context.rb', line 161
attr_accessor :prompt_c
#prompt_i (rw)
Standard IRB prompt
See IRB@Customizing+the+IRB+Prompt for more information.
# File 'lib/irb/context.rb', line 153
attr_accessor :prompt_i
#prompt_mode (rw)
A copy of the default IRB.conf[:PROMPT_MODE]
# File 'lib/irb/context.rb', line 149
attr_reader :prompt_mode
#prompt_mode=(mode) (rw)
Sets the mode of the prompt in this context.
See IRB@Customizing+the+IRB+Prompt for more information.
# File 'lib/irb/context.rb', line 270
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
#prompt_n (rw)
See IRB@Customizing+the+IRB+Prompt for more information.
# File 'lib/irb/context.rb', line 163
attr_accessor :prompt_n
#prompt_s (rw)
::IRB prompt for continuated strings
See IRB@Customizing+the+IRB+Prompt for more information.
# File 'lib/irb/context.rb', line 157
attr_accessor :prompt_s
#prompting? ⇒ Boolean (readonly)
Whether #verbose? is true, and input_method is either StdioInputMethod or ReadlineInputMethod, see #io for more information.
# File 'lib/irb/context.rb', line 252
def prompting? verbose? || (STDIN.tty? && @io.kind_of?(StdioInputMethod) || (defined?(ReadlineInputMethod) && @io.kind_of?(ReadlineInputMethod))) end
#rc? (rw)
Alias for #rc.
# File 'lib/irb/context.rb', line 230
alias rc? rc
#return_format (rw)
The format of the return statement, set by #prompt_mode= using the :RETURN of the mode passed to set the current #prompt_mode.
# File 'lib/irb/context.rb', line 183
attr_accessor :return_format
#save_history (rw)
A copy of the default IRB.conf[:SAVE_HISTORY]
#save_history=(val) (rw)
Sets IRB.conf[:SAVE_HISTORY] to the given val and calls #init_save_history with this context.
Will store the number of val entries of history in the #history_file
Add the following to your .irbrc to change the number of history entries stored to 1000:
IRB.conf[:SAVE_HISTORY] = 1000
# File 'lib/irb/ext/save-history.rb', line 40
def save_history=(val) IRB.conf[:SAVE_HISTORY] = val if val main_context = IRB.conf[:MAIN_CONTEXT] main_context = self unless main_context main_context.init_save_history end end
#thread (readonly)
The current thread in this context
# File 'lib/irb/context.rb', line 116
attr_reader :thread
#use_loader (rw) Also known as: #use_loader?
Returns whether #irb's own file reader method is used by load/require or not.
This mode is globally affected (irb-wide).
#use_loader=(opt) (rw)
Sets IRB.conf
See #use_loader for more information.
# File 'lib/irb/ext/use-loader.rb', line 50
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_loader? (rw)
Alias for #use_loader.
# File 'lib/irb/ext/use-loader.rb', line 45
alias use_loader? use_loader
#use_readline=(opt) (rw)
Obsolete method.
Can be set using the --noreadline and --readline command line options.
See IRB@Command+line+options for more command line options.
# File 'lib/irb/context.rb', line 358
def use_readline=(opt) print "This method is obsolete." print "Do nothing." end
#use_readline? (rw)
Alias for #use_readline.
# File 'lib/irb/context.rb', line 228
alias use_readline? use_readline
#use_tracer=(opt) (rw)
Sets whether or not to use the Tracer library when evaluating statements in this context.
See lib/tracer.rb for more information.
# File 'lib/irb/ext/tracer.rb', line 37
def use_tracer=(opt) if opt Tracer.set_get_line_procs(@irb_path) { |line_no, *rests| @io.line(line_no) } elsif !opt && @use_tracer Tracer.off end @use_tracer=opt end
#use_tracer? (rw)
Alias for #use_tracer.
# File 'lib/irb/ext/tracer.rb', line 31
alias use_tracer? use_tracer
#verbose (rw)
Whether verbose messages are displayed or not.
A copy of the default IRB.conf[:VERBOSE]
# File 'lib/irb/context.rb', line 212
attr_accessor :verbose
#verbose? ⇒ Boolean (rw)
Returns whether messages are displayed or not.
# File 'lib/irb/context.rb', line 236
def verbose? if @verbose.nil? if defined?(ReadlineInputMethod) && @io.kind_of?(ReadlineInputMethod) false elsif !STDIN.tty? or @io.kind_of?(FileInputMethod) true else false end else @verbose end end
#workspace (rw)
WorkSpace in the current context
# File 'lib/irb/context.rb', line 114
attr_accessor :workspace
#workspace_home (readonly)
The toplevel workspace, see #home_workspace
# File 'lib/irb/context.rb', line 112
attr_reader :workspace_home
Instance Method Details
#__exit__
[ GitHub ]# File 'lib/irb/context.rb', line 387
alias __exit__ exit
#__inspect__
[ GitHub ]# File 'lib/irb/context.rb', line 397
alias __inspect__ inspect
#__to_s__
[ GitHub ]# File 'lib/irb/context.rb', line 417
alias __to_s__ to_s
#_set_last_value(value)
Alias for #set_last_value.
# File 'lib/irb/ext/history.rb', line 20
alias _set_last_value set_last_value
#change_workspace(*_main)
Changes the current workspace to given object or binding.
If the optional argument is omitted, the workspace will be #home_workspace which is inherited from TOPLEVEL_BINDING or the main object, IRB.conf[:MAIN_CONTEXT] when irb was initialized.
See WorkSpace.new for more information.
# File 'lib/irb/ext/change-ws.rb', line 32
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
#echo (rw) Also known as: #echo?
Whether to echo the return value to output or not.
Uses IRB.conf if available, or defaults to true.
puts "hello"
# hello
#=> nil
IRB.CurrentContext.echo = false
puts "omg"
# omg
# File 'lib/irb/context.rb', line 208
attr_accessor :echo
#evaluate(line, line_no)
# File 'lib/irb/context.rb', line 378
def evaluate(line, line_no) # :nodoc: @line_no = line_no set_last_value(@workspace.evaluate(self, line, irb_path, line_no)) end
#exit(ret = 0)
Exits the current session, see IRB.irb_exit
#home_workspace
Inherited from TOPLEVEL_BINDING.
# File 'lib/irb/ext/change-ws.rb', line 17
def home_workspace if defined? @home_workspace @home_workspace else @home_workspace = @workspace end end
#ignore_eof (rw) Also known as: #ignore_eof?
Whether ^D (control-d) will be ignored or not.
If set to false, ^D will quit irb.
# File 'lib/irb/context.rb', line 197
attr_accessor :ignore_eof
#ignore_sigint (rw) Also known as: #ignore_sigint?
Whether ^C (control-c) will be ignored or not.
If set to false, ^C will quit irb.
If set to true,
-
during input: cancel input then return to top level.
-
during execute: abandon current execution.
# File 'lib/irb/context.rb', line 193
attr_accessor :ignore_sigint
#init_save_history
# File 'lib/irb/ext/save-history.rb', line 19
def init_save_history# :nodoc: unless (class<<@io;self;end).include?(HistorySavingAbility) @io.extend(HistorySavingAbility) end end
#inspect (readonly) Also known as: #to_s
# File 'lib/irb/context.rb', line 398
def inspect # :nodoc: 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_last_value
# File 'lib/irb/context.rb', line 383
def inspect_last_value # :nodoc: @inspect_method.inspect_value(@last_value) end
#irb_level
Size of the current WorkSpace stack
# File 'lib/irb/ext/workspaces.rb', line 17
def irb_level workspace_stack.size end
#main
The top-level workspace, see WorkSpace#main
# File 'lib/irb/context.rb', line 107
def main @workspace.main end
#pop_workspace
Removes the last element from the current #workspaces stack and returns it, or nil if the current workspace stack is empty.
Also, see #push_workspace.
# File 'lib/irb/ext/workspaces.rb', line 58
def pop_workspace if workspaces.empty? print "workspace stack empty\n" return end @workspace = workspaces.pop end
#push_workspace(*_main)
Creates a new workspace with the given object or binding, and appends it onto the current #workspaces stack.
See #change_workspace and WorkSpace.new for more information.
# File 'lib/irb/ext/workspaces.rb', line 35
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
#rc (rw) Also known as: #rc?
A copy of the default IRB.conf[:RC]
# File 'lib/irb/context.rb', line 129
attr_accessor :rc
#set_last_value(value) Also known as: #_set_last_value
Sets the return value from the last statement evaluated in this context to #last_value.
See additional method definition at file lib/irb/context.rb line 262.
# File 'lib/irb/ext/history.rb', line 22
def set_last_value(value) @last_value = value @workspace.evaluate self, "_ = IRB.CurrentContext.last_value" end
#to_s
Alias for #inspect.
# File 'lib/irb/context.rb', line 418
alias to_s inspect
#use_readline (rw) Also known as: #use_readline?
Whether Readline is enabled or not.
A copy of the default IRB.conf[:USE_READLINE]
See #use_readline= for more information.
# File 'lib/irb/context.rb', line 144
attr_reader :use_readline
#use_tracer (rw) Also known as: #use_tracer?
Whether Tracer is used when evaluating statements in this context.
See lib/tracer.rb for more information.
# File 'lib/irb/ext/tracer.rb', line 30
attr_reader :use_tracer
#workspaces
WorkSpaces in the current stack
# File 'lib/irb/ext/workspaces.rb', line 22
def workspaces if defined? @workspaces @workspaces else @workspaces = [] end end