7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/interactor/validation/validators/numeric.rb', line 7
def validate_numeric(param, value, rule)
unless numeric?(value)
msg = rule.is_a?(::Hash) ? rule[:message] : nil
errors.add(param, :not_a_number, message: msg || "is not a number")
return
end
num = coerce_numeric(value)
rule = {} unless rule.is_a?(::Hash)
check_numeric_constraint(param, num, :greater_than, rule) { |n, v| n <= v }
check_numeric_constraint(param, num, :greater_than_or_equal_to, rule) { |n, v| n < v }
check_numeric_constraint(param, num, :less_than, rule) { |n, v| n >= v }
check_numeric_constraint(param, num, :less_than_or_equal_to, rule) { |n, v| n > v }
check_numeric_constraint(param, num, :equal_to, rule) { |n, v| n != v }
end
|