aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Nagel2012-08-22 10:10:12 -0500
committerJack Nagel2012-08-23 18:16:08 -0500
commitf069ebd0df00cd91cad81976450d34d668fadca0 (patch)
tree05307eadea429e84958dfd72b5b95ccf8bb50ea6
parentfd151f8999f7aa85e1cf77b3232f531fb83bf38b (diff)
downloadbrew-f069ebd0df00cd91cad81976450d34d668fadca0.tar.bz2
Version: make MacOSVersion comparison more robust
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
-rw-r--r--Library/Homebrew/test/test_versions.rb7
-rw-r--r--Library/Homebrew/version.rb8
2 files changed, 8 insertions, 7 deletions
diff --git a/Library/Homebrew/test/test_versions.rb b/Library/Homebrew/test/test_versions.rb
index 0511d3484..52e0cccd1 100644
--- a/Library/Homebrew/test/test_versions.rb
+++ b/Library/Homebrew/test/test_versions.rb
@@ -38,6 +38,13 @@ class VersionComparisonTests < Test::Unit::TestCase
assert v == 10.6
assert v == :snow_leopard
assert v < :lion
+ # Test that we can compare against different representations
+ assert v <= 10.8
+ assert v < "10.8"
+ assert v < :mountain_lion
+ assert v < 11
+ assert v < Version.new(10.8)
+ assert Version.new(10.5) < v
end
def test_version_interrogation
diff --git a/Library/Homebrew/version.rb b/Library/Homebrew/version.rb
index 01053012f..796538cfd 100644
--- a/Library/Homebrew/version.rb
+++ b/Library/Homebrew/version.rb
@@ -37,7 +37,6 @@ class Version
include Comparable
def initialize val, detected=false
- return val if val.is_a? Version or val.nil?
@version = val.to_s
@detected_from_url = detected
end
@@ -210,17 +209,12 @@ end
# Enable things like "MacOS.version >= :lion"
class MacOSVersion < Version
compare do |other|
- case other
- when Symbol, Fixnum, Float, Version
super Version.new case other
when :mountain_lion then 10.8
when :lion then 10.7
when :snow_leopard then 10.6
when :leopard then 10.5
- else other
+ else other.to_s
end
- else
- nil
- end
end
end