On 15 Jan 2008, at 17:40, Robert Klemme wrote:
> Because of the position in the inheritance hierarchy:
>
> irb(main):001:0> module Bar;end
> => nil
> irb(main):002:0> class Foo
> irb(main):003:1> include Bar
> irb(main):004:1> end
> => Foo
> irb(main):005:0> Foo.ancestors
> => [Foo, Bar, Object, Kernel]
>
> Methods defined in Foo are always found before their counterparts  
> in included modules.  Consequently you can override super class  
> methods with a module.

Aha, of course.  Thank you for the clear explanation.

I really should have worked that one out myself!

With regards,
Andy Stewart

-------
http://airbladesoftware.com