diff options
author | rick <technoweenie@gmail.com> | 2008-06-08 14:04:04 -0400 |
---|---|---|
committer | rick <technoweenie@gmail.com> | 2008-06-08 14:04:04 -0400 |
commit | faad1e32a8ab81890018ba89d191607778830cf0 (patch) | |
tree | a7d07b839fae5004fac164cdceb9d76b9a568af2 /railties/lib/rails/plugin/locator.rb | |
parent | 138adbf156905f5cc6669ba33dd94802c82514d9 (diff) | |
download | rails-faad1e32a8ab81890018ba89d191607778830cf0.tar.gz rails-faad1e32a8ab81890018ba89d191607778830cf0.tar.bz2 rails-faad1e32a8ab81890018ba89d191607778830cf0.zip |
Fix discrepancies with loading rails/init.rb from gems. [#324 state:resolved]
Diffstat (limited to 'railties/lib/rails/plugin/locator.rb')
-rw-r--r-- | railties/lib/rails/plugin/locator.rb | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/railties/lib/rails/plugin/locator.rb b/railties/lib/rails/plugin/locator.rb index f06a51a572..79c07fccd1 100644 --- a/railties/lib/rails/plugin/locator.rb +++ b/railties/lib/rails/plugin/locator.rb @@ -78,8 +78,9 @@ module Rails # a <tt>rails/init.rb</tt> file. class GemLocator < Locator def plugins - specs = initializer.configuration.gems.map(&:specification) - specs += Gem.loaded_specs.values.select do |spec| + gem_index = initializer.configuration.gems.inject({}) { |memo, gem| memo.update gem.specification => gem } + specs = gem_index.keys + specs += Gem.loaded_specs.values.select do |spec| spec.loaded_from && # prune stubs File.exist?(File.join(spec.full_gem_path, "rails", "init.rb")) end @@ -91,7 +92,7 @@ module Rails deps.add(*specs) unless specs.empty? deps.dependency_order.collect do |spec| - Rails::GemPlugin.new(spec) + Rails::GemPlugin.new(spec, gem_index[spec]) end end end |