diff options
Diffstat (limited to 'lib/bundler/resolver.rb')
-rw-r--r-- | lib/bundler/resolver.rb | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/bundler/resolver.rb b/lib/bundler/resolver.rb index 2ad9cc2c2f..7c3ba77938 100644 --- a/lib/bundler/resolver.rb +++ b/lib/bundler/resolver.rb @@ -36,7 +36,14 @@ module Bundler # ==== Returns # <GemBundle>,nil:: If the list of dependencies can be resolved, a # collection of gemspecs is returned. Otherwise, nil is returned. - def self.resolve(requirements, sources, source_requirements = {}) + def self.resolve(requirements, sources) + source_requirements = {} + + requirements.each do |r| + next unless r.source + source_requirements[r.name] = r.source + end + resolver = new(sources, source_requirements) result = catch(:success) do resolver.resolve(requirements, {}) @@ -54,6 +61,7 @@ module Bundler # a smaller index in the array. ordered = [] result.values.each do |spec1| + spec1.no_bundle = true if source_requirements[spec1.name] == SystemGemSource.instance index = nil place = ordered.detect do |spec2| spec1.dependencies.any? { |d| d.name == spec2.name } |