Phlip
1/5/2009 5:56:00 AM
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