Joel VanderWerf wrote:

> Another reason not to use method_missing:
> 
>   Derived.new.bar     # ==> inside Derived#foo
> 
>   class Object
>     def bar
>       puts "inside Object#bar"
>     end
>   end
> 
>   Derived.new.bar     # ==> inside Object#bar
> 
> The superclass has overriden the subclass!

Ah, this is an interesting consequence I hadn't thought of. For my 
particular application I'm not concerned about this happening and, if 
someone does it, that's their problem ;)

But you're correct that it's flawed for the general case...