39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/focuslight/validator.rb', line 39
def self.validate_single(result, params, key_arg, spec)
key = key_arg.to_sym
value = params[key]
if spec.has_key?(:default) && value.nil?
value = spec[:default]
end
if spec[:excludable] && value.nil?
result[key] = nil
return
end
rules = [spec[:rule]].flatten.compact
errors = []
valid = true
formatted = value
rules.each do |rule|
if rule.check(value)
formatted = rule.format(value)
else
result.error(key, rule.message)
valid = false
end
end
if valid
result[key] = formatted
end
end
|