FXRuby の FXApp#addInput (select(2) みたいなやつ)が 期待通りに動かないため, プログラムが自分で終了した場合に出力表示ができなかった. (gets とかでプログラムを止めておいて,ストップさせればそのときに表示される.)
以下のパッチによってプログラムの終了時に Output View に出力されるようになるけどなんだかなあ.
まつもとさんは「標準入出力があればいい」と言われたので, 最初から標準入力が使えない FreeRIDE はやめにしました. こちらであわせるとも言われたけども, IDE のせいで制限されるのはなにかが狂っている.
というわけで結局のところ, Ruby ではテキストエディタ + 端末が最高の開発環境なのだろう.
patch
--- plugins/rubyide_tools_fox_script_runner/script_runner.rb.orig 2004-10-01 06:22:22.000000000 +0900
+++ plugins/rubyide_tools_fox_script_runner/script_runner.rb 2004-10-13 19:38:31.000000000 +0900
@@ -136,6 +136,17 @@
attach_stdout(@out)
attach_stdin(@inp)
+ Thread.start do
+ begin
+ Process.kill(0, @pid)
+ sleep(0.1)
+ retry
+ rescue Errno::ESRCH
+ ensure
+ stop
+ end
+ end
+
@inp.print "go\n" # resume remote process
@previous_trap_handler = trap("SIGINT") do
@@ -227,7 +238,7 @@
def detach_stdout(fh)
if fh
begin
- print_stdout(fh.sysread(100000)); # flush stdout
+ print_stdout(fh.sysread(100000).gsub!(/SS TT OO PP/,'')); # flush stdout
rescue EOFError
# Do nothing
end
Debian | LOOX T70HN | Linux | Rails | Rast | Ruby | TYPE T VGN-TZ90HS | boat | hardware | music | p | snowboard | software | surfing | tDiary | その他 | ボウリング | 映画 | 家族 | 会社 | 管理 | 丸藤 | 高専 | 散歩 | 仕事 | 自分 | 鼕
"Yuya.Nishida." / 西田 雄也 <yuya at j96 dot org>
テキストエディタだけで端末は要らないんじゃないかと思う今日この頃です。xyzzy で、ワンアクションで別バッファにその出力を表示最強。cgi とかだとそういうわけにはいきませんが。
Emacs とか Emacs もどきとかって単体で テキストエディタ + 端末 を実現しているような気も... :><br>僕の場合だと XEmacs を使っているので,M-x compile を呼んでインタープリタを動かしてますね.こうすると syntax error とかのときに C-x ` で該当箇所に飛んでくれます(TestUnit を使ったときは飛べなかったかも,出力の違いだけなんですが).<br>CGI だと M-x compile のミニバッファで env -- REQUEST_METHOD=GET QUERY_STRING='なんたらかんたら' ruby ... みたいになりそうですね.<br>あ,ちなみに M-x compile はタイプ数が多いので,実際は ruby-mode のときに C-c C-f に割当ててます.
でもEmacsのshell-modeっていまいちだよね。
ruby -e 'p [$stdin.tty?, $stdout.tty?, $stderr.tty?]' は一応 [true, true, true] にはなるんですけど,端末っぽくはないですね.<br>まあ,Ruby インタープリタが動かせるからいいやということで...
xyzzy だと F10 でエラー箇所へジャンプ。<br><br>CGI はそういえば環境変数でなんかいけたんだっけ。忘れてました。<br><br>私は C-2。