けいじゅ@日本ラショナルです.

In [ruby-list :03719 ] the message: "[ruby-list:3719] Re: new sync.rb
release ", on Aug/20 13:53(JST) matz / netlab.co.jp (Yukihiro Matsumoto)
writes:

>まつもと ゆきひろです

>|1. includeをoverrideするのはちょっと...
>|
>|以前, extendと同様にincludeもフックが欲しいという話しがあったのですが, 
>|結局採用になりませんでした. このような大きな変更にはrubyの作者の意向に
>|したがった方が良いんじゃないかなあ... という思いがあります.
>
>rubyとしてincludeフックを置かないのはまあそれなりに理由があ
>る(はず)なのですが,あるクラスにおいてincludeを再定義するの
>はアリではないかなと思います.

あるクラスのincludeを再定義してもしょうがないんですよね...

あるクラスがインクルードされる時に何らかのことを行いたいので...
includeを再定義するとなると, 前田さんの見たくClass#includeをoverrideし
なくてはなくなります.

>ただ,includeってのはわりと性質が静的ですし,さらにサブクラ
>スに対して実行されるわけでもないので,確かにおすすめしません
>けどね.

まあ, そうなんですよねえ...

でも, インクルードされるモジュールもインクルードするクラスに応じた初期
化をしたいこともあるわけで...

>|# やはり, include-hookが欲しいなあ >>> 松本クーン!!
>
>というわけで,欲しければinclude-hookを実行するようなinclude
>を再定義したモジュールを用意して,そっちを先にincludeすると
>いうのはどうでしょう.

うーん. これって, あるモジュールをインクルードしたければ, まず, こっち
をインクルードしてね. って頼むわけですよね?

module Foo
  include NewInclude
  include Bar
  :

なんか美しくないなあ...

include-hook見たいなものではなくて, extendと同様な実装にするというのは
駄目?

foo.extend(Bar) -> Bar.extend_object(foo)

となっていますよね? 同様に

class Foo
  include Bar   -> Bar.include_module(Foo)

というのは?

# これならフックじゃないから許されない?

__
..........................................石塚 圭樹@日本ラショナル...
----------------------------------->> e-mail: keiju / bc.mbn.or.jp <<---