Class: ValidationProfiler::Rules::LengthValidationRule
Instance Method Summary
collapse
#get_field_value, #is_required?
Instance Method Details
#error_message(field, attributes, parent = nil) ⇒ Object
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/validation_profiler/rules/length_validation_rule.rb', line 5
def error_message(field, attributes, parent = nil)
field_name = field.to_s
if parent != nil
field_name = "#{parent.to_s}.#{field.to_s}"
end
if attributes[:message] == nil
min = attributes[:min]
max = attributes[:max]
if min && max
"#{field_name} must have a min length of #{min} and a max length of #{max}"
elsif min
"#{field_name} must have a min length of #{min}"
else
"#{field_name} must have a max length of #{max}"
end
else
attributes[:message]
end
end
|
#validate(obj, field, attributes, parent = nil) ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/validation_profiler/rules/length_validation_rule.rb', line 28
def validate(obj, field, attributes, parent = nil)
min = attributes[:min]
max = attributes[:max]
if min == nil && max == nil
raise ValidationProfiler::Exceptions::InvalidValidationRuleAttributes.new(ValidationProfiler::Rules::LengthValidationRule, field)
end
field_value = get_field_value(obj, field)
if !is_required?(field_value, attributes)
return true
end
if field_value.is_a?(Array)
length = field_value.length
else
length = field_value.to_s.length
end
if min && max
return length >= min && length <= max
elsif min
return length >= min
elsif max
return length <= max
end
return false
end
|