On Sun, 25 Sep 2005, Michael Roth wrote:

> Hello all,
>
> I'm a little bit new to the wonderful world of ruby and have a small
> problem. I would like to mixin a module method:
>
>  module M
>    def M.foobar id
>      puts "Hello Ruby: #{id}"
>    end
>  end
>
>  class C
>    include M
>    foobar :example
>  end
>
> But that doesn't work. I'm trying to write some helper class methods
> like attr_accessor and friends.
>
> I don't like to write
>
>  class C
>    include M
>    M.foobar :example
>  end
>
> because 'M' has to many chars to type...
> My helper class methods should look like attr_accessor and friends.
>
> What is the right way to solve this problem?

i think this is clearest for people reading your code:

   module M
     module InstanceMethods
     end
     module ClassMethods
     end
     def self::included other
       other.module_eval{ include InstanceMethods }
       other.extend ClassMethods
       other
     end
   end

   class C
     include M
   end

but it's an opinion...

-a
-- 
===============================================================================
| email :: ara [dot] t [dot] howard [at] noaa [dot] gov
| phone :: 303.497.6469
| Your life dwells amoung the causes of death
| Like a lamp standing in a strong breeze.  --Nagarjuna
===============================================================================