From: Joel VanderWerf Date: 2004-02-03T13:05:34+09:00 Subject: Re: Modules defining class methods to include? Tim Bates wrote: > Joel VanderWerf wrote: > >> class Bar >> include Foo >> extend Foo >> end > > > irb(main):017:0> Bar.new.foo > => "foo_instance" > irb(main):018:0> Bar.foo > => "foo_instance" > > Not what I wanted. > Oops. But you can do something like this: module Foo def foo "foo_instance" end module Sub def foo "foo_class" end end extend Sub # so Foo.foo still works def Foo.included(aModule) super aModule.instance_eval do extend Sub end end end class Bar include Foo end p Bar.new.foo p Bar.foo