|
|||
| 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 >
|