55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/rook/cookbook.rb', line 55
def validate_hook(value, rule, path, errors)
case rule.name
when 'MATERIAL'
unless value.is_a?(String) || value.is_a?(Symbol)
errors << create_error(path, "String or Symbol is required.")
end
when 'PROPERTY'
unless value.key?('value') || value.key?('expr')
errors << create_error(path, "either 'value' or 'expr' is required.")
end
when 'PROP'
value.each do |k, v|
if !k.is_a?(String)
errors << create_error("#{path}/#{k}", "property name is not a string.")
elsif k !~ /\A[a-zA-Z_]\w*\*?\z/ && k != '.desc'
errors << create_error("#{path}/#{k}", "invlaid property name.")
elsif k[-1] == ?* && !v.is_a?(String)
errors << create_error("#{path}/#{k}", "expr is not a string.")
end
end
end if rule.name
end
|