diff options
author | Samuel Giddins <segiddins@segiddins.me> | 2016-06-02 17:33:17 -0500 |
---|---|---|
committer | Samuel Giddins <segiddins@segiddins.me> | 2016-06-04 23:42:39 -0500 |
commit | dbb709bffcdd877236b3956c3366eb83d0f4cf16 (patch) | |
tree | e9f6633ab3ec6f24c879845c3c9674db591dd7bd | |
parent | 95d56f828e067299b30327662c34ebd7bc4bb3fe (diff) | |
download | bundler-dbb709bffcdd877236b3956c3366eb83d0f4cf16.tar.gz |
[Resolver] Deal with Gem::Version hash and == not aligning
-rw-r--r-- | lib/bundler/resolver.rb | 9 |
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) |