diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/irb/irb.rd | 391 |
1 files changed, 0 insertions, 391 deletions
diff --git a/doc/irb/irb.rd b/doc/irb/irb.rd deleted file mode 100644 index 75274006e1..0000000000 --- a/doc/irb/irb.rd +++ /dev/null @@ -1,391 +0,0 @@ -irb -- interactive ruby - $Release Version: 0.9 $ - $Revision$ - by Keiju ISHITSUKA(keiju@ishitsuka.com) - by gotoken-san who is original translater from japanese version - -=begin -= What is irb? - -irb stands for `interactive ruby'. irb is a tool to execute interactively -ruby expressions read from stdin. - -= Invoking - - % irb - -= Usage - -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. - - dim% irb - 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> - -And, Readline extesion module can be used with irb. Using Readline -is the standard default action if Readline is installed. - -= Command line option - - irb.rb [options] file_name opts - options: - -f suppress read ~/.irbrc - -m bc mode (fraction or matrix are available) - -d set $DEBUG to true (same as `ruby -d') - -Kc same as `ruby -Kc' - -r load-module same as `ruby -r' - --verbose command input is echoed(default) - --noverbose command input isn't echoed - --echo commands are echoed immediately before execution(default) - --noecho commands aren't echoed immediately before execution - --inspect uses `inspect' for output (the default except bc mode) - --noinspect doesn't uses inspect for output - --readline uses Readline extension module - --noreadline doesn't use Readline extension module - --prompt prompt-mode - --prompt-mode prompt-mode - switches prompt mode. Pre-defined prompt modes are - `default', `simple', `xmp' and `inf-ruby' - - --inf-ruby-mode uses prompt appreciate for inf-ruby-mode on emacs. - Suppresses --readline. - --simple-prompt simple prompt mode - --noprompt no prompt - --tracer display trace for each execution of commands. - --back-trace-limit n - displayes backtrace top n and tail n. The default - value is 16. - --irb_debug n sets internal debug level to n (It shouldn't be used) - -v, --version prints the version of irb - -= Configurations - -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. - - 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 - -== Customizing prompt - -To costomize the prompt you set a variable - - IRB.conf[:PROMPT] - -For example, describe as follows in `.irbrc'. - - 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 - } - -Then, invoke irb with the above prompt mode by - - % irb --prompt my-prompt - -Or add the following in `.irbrc'. - - IRB.conf[:PROMPT_MODE] = :MY_PROMPT - -Constants PROMPT_I, PROMPT_S and PROMPT_C specifies the format. -In the prompt specification, some special strings are available. - - %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. - %% % - -For instance, the default prompt mode is defined as follows: - -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" -} - -RETURN is used to printf. - -== Configurating subirb - -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. - -= Command - -For irb commands, both simple name and `irb_'-prefixed name are prepared. - ---- exit, quit, irb_exit - Quits (sub)irb. - ---- conf, irb_context - Displays current configuration. Modifing the configuration is - achieved by sending message to `conf'. - ---- conf.eval_history = N - Sets execution result history. - N is a integer or nil. If N > 0, the number of historys is N. - If N == 0, the number of historys is unlimited. If N is nill, - execution result history isn't used(default). - ---- conf.back_trace_limit - Sets display lines of backtrace as top n and tail n. - The default value is 16. - ---- conf.debug_level = N - Sets debug level of irb. - ---- conf.ignore_eof = true/false - Whether ^D (control-d) will be ignored or not. - If false is set, ^D means quit. - ---- conf.ignore_sigint= true/false - Whether ^C (control-c) will be ignored or not. - If false is set, ^D means quit. If true, - during input: cancel inputing then return to top level. - during execute: abondon current execution. - ---- conf.inf_ruby_mode = true/false - Whether inf-ruby-mode or not. The default value is false. - ---- conf.inspect_mode = true/false/nil - Specifies inspect mode. - true: display inspect - false: display to_s - nil: inspect mode in non math mode, - non inspect mode in math mode. - ---- conf.math_mode - Whether bc mode or not. - ---- 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). - ---- conf.prompt_c - prompt for a continuating statement (e.g, immediately after of `if') - ---- conf.prompt_i - standard prompt - ---- conf.prompt_s - prompt for a continuating string - ---- conf.rc - Whether ~/.irbrc is read or not. - ---- conf.use_prompt = true/false - Prompting or not. - ---- 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-ruby-mode (default) -# -#--- conf.verbose=T/F -# Whether verbose messages are display or not. - ---- cws, chws, irb_change_workspace [obj] - obj will be self. If obj is omitted, self will be home-object, or - the main object of first started irb. - ---- pushws, irb_pushws, irb_push_workspace [obj] - same as UNIX-shell command pushd. - ---- popws, irb_popws, irb_pop_workspace - same as UNIX-shell command popd - ---- irb [obj] - Invoke subirb. If obj is given, obj will be self. - ---- jobs, irb_jobs - List of subirb - ---- fg n, irb_fg n - Switch into specified subirb. The following is candidates of n: - - irb number - thhread - irb object - self(obj which is specified of irb obj) - ---- kill n, irb_kill n - Kill subirb. The means of n is as same as the case of irb_fg. - ---- source, irb_source path - This is a like UNIX-shell command source. evaluate script in path - on current context. - ---- irb_load path, prev - irb-version of Ruby's load. - -= System variable - ---- _ The latest value of evaluation (it is local) ---- __ The history of evaluation values. - __[line_no] return an evaluation value of line number<line_no>. If - line_no is a negative, return value before -<line_no> from latest - value. - -= Session Example - - dim% ruby irb.rb - 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 - # context of Foo - 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 - # context of f (instance of Foo) - 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 - dim% - -= Restrictions - -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. - - -== Declaration of the local variable - -The following causes an error in ruby: - - eval "foo = 0" - foo - -- - -:2: undefined local variable or method `foo' for #<Object:0x40283118> (NameError) - --- - NameError - -Though, the above will successfully done by irb. - - >> eval "foo = 0" - => 0 - >> foo - => 0 - -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 - - evel "foo = 0" - -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: - - >> begin - ?> eval "foo = 0" - >> foo - >> end - NameError: undefined local variable or method `foo' for #<Object:0x4013d0f0> - (irb):3 - (irb_local_binding):1:in `eval' - -== Here-document - -Implementation of Here-document is incomplete. - -== Symbol - -Irb can not always recognize a symbol as to be Symbol. Concretely, an -expression have completed, however Irb regard it as continuation line. - -=end - -% Begin Emacs Environment -% Local Variables: -% mode: text -% comment-column: 0 -% comment-start: "%" -% comment-end: "\n" -% End: -% |