On Feb 5, 2008, at 8:59 PM, Clifford Heath wrote: > I'm doing some meta-programming where I want to add the same > instance and class methods to many other existing classes, > which I don't wish to re-superclass. > > include <module> works nicely for including instance methods, > but to make class extensions as well, I need to use extend > with a module that uses class_def (from _why's metaid.rb) > > Is there a way to avoid having to make two separate extension > modules and apply them separately, as in: > > class Foo < ...whatever... > include InstanceExtensions > extend ClassExtensions > ... > end > > What I'd like is to define one extension module having both > class and instance methods, and insert them both into my class > with one statement. If I include and extend the same module, > like Facet's include_and_extend used to do, I get the instance > methods defined on the classes as well as the instances. > > Any thoughts? > > Clifford Heath. > module M module ClassMethods end module InstanceMethods end def M.inherited other other.send :extend, ClassMethods other.send :include InstanceMethods end end a @ http://codeforpeople.com/ -- we can deny everything, except that we have the possibility of being better. simply reflect on that. h.h. the 14th dalai lama