lib/validations/validates_length_of.rb in validatable-1.3.0 vs lib/validations/validates_length_of.rb in validatable-1.3.2

- old
+ new

@@ -1,16 +1,21 @@ module Validatable class ValidatesLengthOf < ValidationBase #:nodoc: - option :minimum, :maximum, :is, :within + option :minimum, :maximum, :is, :within, :allow_nil def message super || "is invalid" end def valid?(instance) valid = true - value = instance.send(self.attribute) || "" - + value = instance.send(self.attribute) + + if value.nil? + return true if allow_nil + value = "" + end + valid &&= value.length <= maximum unless maximum.nil? valid &&= value.length >= minimum unless minimum.nil? valid &&= value.length == is unless is.nil? valid &&= within.include?(value.length) unless within.nil? valid