module A
def foo
if super.respond_to? :foo
puts 'super responded to :foo'
end
end
end
class Lab
include A
end
puts Lab.ancestors.inspect #=> Lab, A, Object, Kernel, BasicObject]
Lab.new.foo
foo': super: no superclass method
foo' for # (NoMethodError)
この場合、super への呼び出しは to に行きObject
、次に to に行きBasicObject
、最後に false が返されると想定していました。
なぜ私は得ているのno superclass method foo
ですか?
Ruby 1.9.3 を使用しています。