3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/volt/models/validators/length_validator.rb', line 3
def self.validate(model, field_name, args)
errors = {}
value = model.get(field_name)
if args.is_a?(Fixnum)
min = args
max = nil
message = nil
elsif args.is_a?(Hash)
min = args[:length] || args[:minimum]
max = args[:maximum]
fail 'length or minimum must be specified' unless min.is_a?(Fixnum)
message = args[:message]
else
fail 'The arguments to length must be a number or a hash'
end
if !value || value.size < min
errors[field_name] = [message || "must be at least #{min} characters"]
elsif max && value.size > max
errors[field_name] = [message || "must be less than #{max} characters"]
end
errors
end
|