けいじゅ@日本ラショナルソフトウェアです.
rbcの新版irbをリリースします. まだドラフト版ですが, 大部機能が固まって
きたので, 興味がある方は使ってみて下さい.
irb-0.1.1.5.tgz
です(in.commingにおきました)
強化機能は,
1. エラー出力
2. マルチタスク機能
2.1 サブirb
2.2 コンテキストのスイッチ機能
2.3 ジョブの管理機能
3. tracer機能
4. ^Cで入力中断
あ. 制約がありました.
ruby-1.1b9_08以降でないと動作しません. あと, readlineを使う場合は
readline-1.7を使って下さい.
あと, .irbrcはrbcと互換性がないので, 気をつけて下さい(__;;;
使い方(READMEから)
---------------------------------------------------------------------
1. irbとは?
irbはinteractive rubyの略です. rubyを標準入力から簡単に入力するための
コマンドです.
2. 使い方
irbを実行すると, 以下のようなプロンプトが表れてきます. 後は, rubyの式
を入れて下さい.
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>
3. irbのインストールの仕方
RUBYLIBの直下で, irb-**.tgz を展開して下さい. irbというサブディレクト
リの下に, irb関連のファイルを展開します.
# cd /usr/local/lib/ruby
# tar zxvf irb-**.tgz
その後, 適当なシェルパス上のディレクトリで irbを RUBYLIB/irb/irb.rbに
シンボリックリンクします.
# ln -s RUBYLIB/irb/irb.rb irb
# シンボリックリンクできない場合は, irb.rbをコピーまたは適当な位置に移
# 動して下さい.
これで, インストールは完了です.
4. コマンドオプション
irb.rb [options] file_name opts
options:
-f ~/.irbrc を読み込まない.
-m bcモード(分数, 行列の計算ができます)
-r load-module ruby -r と同じ.
--inspect 結果出力にinspectを用いる(bcモード以外はデ
フォルト).
--noinspect 結果出力にinspectを用いない.
--noreadline readlineライブラリを利用しない(デフォルト
ではreadlineライブラリを利用しようとする).
-d<n> デバッグデバッグレベルをnに設定する.
(利用しない方が良いでしょう)
irb起動時に~/.irbrcを読み込みます. オプションを設定する代わりに, 以下
のコマンドでもデフォルトの動作を設定できます.
IRB.conf[:RC]=true
IRB.conf[:LOAD_MODULES]=[]
IRB.conf[:IRB_NAME]="irb"
IRB.conf[:MATH_MODE]=false
IRB.conf[:USE_READLINE]=true
IRB.conf[:USE_TRACER]=false
IRB.conf[:USE_LOADER]=false
IRB.conf[:IGNORE_SIGINT]=true
IRB.conf[:IGNORE_EOF]=false
IRB.conf[:PROMPT_I]="%s(%s):%03d:%d> "
IRB.conf[:PROMPT_S]="%s(%s):%03d:%d%s "
IRB.conf[:PROMPT_C]="%s(%s):%03d:%d* "
IRB.conf[:DEBUG_LEVEL]=0
IRB.conf[:VERBOSE]=true
5. コマンド
exit, quit, irb_exit 終了する. サブirbの場合, そのサブirbを終了
する.
conf irbの現在の設定を表示する.
conf.inspect_mode=T/F/nil
インスペクトモードを設定する. nilの時は,
通常モードであれば, inspect modeとなり,
mathモードの時は, non inspect modeとなる.
conf.use_loader=T/F load/require時にirbのfile読み込み機能を用
いるモードのスイッチ(デフォルトは用いない).
conf.ignore_sigint=T/F ^Cが入力された時の動作を設定する.
false時は, irbを終了する. trueの時の動作は
以下のようになる:
入力中: これまで入力したものをキャンセルし
トップレベルに戻る.
実行中: 実行を中止する.
conf.ignore_eof=T/F ^Dが入力された時の動作を設定する.
trueの時は^Dを無視する, falseの時はirbを終
了する.
conf.verbose=T/F irbからいろいろなメッセージを出力するか?
conf.debug_level=N irb用のデバッグレベルの設定
su, irb_su 新たなbindingに移る.
irb [obj] サブirbを立ちあげる. objが指定された時は,
そのobjをselfとする.
jobs, irb_jobs サブirbのリスト
fg n, irb_fg n サブirbをスイッチする. nはirb番号かスレッ
ドのオブジェクトかirbオブジェクト
kill n, irb_kill n サブirbをkillする.
6. システム変数
_ 前の計算の実行結果を覚えている.
7. 例
以下のような感じです.
dim% ruby irb.rb
irb(main):001:0> irb # サブirbの立ちあげ
irb#1(main):001:0> jobs # サブirbのリスト
#0->irb on main (#<Thread:0x400fb7e4> : stop)
#1->irb#1 on main (#<Thread:0x40125d64> : running)
nil
irb#1(main):002:0> fg 0 # jobのスイッチ
nil
irb(main):002:0> class Foo;end
nil
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をスイッチ
nil
irb(main):004:0> jobs # 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がちゃんと定義さ
# れている
["foo"]
irb(main):006:0> fg 2 # jobをスイッチ
nil
irb#2(Foo):005:0> def bar # 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 # Fooのインスタンスでirbを
# 立ちあげる.
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 # f.fooの実行
1nil
irb#3(#<Foo:0x4010af3c>):003:0> bar # f.barの実行
barnil
irb#3(#<Foo:0x4010af3c>):004:0> kill 1, 2, 3# jobのkill
nil
irb(main):009:0> jobs
#0->irb on main (#<Thread:0x400fb7e4> : running)
nil
irb(main):010:0> exit # 終了
dim%
__
..............................石塚 圭樹@日本ラショナルソフトウェア...
----------------------------------->> e-mail: keiju / rational.com <<---