Logan Capaldo
8/30/2006 10:41:00 PM
On Aug 30, 2006, at 6:10 PM, Joel VanderWerf wrote:
> Logan Capaldo wrote:
>> On Aug 30, 2006, at 4:22 PM, Joel VanderWerf wrote:
>>>
>>> However, you say the classes are anonymous. How are you getting B
>>> under
>>> the scope of A in that case?
>>>
>> mod1 = Module.new
>> mod2 = nil
>> mod1.module_eval{ mod2 = Module.new }
>
> I don't think mod2 is nested in mod1, in any sense. There's no
> reason for ruby to keep track of the modules that are created
> during the execution of the block that accompanies the
> mod1.module_eval call and to associate them with mod1. The only
> reason B is associated with A in
>
> module A
> module B; end
> end
>
> is that they are lexically related. (More precisely the constant
> "B" is in the namespace belonging to the class A.)
>
> Maybe someone else has a more definitive answer?
>
VALUE rb_define_module_under(VALUE outer, const char *name)
You could use this to define a named module under an anonymous module.
> --
> vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407
>