lib/mini_defender/validator.rb in mini_defender-0.1.10 vs lib/mini_defender/validator.rb in mini_defender-0.2.0
- old
+ new
@@ -48,23 +48,25 @@
unless @data.key?(k)
@errors[k] << 'This field is missing.' if required
next
end
- value = @data[k]
+ value = coerced = @data[k]
rule_set.each do |rule|
next unless rule.active?(self)
value_included &= !rule.excluded?(self)
- unless rule.passes?(k, value, self)
+ if rule.passes?(k, coerced, self)
+ coerced = rule.coerce(coerced)
+ else
@errors[k] << rule.error_message(k, value, self)
end
end
if @errors[k].empty? && value_included
@validated[k] = value
- @coerced[k] = rule_set.inject(value) { |coerced, rule| rule.coerce(coerced) }
+ @coerced[k] = coerced
end
end
@validated = @validated.expand
@coerced = @coerced.expand