diff options
| author | Jack Nagel | 2014-07-03 16:32:12 -0500 |
|---|---|---|
| committer | Jack Nagel | 2014-07-03 16:37:43 -0500 |
| commit | 1ee4cd94ba5d9e7f89bc572a737ff03f3fff2a20 (patch) | |
| tree | 388915bf86fb96358993e3f7446acaf7791ef823 | |
| parent | 08c43dcd964baadade31a1be9e82b3de663b8630 (diff) | |
| download | brew-1ee4cd94ba5d9e7f89bc572a737ff03f3fff2a20.tar.bz2 | |
Fix PkgVersion#<=>
| -rw-r--r-- | Library/Homebrew/pkg_version.rb | 1 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_pkg_version.rb | 4 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_versions.rb | 4 |
3 files changed, 8 insertions, 1 deletions
diff --git a/Library/Homebrew/pkg_version.rb b/Library/Homebrew/pkg_version.rb index 3d81df261..4e9e351ff 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 25c309323..a26a90c30 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 ee63c7be9..ee9369ea5 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 |
