diff options
author | David Rodriguez <deivid.rodriguez@riseup.net> | 2024-03-21 17:55:14 +0100 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2024-04-01 15:03:25 +0000 |
commit | d69ef1cc52b34d3242376ea5b4893b1b55e71517 (patch) | |
tree | b9d691a76d5cbdc80f821bfda1d587ca06ecdf08 /lib | |
parent | 2b82b7d192d26b1153186187dbe3bef84de7ed3f (diff) |
[rubygems/rubygems] Let GemVersionPromoter sort in preferred order directly
So that we don't need to reverse the Array.
https://github.com/rubygems/rubygems/commit/aeea5e2e00
Diffstat (limited to 'lib')
-rw-r--r-- | lib/bundler/gem_version_promoter.rb | 20 | ||||
-rw-r--r-- | lib/bundler/resolver.rb | 2 |
2 files changed, 11 insertions, 11 deletions
diff --git a/lib/bundler/gem_version_promoter.rb b/lib/bundler/gem_version_promoter.rb index c7187654b7..ecc65b4956 100644 --- a/lib/bundler/gem_version_promoter.rb +++ b/lib/bundler/gem_version_promoter.rb @@ -59,20 +59,20 @@ module Bundler a_pre = a.prerelease? b_pre = b.prerelease? - next -1 if a_pre && !b_pre - next 1 if b_pre && !a_pre + next 1 if a_pre && !b_pre + next -1 if b_pre && !a_pre end if major? || locked_version.nil? - a <=> b + b <=> a elsif either_version_older_than_locked?(a, b, locked_version) - a <=> b - elsif segments_do_not_match?(a, b, :major) b <=> a + elsif segments_do_not_match?(a, b, :major) + a <=> b elsif !minor? && segments_do_not_match?(a, b, :minor) - b <=> a - else a <=> b + else + b <=> a end end post_sort(result, package.unlock?, locked_version) @@ -137,13 +137,13 @@ module Bundler if unlock || locked_version.nil? result else - move_version_to_end(result, locked_version) + move_version_to_beginning(result, locked_version) end end - def move_version_to_end(result, version) + def move_version_to_beginning(result, version) move, keep = result.partition {|s| s.version.to_s == version.to_s } - keep.concat(move) + move.concat(keep) end end end diff --git a/lib/bundler/resolver.rb b/lib/bundler/resolver.rb index 1cd94ccf50..329540fd3d 100644 --- a/lib/bundler/resolver.rb +++ b/lib/bundler/resolver.rb @@ -359,7 +359,7 @@ module Bundler def sort_versions_by_preferred(package, versions) if versions.size > 1 - @gem_version_promoter.sort_versions(package, versions).reverse + @gem_version_promoter.sort_versions(package, versions) else versions end |