ささだです。

 いつのまにか 1.9 では Module を include したとき、ancestors に同じモ
ジュールが重なるようになっていました。

########################
module M
end

class C1
  include M
end

class C2 < C1
  include M
end

p C2.ancestors
#=>
1.8 : [C2, C1, M, Object, Kernel]
1.9 : [C2, M, C1, M, Object, Kernel, BasicObject]
      M が2回現れる
########################

 結構大きな変更だと思うのですが、この仕様について何か意見がある方はいま
せんか。

 導入の理由は、include したことをしっかりと影響を与えるため(上記例では
C2 で M を include したら、C2 のメソッド m より先に M のメソッド m が呼
ばれて欲しい、とか)ということです。

 が、個人的には同じメソッドが super によって 2 回以上呼ばれてしまうのは
どうかな、と思っています。呼ばれても然るべき?

-- 
// SASADA Koichi at atdot dot net