Rubyで、superを使ってスーパークラスで定義されたメソッドにたどり着きたい場合、モジュールがインクルードされていると期待する動作をしない、というのを学んだ。
例)
module Foo def hoge puts "Foo!!" end end class SuperBar def hoge puts "SuperBar!!" end end class Bar < SuperBar include(Foo) def hoge super # Fooのhogeが呼び出される end end
superを使うと、継承元のメソッドを呼び出すもんだと思っていたが、モジュールに同名のメソッドがあると、そちらが使われる。 なので、superで意図しない動きをした場合、includeしているモジュールに同名のメソッドがある可能性も視野にいれる必要がある。