Unroll validation loop
This commit is contained in:
parent
1bdeeefb94
commit
8575034f19
@ -93,7 +93,7 @@ class Formula
|
|||||||
set_spec :head
|
set_spec :head
|
||||||
|
|
||||||
@active_spec = determine_active_spec(spec)
|
@active_spec = determine_active_spec(spec)
|
||||||
validate_attributes :url, :name, :version
|
validate_attributes!
|
||||||
@pkg_version = PkgVersion.new(version, revision)
|
@pkg_version = PkgVersion.new(version, revision)
|
||||||
@build = active_spec.build
|
@build = active_spec.build
|
||||||
@pin = FormulaPin.new(self)
|
@pin = FormulaPin.new(self)
|
||||||
@ -114,11 +114,18 @@ class Formula
|
|||||||
spec or raise FormulaSpecificationError, "formulae require at least a URL"
|
spec or raise FormulaSpecificationError, "formulae require at least a URL"
|
||||||
end
|
end
|
||||||
|
|
||||||
def validate_attributes(*attrs)
|
def validate_attributes!
|
||||||
attrs.each do |attr|
|
if name.nil? || name.empty? || name =~ /\s/
|
||||||
if (value = send(attr).to_s).empty? || value =~ /\s/
|
raise FormulaValidationError.new(:name, name)
|
||||||
raise FormulaValidationError.new(attr, value)
|
|
||||||
end
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -44,6 +44,13 @@ class FormulaValidationTests < Homebrew::TestCase
|
|||||||
version ""
|
version ""
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
assert_invalid :version do
|
||||||
|
formula do
|
||||||
|
url "foo"
|
||||||
|
version nil
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_devel_only_valid
|
def test_devel_only_valid
|
||||||
|
Loading…
x
Reference in New Issue
Block a user