Fix PkgVersion#<=>
This commit is contained in:
parent
08c43dcd96
commit
1ee4cd94ba
@ -30,6 +30,7 @@ class PkgVersion < Version
|
|||||||
alias_method :to_str, :to_s
|
alias_method :to_str, :to_s
|
||||||
|
|
||||||
def <=>(other)
|
def <=>(other)
|
||||||
|
return unless Version === other
|
||||||
super.nonzero? || revision <=> other.revision
|
super.nonzero? || revision <=> other.revision
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -24,6 +24,10 @@ class PkgVersionTests < Homebrew::TestCase
|
|||||||
assert_operator v("1.0_1"), :<, v("2.0_1")
|
assert_operator v("1.0_1"), :<, v("2.0_1")
|
||||||
assert_operator v("HEAD"), :>, v("1.0")
|
assert_operator v("HEAD"), :>, v("1.0")
|
||||||
assert_operator v("1.0"), :<, v("HEAD")
|
assert_operator v("1.0"), :<, v("HEAD")
|
||||||
|
|
||||||
|
v = PkgVersion.new("1.0", 0)
|
||||||
|
assert_nil v <=> Object.new
|
||||||
|
assert_raises(ArgumentError) { v > Object.new }
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_to_s
|
def test_to_s
|
||||||
|
@ -63,7 +63,9 @@ class VersionComparisonTests < Homebrew::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_comparison_returns_nil_for_non_version
|
def test_comparison_returns_nil_for_non_version
|
||||||
assert_nil version('1.0') <=> 'foo'
|
v = version("1.0")
|
||||||
|
assert_nil v <=> Object.new
|
||||||
|
assert_raises(ArgumentError) { v > Object.new }
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_compare_patchlevel_to_non_patchlevel
|
def test_compare_patchlevel_to_non_patchlevel
|
||||||
|
Loading…
x
Reference in New Issue
Block a user