Matthew Johnson
8/28/2006 8:34:00 PM
> I'm looking for a way to copy methods from a Module, or specify
> more directly which methods get included in a class. More or less,
> I would like to be able to do something like this:
>
> module Foo
> def do_one_thing
> end
> def do_second
> end
> def do_third
> end
> end
>
> class Bar
> append_from Foo, :do_second, :do_third
> end
>
> or
> module Baz
> append_from Foo, :do_second, :do_third
> end
>
> and I would have a module Baz which could be included, without
> having do_one_thing included.
>
> Is this possible in Ruby right now? My first approach was to get
> the UnboundMethod instance_method from the Module, but I couldn't
> find a way to attach these to an unrelated class since
> UnboundMethod must have a is_a?-relationship with the binding object.
The closest I have seen to this is generating a module on the fly
(with Module.new) that includes the Module and then undefs all the
methods you don't want. That gives you a custom module to include
that will have only the methods you are after.
Matthew