diff --git a/Library/Homebrew/formula_support.rb b/Library/Homebrew/formula_support.rb index 1ef4d3abc3..69420ff0f8 100644 --- a/Library/Homebrew/formula_support.rb +++ b/Library/Homebrew/formula_support.rb @@ -40,6 +40,8 @@ class SoftwareSpec when nil then Version.detect(url, specs) when String then Version.new(val) when Hash then Version.new_with_scheme(*val.shift) + else + raise TypeError, "version '#{val.inspect}' should be a string" end end diff --git a/Library/Homebrew/test/test_software_spec.rb b/Library/Homebrew/test/test_software_spec.rb index f3eed4769e..856bea611d 100644 --- a/Library/Homebrew/test/test_software_spec.rb +++ b/Library/Homebrew/test/test_software_spec.rb @@ -66,6 +66,12 @@ class SoftwareSpecTests < Test::Unit::TestCase assert @spec.version.detected_from_url? end + def test_rejects_non_string_versions + assert_raises(TypeError) { @spec.version(1) } + assert_raises(TypeError) { @spec.version(2.0) } + assert_raises(TypeError) { @spec.version(Object.new) } + end + def test_mirrors assert_empty @spec.mirrors @spec.mirror('foo')