なかだです。

At Wed, 13 Aug 2003 00:23:52 +0900,
Yukihiro Matsumoto wrote:
> |> > スーパークラスのクラスメソッドが継承されるように、includeされた
> |> > モジュールのクラスメソッドも継承されるべき、ということでしょう
> |> > か。
> |> 
> |> 理解できてないので、「べき」かどうかは全くわかりません。
> |> class に include する場合にはモジュール内に別のモジュールを
> |> include できるので、類推でやってみたけど出来なかったまでです。
> |
> |その類推が合理的かどうかということですね。個人的にはこれはでき
> |ていいのではないかと思います。
> 
> えーと、確か以前に検討して「できない方が良い」と思った記憶が
> あります。で、例によって理由は覚えていないんですが、今改めて
> 考えると、モジュールの特異メソッドはクラスの特異メソッド(ク
> ラスメソッド)ほど取り込みが自明でないからではないかと。

なるほど。ではこの場合、継承させたい特異メソッドの定義に
module_functionを使うことのほうが不適切?

module Foo
  extend self
  def hi;  "hi";  end
  def there;  "there";   end
end
module Bar
  include Foo
  extend self
  def hi;  'HI';  end
end

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦