aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/version.rb
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/version.rb')
-rw-r--r--Library/Homebrew/version.rb27
1 files changed, 24 insertions, 3 deletions
diff --git a/Library/Homebrew/version.rb b/Library/Homebrew/version.rb
index f99914c4d..8a86126eb 100644
--- a/Library/Homebrew/version.rb
+++ b/Library/Homebrew/version.rb
@@ -36,7 +36,7 @@ class Version
0
when NumericToken
other.value.zero? ? 0 : -1
- when AlphaToken, BetaToken, RCToken
+ when AlphaToken, BetaToken, PreToken, RCToken
1
else
-1
@@ -103,6 +103,8 @@ class Version
case other
when AlphaToken
rev <=> other.rev
+ when BetaToken, RCToken, PreToken, PatchToken
+ -1
else
super
end
@@ -118,6 +120,23 @@ class Version
rev <=> other.rev
when AlphaToken
1
+ when PreToken, RCToken, PatchToken
+ -1
+ else
+ super
+ end
+ end
+ end
+
+ class PreToken < CompositeToken
+ PATTERN = /pre[0-9]*/i
+
+ def <=>(other)
+ case other
+ when PreToken
+ rev <=> other.rev
+ when AlphaToken, BetaToken
+ 1
when RCToken, PatchToken
-1
else
@@ -133,7 +152,7 @@ class Version
case other
when RCToken
rev <=> other.rev
- when AlphaToken, BetaToken
+ when AlphaToken, BetaToken, PreToken
1
when PatchToken
-1
@@ -150,7 +169,7 @@ class Version
case other
when PatchToken
rev <=> other.rev
- when AlphaToken, BetaToken, RCToken
+ when AlphaToken, BetaToken, RCToken, PreToken
1
else
super
@@ -161,6 +180,7 @@ class Version
SCAN_PATTERN = Regexp.union(
AlphaToken::PATTERN,
BetaToken::PATTERN,
+ PreToken::PATTERN,
RCToken::PATTERN,
PatchToken::PATTERN,
NumericToken::PATTERN,
@@ -289,6 +309,7 @@ class Version
when /\A#{AlphaToken::PATTERN}\z/o then AlphaToken
when /\A#{BetaToken::PATTERN}\z/o then BetaToken
when /\A#{RCToken::PATTERN}\z/o then RCToken
+ when /\A#{PreToken::PATTERN}\z/o then PreToken
when /\A#{PatchToken::PATTERN}\z/o then PatchToken
when /\A#{NumericToken::PATTERN}\z/o then NumericToken
when /\A#{StringToken::PATTERN}\z/o then StringToken