Fix version mapping.
This commit is contained in:
parent
e416668a25
commit
05b496194a
@ -16,6 +16,7 @@ describe Homebrew::UnversionedCaskChecker do
|
||||
["1.0", "1"] => "1.0",
|
||||
["1.0", "0"] => "1.0",
|
||||
["1.2.3.4000", "4000"] => "1.2.3.4000",
|
||||
["5", "5.0.45"] => "5.0.45",
|
||||
}
|
||||
|
||||
expected_mappings.each do |(short_version, version), expected_version|
|
||||
|
||||
@ -72,19 +72,16 @@ module Homebrew
|
||||
def self.decide_between_versions(short_version, version)
|
||||
return short_version if short_version == version
|
||||
|
||||
short_version_match = short_version&.match?(/\A\d+(\.\d+)+\Z/)
|
||||
version_match = version&.match?(/\A\d+(\.\d+)+\Z/)
|
||||
if short_version && version
|
||||
return version if version.match?(/\A\d+(\.\d+)+\Z/) && version.start_with?("#{short_version}.")
|
||||
return short_version if short_version.match?(/\A\d+(\.\d+)+\Z/) && short_version.start_with?("#{version}.")
|
||||
|
||||
if short_version_match && version_match
|
||||
return version if version.length > short_version.length && version.start_with?("#{short_version}.")
|
||||
return short_version if short_version.length > version.length && short_version.start_with?("#{version}.")
|
||||
end
|
||||
|
||||
if short_version&.match?(/\A\d+(\.\d+)*\Z/) && version&.match?(/\A\d+\Z/)
|
||||
if short_version.match?(/\A\d+(\.\d+)*\Z/) && version.match?(/\A\d+\Z/)
|
||||
return short_version if short_version.start_with?("#{version}.") || short_version.end_with?(".#{version}")
|
||||
|
||||
return "#{short_version},#{version}"
|
||||
end
|
||||
end
|
||||
|
||||
short_version || version
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user