rails clears $LOAD_PATH too aggressively

2 views
Skip to first unread message

rogerdpack

unread,
Jan 14, 2010, 4:10:36 PM1/14/10
to Ruby on Rails: Core
Situation:

At least on my box, rails has the outside potential of making gems
load in the wrong order on 1.9

ex:
[first install test-unit gem v 2.0.6, 1.2.3]

gem 'rails', '= 2.3.5'
$LOAD_PATH.uniq! # active_support (?) does this internally

# now load a gem:
gem 'test-unit', '= 1.2.3'
require 'test/unit/version'
puts Test::Unit::VERSION # should be 1.2.3

The reason for this is that gems on 1.9 relies on gem_prelude to have
left a marker in the load path:

$LOAD_PATH.find{|l| l.instance_variables.include?
(:@gem_prelude_index)}

running this before and after the uniq! shows that uniq! is apparently
accidentally removing said marker.

This causes weirdness when running tests that use the gem 'xxx', '=
1.2.3' style of loading (ex: rspec).

Is this a known bug?
Anybody want to patch this up, or I probably could.
Thanks.
-r

Reply all
Reply to author
Forward
0 new messages