Skip to content
Snippets Groups Projects

Support NuGet version normalization

Merged Moaz Khalifa requested to merge 273697-support-nuget-normalized-versions into master
All threads resolved!
Compare and
14 files
+ 384
16
Compare changes
  • Side-by-side
  • Inline
Files
14
@@ -4,6 +4,7 @@ module Packages
module Nuget
class PackageFinder < ::Packages::GroupOrProjectPackageFinder
MAX_PACKAGES_COUNT = 300
FORCE_NORMALIZATION_CLIENT_VERSION = '>= 3.4'
def execute
packages.limit_recent(@params[:limit] || MAX_PACKAGES_COUNT)
@@ -12,11 +13,34 @@ def execute
private
def packages
result = base.nuget
.has_version
.with_name_like(@params[:package_name])
result = result.with_case_insensitive_version(@params[:package_version]) if @params[:package_version].present?
result
result = find_by_name
result = find_by_version(result)
find_by_normalized_version(result)
end
def find_by_name
base
.nuget
.has_version
.with_name_like(@params[:package_name])
end
def find_by_version(result)
return result if @params[:package_version].blank?
result.with_case_insensitive_version(@params[:package_version])
end
def find_by_normalized_version(result)
return result unless @params[:package_version].present? && client_forces_normalized_version?
result.or(base.with_normalized_nuget_version(@params[:package_version]))
end
def client_forces_normalized_version?
Gem::Requirement
.new(FORCE_NORMALIZATION_CLIENT_VERSION)
.satisfied_by?(Gem::Version.new(@params[:client_version]))
end
end
end
Loading