pvalena / rpms / ruby

Forked from rpms/ruby 6 years ago
Clone
cvsdist b27f861
.\" DO NOT MODIFY THIS FILE! it was generated by rd2
cvsdist b27f861
.TH irb-beta 1 "May 2001"
cvsdist b27f861
.SH What is irb?
cvsdist b27f861
.PP
cvsdist b27f861
irb stands for `interactive ruby'. irb is a tool to execute interactively
cvsdist b27f861
ruby expressions read from stdin. 
cvsdist b27f861
.SH Invoking
cvsdist b27f861
.PP
cvsdist b27f861
.nf
cvsdist b27f861
\&    % ruby \-r irb \-e0
cvsdist b27f861
\&    % irb
cvsdist b27f861
.fi
cvsdist b27f861
Either of the aboves. In the former style, options can be specified
cvsdist b27f861
as follows:
cvsdist b27f861
.nf
cvsdist b27f861
\&    % ruby \-r irb \-e0 \-\- \-v
cvsdist b27f861
.fi
cvsdist b27f861
.SH Usage
cvsdist b27f861
.PP
cvsdist b27f861
Use of irb is easy if you know ruby.  Executing irb, prompts are 
cvsdist b27f861
displayed as follows. Then, enter expression of ruby. A input is
cvsdist b27f861
executed when it is syntacticaly completed. 
cvsdist b27f861
.nf
cvsdist b27f861
\&    dim% irb
cvsdist b27f861
\&    irb(main):001:0> 1+2
cvsdist b27f861
\&    3
cvsdist b27f861
\&    irb(main):002:0> class Foo
cvsdist b27f861
\&    irb(main):003:1>  def foo
cvsdist b27f861
\&    irb(main):004:2>    print 1
cvsdist b27f861
\&    irb(main):005:2>  end
cvsdist b27f861
\&    irb(main):006:1> end
cvsdist b27f861
\&    nil
cvsdist b27f861
\&    irb(main):007:0> 
cvsdist b27f861
.fi
cvsdist b27f861
And, Readline extesion module can be used with irb. Using Readline
cvsdist b27f861
is the standard default action if Readline is installed. 
cvsdist b27f861
.SH Command line option
cvsdist b27f861
.PP
cvsdist b27f861
.nf
cvsdist b27f861
\&    irb.rb [options] file_name opts
cvsdist b27f861
\&    options:
cvsdist b27f861
\&    \-f		    suppress read ~/.irbrc 
cvsdist b27f861
\&    \-m		    bc mode (fraction or matrix are available)
cvsdist b27f861
\&    \-d                set $DEBUG  to true (same as `ruby \-d')
cvsdist b27f861
\&    \-r load\-module    same as `ruby \-r'
cvsdist b27f861
\&    \-\-inspect	    uses `inspect' for output (the default except bc mode)
cvsdist b27f861
\&    \-\-noinspect	    doesn't uses inspect for output
cvsdist b27f861
\&    \-\-readline	    uses Readline extension module
cvsdist b27f861
\&    \-\-noreadline	    doesn't use Readline extension module
cvsdist b27f861
\&    \-\-prompt prompt\-mode
cvsdist b27f861
\&    \-\-prompt\-mode prompt\-mode
cvsdist b27f861
.fi
cvsdist b27f861
.nf
cvsdist b27f861
\&    switches prompt mode. Pre\-defined prompt modes are
cvsdist b27f861
\&    `defalut', `simple', `xmp' and `inf\-ruby'
cvsdist b27f861
.fi
cvsdist b27f861
.nf
cvsdist b27f861
\&    \-\-inf\-ruby\-mode   uses prompt appreciate for inf\-ruby\-mode on emacs. 
cvsdist b27f861
.fi
cvsdist b27f861
.nf
cvsdist b27f861
\&    Suppresses \-\-readline. 
cvsdist b27f861
.fi
cvsdist b27f861
.nf
cvsdist b27f861
\&    \-\-simple\-prompt   simple prompt mode
cvsdist b27f861
\&    \-\-noprompt	    no prompt
cvsdist b27f861
\&    \-\-tracer	    display trace for each execution of commands.
cvsdist b27f861
\&    \-\-back\-trace\-limit n
cvsdist b27f861
.fi
cvsdist b27f861
.nf
cvsdist b27f861
\&    displayes backtrace top n and tail n. The default
cvsdist b27f861
\&    value is 16. 
cvsdist b27f861
.fi
cvsdist b27f861
.nf
cvsdist b27f861
\&    \-\-irb_debug n	    sets internal debug level to n (It shouldn't be used)
cvsdist b27f861
\&    \-v, \-\-version	    prints the version of irb
cvsdist b27f861
.fi
cvsdist b27f861
.SH Configurations
cvsdist b27f861
.PP
cvsdist b27f861
irb reads `~/.irbrc' when it is invoked. If `~/.irbrb' doesn't exist
cvsdist b27f861
irb try to read in the order `.irbrc', `irb.rc', `_irbrc' then `$irbrc'. 
cvsdist b27f861
The following is altanative to the command line option. To use them
cvsdist b27f861
type as follows in an irb session. 
cvsdist b27f861
.nf
cvsdist b27f861
\&    IRB.conf[:IRB_NAME]="irb"
cvsdist b27f861
\&    IRB.conf[:MATH_MODE]=false
cvsdist b27f861
\&    IRB.conf[:USE_TRACER]=false
cvsdist b27f861
\&    IRB.conf[:USE_LOADER]=false
cvsdist b27f861
\&    IRB.conf[:IGNORE_SIGINT]=true
cvsdist b27f861
\&    IRB.conf[:IGNORE_EOF]=false
cvsdist b27f861
\&    IRB.conf[:INSPECT_MODE]=nil
cvsdist b27f861
\&    IRB.conf[:IRB_RC] = nil
cvsdist b27f861
\&    IRB.conf[:BACK_TRACE_LIMIT]=16
cvsdist b27f861
\&    IRB.conf[:USE_LOADER] = false
cvsdist b27f861
\&    IRB.conf[:USE_READLINE] = nil
cvsdist b27f861
\&    IRB.conf[:USE_TRACER] = false
cvsdist b27f861
\&    IRB.conf[:IGNORE_SIGINT] = true
cvsdist b27f861
\&    IRB.conf[:IGNORE_EOF] = false
cvsdist b27f861
\&    IRB.conf[:PROMPT_MODE] = :DEFALUT
cvsdist b27f861
\&    IRB.conf[:PROMPT] = {...}
cvsdist b27f861
\&    IRB.conf[:DEBUG_LEVEL]=0
cvsdist b27f861
\&    IRB.conf[:VERBOSE]=true
cvsdist b27f861
.fi
cvsdist b27f861
.SH Customizing prompt
cvsdist b27f861
.PP
cvsdist b27f861
To costomize the prompt you set a variable
cvsdist b27f861
.nf
cvsdist b27f861
\&    IRB.conf[:PROMPT]
cvsdist b27f861
.fi
cvsdist b27f861
For example, describe as follows in `.irbrc'. 
cvsdist b27f861
.nf
cvsdist b27f861
\&    IRB.conf[:PROMPT][:MY_PROMPT] = { # name of prompt mode
cvsdist b27f861
\&      :PROMPT_I => nil,		  # normal prompt
cvsdist b27f861
\&      :PROMPT_S => nil,		  # prompt for continuated strings
cvsdist b27f861
\&      :PROMPT_C => nil,		  # prompt for continuated statement
cvsdist b27f861
\&      :RETURN => "    ==>%s\\n"	  # format to return value
cvsdist b27f861
\&    }
cvsdist b27f861
.fi
cvsdist b27f861
Then, invoke irb with the above prompt mode by
cvsdist b27f861
.nf
cvsdist b27f861
\&    % irb \-\-prompt my\-prompt
cvsdist b27f861
.fi
cvsdist b27f861
Or add the following in `.irbrc'. 
cvsdist b27f861
.nf
cvsdist b27f861
\&    IRB.conf[:PROMPT_MODE] = :MY_PROMPT
cvsdist b27f861
.fi
cvsdist b27f861
Constants PROMPT_I, PROMPT_S and PROMPT_C specifies the format. 
cvsdist b27f861
In the prompt specification, some special strings are available. 
cvsdist b27f861
.nf
cvsdist b27f861
\&    %N	command name which is running
cvsdist b27f861
\&    %m	to_s of main object (self)
cvsdist b27f861
\&    %M	inspect of main object (self)
cvsdist b27f861
\&    %l	type of string(", ', /, ]), `]' is inner %w[...]
cvsdist b27f861
\&    %NNi	indent level. NN is degits and means as same as printf("%NNd"). 
cvsdist b27f861
\&          It can be ommited
cvsdist b27f861
\&    %NNn	line number. 
cvsdist b27f861
\&    %%    %
cvsdist b27f861
.fi
cvsdist b27f861
For instance, the default prompt mode is defined as follows:
cvsdist b27f861
IRB.conf[:PROMPT_MODE][:DEFAULT] = {
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
PROMPT_I => "%N(%m):%03n:%i> ",
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
PROMPT_S => "%N(%m):%03n:%i%l ",
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
PROMPT_C => "%N(%m):%03n:%i* ",
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
RETURN => "%s\\n"
cvsdist b27f861
} 
cvsdist b27f861
RETURN is used to printf. 
cvsdist b27f861
.SH Configurating subirb
cvsdist b27f861
.PP
cvsdist b27f861
The command line option or IRB.conf specify the default behavior of
cvsdist b27f861
(sub)irb. On the other hand, each conf of in the next sction `6. Command' 
cvsdist b27f861
is used to individually configurate (sub)irb. 
cvsdist b27f861
If proc is set to IRB.conf[:IRB_RC], its subirb will be invoked after
cvsdist b27f861
execution of that proc under giving the context of irb as its
cvsdist b27f861
aregument. By this mechanism each subirb can be configurated. 
cvsdist b27f861
.SH Command
cvsdist b27f861
.PP
cvsdist b27f861
For irb commands, both simple name and `irb_'\-prefixed name are prepared. 
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
exit, quit, irb_exit
cvsdist b27f861
Quits (sub)irb. 
cvsdist b27f861
if you've done cb (see below), exit from the binding mode.
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf, irb_context
cvsdist b27f861
Displays current configuration. Modifing the configuration is
cvsdist b27f861
achieved by sending message to `conf'. 
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf.back_trace_limit
cvsdist b27f861
Sets display lines of backtrace as top n and tail n. 
cvsdist b27f861
The default value is 16.
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf.debug_level = N
cvsdist b27f861
Sets debug level of irb. 
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf.ignore_eof = true/false
cvsdist b27f861
Whether ^D (control\-d) will be ignored or not. 
cvsdist b27f861
If false is set, ^D means quit. 
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf.ignore_sigint= true/false
cvsdist b27f861
Whether ^C (control\-c) will be ignored or not. 
cvsdist b27f861
If false is set, ^D means quit.  If true, 
cvsdist b27f861
cvsdist b27f861
.nf
cvsdist b27f861
\&    during input:   cancel inputing then return to top level. 
cvsdist b27f861
\&    during execute: abondon current execution. 
cvsdist b27f861
.fi
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf.inf_ruby_mode = true/false
cvsdist b27f861
Whether inf\-ruby\-mode or not. The default value is false.
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf.inspect_mode = true/false/nil
cvsdist b27f861
Specifies inspect mode. 
cvsdist b27f861
true:  display inspect
cvsdist b27f861
false: display to_s
cvsdist b27f861
nil:   inspect mode in non math mode, 
cvsdist b27f861
cvsdist b27f861
.nf
cvsdist b27f861
\&    non inspect mode in math mode. 
cvsdist b27f861
.fi
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf.irb_level
cvsdist b27f861
The level of cb. 
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf.math_mode
cvsdist b27f861
Whether bc mode or not. 
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf.use_loader = true/false
cvsdist b27f861
Whether irb's own file reader method is used when load/require or not. 
cvsdist b27f861
This mode is globaly affected (irb wide). 
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf.prompt_c
cvsdist b27f861
prompt for a continuating statement (e.g, immediately after of `if')
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf.prompt_i
cvsdist b27f861
standard prompt
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf.prompt_s
cvsdist b27f861
prompt for a continuating string
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf.rc
cvsdist b27f861
Whether ~/.irbrc is read or not. 
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf.use_prompt = true/false
cvsdist b27f861
Prompting or not. 
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf.use_readline = true/false/nil
cvsdist b27f861
Whether readline is used or not. 
cvsdist b27f861
true: uses 
cvsdist b27f861
false: doen't use
cvsdist b27f861
nil: intends to use readline except for inf\-reuby\-mode (default)
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
conf.verbose=T/F
cvsdist b27f861
Whether verbose messages are display or not. 
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
cb, irb_change_binding [obj]
cvsdist b27f861
Enter new binding which has a distinct scope of local variables. 
cvsdist b27f861
If obj is given, obj will be self. 
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
irb [obj]
cvsdist b27f861
Invoke subirb. If obj is given, obj will be self. 
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
jobs, irb_jobs
cvsdist b27f861
List of subirb
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
fg n, irb_fg n
cvsdist b27f861
Switch into specified subirb. The following is candidates of n:
cvsdist b27f861
cvsdist b27f861
.nf
cvsdist b27f861
\&    irb number
cvsdist b27f861
\&    thhread
cvsdist b27f861
\&    irb object
cvsdist b27f861
\&    self(obj which is specified of irb obj)
cvsdist b27f861
.fi
cvsdist b27f861
cvsdist b27f861
cvsdist b27f861
.TP
cvsdist b27f861
.fi
cvsdist b27f861
.B
cvsdist b27f861
kill n, irb_kill n
cvsdist b27f861
Kill subirb. The means of n is as same as the case of irb_fg. 
cvsdist b27f861
.SH System variable
cvsdist b27f861
.PP
cvsdist b27f861
.nf
cvsdist b27f861
\&    _  The latest value of evaluation (it is local)
cvsdist b27f861
.fi
cvsdist b27f861
.SH Session Example
cvsdist b27f861
.PP
cvsdist b27f861
.nf
cvsdist b27f861
\&    dim% ruby irb.rb
cvsdist b27f861
\&    irb(main):001:0> irb                        # invoke subirb
cvsdist b27f861
\&    irb#1(main):001:0> jobs                     # list of subirbs
cvsdist b27f861
\&    #0\->irb on main (#<Thread:0x400fb7e4> : stop)
cvsdist b27f861
\&    #1\->irb#1 on main (#<Thread:0x40125d64> : running)
cvsdist b27f861
\&    nil
cvsdist b27f861
\&    irb#1(main):002:0> fg 0                     # switch job
cvsdist b27f861
\&    nil
cvsdist b27f861
\&    irb(main):002:0> class Foo;end
cvsdist b27f861
\&    nil
cvsdist b27f861
\&    irb(main):003:0> irb Foo                    # invoke subirb which has the 
cvsdist b27f861
.fi
cvsdist b27f861
.nf
cvsdist b27f861
\&    #              context of Foo
cvsdist b27f861
.fi
cvsdist b27f861
.nf
cvsdist b27f861
\&    irb#2(Foo):001:0> def foo                   # define Foo#foo
cvsdist b27f861
\&    irb#2(Foo):002:1>   print 1
cvsdist b27f861
\&    irb#2(Foo):003:1> end
cvsdist b27f861
\&    nil
cvsdist b27f861
\&    irb#2(Foo):004:0> fg 0                      # switch job
cvsdist b27f861
\&    nil
cvsdist b27f861
\&    irb(main):004:0> jobs                       # list of job
cvsdist b27f861
\&    #0\->irb on main (#<Thread:0x400fb7e4> : running)
cvsdist b27f861
\&    #1\->irb#1 on main (#<Thread:0x40125d64> : stop)
cvsdist b27f861
\&    #2\->irb#2 on Foo (#<Thread:0x4011d54c> : stop)
cvsdist b27f861
\&    nil
cvsdist b27f861
\&    irb(main):005:0> Foo.instance_methods       # Foo#foo is defined asurely
cvsdist b27f861
\&    ["foo"]
cvsdist b27f861
\&    irb(main):006:0> fg 2                       # switch job
cvsdist b27f861
\&    nil
cvsdist b27f861
\&    irb#2(Foo):005:0> def bar                   # define Foo#bar
cvsdist b27f861
\&    irb#2(Foo):006:1>  print "bar"
cvsdist b27f861
\&    irb#2(Foo):007:1> end
cvsdist b27f861
\&    nil
cvsdist b27f861
\&    irb#2(Foo):010:0>  Foo.instance_methods
cvsdist b27f861
\&    ["bar", "foo"]
cvsdist b27f861
\&    irb#2(Foo):011:0> fg 0                      
cvsdist b27f861
\&    nil
cvsdist b27f861
\&    irb(main):007:0> f = Foo.new
cvsdist b27f861
\&    #<Foo:0x4010af3c>
cvsdist b27f861
\&    irb(main):008:0> irb f                      # invoke subirb which has the
cvsdist b27f861
.fi
cvsdist b27f861
.nf
cvsdist b27f861
\&    #  context of f (instance of Foo)
cvsdist b27f861
.fi
cvsdist b27f861
.nf
cvsdist b27f861
\&    irb#3(#<Foo:0x4010af3c>):001:0> jobs
cvsdist b27f861
\&    #0\->irb on main (#<Thread:0x400fb7e4> : stop)
cvsdist b27f861
\&    #1\->irb#1 on main (#<Thread:0x40125d64> : stop)
cvsdist b27f861
\&    #2\->irb#2 on Foo (#<Thread:0x4011d54c> : stop)
cvsdist b27f861
\&    #3\->irb#3 on #<Foo:0x4010af3c> (#<Thread:0x4010a1e0> : running)
cvsdist b27f861
\&    nil
cvsdist b27f861
\&    irb#3(#<Foo:0x4010af3c>):002:0> foo         # evaluate f.foo
cvsdist b27f861
\&    1nil
cvsdist b27f861
\&    irb#3(#<Foo:0x4010af3c>):003:0> bar         # evaluate f.bar
cvsdist b27f861
\&    barnil
cvsdist b27f861
\&    irb#3(#<Foo:0x4010af3c>):004:0> kill 1, 2, 3# kill job
cvsdist b27f861
\&    nil
cvsdist b27f861
\&    irb(main):009:0> jobs
cvsdist b27f861
\&    #0\->irb on main (#<Thread:0x400fb7e4> : running)
cvsdist b27f861
\&    nil
cvsdist b27f861
\&    irb(main):010:0> exit                       # exit
cvsdist b27f861
\&    dim% 
cvsdist b27f861
.fi
cvsdist b27f861
.SH Restrictions
cvsdist b27f861
.PP
cvsdist b27f861
Because irb evaluates the inputs immediately after the imput is
cvsdist b27f861
syntactically completed, irb gives slight different result than
cvsdist b27f861
directly use ruby. Known difference is pointed out here. 
cvsdist b27f861
.SH Declaration of the local variable
cvsdist b27f861
.PP
cvsdist b27f861
The following causes an error in ruby:
cvsdist b27f861
.nf
cvsdist b27f861
\&    eval "foo = 0"
cvsdist b27f861
\&    foo
cvsdist b27f861
\&    \-\-
cvsdist b27f861
\&    \-:2: undefined local variable or method `foo' for #<Object:0x40283118> (NameError)
cvsdist b27f861
\&    \-\-\-
cvsdist b27f861
\&    NameError
cvsdist b27f861
.fi
cvsdist b27f861
Though, the above will successfully done by irb. 
cvsdist b27f861
.nf
cvsdist b27f861
\&    >> eval "foo = 0"
cvsdist b27f861
.fi
cvsdist b27f861
.nf
cvsdist b27f861
\&    => 0
cvsdist b27f861
\&    >> foo
cvsdist b27f861
\&    => 0
cvsdist b27f861
.fi
cvsdist b27f861
Ruby evaluates a code after reading entire of code and determination
cvsdist b27f861
of the scope of local variables. On the other hand, irb do
cvsdist b27f861
immediately. More precisely, irb evaluate at first
cvsdist b27f861
.nf
cvsdist b27f861
\&    evel "foo = 0" 
cvsdist b27f861
.fi
cvsdist b27f861
then foo is defined on this timing. It is because of this
cvsdist b27f861
incompatibility.
cvsdist b27f861
If you'd like to detect those differences, begin...end can be used:
cvsdist b27f861
.nf
cvsdist b27f861
\&    >> begin
cvsdist b27f861
\&    ?>   eval "foo = 0"
cvsdist b27f861
\&    >>   foo
cvsdist b27f861
\&    >> end
cvsdist b27f861
\&    NameError: undefined local variable or method `foo' for #<Object:0x4013d0f0>
cvsdist b27f861
\&    (irb):3
cvsdist b27f861
\&    (irb_local_binding):1:in `eval'
cvsdist b27f861
.fi
cvsdist b27f861
.SH Here\-document
cvsdist b27f861
.PP
cvsdist b27f861
Implementation of Here\-document is incomplete. 
cvsdist b27f861
.SH Symbol
cvsdist b27f861
.PP
cvsdist b27f861
Irb can not always recognize a symbol as to be Symbol. Concretely, an
cvsdist b27f861
expression have completed, however Irb regard it as continuation line.
cvsdist b27f861