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
19 files
+ 315
25
Compare changes
  • Side-by-side
  • Inline
Files
19
@@ -4,6 +4,7 @@ module Packages
module Nuget
class PackageFinder < ::Packages::GroupOrProjectPackageFinder
MAX_PACKAGES_COUNT = 300
FORCE_NORMALIZATION_CLIENT_VERSION = '>= 3'
def execute
packages.limit_recent(@params[:limit] || MAX_PACKAGES_COUNT)
@@ -12,11 +13,36 @@ 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 = find_by_name
result = find_by_version(result)
find_by_normalized_version(result)
end
def find_by_name
base
.nuget
.has_version
.with_case_insensitive_name(@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
.left_join_nuget_metadatum
.or(base.with_normalized_nuget_version(@params[:package_version]))
end
def client_forces_normalized_version?
return true if @params[:client_version].blank?
VersionSorter.compare(FORCE_NORMALIZATION_CLIENT_VERSION, @params[:client_version]) <= 0
end
end
end
Loading