Fix comparison with Version::NULL on RHS

This was accounted for in Version::NULL.<=>, but not in Version#<=>,
so these could only be compared if Version::NULL was the left hand
side.

The check had to go above the check that `other` is a version because
`Version::NULL`'s anonymous class does not inherit from `Version`.
(The type check feels like it's probably a smell, but out of scope).
This commit is contained in:
Alyssa Ross 2018-05-26 14:41:37 +02:00
parent 963adfafc3
commit 472d1a22c5
No known key found for this signature in database
GPG Key ID: 6CF064D149E3ABDB
2 changed files with 5 additions and 0 deletions

View File

@ -144,6 +144,10 @@ describe Version do
expect(described_class.create("2.1.0-p194")).to be > nil
end
it "can be compared against Version::NULL" do
expect(described_class.create("2.1.0-p194")).to be > Version::NULL
end
it "can be compared against strings" do
expect(described_class.create("2.1.0-p194")).to be == "2.1.0-p194"
expect(described_class.create("1")).to be == 1

View File

@ -387,6 +387,7 @@ class Version
other = Version.new(other.to_s) if other.is_a? Integer
return 1 if other.nil?
return 1 if other.respond_to?(:null?) && other.null?
return unless other.is_a?(Version)
return 0 if version == other.version
return 1 if head? && !other.head?