From 6bbab099c08129c86b225dc476f950809cf58b39 Mon Sep 17 00:00:00 2001 From: knu Date: Mon, 7 May 2001 23:35:09 +0000 Subject: Convert from JIS to EUC. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- doc/irb/irb-tools.rd.jp | 110 ++++++++--------- doc/irb/irb.rd.jp | 322 ++++++++++++++++++++++++------------------------ 2 files changed, 216 insertions(+), 216 deletions(-) (limited to 'doc/irb') diff --git a/doc/irb/irb-tools.rd.jp b/doc/irb/irb-tools.rd.jp index 30313feb6f..9800d770d2 100644 --- a/doc/irb/irb-tools.rd.jp +++ b/doc/irb/irb-tools.rd.jp @@ -1,4 +1,4 @@ -irb$B4XO"$*$^$1%3%^%s%I$H%i%$%V%i%j(B +irb関連おまけコマンドとライブラリ $Release Version: 0.7.1 $ $Revision$ $Date$ @@ -6,66 +6,66 @@ irb$B4XO"$*$^$1%3%^%s%I$H%i%$%V%i%j(B ==begin -:$B%3%^%s%I(B: +:コマンド: * rtags -- ruby tags command -:$B4X?t%i%$%V%i%j(B: +:関数ライブラリ: * xmp -- irb version of gotoken xmp-function -:$B%/%i%9%i%$%V%i%j(B: +:クラスライブラリ: * frame.rb -- frame tracer * completion.rb -- irb completor = rtags -rtags$B$O(Bemacs$B5Z$S(Bvi$BMQ$N(B, TAG$B%U%!%$%k$r$D$/$k%3%^%s%I$G$9(B. +rtagsはemacs及びvi用の, TAGファイルをつくるコマンドです. -== $B;H$$J}(B +== 使い方 rtags [-vi] file.... -$B%+%l%s%H%G%#%l%/%H%j$K(Bemacs$BMQ$N(BTAGS$B%U%!%$%k$,$G$-$^$9(B. -vi$B%*%W%7%g%s$r(B -$B$D$1$?;~$K$O(Bvi$BMQ$N(Btags$B%U%!%$%k$r:n@.$7$^$9(B. +カレントディレクトリにemacs用のTAGSファイルができます. -viオプションを +つけた時にはvi用のtagsファイルを作成します. -emacs$B$N>l9g(B, $BDL>o$N(Betags.el$B$,$=$N$^$^;H$($^$9(B. $B8!:w2DG=$J$N$O(B, +emacsの場合, 通常のetags.elがそのまま使えます. 検索可能なのは, -* $B%/%i%9(B -* $B%a%=%C%I(B -* $BFC0[%a%=%C%I(B +* クラス +* メソッド +* 特異メソッド * alias -* attr$B$G@k8@$5$l$?%"%/%;%5(B($B%Q%i%a!<%?$,%7%s%\%k$+J8;zNs%j%F%i%k$K8B$k(B) -* attr_XXX$B$G@k8@$5$l$?%"%/%;%5(B($B%Q%i%a!<%?$,%7%s%\%k$+J8;zNs%j%F%i%k$K8B$k(B) +* attrで宣言されたアクセサ(パラメータがシンボルか文字列リテラルに限る) +* attr_XXXで宣言されたアクセサ(パラメータがシンボルか文字列リテラルに限る) -$B$G$9(B. +です. -C$B$J$I$G;H$C$F$$$k$N$H0c$&$N$O(B, $B%3%s%W%j!<%7%g%s$K4X$9$kItJ,$G(B, +Cなどで使っているのと違うのは, コンプリーションに関する部分で, -$B4X?tL>$O(B, +関数名は, - $B4X?tL>(B( + 関数名( -$B%/%i%9$O(B, +クラスは, - ::$B%/%i%9L>(B::....::$B%/%i%9L>(B + ::クラス名::....::クラス名 -$B%a%=%C%I$O(B, +メソッドは, - ::$B%/%i%9L>(B::....::$B%/%i%9L>(B#$B%a%=%C%IL>(B + ::クラス名::....::クラス名#メソッド名 -$BFC0[%a%=%C%I(B($B%/%i%9%a%=%C%I(B)$B$O(B +特異メソッド(クラスメソッド)は - ::$B%/%i%9L>(B::....::$B%/%i%9L>(B.$B%a%=%C%IL>(B + ::クラス名::....::クラス名.メソッド名 -$B$G%3%s%W%j!<%7%g%s$r9T$J$&$H$3$m$G$9(B. +でコンプリーションを行なうところです. = xmp.rb -$B$4$H$1$s(Bxmp$B$N>e0L8_49%P!<%8%g%s$G$9(B. $B$?$@(B, $BHs>o$K=E$$$N$G$4$H$1$s(Bxmp$B$G(B -$B$OBP1~$G$-$J$$;~$K(B, $B;HMQ$9$k$HNI$$$G$7$g$&(B. +ごとけんxmpの上位互換バージョンです. ただ, 非常に重いのでごとけんxmpで +は対応できない時に, 使用すると良いでしょう. -== $B;H$$J}(B +== 使い方 -=== $B4X?t$H$7$F;H$&(B. +=== 関数として使う. require "irb/xmp" xmp <1 -=== XMP$B%$%s%9%?%s%9$rMQ$$$k(B. +=== XMPインスタンスを用いる. -$B$3$N>l9g$O(B, XMP$B$,%3%s%F%-%9%H>pJs$r;}$D$N$G(B, $BJQ?t$NCM$J$I$rJ];}$7$F$$(B -$B$^$9(B. +この場合は, XMPがコンテキスト情報を持つので, 変数の値などを保持してい +ます. require "irb/xmp" xmp = XMP.new @@ -100,50 +100,50 @@ C$B$J$I$G;H$C$F$$$k$N$H0c$&$N$O(B, $B%3%s%W%j!<%7%g%s$K4X$9$kItJ,$G(B, foo ==>1 -== $B%3%s%F%-%9%H$K4X$7$F(B +== コンテキストに関して -XMP$B%a%=%C%I72$N%3%s%F%-%9%H$O(B, $B8F$S=P$9A0$N%3%s%F%-%9%H$GI>2A$5$l$^$9(B. -$BL@<(E*$K%3%s%F%-%9%H$r;XDj$9$k$H$=$N%3%s%F%-%9%H$GI>2A$7$^$9(B. +XMPメソッド群のコンテキストは, 呼び出す前のコンテキストで評価されます. +明示的にコンテキストを指定するとそのコンテキストで評価します. -$BNc(B: +例: xmp "foo", an_binding -:$BCm(B: -$B%^%k%A%9%l%C%I$K$OBP1~$7$F$$$^$;$s(B. +:注: +マルチスレッドには対応していません. = frame.rb -$B8=:_pJs$re$+$i(Bn$BHVL\$N%3%s%F%-%9%H$re0L$K$J$j$^$9(B. + 上からn番目のコンテキストを取り出します. nは0が最上位になります. * IRB::Frame.bottom(n = 0) - $B2<$+$i(Bn$BHVL\$N%3%s%F%-%9%H$r in in inspect instance_eval @@ -154,8 +154,8 @@ irb$B foo = Object.new # - ((|$BJQ?tL>(B.|))$B$N8e$K(B(TAB)$B$r2!$9$H(B, $B$=$N%*%V%8%'%/%H$N%a%=%C%I0lMw$,$G$^(B - $B$9(B. + ((|変数名.|))の後に(TAB)を押すと, そのオブジェクトのメソッド一覧がでま + す. irb(main):003:0> foo. foo.== foo.frozen? foo.protected_methods diff --git a/doc/irb/irb.rd.jp b/doc/irb/irb.rd.jp index cf65d3e3cb..a248e7bd5a 100644 --- a/doc/irb/irb.rd.jp +++ b/doc/irb/irb.rd.jp @@ -4,27 +4,27 @@ irb -- interactive ruby $Date$ by Keiju ISHITSUKA(keiju@ishitsuka.com) ==begin -= irb$B$H$O(B? += irbとは? -irb$B$O(Binteractive ruby$B$NN,$G$9(B. ruby$B$N<0$rI8=`F~NO$+$i4JC1$KF~NO(B/$Bl9g(Birb$B$X$N%*%W%7%g%s;XDj$O(B, $B0J2<$N$h$&$K(B -$B$J$j$^$9(B. +のいずれかで行ないます. 前者の場合irbへのオプション指定は, 以下のように +なります. % ruby -r irb -e0 -- -v -= $B;H$$J}(B += 使い方 -irb$B$N;H$$J}$O(B, Ruby$B$5$(CN$C$F$$$l$P$$$?$C$F4JC1$G$9(B. $B4pK\E*$K$O(B irb $B$H(B -$B$$$&%3%^%s%I$r 1+2 @@ -37,50 +37,50 @@ irb$B$N;H$$J}$O(B, Ruby$B$5$(CN$C$F$$$l$P$$$?$C$F4JC1$G$9(B. $B4pK\E*$K$O( nil irb(main):007:0> -$B$^$?(B, irb$B$O(BReadline$B%b%8%e!<%k$K$bBP1~$7$F$$$^$9(B. Readline$B%b%8%e!<%k$,(B -$B%$%s%9%H!<%k$5$l$F$$$k;~$K$O(B, $B$=$l$r;H$&$N$,I8=`$NF0:n$K$J$j$^$9(B. +また, irbはReadlineモジュールにも対応しています. Readlineモジュールが +インストールされている時には, それを使うのが標準の動作になります. -= $B%3%^%s%I%*%W%7%g%s(B += コマンドオプション irb.rb [options] file_name opts options: - -f ~/.irbrc $B$rFI$_9~$^$J$$(B. - -m bc$B%b!<%I(B($BJ,?t(B, $B9TNs$N7W;;$,$G$-$k(B) - -d $DEBUG $B$r(Btrue$B$K$9$k(B(ruby -d $B$HF1$8(B) - -r load-module ruby -r $B$HF1$8(B. - --inspect $B7k2L=PNO$K(Binspect$B$rMQ$$$k(B(bc$B%b!<%I0J30$O%G%U%)%k%H(B). - --noinspect $B7k2L=PNO$K(Binspect$B$rMQ$$$J$$(B. - --readline readline$B%i%$%V%i%j$rMxMQ$9$k(B. - --noreadline readline$B%i%$%V%i%j$rMxMQ$7$J$$(B. $B%G%U%)%k%H$NF0:n$O(B, - inf-reuby-mode$B0J30$G(Breadline$B%i%$%V%i%j$rMxMQ$7$h$&(B - $B$H$9$k(B. + -f ~/.irbrc を読み込まない. + -m bcモード(分数, 行列の計算ができる) + -d $DEBUG をtrueにする(ruby -d と同じ) + -r load-module ruby -r と同じ. + --inspect 結果出力にinspectを用いる(bcモード以外はデフォルト). + --noinspect 結果出力にinspectを用いない. + --readline readlineライブラリを利用する. + --noreadline readlineライブラリを利用しない. デフォルトの動作は, + inf-reuby-mode以外でreadlineライブラリを利用しよう + とする. --prompt prompt-mode --prompt-mode prompt-mode - $B%W%m%s%W%H%b!<%I$r@ZBX$($^$9(B. $B8=:_Dj5A$5$l$F$$$k%W(B - $B%m%s%W%H%b!<%I$O(B, defalut, simple, xmp, inf-ruby$B$,(B - $BMQ0U$5$l$F$$$^$9(B. $B%G%U%)%k%H$O(Bdefault$B%W%m%s%W%H%b!<(B - $B%I$K$J$C$F$$$^$9(B. + プロンプトモードを切替えます. 現在定義されているプ + ロンプトモードは, defalut, simple, xmp, inf-rubyが + 用意されています. デフォルトはdefaultプロンプトモー + ドになっています. - --inf-ruby-mode emacs$B$N(Binf-ruby-mode$BMQ$N%W%m%s%W%HI=<($r9T$J$&(B. $BFC(B - $B$K;XDj$,$J$$8B$j(B, readline$B%i%$%V%i%j$O;H$o$J$/$J$k(B. + --inf-ruby-mode emacsのinf-ruby-mode用のプロンプト表示を行なう. 特 + に指定がない限り, readlineライブラリは使わなくなる. --simple-prompt - $BHs>o$K%7%s%W%k$J%W%m%s%W%H$rMQ$$$k%b!<%I$G$9(B. - --noprompt $B%W%m%s%W%HI=<($r9T$J$o$J$$(B. - --tracer $B%3%^%s%Il9g$O(B, -``.irbrc'', ``irb.rc'', ``_irbrc'', ``$irbrc''$B$N=g$K(Bload$B$r;n$_$^$9(B. +irb起動時に``~/.irbrc''を読み込みます. もし存在しない場合は, +``.irbrc'', ``irb.rc'', ``_irbrc'', ``$irbrc''の順にloadを試みます. -$B%*%W%7%g%s$r@_Dj$9$kBe$o$j$K(B, $B0J2<$N%3%^%s%I$G$b%G%U%)%k%H$NF0:n$r@_Dj(B -$B$G$-$^$9(B. +オプションを設定する代わりに, 以下のコマンドでもデフォルトの動作を設定 +できます. IRB.conf[:IRB_NAME]="irb" IRB.conf[:MATH_MODE]=false @@ -101,42 +101,42 @@ irb$B5/F0;~$K(B``~/.irbrc''$B$rFI$_9~$_$^$9(B. $B$b$7B8:_$7$J$$>l9g$O(B, IRB.conf[:DEBUG_LEVEL]=0 IRB.conf[:VERBOSE]=true -== $B%W%m%s%W%H$N@_Dj(B +== プロンプトの設定 -$B%W%m%s%W%H$r%+%9%?%^%$%:$7$?$$;~$K$O(B, +プロンプトをカスタマイズしたい時には, IRB.conf[:PROMPT] -$B$rMQ$$$^$9(B. $BNc$($P(B, .irbrc$B$NCf$G2<$N$h$&$J<0$r5-=R$7$^$9(B: +を用います. 例えば, .irbrcの中で下のような式を記述します: - IRB.conf[:PROMPT][:MY_PROMPT] = { # $B%W%m%s%W%H%b!<%I$NL>A0(B - :PROMPT_I => nil, # $BDL>o$N%W%m%s%W%H(B - :PROMPT_S => nil, # $BJ8;zNs$J$I$N7QB39T$N%W%m%s%W%H(B - :PROMPT_C => nil, # $B<0$,7QB3$7$F$$$k;~$N%W%m%s%W%H(B - :RETURN => " ==>%s\n" # $B%j%?!<%s;~$N%W%m%s%W%H(B + IRB.conf[:PROMPT][:MY_PROMPT] = { # プロンプトモードの名前 + :PROMPT_I => nil, # 通常のプロンプト + :PROMPT_S => nil, # 文字列などの継続行のプロンプト + :PROMPT_C => nil, # 式が継続している時のプロンプト + :RETURN => " ==>%s\n" # リターン時のプロンプト } -$B%W%m%s%W%H%b!<%I$r;XDj$7$?$$;~$K$O(B, +プロンプトモードを指定したい時には, irb --prompt my-prompt -$B$G$=$N%W%m%s%W%H%b!<%I$G5/F0$5$l$^$9(B. $B$^$?$O(B, .irbrc$B$K2<<0$r5-=R$7$F$b(B -OK$B$G$9(B. +でそのプロンプトモードで起動されます. または, .irbrcに下式を記述しても +OKです. IRB.conf[:PROMPT_MODE] = :MY_PROMPT -PROMPT_I, PROMPT_S, PROMPT_C$B$O(B, $B%U%)!<%^%C%H$r;XDj$7$^$9(B. +PROMPT_I, PROMPT_S, PROMPT_Cは, フォーマットを指定します. - %N $B5/F0$7$F$$$k%3%^%s%IL>$,=PNO$5$l$k(B. - %m main$B%*%V%8%'%/%H(B(self)$B$,(Bto_s$B$G=PNO$5$l$k(B. - %M main$B%*%V%8%'%/%H(B(self)$B$,(Binspect$B$5$l$F=PNO$5$l$k(B. - %l $BJ8;zNsCf$N%?%$%W$rI=$9(B(", ', /, ], `]'$B$O(B%w$B$NCf$N;~(B) - %NNi $B%$%s%G%s%H$N%l%Y%k$rI=$9(B. NN$B$O?t;z$,F~$j(Bprintf$B$N(B%NNd$B$HF1$8(B. $B>J(B - $BN,2DG=(B - %NNn $B9THV9f$rI=$7$^$9(B. + %N 起動しているコマンド名が出力される. + %m mainオブジェクト(self)がto_sで出力される. + %M mainオブジェクト(self)がinspectされて出力される. + %l 文字列中のタイプを表す(", ', /, ], `]'は%wの中の時) + %NNi インデントのレベルを表す. NNは数字が入りprintfの%NNdと同じ. 省 + 略可能 + %NNn 行番号を表します. %% % -$BNc$($P(B, $B%G%U%)%k%H$N%W%m%s%W%H%b!<%I$O(B: +例えば, デフォルトのプロンプトモードは: IRB.conf[:PROMPT_MODE][:DEFAULT] = { :PROMPT_I => "%N(%m):%03n:%i> ", @@ -145,156 +145,156 @@ PROMPT_I, PROMPT_S, PROMPT_C$B$O(B, $B%U%)!<%^%C%H$r;XDj$7$^$9(B. :RETURN => "%s\n" } -$B$H$J$C$F$$$^$9(B. +となっています. -RETURN$B$O(B, $B8=:_$N$H$3$m(Bprintf$B7A<0$G$9(B. $B>-Mh;EMM$,JQ$o$k$+$bCN$l$^$;$s(B. +RETURNは, 現在のところprintf形式です. 将来仕様が変わるかも知れません. -== $B%5%V(Birb$B$N@_Dj(B +== サブirbの設定 -$B%3%^%s%I%i%$%s%*%W%7%g%s$*$h$S(BIRB.conf$B$O(B($B%5%V(B)irb$B5/F0;~$N%G%U%)%k%H$N(B -$B@_Dj$r7h$a$k$b$N$G(B, `5. $B%3%^%s%I(B'$B$K$"$k(Bconf$B$G8DJL$N(B($B%5%V(B)irb$B$N@_Dj$,$G(B -$B$-$k$h$&$K$J$C$F$$$^$9(B. +コマンドラインオプションおよびIRB.confは(サブ)irb起動時のデフォルトの +設定を決めるもので, `5. コマンド'にあるconfで個別の(サブ)irbの設定がで +きるようになっています. -IRB.conf[:IRB_RC]$B$K(Bproc$B$,@_Dj$5$l$F$$$k$H(B, $B%5%V(Birb$B$r5/F0$9$k;~$K$=$N(B -proc$B$r(Birb$B$N%3%s%F%-%9%H$r0z?t$H$7$F8F$S=P$7$^$9(B. $B$3$l$K$h$C$F8DJL$N%5(B -$B%V(Birb$B$4$H$K@_Dj$rJQ$($k$3$H$,$G$-$k$h$&$K$J$j$^$9(B. +IRB.conf[:IRB_RC]にprocが設定されていると, サブirbを起動する時にその +procをirbのコンテキストを引数として呼び出します. これによって個別のサ +ブirbごとに設定を変えることができるようになります. -= $B%3%^%s%I(B += コマンド -irb$B3HD%%3%^%s%I$O(B, $B4JC1$JL>A0$HF,$K(B`irb_'$B$r$D$1$?L>A0$HN>J}Dj5A$5$l$F(B -$B$$$^$9(B. $B$3$l$O(B, $B4JC1$JL>A0$,(Boverride$B$5$l$?;~$N$?$a$G$9(B. +irb拡張コマンドは, 簡単な名前と頭に`irb_'をつけた名前と両方定義されて +います. これは, 簡単な名前がoverrideされた時のためです. --- exit, quit, irb_exit - $B=*N;$9$k(B. - $B%5%V(Birb$B$N>l9g(B, $B$=$N%5%V(Birb$B$r=*N;$9$k(B. - cb$B$7$F$$$k>l9g(B, $B$=$N%P%$%s%G%#%s%0$N%b!<%I$r=*N;$9$k(B. + 終了する. + サブirbの場合, そのサブirbを終了する. + cbしている場合, そのバインディングのモードを終了する. --- conf, irb_context - irb$B$N8=:_$N@_Dj$rI=<($9$k(B. $B@_Dj$NJQ99$O(B, conf$B$K%a%C%;!<%8$rAw$k$3(B - $B$H$K$h$C$F9T$J$($k(B. + irbの現在の設定を表示する. 設定の変更は, confにメッセージを送るこ + とによって行なえる. --- conf.back_trace_limit - $B%P%C%/%H%l!<%9I=<($r%P%C%/%H%l!<%9$NF,$+$i(Bn, $B8e$m$+$i(Bn$B$@$19T$J$&(B. - $B%G%U%)%k%H$O(B16 + バックトレース表示をバックトレースの頭からn, 後ろからnだけ行なう. + デフォルトは16 --- conf.debug_level = N - irb$BMQ$N%G%P%C%0%l%Y%k$N@_Dj(B + irb用のデバッグレベルの設定 --- conf.ignore_eof = true/false - ^D$B$,F~NO$5$l$?;~$NF0:n$r@_Dj$9$k(B. true$B$N;~$O(B^D$B$rL5;k$9$k(B, false$B$N(B - $B;~$O(Birb$B$r=*N;$9$k(B. + ^Dが入力された時の動作を設定する. trueの時は^Dを無視する, falseの + 時はirbを終了する. --- conf.ignore_sigint= true/false - ^C$B$,F~NO$5$l$?;~$NF0:n$r@_Dj$9$k(B. false$B;~$O(B, irb$B$r=*N;$9$k(B. true$B$N(B - $B;~$NF0:n$O0J2<$N$h$&$K$J$k(B: - $BF~NOCf(B: $B$3$l$^$GF~NO$7$?$b$N$r%-%c%s%;%k$7%H%C%W%l%Y%k$KLa$k(B. - $Bo$N(Bprint$B$GI=<($9$k(B. - nil: $BDL>o%b!<%I$G$"$l$P(B, inspect mode$B$H$J$j(B, math$B%b!<%I$N;~$O(B, non - inspect mode$B$H$J$k(B. + インスペクトモードを設定する. + true: インスペクトして表示する. + false: 通常のprintで表示する. + nil: 通常モードであれば, inspect modeとなり, mathモードの時は, non + inspect modeとなる. --- conf.irb_level - $B;2>H$N$_(B. irb$B$,2?CJ(Bcb$B$7$F$$$k$+(B? + 参照のみ. irbが何段cbしているか? --- conf.math_mode - $B;2>H$N$_(B. bc$B%b!<%I(B($BJ,?t(B, $B9TNs$N7W;;$,$G$-$^$9(B)$B$+$I$&$+(B? + 参照のみ. bcモード(分数, 行列の計算ができます)かどうか? --- conf.use_loader = true/false - load/require$B;~$K(Birb$B$N(Bfile$BFI$_9~$_5!G=$rMQ$$$k%b!<%I$N%9%$%C%A(B($B%G%U%)(B - $B%k%H$OMQ$$$J$$(B). $B$3$N%b!<%I$O(BIRB$BA4BN$KH?1G$5$l$k(B. + load/require時にirbのfile読み込み機能を用いるモードのスイッチ(デフォ + ルトは用いない). このモードはIRB全体に反映される. --- conf.prompt_c - if$B$ND>8e$J$I(B, $B9T$,7QB3$7$F$$$k;~$N%W%m%s%W%H(B. + ifの直後など, 行が継続している時のプロンプト. --- conf.prompt_i - $BDL>o$N%W%m%s%W%H(B. + 通常のプロンプト. --- conf.prompt_s - $BJ8;zNsCf$J$I$rI=$9%W%m%s%W%H(B. + 文字列中などを表すプロンプト. --- conf.rc - ~/.irbrc$B$rFI$_9~$s$@$+$I$&$+(B? + ~/.irbrcを読み込んだかどうか? --- conf.use_prompt = true/false - $B%W%m%s%W%HI=<($9$k$+$I$&$+(B? $B%G%U%)%k%H$G$O%W%m%s%W%H$rI=<($9$k(B. + プロンプト表示するかどうか? デフォルトではプロンプトを表示する. --- conf.use_readline = true/false/nil - readline$B$r;H$&$+$I$&$+(B? - true: readline$B$r;H$&(B. - false: readline$B$r;H$o$J$$(B. - nil: ($B%G%U%)%k%H(B)inf-reuby-mode$B0J30$G(Breadline$B%i%$%V%i%j$rMxMQ$7$h(B - $B$&$H$9$k(B. + readlineを使うかどうか? + true: readlineを使う. + false: readlineを使わない. + nil: (デフォルト)inf-reuby-mode以外でreadlineライブラリを利用しよ + うとする. --- conf.verbose=T/F - irb$B$+$i$$$m$$$m$J%a%C%;!<%8$r=PNO$9$k$+(B? + irbからいろいろなメッセージを出力するか? --- cb, irb_change_binding [obj] - $B%m!<%+%kJQ?t$N%9%3!<%W$,0c$&?7$?$J(Bbinding$B$K0\$k(B. obj$B$,;XDj$5$l$?(B - $B;~$O(B, $B$=$N(Bobj$B$r(Bself$B$H$9$k(B. + ローカル変数のスコープが違う新たなbindingに移る. objが指定された + 時は, そのobjをselfとする. --- irb [obj] - $B%5%V(Birb$B$rN)$A$"$2$k(B. obj$B$,;XDj$5$l$?;~$O(B, $B$=$N(Bobj$B$r(Bself$B$H$9$k(B. + サブirbを立ちあげる. objが指定された時は, そのobjをselfとする. --- jobs, irb_jobs - $B%5%V(Birb$B$N%j%9%H(B + サブirbのリスト --- fg n, irb_fg n - $B;XDj$7$?%5%V(Birb$B$K%9%$%C%A$9$k(B. n$B$O(B, $B irb # $B%5%V(Birb$B$NN)$A$"$2(B - irb#1(main):001:0> jobs # $B%5%V(Birb$B$N%j%9%H(B + irb(main):001:0> irb # サブirbの立ちあげ + irb#1(main):001:0> jobs # サブirbのリスト #0->irb on main (# : stop) #1->irb#1 on main (# : running) nil - irb#1(main):002:0> fg 0 # job$B$N%9%$%C%A(B + irb#1(main):002:0> fg 0 # jobのスイッチ nil irb(main):002:0> class Foo;end nil - irb(main):003:0> irb Foo # Foo$B$r%3%s%F%-%9%H$7$F(Birb - # $BN)$A$"$2(B - irb#2(Foo):001:0> def foo # Foo#foo$B$NDj5A(B + irb(main):003:0> irb Foo # Fooをコンテキストしてirb + # 立ちあげ + irb#2(Foo):001:0> def foo # Foo#fooの定義 irb#2(Foo):002:1> print 1 irb#2(Foo):003:1> end nil - irb#2(Foo):004:0> fg 0 # job$B$r%9%$%C%A(B + irb#2(Foo):004:0> fg 0 # jobをスイッチ nil - irb(main):004:0> jobs # job$B$N%j%9%H(B + irb(main):004:0> jobs # jobのリスト #0->irb on main (# : running) #1->irb#1 on main (# : stop) #2->irb#2 on Foo (# : stop) nil - irb(main):005:0> Foo.instance_methods # Foo#foo$B$,$A$c$s$HDj5A$5(B - # $B$l$F$$$k(B + irb(main):005:0> Foo.instance_methods # Foo#fooがちゃんと定義さ + # れている ["foo"] - irb(main):006:0> fg 2 # job$B$r%9%$%C%A(B + irb(main):006:0> fg 2 # jobをスイッチ nil - irb#2(Foo):005:0> def bar # Foo#bar$B$rDj5A(B + irb#2(Foo):005:0> def bar # Foo#barを定義 irb#2(Foo):006:1> print "bar" irb#2(Foo):007:1> end nil @@ -304,36 +304,36 @@ irb$B3HD%%3%^%s%I$O(B, $B4JC1$JL>A0$HF,$K(B`irb_'$B$r$D$1$?L>A0$HN>J}Dj5A$5 nil irb(main):007:0> f = Foo.new # - irb(main):008:0> irb f # Foo$B$N%$%s%9%?%s%9$G(Birb$B$r(B - # $BN)$A$"$2$k(B. + irb(main):008:0> irb f # Fooのインスタンスでirbを + # 立ちあげる. irb#3(#):001:0> jobs #0->irb on main (# : stop) #1->irb#1 on main (# : stop) #2->irb#2 on Foo (# : stop) #3->irb#3 on # (# : running) nil - irb#3(#):002:0> foo # f.foo$B$N):002:0> foo # f.fooの実行 nil - irb#3(#):003:0> bar # f.bar$B$N):003:0> bar # f.barの実行 barnil - irb#3(#):004:0> kill 1, 2, 3# job$B$N(Bkill + irb#3(#):004:0> kill 1, 2, 3# jobのkill nil irb(main):009:0> jobs #0->irb on main (# : running) nil - irb(main):010:0> exit # $B=*N;(B + irb(main):010:0> exit # 終了 dim% -= $B;HMQ>e$N@)8B(B += 使用上の制限 -irb$B$O(B, $BI>2A$G$-$k;~E@(B($B<0$,JD$8$?;~E@(B)$B$G$NC`@\;H$C$?;~$H(B, $Bl9g$,$"$j$^$9(B. +irbは, 評価できる時点(式が閉じた時点)での逐次実行を行ないます. したがっ +て, rubyを直接使った時と, 若干異なる動作を行なう場合があります. -$B8=:_L@$i$+$K$J$C$F$$$kLdBjE@$r@bL@$7$^$9(B. +現在明らかになっている問題点を説明します. -== $B%m!<%+%kJQ?t$N@k8@(B +== ローカル変数の宣言 -ruby$B$G$O(B, $B0J2<$N%W%m%0%i%`$O%(%i!<$K$J$j$^$9(B. +rubyでは, 以下のプログラムはエラーになります. eval "foo = 0" foo @@ -342,24 +342,24 @@ ruby$B$G$O(B, $B0J2<$N%W%m%0%i%`$O%(%i!<$K$J$j$^$9(B. --- NameError -$B$H$3$m$,(B, irb$B$rMQ$$$k$H(B +ところが, irbを用いると >> eval "foo = 0" => 0 >> foo => 0 -$B$H$J$j(B, $B%(%i!<$r5/$3$7$^$;$s(B. $B$3$l$O(B, ruby$B$,:G=i$K%9%/%j%W%HA4BN$r%3%s(B -$B%Q%$%k$7$F%m!<%+%kJQ?t$r7hDj$9$k$+$i$G$9(B. $B$=$l$KBP$7(B, irb$B$O2A$7$F$$$k$+$i$G$9(B. $B>e5-$NNc$G$O(B, +となり, エラーを起こしません. これは, rubyが最初にスクリプト全体をコン +パイルしてローカル変数を決定するからです. それに対し, irbは実行可能に +なる(式が閉じる)と自動的に評価しているからです. 上記の例では, evel "foo = 0" -$B$r9T$J$C$?;~E@$GI>2A$r9T$J$$(B, $B$=$N;~E@$GJQ?t$,Dj5A$5$l$k$?$a(B, $Bl9g$O(B, begin...end$B$G3g$C$F(B -$B%P%C%AE*$K> begin ?> eval "foo = 0" @@ -369,14 +369,14 @@ ruby$B$G$O(B, $B0J2<$N%W%m%0%i%`$O%(%i!<$K$J$j$^$9(B. (irb):3 (irb_local_binding):1:in `eval' -== $B%R%"%I%-%e%a%s%H(B +== ヒアドキュメント -$B8=:_$N$H$3$m%R%"%I%-%e%a%s%H$N