Question about modules

Hi group,

I have a main.rb file which is the entry point for a system. It loads a
lot of other ruby files using ‘require’. I would like to put this whole
system inside a module ‘X’ basically for namespacing purposes.

My question is: is it possible to just place the whole of main.rb in
module X and then expect all classes and methods etc that get created
via require to be automatically imported into that module (ie just
specify the module once in main.rb)? It would be great if this was
possible as I wouldn’t have to wrap every single file in module X
statements (and wouldn’t that create a nested module X inside the outer
module X??)

Any help much appreciated,
James

On Thu, Feb 17, 2011 at 12:53 PM, James F.
[email protected] wrote:

Hi group,

I have a main.rb file which is the entry point for a system. It loads a lot of
other ruby files using ‘require’. I would like to put this whole system inside a
module ‘X’ basically for namespacing purposes.

My question is: is it possible to just place the whole of main.rb in module X
and then expect all classes and methods etc that get created via require to be
automatically imported into that module (ie just specify the module once in
main.rb)?

No.

It would be great if this was possible as I wouldn’t have to wrap every single
file in module X statements (and wouldn’t that create a nested module X inside the
outer module X??)

No. You have to explicitly nest every individual file unless you want
to start using eval or other tricks to save the work of typing.

Actually for the typing you may be able to do something like this
(untested):

find lib/x -type f -name *.rb -print0 | xargs -r0 -n 1 ruby -p ‘-i~’
-e ‘BEGIN { puts “module X” }; END { puts “end”}’

Kind regards

robert