From: Matthew Johnson Date: 2006-08-29T05:34:24+09:00 Subject: Re: Partial append_features? > 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