On Thu, Feb 17, 2011 at 12:53 PM, James French
<James.French / naturalmotion.com> 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

-- 
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/