Trans wrote:
> To answer my own question:
>
>   module PromoteSelf
>     def singleton_method_added( *args )
>       p args
>     end
>   end
>
>  module String::Format
>     class << self
>       include PromoteSelf
>
>       def jumble( obj, x, y )
>         p obj+x+y
>       end
>     end
>   end
>
> But I'll be honest with you. I find it odd. Why would'nt the later
> work? It almost seems like it would have to be purposfully disallowed.

Module#method_added is called when a new method is added to the
module's collection of methods. When you define a method as
SomeModule.method_name, you're not adding a method to the module's
collection, you're adding a singleton method to the SomeModule object.
You could do the same for any object, which is why Object contains
singleton_method_added.