Fix PkgVersion#<=>

This commit is contained in:
Jack Nagel 2014-07-03 16:32:12 -05:00
parent 08c43dcd96
commit 1ee4cd94ba
3 changed files with 8 additions and 1 deletions

View File

@ -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

View File

@ -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

View File

@ -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