前田です。

On Wed, 20 Aug 97 12:17:36 +0900
In message "[ruby-list:3711] Re: new sync.rb release"
keiju / bc.mbn.or.jp (石塚圭樹) wrote:

|1. includeをoverrideするのはちょっと...
|
|以前, extendと同様にincludeもフックが欲しいという話しがあったのですが, 
|結局採用になりませんでした. このような大きな変更にはrubyの作者の意向に
|したがった方が良いんじゃないかなあ... という思いがあります.

やっぱりそうですよね。

|class Spokesperson < String
|   Sync_m.included_to self
|   # or inclued Sync_m.includable
|
|こんな感じのインターフェイスになってしまいますが...

うーん、ふつうにincludeしただけで動くのが理想なのですが...。
[ruby-list:3725]のincludeもextendみたいにする案に一票(^^;

|2. superが使える
|前田さんのプログラムは, include時にnewをoverrideしていますが, ここまで
|は必要ないんじゃないでしょうか?
|
|通常, インスタンスの初期化時に, 上位クラスでの初期化を行いたい場合は 
|superを使うことになっているので, superで初期化できるようになっていれば
|文句はないと思います.

そう思ったのですが、自分のコードみたらsuper呼んでないのがけっこう
あったりしまして(^^;

|class Spokesperson < String
|  Sync_m.included_to self
|
|  def Spokesperson.new
|    super.new.initialize
|  end
|  # String newはinitializeしてくれないらしいので追加, 一般クラスなら
|  # ば必要なし
|
|  #def ininitalize
|  #  super
|  #end
|  # newをoverrideしているので必要なし. 一般クラスの場合こちらが必要.
|end  
|
|というインターフェイスでは不満でしょうか?

そうですね、newを再定義したりするとなんか不安ですし、こちらの
方がよさそうな気がします。

-- 
前田 修吾