Hi,

In message "Re: module creation hook method (Re: [OT] Re: initializing instance variables in a module)"
    on Tue, 23 May 2006 15:35:30 +0900, ara.t.howard / noaa.gov writes:

|   harp:~ > cat a.rb
|   class Class
|     WRAPPER = []
|     def inherited other
|       wrapper = WRAPPER.first
|       wrapper.const_set other.name.split(%r/::/).last, other if wrapper
|     end
|     def load file, m
|       wrapping(m){ ::Kernel.load file, wrap = true }
|     end
|     def wrapping m
|       WRAPPER.push m
|       yield
|     ensure
|       WRAPPER.pop
|     end
|   end
|
|   m = Module.new
|
|   Class.load 'b.rb', m
|
|   p m::C
|   p C

|i'd like to do the same for modules.

Thank you for the example.  I am still not sure this is a right tool
for the right purpose, but I do understand what you wanted to do in
the code.  Hidetoshi NAGAI is proposing load_to(file, module) method
to do the thing you wanted.  In my opinion, this is better way to
implement.

|   how about #inherited then?
|
|     harp:~ > ruby -e'  p Module.new.is_a?(Module)  '
|     true

I am not positive for this one.  Since this is misleading people to
feel like modules are inherited from something.

|   or perhaps #defined
|   or perhaps #created

Maybe.  Much better than inherited.  Or maybe invoking initialize at
the module creation is even better.

							matz.