aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Nagel2014-12-26 16:08:12 -0500
committerJack Nagel2014-12-26 16:10:28 -0500
commita98a09e1fc76a5cf94f3e233b524e77a8f8a139e (patch)
tree8857b105d05352f963f22dc9e762d0fe290b4377
parent6d3f16aa5183415ad8820e80b992236981cc3e52 (diff)
downloadhomebrew-a98a09e1fc76a5cf94f3e233b524e77a8f8a139e.tar.bz2
Unroll validation loop
-rw-r--r--Library/Homebrew/formula.rb19
-rw-r--r--Library/Homebrew/test/test_formula_validation.rb7
2 files changed, 20 insertions, 6 deletions
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 1c8417f0f..1ff27e7da 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -93,7 +93,7 @@ class Formula
set_spec :head
@active_spec = determine_active_spec(spec)
- validate_attributes :url, :name, :version
+ validate_attributes!
@pkg_version = PkgVersion.new(version, revision)
@build = active_spec.build
@pin = FormulaPin.new(self)
@@ -114,11 +114,18 @@ class Formula
spec or raise FormulaSpecificationError, "formulae require at least a URL"
end
- def validate_attributes(*attrs)
- attrs.each do |attr|
- if (value = send(attr).to_s).empty? || value =~ /\s/
- raise FormulaValidationError.new(attr, value)
- end
+ def validate_attributes!
+ if name.nil? || name.empty? || name =~ /\s/
+ raise FormulaValidationError.new(:name, name)
+ end
+
+ if url.nil? || url.empty? || url =~ /\s/
+ raise FormulaValidationError.new(:url, url)
+ end
+
+ val = version.respond_to?(:to_str) ? version.to_str : version
+ if val.nil? || val.empty? || val =~ /\s/
+ raise FormulaValidationError.new(:version, val)
end
end
diff --git a/Library/Homebrew/test/test_formula_validation.rb b/Library/Homebrew/test/test_formula_validation.rb
index 4bc16deb6..e4f43af71 100644
--- a/Library/Homebrew/test/test_formula_validation.rb
+++ b/Library/Homebrew/test/test_formula_validation.rb
@@ -44,6 +44,13 @@ class FormulaValidationTests < Homebrew::TestCase
version ""
end
end
+
+ assert_invalid :version do
+ formula do
+ url "foo"
+ version nil
+ end
+ end
end
def test_devel_only_valid