Sha256: cd9257fddca06bc22021ffae2c9be9be1c517bbdca2c7c4648e2f8918289694f

Contents?: true

Size: 750 Bytes

Versions: 9

Compression:

Stored size: 750 Bytes

Contents

module Validatable
  class ValidatesLengthOf < ValidationBase #:nodoc:
    attr_accessor :minimum, :maximum, :is, :in

    def message(instance)
      super || "is invalid"
    end

    def valid?(instance)
      valid = true
      value = instance.send(self.attribute)

      if value.nil?
        return true if allow_nil
        value = ''
      end

      if !value or (value.respond_to?(:empty?) and value.empty?)
        return true if allow_blank
        value = ''
      end

      valid &&= value.length <= maximum unless maximum.nil?
      valid &&= value.length >= minimum unless minimum.nil?
      valid &&= value.length == is unless is.nil?
      valid &&= self.in.include?(value.length) unless self.in.nil?
      valid
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
validatable2-0.0.14 lib/validatable/validations/validates_length_of.rb
validatable2-0.0.13 lib/validatable/validations/validates_length_of.rb
validatable2-0.0.12 lib/validatable/validations/validates_length_of.rb
validatable2-0.0.11 lib/validatable/validations/validates_length_of.rb
validatable2-0.0.10 lib/validatable/validations/validates_length_of.rb
validatable2-0.0.9 lib/validatable/validations/validates_length_of.rb
validatable2-0.0.8 lib/validatable/validations/validates_length_of.rb
validatable2-0.0.7 lib/validatable/validations/validates_length_of.rb
validatable2-0.0.6 lib/validatable/validations/validates_length_of.rb