Sha256: 810241268a9df91ff42b365da1807779700b254f7689d21743d06033d89394b2

Contents?: true

Size: 723 Bytes

Versions: 29

Compression:

Stored size: 723 Bytes

Contents

module Validatable
  class ValidatesLengthOf < ValidationBase #:nodoc:
    option :minimum, :maximum, :is, :within
    
    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.blank?
        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 &&= within.include?(value.length) unless within.nil?
      valid
    end
  end
end

Version data entries

29 entries across 29 versions & 8 rubygems

Version Path
hashrocket-validatable-1.7.2 lib/validations/validates_length_of.rb
hashrocket-validatable-1.7.4 lib/validations/validates_length_of.rb
jnunemaker-validatable-1.7.0 lib/validations/validates_length_of.rb
jnunemaker-validatable-1.7.1 lib/validations/validates_length_of.rb
jnunemaker-validatable-1.7.2 lib/validations/validates_length_of.rb
vizjerai-validatable-1.8.0 lib/validations/validates_length_of.rb
vizjerai-validatable-1.9.0 lib/validations/validates_length_of.rb
lgustafson-validatable-1.8.7 lib/validatable/validations/validates_length_of.rb
lgustafson-validatable-1.8.6 lib/validatable/validations/validates_length_of.rb
np422-validatable-1.8.5 lib/validatable/validations/validates_length_of.rb
erotte-validatable-1.8.5 lib/validatable/validations/validates_length_of.rb
mattmatt-validatable-1.8.3 lib/validatable/validations/validates_length_of.rb
jnunemaker-validatable-1.8.4 lib/validatable/validations/validates_length_of.rb
jnunemaker-validatable-1.8.3 lib/validatable/validations/validates_length_of.rb
jnunemaker-validatable-1.8.2 lib/validatable/validations/validates_length_of.rb
jnunemaker-validatable-1.1.10 lib/validatable/validations/validates_length_of.rb
jnunemaker-validatable-1.1.9 lib/validatable/validations/validates_length_of.rb
durran-validatable-2.0.1 lib/validations/validates_length_of.rb
durran-validatable-2.0.0 lib/validations/validates_length_of.rb
durran-validatable-1.8.4 lib/validations/validates_length_of.rb