Merge pull request #2828 from ed-flanagan/pretoken
Add PreToken composite
This commit is contained in:
		
						commit
						0f9f8fad13
					
				@ -93,6 +93,21 @@ describe Version do
 | 
			
		||||
    expect(Version.create("1.2.3beta2")).to be < Version.create("1.2.3-p34")
 | 
			
		||||
  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
 | 
			
		||||
    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")
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user