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