[#42947] CSV — "S_Konno(今野 滋)" <sk@...>
今野です。
11 messages
2006/11/02
[#42948] Re: CSV
— rubikitch <rubikitch@...>
2006/11/02
From: "S_Konno(今野 滋)" <sk@ec.hokudai.ac.jp>
[#42969] iTerm上でのirbの日本語表示に関して — "Kouta Osabe" <kota0919wasabi@...>
はじめまして、長部と申します。
9 messages
2006/11/06
[#42970] Re: iTerm上でのirbの日本語表示に関して
— rubikitch <rubikitch@...>
2006/11/06
From: "Kouta Osabe" <kota0919wasabi@gmail.com>
[#42975] 長い書名を短くするメソッド — keiichi matsunaga <ma2@...>
松永です。
6 messages
2006/11/06
[#43003] Q:SQLite使用時に例外が補足できない? — swec@...
5 messages
2006/11/20
[ruby-list:42968] IRB on a text widget of Ruby/Tk
From:
Hidetoshi NAGAI <nagai@...>
Date:
2006-11-06 08:58:56 UTC
List:
ruby-list #42968
永井@知能.九工大です.
通常のコンソールを使わず,Ruby/Tk のテキストウィジェットを
コンソール代わりにして IRB を動作させるものを
Ruby/Tk のサンプルスクリプトとして作りましたので
お知らせしておきます.
これを最も嬉しく感じるのは,Windows ユーザかもしれません.
Windows のコマンドプロンプトで IRB を動かした場合,
コンソールからの読み込みで I/O がブロックしてしまうため,
Ruby のスレッド切り替えがうまく行われませんでした.
これは Thread.new{loop{sleep 2; p 111}} とでも実行してみれば
簡単に確認できると思います.
要は入出力にブロックしてしまう I/O を用いているのが原因ですので,
ブロックしない入出力を用意してやればいいわけです.
で,Ruby/Tk のテキストウィジェットをその目的に活用しています.
# Ruby/TkORCA の開発の副産物を利用しています.
Ruby/Tk を使ってますので,Ruby/Tk のイベントループも
裏で実行されており,Ruby/Tk のルートウィジェットも
表示された状態で起動されます.
# ルートウィジェットを隠した状態で動作させるようなオプションを
# 追加することは簡単ですが,今は対応していません.
Tcl/Tk の wish をイメージしてもらえばいいかもしれません.
wish のようにシェルコマンド等を呼び出したりはしませんが,
インタラクティブに Ruby/Tk のウィジェットを作成したり
操作したりすることができます.
# Linux では Thread.new{Tk.mainloop} の実行で OK でしたが,
# Windows では I/O のブロックによりダメでした.
なお,バックグラウンドで文字列が出力され続けていたとしても
入力しづらくはならないような工夫 (というほどでもないが) も
行っていますので,Win ユーザ以外にも利点があるかもしれません.
もし興味があれば,お試しください.
お試しいただける場合は,Ruby のソースコードの CVS において,
ext/tk/sample ディレクトリにある tktextio.rb と irbtkw.rbw とを
入手し,同じディレクトリに置いてください.
Ruby/Tk が使える ruby で irbtkw.rbw を実行すれば動作するはずです.
きちんと試したわけではないですが,1.8.2 以降くらいなら
動作するのではないかと思います.
# .rbw という拡張子は Windows 向けです.
tktextio.rb というファイルは以前から存在しましたが,
今回かなりの変更が加えられた結果,以前のものは使えませんので
ご注意下さい.
仕組みが仕組みですので,通常のコンソールに比べれば
非常に動作が遅い (特に1文字ごとに flush などされると悲惨) のですが,
少しでも楽しんでいただけますと幸いです.
--
永井 秀利 (九工大 知能情報)
nagai@ai.kyutech.ac.jp