まつもと ゆきひろです

In message "[ruby-dev:16273] Re: pstore.rb and sync.rb"
    on 02/03/08, Minero Aoki <aamine / mx.edit.ne.jp> writes:

|メソッドではなくブロックにして、オブジェクト側で instance_eval
|するのはどうでしょうか。たとえばモジュール側では

ふうむ。

|利点は三点です。
|
|  * 初期化ブロック定義のインターフェイスがメソッドなので、
|    定義を簡単に (かつ特別扱いすることなく) 検知できる。

これはありますよね。

|  * module_function では、モジュール自体と include した
|    オブジェクトの両方を同じように初期化したいことがある。
|    ブロックならば使いまわし可能。

そのかわり「selfのすりかえ」という難しい問題をまた増やすこと
になります。また、(ライブラリならともかく)coreにそれを取り込
むことにもちょっと(だいぶ)抵抗が。

|  * ブロックならば先に集めておくことができる。
|    (オブジェクト生成のたびに ancestors を
|     たどってチェック……というコストをなくせる)

これは動的にincludeされた時のことなどを思うと難しいかも。

ああ、文句ばっかり。。。

                                まつもと ゆきひろ /:|)