Hi!
I have been bitten by a silent failure stemming from, I think, a
miscommunication between Rails and RubyGems with regards to the
LoadError exception. In the Rails test_helper.rb file we have a
require 'test_help' which in turn requires other files, for example
the application.rb file. In my application.rb file I was trying to
access a helper file that didn't exist. From within helper.rb Rails
would then throw a LoadError. RubyGems would catch this LoadError and
apparently interpret it as "test_help" could not be loaded (which is
not what Rails was trying to say at all). RubyGems would find
"test_help" in the Rails gem and try to do a __require "test_help".
Ruby would then return false and not load the file since it had
already been loaded and thus the silent failure was a reality. A
simple way to solve the issue would be to log an error message to the
Rails log when the helper file is not found.
The reason I am sending this email is that I wonder under which
circumstances "__require path" inside the require method in RubyGems
would/should return false? I mean if the file first could not be
found by Ruby, and RubyGems finds the file and tells Ruby about it
(by adding it to the load path), and Ruby then won't load the file,
isn't there a logical inconsistency? Or is the thinking that some
other thread could have loaded the file in the meantime? My second
question is if you think Rails is misusing the LoadError class here?
Thanks in advance!
Cheers
Peter
----------------------------
Peter Marklund
Garvar Lundins Gränd 7
11220 Stockholm
Sweden
Mobile Phone: +46-(0)70-4164857
Home Phone: +46-(0)8-50091315
Skype: peter_marklund
IM: AIM - petermarklund, MSN - [EMAIL PROTECTED], Yahoo -
peter_marklund2002
http://marklunds.com
----------------------------
_______________________________________________
Rubygems-developers mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rubygems-developers