version: allow versions to be compared against NULL_TOKEN

This commit is contained in:
Seeker 2020-08-11 13:58:48 -07:00
parent f904cc2aea
commit fb96ccf4c8
2 changed files with 6 additions and 1 deletions

View File

@ -184,9 +184,14 @@ describe Version do
end end
it "can be compared against tokens" do it "can be compared against tokens" do
expect(described_class.create("2.1.0-p194")).to be > Version::Token.create("2")
expect(described_class.create("1")).to be == Version::Token.create("1") expect(described_class.create("1")).to be == Version::Token.create("1")
end end
it "can be compared against Version::NULL_TOKEN" do
expect(described_class.create("2.1.0-p194")).to be > Version::NULL_TOKEN
end
specify "comparison returns nil for non-version" do specify "comparison returns nil for non-version" do
v = described_class.create("1.0") v = described_class.create("1.0")
expect(v <=> Object.new).to be nil expect(v <=> Object.new).to be nil

View File

@ -445,9 +445,9 @@ class Version
# Used by the *_build_version comparisons, which formerly returned Fixnum # Used by the *_build_version comparisons, which formerly returned Fixnum
other = Version.new(other.to_s) if other.is_a? Integer other = Version.new(other.to_s) if other.is_a? Integer
return 1 if other.nil? return 1 if other.nil?
return 1 if other.respond_to?(:null?) && other.null?
other = Version.new(other.to_s) if other.is_a? Token other = Version.new(other.to_s) if other.is_a? Token
return 1 if other.respond_to?(:null?) && other.null?
return unless other.is_a?(Version) return unless other.is_a?(Version)
return 0 if version == other.version return 0 if version == other.version
return 1 if head? && !other.head? return 1 if head? && !other.head?