Zhao Yi wrote:

> If there are some variables defined in a module which is included by 
> more than one files, there will be a warning indicating "warning: 
> already initialized". If ruby only imports once, why such warning is 
> thrown?

I don't know about all cases but I suspect the biggest culprit is require 'foo' 
twice with different paths.

If you have a Rails project, it has a Magic Loader that automagically loads the 
file foo.rb if the interpreter sees a Foo reference and has not seen a 
definition for Foo yet. This is a miracle and a pain in the butt, because a 
subsequent require 'foo' line might not have the same path, and you get the 
double-require issue.

If the problem persists, given a warning on Bar, write:

   unless defined? Bar
     Bar = 42 # or whatever
   end

That's a total hack, but it works well enough.

-- 
   Phlip