summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Giddins <segiddins@segiddins.me>2016-06-02 17:33:17 -0500
committerSamuel Giddins <segiddins@segiddins.me>2016-06-04 23:42:39 -0500
commitdbb709bffcdd877236b3956c3366eb83d0f4cf16 (patch)
treee9f6633ab3ec6f24c879845c3c9674db591dd7bd
parent95d56f828e067299b30327662c34ebd7bc4bb3fe (diff)
downloadbundler-dbb709bffcdd877236b3956c3366eb83d0f4cf16.tar.gz
[Resolver] Deal with Gem::Version hash and == not aligning
-rw-r--r--lib/bundler/resolver.rb9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/bundler/resolver.rb b/lib/bundler/resolver.rb
index f04894df0d..294985818f 100644
--- a/lib/bundler/resolver.rb
+++ b/lib/bundler/resolver.rb
@@ -252,9 +252,14 @@ module Bundler
locked_requirement = vertex.payload.requirement
end
if results.any?
- nested = {}
+ nested = []
results.each do |spec|
- (nested[spec.version] ||= []) << spec
+ version, specs = nested.last
+ if version == spec.version
+ specs << spec
+ else
+ nested << [spec.version, [spec]]
+ end
end
nested.reduce([]) do |groups, (version, specs)|
next groups if locked_requirement && !locked_requirement.satisfied_by?(version)