Bob Hutchison wrote: > Thanks! I think a variation of Ara's and Sean's suggestion with your's > Robert cover the various circumstances I've got to deal with. You can automate things a bit (thanks to bitsweat for helping me find singleton_method_added again). Here is a version which enables you to easily control which classes have this feature: module ParentalControls module ClassIncludes def singleton_method_added(sym) class_eval <<-END def #{sym}(*a, &b) self.class.#{sym}(*a, &b) end END end end def self.included(mod) mod.extend ClassIncludes end end class Foo include ParentalControls def self.foo() 42 end end puts Foo.foo puts Foo.new.foo > Cheers, > Bob > > On Oct 18, 2005, at 3:41 AM, Robert Klemme wrote: > >> Bob Hutchison wrote: >> >>> Hi, >>> >>> I'd like to confirm that I cannot use any kind of aliasing to tidy up >>> the following situation: >>> >>> class Junk >>> def Junk.info >>> "blah blah blah" >>> end >>> >>> def info >>> Junk.info >>> end >>> end >>> >>> I'd really like to be able to write the following: >>> >>> puts Junk.info >>> >>> # then somewhere far from there... >>> junk = Junk.new >>> puts junk.info >>> >>> I don't find junk.class.info satisfying, and if that were a module >>> method, then you have to know too much. >>> >>> I guess what I'm trying to do is make class/module methods directly >>> available to instances, and it seems I can't do that (whatever the >>> reason). >>> >>> Any better ideas are more than welcome. >>> >> >> Here's another approach: >> >> module Helper >> def info() 42 end >> end >> class Foo >> include Helper >> extend Helper >> end >> >> >>>> Foo.info >>>> >> => 42 >> >>>> Foo.new.info >>>> >> => 42 >> >> Kind regards >> >> robert >> >> >> > > ---- > Bob Hutchison E