Sha256: 98f9b8155390da3d81e98679fab4acda8a95b4f5bc00f33161955a8c025afd29
Contents?: true
Size: 833 Bytes
Versions: 10
Compression:
Stored size: 833 Bytes
Contents
module Volt class LengthValidator def self.validate(model, old_model, field_name, args) errors = {} value = model.read_attribute(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 #{args} characters"] elsif max && value.size > max errors[field_name] = [message || "must be less than #{args} characters"] end errors end end end
Version data entries
10 entries across 10 versions & 1 rubygems