お世話になっております。 A.中村です。

On Wed, 15 Dec 1999 12:31:19 +0900
"NAKAMURA, Hiroshi" <nakahiro / sarion.co.jp> wrote:

>moduleでsuperすると,何が起こるんでしょう?いや,親クラスの同名メソッド呼び出しが起こるんでしょうけど,moduleでそうする意図は?

moduleのincludeって、クラスの継承関係への「挿入」なので、
#っていう説明は本の後ろでしたっけね(^^;
superしとかないと親クラスの同名メソッドをブロックしちゃう
恐れがあるんで、意地悪したいときでなければ(笑)superする
ほうがいいかなと思います。

新規の機能の追加であることが「判りきっている」ときは
moduleにsuperなぞ要らないですが、

module Streamable
  def close; end
end

class FileStream<File
  include Streamable
end

a=FileStream.new(.....)
.....
a.close #ん?File#closeしないぞ?

ってなことになっちゃうかなと。
#って理解で、いいんですよね?

まぁいずれにせよ、Rubyのmoduleをこういう用途に使うのは
間違ってるってゆーかなんの意味もないことなんで、
イイんですが…
#てなわけで、「不要論」は俺も反対出来ないっす。


でも最終的には(Rubyに、とは言いませんが)「作法の共有」
という仕掛けは有ったほうがいいような気がする。