けいじゅ@日本ラショナルソフトウェアです. In [ruby-list :16890 ] the message: "[ruby-list:16890] Re: RubyWin ", on Sep/18 20:51(JST) Masaki Suketa writes: >助田です. >Version 0.0.0.2a には,超簡易インタラクティブモードがついてます. >まだまだ irb の足元にも及びませんがそれを目指す第一歩ということで. > ># 標準入出力を完璧にサポートしてしまえば irb がそのまま ># 使えそうな気もするんですが・・・. 入力に関しては, 変更が可能になっています. irb/input-method.rbのIRB::InputMethodのサブクラスを適当に定義して下さい. RubyWinからirbの起動は irb.rbをrequireしたあと, IRB::IRB.start を適当に 変更したメソッドを実行してください. module IRB def IRB.start_on_rubywin bind = workspace_binding main = eval("self", bind) im = 適当なInputMethod irb = Irb.new(main, bind, im) @CONF[:IRB_RC].call(irb.context) if @CONF[:IRB_RC] @CONF[:MAIN_CONTEXT] = irb.context trap("SIGINT") do irb.signal_handle end catch(:IRB_EXIT) do irb.eval_input end print "\n" end end 上記のような感じでしょうか... ただ, 今のirbは起動しちゃうと処理が戻って きませんので, 別スレッドとして実行する必要があるでしょうね. >> また、デフォルトの設定では >> puts "hello, world!" >> と書けば、 >> RUBYWIN.puts "hello, world!" >> の動作になるとか。 > >ソース見ればわかることなんですが,最初の1行目で >include RUBYWIN >とやれば,それ以降は >puts "hello, world!" >で大丈夫だったりします. >(RUBYWIN はクラスでなくてモジュール) > >ただ,この puts の仕様は深く考えないまま適当に >作っちゃったので(近い)将来見直すかも知れません. >(だからドキュメントにも書いてません.) そうそう. irb出力は標準出力にだしちゃうので, module IRB include RUBYWIN class Irb include RUBYWIN end end を行なう必要がありますね. # うーん. 本当にうまく動作するのだろうか... __ ..............................石塚 圭樹@日本ラショナルソフトウェア... ----------------------------------->> e-mail: keiju / rational.com <<---