summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDavid Rodriguez <deivid.rodriguez@riseup.net>2024-03-21 17:20:57 +0100
committergit <svn-admin@ruby-lang.org>2024-04-01 15:03:25 +0000
commit0a1e36964dfa634bfd3088da5362093b89103a33 (patch)
tree8108318da44609f8db4612ef11330b5a3911d5ac /lib
parentacbd91e47ff36216459bbba4368b04e6a3079b2a (diff)
[rubygems/rubygems] Remove unnecessary filtering
We do that when first caching versions, and then it's no longer necessary. https://github.com/rubygems/rubygems/commit/ede15847db
Diffstat (limited to 'lib')
-rw-r--r--lib/bundler/gem_version_promoter.rb52
1 files changed, 23 insertions, 29 deletions
diff --git a/lib/bundler/gem_version_promoter.rb b/lib/bundler/gem_version_promoter.rb
index b666c29d32..66141b7b63 100644
--- a/lib/bundler/gem_version_promoter.rb
+++ b/lib/bundler/gem_version_promoter.rb
@@ -53,9 +53,30 @@ module Bundler
# @return [Specification] A new instance of the Specification Array sorted and
# possibly filtered.
def sort_versions(package, specs)
- specs = filter_versions(package, specs)
+ locked_version = package.locked_version
- sort_dep_specs(specs, package)
+ result = specs.sort do |a, b|
+ unless package.prerelease_specified? || pre?
+ a_pre = a.prerelease?
+ b_pre = b.prerelease?
+
+ next -1 if a_pre && !b_pre
+ next 1 if b_pre && !a_pre
+ end
+
+ if major? || locked_version.nil?
+ a <=> b
+ elsif either_version_older_than_locked?(a, b, locked_version)
+ a <=> b
+ elsif segments_do_not_match?(a, b, :major)
+ b <=> a
+ elsif !minor? && segments_do_not_match?(a, b, :minor)
+ b <=> a
+ else
+ a <=> b
+ end
+ end
+ post_sort(result, package.unlock?, locked_version)
end
# @return [bool] Convenience method for testing value of level variable.
@@ -91,33 +112,6 @@ module Bundler
private
- def sort_dep_specs(specs, package)
- locked_version = package.locked_version
-
- result = specs.sort do |a, b|
- unless package.prerelease_specified? || pre?
- a_pre = a.prerelease?
- b_pre = b.prerelease?
-
- next -1 if a_pre && !b_pre
- next 1 if b_pre && !a_pre
- end
-
- if major? || locked_version.nil?
- a <=> b
- elsif either_version_older_than_locked?(a, b, locked_version)
- a <=> b
- elsif segments_do_not_match?(a, b, :major)
- b <=> a
- elsif !minor? && segments_do_not_match?(a, b, :minor)
- b <=> a
- else
- a <=> b
- end
- end
- post_sort(result, package.unlock?, locked_version)
- end
-
def either_version_older_than_locked?(a, b, locked_version)
a.version < locked_version || b.version < locked_version
end