version: don't let a/b imply alpha/beta.

This is assumption is broken for at least OpenSSL which makes it a
bad general rule.

As discussed in #1102.
This commit is contained in:
Mike McQuaid 2016-09-24 17:40:37 +01:00
parent 6eebea4525
commit 5b4b7b24e6
2 changed files with 4 additions and 2 deletions

View File

@ -63,6 +63,8 @@ class VersionComparisonTests < Homebrew::TestCase
end end
def test_comparing_alpha_versions def test_comparing_alpha_versions
assert_operator version("1.2.3alpha"), :<, version("1.2.3")
assert_operator version("1.2.3"), :<, version("1.2.3a")
assert_operator version("1.2.3alpha4"), :==, version("1.2.3a4") assert_operator version("1.2.3alpha4"), :==, version("1.2.3a4")
assert_operator version("1.2.3alpha4"), :==, version("1.2.3A4") assert_operator version("1.2.3alpha4"), :==, version("1.2.3A4")
assert_operator version("1.2.3alpha4"), :>, version("1.2.3alpha3") assert_operator version("1.2.3alpha4"), :>, version("1.2.3alpha3")

View File

@ -95,7 +95,7 @@ class Version
end end
class AlphaToken < CompositeToken class AlphaToken < CompositeToken
PATTERN = /a(?:lpha)?[0-9]*/i PATTERN = /alpha[0-9]*|a[0-9]+/i
def <=>(other) def <=>(other)
case other case other
@ -108,7 +108,7 @@ class Version
end end
class BetaToken < CompositeToken class BetaToken < CompositeToken
PATTERN = /b(?:eta)?[0-9]*/i PATTERN = /beta[0-9]*|b[0-9]+/i
def <=>(other) def <=>(other)
case other case other