鄭です。

わたなべさん、まつもとさん、ありがとうございます。

Widget の生成の構文が理解できるようになったら、だいぶ推測が
つくような気になってきました。

new をイテレータとして呼ぶと、ブロックパラメータに出来たばかりの
オブジェクトを渡してくれて、さらにブロックのなかでは、メソッドが
関数形式で呼べる(つまり self がセットされている? こういう状況を
なんてよぶんでしょう?)んですね。

出来た widget オブジェクトの設定オプションは、他のメソッド名とぶつからなければ
メソッドとしても呼べるのですね。

	b = TkButton.new(nil) { text("Off"); command( proc{....} ) }
	......
	b.text("On")
	b.command( proc{ .... })

ところで、このときの戻り値を self にしてはどうでしょうか?
そうすると、

	b.text("On").command( proc{ .... } )

なんて連鎖できて、

	b.configure( "text"=>"On", "command"=>proc{..} )

にくらべて、ちょっと書きやすくなる気がするのですが。

-- 
                         ┌─鄭  明毅───────────────────┐
                         └──tei / harmony.co.jp──tei / mirage.linc.or.jp─┘