aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJack Nagel2014-07-16 21:11:48 -0500
committerJack Nagel2014-07-16 21:11:48 -0500
commitecc5bbc50dde4a3043e9a2b499935cb772f5b1b8 (patch)
treef05019b6a94fad7ea7e79d39b313c6fcf47035a9 /Library
parentbd8b510b174f92f5d268897094cabf003ca57ef7 (diff)
downloadhomebrew-ecc5bbc50dde4a3043e9a2b499935cb772f5b1b8.tar.bz2
Don't raise when converting the tag to a version fails
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/bottles.rb8
-rw-r--r--Library/Homebrew/test/test_bottle_collector.rb10
2 files changed, 17 insertions, 1 deletions
diff --git a/Library/Homebrew/bottles.rb b/Library/Homebrew/bottles.rb
index cc29c54fd..0f5d36963 100644
--- a/Library/Homebrew/bottles.rb
+++ b/Library/Homebrew/bottles.rb
@@ -114,10 +114,16 @@ class BottleCollector
# so the same bottle can target multiple OSs.
# Not used in core, used in taps.
def find_or_later_tag(tag)
+ begin
+ tag_version = MacOS::Version.from_symbol(tag)
+ rescue ArgumentError
+ return
+ end
+
keys.find do |key|
if key.to_s.end_with?("_or_later")
later_tag = key.to_s[/(\w+)_or_later$/, 1].to_sym
- MacOS::Version.from_symbol(later_tag) <= MacOS::Version.from_symbol(tag)
+ MacOS::Version.from_symbol(later_tag) <= tag_version
end
end
end
diff --git a/Library/Homebrew/test/test_bottle_collector.rb b/Library/Homebrew/test/test_bottle_collector.rb
index 7a597404c..34efe3efd 100644
--- a/Library/Homebrew/test/test_bottle_collector.rb
+++ b/Library/Homebrew/test/test_bottle_collector.rb
@@ -20,6 +20,16 @@ class BottleCollectorTests < Homebrew::TestCase
assert_nil checksum_for(:foo)
end
+ def test_collector_returns_nil_for_no_match
+ @collector[:lion] = "foo"
+ assert_nil checksum_for(:foo)
+ end
+
+ def test_collector_returns_nil_for_no_match_when_later_tag_present
+ @collector[:lion_or_later] = "foo"
+ assert_nil checksum_for(:foo)
+ end
+
def test_collector_finds_or_later_tags
@collector[:lion_or_later] = "foo"
assert_equal ['foo', :lion_or_later], checksum_for(:mountain_lion)