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