From 8575034f192d0c85bb97c2ad70533c9ed93a60c5 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Fri, 26 Dec 2014 16:08:12 -0500 Subject: [PATCH] Unroll validation loop --- Library/Homebrew/formula.rb | 19 +++++++++++++------ .../Homebrew/test/test_formula_validation.rb | 7 +++++++ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 1c8417f0f8..1ff27e7da6 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 4bc16deb68..e4f43af71b 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