| |||
Previous < | Contents ^ |
Next > |
irb
is run from the command line.
irb [ irb-options ] [ ruby_script ] [ options ] |
irb command-line options
|
~/.irbrc
, .irbrc
, irb.rc
, _irbrc
, and $irbrc
.
Within the initialization file you may run any arbitrary Ruby code. You can also set any of the configuration values that correspond to command-line arguments as shown in Table B.2 on page 518.
irb configuration values
|
IRB.conf[:IRB_RC]
to a Proc
object. This proc will be invoked whenever the irb context is changed, and will receive that new context as a parameter. You can use this facility to change the configuration dynamically based on the context.
exit, quit, irb_exit
cb
to change bindings (see below), exits from this binding mode.
conf, irb_context
conf
.
conf.back_trace_limit n
conf.debug_level = N
conf.ignore_eof = true/false
conf.ignore_sigint= true/false
conf.inf_ruby_mode = true/false
true
, changes the prompt and disables readline support, allowing irb to work with inf-ruby-mode
. [inf-ruby-mode
allows Emacs users to interact with Ruby while editing programs. See the file inf_ruby.el
in the misc
directory of the distribution for more details.] The default value is false.
conf.inspect_mode = true/false/nil
true |
Display inspect (default). |
false |
Display to_s. |
nil |
Inspect mode in non-math mode, non-inspect mode in math mode. |
conf.irb_level
cb
).
conf.math_mode
conf.use_loader = true/false
load
/require
.
conf.prompt_c
conf.prompt_i
conf.prompt_s
conf.rc = true/false
~/.irbrc
.
conf.use_prompt = true/false
conf.use_readline = true/false/nil
true |
Use Readline. |
false |
Do not use Readline. |
nil |
Use Readline except for inf-ruby-mode (default). |
conf.verbose=true/false
cb, irb_change_binding [ obj ]
irb [obj]
jobs, irb_jobs
fg n, irb_fg n
irb subsession number |
thread id |
irb object |
self (the obj that launched a particular subsession) |
kill n, irb_kill n
irb_fg
.
IRB.conf[:PROMPT] |
.irbrc
file):
IRB.conf[:PROMPT][:MY_PROMPT] = { # name of prompt mode :PROMPT_I => "...", # normal prompt :PROMPT_S => "...", # prompt for continuing strings :PROMPT_C => "...", # prompt for continuing statement :RETURN => " ==>%s\n" # format to return value } |
% irb --prompt my-prompt
Or set the following configuration value:
IRB.conf[:PROMPT_MODE] = :MY_PROMPT |
PROMPT_I
, PROMPT_S
, and PROMPT_C
specify the format for each of the prompt strings. Within the prompt format, the following flags are available and will expand to the given text:
Flag | Description | |||||||
%N |
Current command. | |||||||
%m |
to_s of the main object (self). | |||||||
%M |
inspect of the main object (self). | |||||||
%l |
Delimiter type. In strings that are continued across a line break, %l will display the type of delimiter used to begin the string, so you'll know how to end it. The delimiter will be one of " , ' , / , ] , or ` . | |||||||
%ni |
Indent level. The optional number n is used as a width specification to printf, as printf("%nd") . | |||||||
%nn |
Current line number (n used as with the indent level). | |||||||
%% |
A literal percent sign. | |||||||
IRB.conf[:PROMPT_MODE][:DEFAULT] = { :PROMPT_I => "%N(%m):%03n:%i> ", :PROMPT_S => "%N(%m):%03n:%i%l ", :PROMPT_C => "%N(%m):%03n:%i* ", :RETURN => "%s\n" } |
eval "a = 0" a |
prog.rb:2: undefined local variable or method `a' |
irb(main):001:0> eval "a = 0" 0 irb(main):002:0> a 0In irb, the assignment was executed before the second line was encountered, so ``a'' is correctly identified as a local variable. If you need to match the Ruby behavior more closely, you can place these statements within a
begin
/end
pair.
irb(main):001:0> begin irb(main):002:1* eval "a = 0" irb(main):003:1> a irb(main):004:1> end NameError: undefined local variable or method `a' (irb):3:in `irb_binding'
rtags
is a command used to create a TAGS
file for use with either the emacs or vi editor.
rtags [ -vi ] [ files ]... |
TAGS
file suitable for emacs (see etags.el). The -vi
option makes a TAGS file for use with vi.
rtags needs to be installed in the same manner as irb (that is, you need to install irb in the library path and make a link from irb/rtags.rb
to bin/rtags
).
require "irb/xmp" xmp <<END artist = "Doc Severinsen" artist END |
[pwd:/tc/work/ruby/ProgrammingRuby/latex] artist = "Doc Severinsen" ==>"Doc Severinsen" artist ==>"Doc Severinsen" |
require "irb/xmp" x = XMP.new x.puts <<END artist = "Louis Prima" END x.puts <<END artist END |
[pwd:/tc/work/ruby/ProgrammingRuby/latex] artist = "Louis Prima" ==>"Louis Prima" artist ==>"Louis Prima" |
xmp code_string, abinding XMP.new(abinding) |
IRB::Frame
class represents the interpreter's stack and allows easy access to the Binding
environment in effect at different stack levels.
IRB::Frame.top(n = 0) |
Returns a Binding for the nth context from the top. The 0th context is topmost, most recent frame. | |||||||
IRB::Frame.bottom(n = 0) |
Returns a Binding for the nth context from the bottom. The 0th context is the bottommost, initial frame. | |||||||
IRB::Frame.sender |
Returns the object (the sender) that invoked the current method. | |||||||
require 'irb/frame' def outie b = IRB::Frame.top(1) eval "p my_local", b end def innie my_local = 102.7 outie end innie |
102.7 |
Previous < | Contents ^ |
Next > |