Class: LengthValidationRule
Instance Method Summary
collapse
#get_field_value, #is_required?
Instance Method Details
#error_message(field, attributes) ⇒ Object
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# File 'lib/validation_profiler/rules/rules.rb', line 84
def error_message(field, attributes)
if attributes[:message] == nil
min = attributes[:min]
max = attributes[:max]
if min && max
"#{field} must have a min length of #{min} and a max length of #{max}"
elsif min
"#{field} must have a min length of #{min}"
else
"#{field} must have a max length of #{max}"
end
else
attributes[:message]
end
end
|
#validate(obj, field, attributes) ⇒ Object
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
# File 'lib/validation_profiler/rules/rules.rb', line 102
def validate(obj, field, attributes)
min = attributes[:min]
max = attributes[:max]
if min == nil && max == nil
raise InvalidRuleAttributes.new(LengthValidationRule, field)
end
field_value = get_field_value(obj, field)
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
|