Add PreToken composite
This commit is contained in:
parent
4fb60d8988
commit
700b5e2738
@ -93,6 +93,21 @@ describe Version do
|
|||||||
expect(Version.create("1.2.3beta2")).to be < Version.create("1.2.3-p34")
|
expect(Version.create("1.2.3beta2")).to be < Version.create("1.2.3-p34")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
specify "comparing pre versions" do
|
||||||
|
expect(Version.create("1.2.3pre9")).to be == Version.create("1.2.3PRE9")
|
||||||
|
expect(Version.create("1.2.3pre9")).to be > Version.create("1.2.3pre8")
|
||||||
|
expect(Version.create("1.2.3pre8")).to be < Version.create("1.2.3pre9")
|
||||||
|
expect(Version.create("1.2.3pre9")).to be < Version.create("1.2.3pre10")
|
||||||
|
|
||||||
|
expect(Version.create("1.2.3pre3")).to be > Version.create("1.2.3alpha2")
|
||||||
|
expect(Version.create("1.2.3pre3")).to be > Version.create("1.2.3alpha4")
|
||||||
|
expect(Version.create("1.2.3pre3")).to be > Version.create("1.2.3beta3")
|
||||||
|
expect(Version.create("1.2.3pre3")).to be > Version.create("1.2.3beta5")
|
||||||
|
expect(Version.create("1.2.3pre3")).to be < Version.create("1.2.3rc2")
|
||||||
|
expect(Version.create("1.2.3pre3")).to be < Version.create("1.2.3")
|
||||||
|
expect(Version.create("1.2.3pre3")).to be < Version.create("1.2.3-p2")
|
||||||
|
end
|
||||||
|
|
||||||
specify "comparing RC versions" do
|
specify "comparing RC versions" do
|
||||||
expect(Version.create("1.2.3rc3")).to be == Version.create("1.2.3RC3")
|
expect(Version.create("1.2.3rc3")).to be == Version.create("1.2.3RC3")
|
||||||
expect(Version.create("1.2.3rc3")).to be > Version.create("1.2.3rc2")
|
expect(Version.create("1.2.3rc3")).to be > Version.create("1.2.3rc2")
|
||||||
|
@ -36,7 +36,7 @@ class Version
|
|||||||
0
|
0
|
||||||
when NumericToken
|
when NumericToken
|
||||||
other.value.zero? ? 0 : -1
|
other.value.zero? ? 0 : -1
|
||||||
when AlphaToken, BetaToken, RCToken
|
when AlphaToken, BetaToken, PreToken, RCToken
|
||||||
1
|
1
|
||||||
else
|
else
|
||||||
-1
|
-1
|
||||||
@ -103,6 +103,8 @@ class Version
|
|||||||
case other
|
case other
|
||||||
when AlphaToken
|
when AlphaToken
|
||||||
rev <=> other.rev
|
rev <=> other.rev
|
||||||
|
when BetaToken, RCToken, PreToken, PatchToken
|
||||||
|
-1
|
||||||
else
|
else
|
||||||
super
|
super
|
||||||
end
|
end
|
||||||
@ -118,6 +120,23 @@ class Version
|
|||||||
rev <=> other.rev
|
rev <=> other.rev
|
||||||
when AlphaToken
|
when AlphaToken
|
||||||
1
|
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
|
when RCToken, PatchToken
|
||||||
-1
|
-1
|
||||||
else
|
else
|
||||||
@ -133,7 +152,7 @@ class Version
|
|||||||
case other
|
case other
|
||||||
when RCToken
|
when RCToken
|
||||||
rev <=> other.rev
|
rev <=> other.rev
|
||||||
when AlphaToken, BetaToken
|
when AlphaToken, BetaToken, PreToken
|
||||||
1
|
1
|
||||||
when PatchToken
|
when PatchToken
|
||||||
-1
|
-1
|
||||||
@ -150,7 +169,7 @@ class Version
|
|||||||
case other
|
case other
|
||||||
when PatchToken
|
when PatchToken
|
||||||
rev <=> other.rev
|
rev <=> other.rev
|
||||||
when AlphaToken, BetaToken, RCToken
|
when AlphaToken, BetaToken, RCToken, PreToken
|
||||||
1
|
1
|
||||||
else
|
else
|
||||||
super
|
super
|
||||||
@ -161,6 +180,7 @@ class Version
|
|||||||
SCAN_PATTERN = Regexp.union(
|
SCAN_PATTERN = Regexp.union(
|
||||||
AlphaToken::PATTERN,
|
AlphaToken::PATTERN,
|
||||||
BetaToken::PATTERN,
|
BetaToken::PATTERN,
|
||||||
|
PreToken::PATTERN,
|
||||||
RCToken::PATTERN,
|
RCToken::PATTERN,
|
||||||
PatchToken::PATTERN,
|
PatchToken::PATTERN,
|
||||||
NumericToken::PATTERN,
|
NumericToken::PATTERN,
|
||||||
@ -289,6 +309,7 @@ class Version
|
|||||||
when /\A#{AlphaToken::PATTERN}\z/o then AlphaToken
|
when /\A#{AlphaToken::PATTERN}\z/o then AlphaToken
|
||||||
when /\A#{BetaToken::PATTERN}\z/o then BetaToken
|
when /\A#{BetaToken::PATTERN}\z/o then BetaToken
|
||||||
when /\A#{RCToken::PATTERN}\z/o then RCToken
|
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#{PatchToken::PATTERN}\z/o then PatchToken
|
||||||
when /\A#{NumericToken::PATTERN}\z/o then NumericToken
|
when /\A#{NumericToken::PATTERN}\z/o then NumericToken
|
||||||
when /\A#{StringToken::PATTERN}\z/o then StringToken
|
when /\A#{StringToken::PATTERN}\z/o then StringToken
|
||||||
|
Loading…
x
Reference in New Issue
Block a user