class Volt::LengthValidator
Public Class Methods
validate(model, field_name, args)
click to toggle source
# 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