[#7288] plain2 + popmail — tateishi@...
立石です。
わたなべです.
[#7292] Exception in ruby — TAKAHASHI Masayoshi <maki@...>
高橋です。
[#7315] recovery of exception — tateishi@...
立石です。
[#7330] sub, gsub bug? — 金子尚史 <wbs01621@...>
はじめまして、金子と申します。
[#7334] — Kazutomi Ueda <ueda@...>
上田と申します。
[#7342] '$' in regexp — TAKAHASHI Masayoshi <maki@...>
高橋です。こんばんは。
[#7354] def foo=(a,b) — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#7356] Q: jcode.rb tr(String + nil) — WATANABE Tetsuya <tetsu@...>
ruby-1.1b9_08 (07 からみたいですが)での話です。
まつもと ゆきひろです
さっそく対応していただきてありがとうございます。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#7376] [Q] Thread — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
[#7386] Dir.foreach — "Hiroshi Ishikawa(NIMS)" <h-isikaw@...16.nims.nec.co.jp>
いしかわ@NIMS です。
[#7388] inf-ruby.el — senda@...
[#7410] irb — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#7442] telnet.rb — Wakou Aoyama <wakou@...>
青山です。
[#7464] subscribe for ruby-list — Kazuhiro HIWADA <hiwada@...>
ひわだといいます。はじめまして。
[#7471] scope — Wakou Aoyama <wakou@...>
青山です。
わたなべです.
青山です。
[#7492] Tcl/Tk fileevent — NAGAI Hidetoshi <nagai@...>
永井@知能.九工大です.
きくたに@ぷ〜たろ〜です。
永井@知能.九工大です.
[#7500] List on List — WATANABE Hirofumi <watanabe@...>
わたなべです.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
「Perlのmapをrubyでどう書くか」というネタはMLに入る前から暖めていたの
けいじゅ@日本ラショナルソフトウェアです.
わたなべです.
まつもと ゆきひろです
[#7509] クラスの変更 — Mitsuru Ogino <ogino@...>
荻野といいます。すみませんが、ご指導ください。プログラミング初心者です。
[#7582] Re: List on List — Makoto Nukui <gnue@...>
こんにちは、GNUE(鵺)です。
[#7591] How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...>
えーと、既に「Perlのmapをrubyでどう書くか」という話題がで出てしまった
わたなべです.
原です。
From: Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp>
原です。
前田です。
From: shugo@po.aianet.ne.jp (Shugo Maeda)
まつもと ゆきひろです
原です。
[#7622] dir search — Kikutani Makoto <kikutani@...>
きくたにです。
[#7648] new irb release — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#7671] How to install beta versions — Shin-ichiro HARA <sinara@...>
原です。
まつもと ゆきひろです
わたなべです.
>>>>> "W" == WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp> writes:
原です。
わたなべです.
From: WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
まつもと ゆきひろです
From: matz@netlab.co.jp (Yukihiro Matsumoto)
まつもと ゆきひろです
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
[#7713] Re: private and protected — Makoto Nukui <gnue@...>
Yukihiro Matsumoto:
[#7723] shared library of ruby — ttate@...
立石です。
[#7727] Re: [ruby-dev:2503] library for Tcl/Tk ext-package — NAGAI Hidetoshi <nagai@...>
永井@知能.九工大です.
永井@知能.九工大です.
永井@知能.九工大です.
[#7729] mail index sort by From: — Kikutani Makoto <kikutani@...>
きくたにです。
ごとけんです
きくたにです。
はじめまして、道村といいます。
ごとけんです
ごとけんです
わたなべです.
原です。
ごとけんです
原です。
[#7764] reference manual for ruby 1.1b9_16 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
黒田です。
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
わたなべです.
[ruby-list:7382] Re: call for scripts
西@九大です。
From: matz@netlab.co.jp (Yukihiro Matsumoto)
> 標準ライブラリにある部分を除いて100〜200行程度以下
> # 必要な部分を標準ライブラリに追加してしまうのはアリです.
Ruby の*簡易*クラスブラウザを作ってみました。
まだ間に合うようでしたら、エントリさせて下さい。
あ、"tkscrollbox" を読み込んでいますが、いいんでしょうか?
> 簡単な使い方の説明付き
% ./TkSimpleClassBrowser.rb [ClassName]
クラス名を引数(省略可)として起動します。クラス名をダブルクリックすると、
メソッドが表示され、あれば下位の階層も表示します。メソッドをクリックし
ても何もおきません(寂しいです)。"Control-q" で終了します。
最初は、実用性を重視していたのですが、予想より Tk の敷居が高く、「どれ
だけ短くなるか(Simple)」を目標にした第2の人生が始まり現在に至る、です。
「ちょっとメソッド名を忘れてしまった」時ぐらいには役に立つと思います。
もう少し GUI と Ruby を勉強して、本格的なものを作りたいです。
それでは。
------------------------------------------------------------------
九州大学大学院システム情報科学研究科 情報工学専攻 博士後期課程二年
西 和則 ( e-mail: kazunori@swlab.csce.kyushu-u.ac.jp )
------------------------------------------------------------------
#!/usr/local/bin/ruby
### TkSimpleClassBrowser.rb - Ruby Simple Class Browser with Tk
### by Kazunori Nishi <kazunori@swlab.csce.kyushu-u.ac.jp>
### [usage] TkSimpleClassBrowser.rb [InitialClassName]
### Type "Control-q" to exit the program
require "tkscrollbox"
### Global Variables #################################################
$initial_class = ARGV .shift || 'Object'
$top_widget = TkFrame .new
$widgets = {}
$sub_classes = {}
### Functions ########################################################
def hierarchy_label (a_class, label = '+')
($sub_classes[a_class] ? label : ' ') + " #{a_class}"
end
def update_widget (name, items)
$widgets[name] .delete 0, 'end'
$widgets[name] .insert 'end', "*** #{name}(#{items .length}) ***"
items .each do |item|
$widgets[name] .insert 'end', hierarchy_label(item)
end
end
def update_class (class_name)
begin
a_class = eval(class_name)
class_methods = a_class .methods + a_class .singleton_methods
update_widget('Class Method', class_methods .sort)
update_widget('Instance Method', a_class .instance_methods .sort)
rescue
update_widget('Class Method', ["[BUG???]", "#{$!}"])
end
end
def update_class_with_hierarchy (class_name)
$widgets['Class'] .insert 'end', "*** Class ***"
begin
(nest = eval(class_name) .ancestors) .reverse .each_with_index do |c, i|
$widgets['Class'] .insert 'end', ' ' * i +
hierarchy_label(c .to_s, i == nest .length - 1 ? '+' : '-')
end
rescue
update_widget('Class Method', ["[BUG???]", "#{$!}"])
end
end
### Main Routine #####################################################
ObjectSpace .each_object(Class) do |a_class|
class_name, is_module = a_class .to_s .split('::')
parent = is_module ? class_name : a_class .superclass .to_s
client = is_module ? a_class .to_s : class_name
$sub_classes[parent] = (($sub_classes[parent] || []) << client) .compact
end
for name in ['Class', 'Class Method', 'Instance Method']
$widgets[name] = TkScrollbox .new($top_widget) {
relief 'raised'; width 30; height 20
pack('side'=>'left')
}
end
$widgets['Class'] .bind "Double-Button-1", proc {
this = $widgets['Class']
a_class = (selection = (this .get 'active')) .split .pop
prefix = ' ' * (selection .index(a_class) / 2)
if (pos = (this .index 'active') .to_i) > 0
update_class(a_class)
case (selection .split)[0]
when '+'
this .insert pos, selection .sub('\+','-')
this .delete pos + 1
$sub_classes[a_class] .sort .reverse .each do |c|
this .insert pos + 1, prefix + hierarchy_label(c)
end
when '-'
this .insert pos, selection .sub('-','+')
this .delete pos + 1
while ((this .get pos + 1)[prefix .length, 1] =~ /[ +-]/)
this .delete pos + 1
end
end
end
}
$top_widget .bind "Control-q", proc {exit}
$top_widget .pack('fill'=>'both')
$top_widget .focus
update_class_with_hierarchy($initial_class)
Tk.mainloop