鄭です。
わたなべさん、まつもとさん、ありがとうございます。
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─┘