From 1ee4cd94ba5d9e7f89bc572a737ff03f3fff2a20 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Thu, 3 Jul 2014 16:32:12 -0500 Subject: [PATCH] Fix PkgVersion#<=> --- Library/Homebrew/pkg_version.rb | 1 + Library/Homebrew/test/test_pkg_version.rb | 4 ++++ Library/Homebrew/test/test_versions.rb | 4 +++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/pkg_version.rb b/Library/Homebrew/pkg_version.rb index 3d81df2610..4e9e351ff0 100644 --- a/Library/Homebrew/pkg_version.rb +++ b/Library/Homebrew/pkg_version.rb @@ -30,6 +30,7 @@ class PkgVersion < Version alias_method :to_str, :to_s def <=>(other) + return unless Version === other super.nonzero? || revision <=> other.revision end end diff --git a/Library/Homebrew/test/test_pkg_version.rb b/Library/Homebrew/test/test_pkg_version.rb index 25c3093231..a26a90c30f 100644 --- a/Library/Homebrew/test/test_pkg_version.rb +++ b/Library/Homebrew/test/test_pkg_version.rb @@ -24,6 +24,10 @@ class PkgVersionTests < Homebrew::TestCase assert_operator v("1.0_1"), :<, v("2.0_1") assert_operator v("HEAD"), :>, v("1.0") 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 def test_to_s diff --git a/Library/Homebrew/test/test_versions.rb b/Library/Homebrew/test/test_versions.rb index ee63c7be99..ee9369ea5a 100644 --- a/Library/Homebrew/test/test_versions.rb +++ b/Library/Homebrew/test/test_versions.rb @@ -63,7 +63,9 @@ class VersionComparisonTests < Homebrew::TestCase end 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 def test_compare_patchlevel_to_non_patchlevel