Sha256: 005a8ed16ff1c62c75da19e7b830c9554b5af3b30236180f5dd961d0bf3047ed

Contents?: true

Size: 765 Bytes

Versions: 27

Compression:

Stored size: 765 Bytes

Contents

module Validatable 
  class ValidatesNumericalityOf < ValidationBase #:nodoc:
    option :only_integer
    
    def valid?(instance)
      value = value_for(instance)
      return true if allow_nil && value.nil?
      return true if allow_blank && value.blank?
      
      value = value.to_s
      regex = self.only_integer ? /\A[+-]?\d+\Z/ : /^\d*\.{0,1}\d+$/
      not (value =~ regex).nil?
    end
    
    def message(instance)
      super || "must be a number"
    end
    
    private
      def value_for(instance)
        before_typecast_method = "#{self.attribute}_before_typecast"
        value_method = instance.respond_to?(before_typecast_method.intern) ? before_typecast_method : self.attribute
        instance.send(value_method)
      end
  end
end

Version data entries

27 entries across 27 versions & 7 rubygems

Version Path
hashrocket-validatable-1.7.2 lib/validations/validates_numericality_of.rb
hashrocket-validatable-1.7.4 lib/validations/validates_numericality_of.rb
jnunemaker-validatable-1.7.0 lib/validations/validates_numericality_of.rb
jnunemaker-validatable-1.7.1 lib/validations/validates_numericality_of.rb
jnunemaker-validatable-1.7.2 lib/validations/validates_numericality_of.rb
vizjerai-validatable-1.8.0 lib/validations/validates_numericality_of.rb
vizjerai-validatable-1.9.0 lib/validations/validates_numericality_of.rb
erotte-validatable-1.8.5 lib/validatable/validations/validates_numericality_of.rb
mongomatic-0.0.2 lib/validatable/validations/validates_numericality_of.rb
mattmatt-validatable-1.8.3 lib/validatable/validations/validates_numericality_of.rb
jnunemaker-validatable-1.8.4 lib/validatable/validations/validates_numericality_of.rb
jnunemaker-validatable-1.8.3 lib/validatable/validations/validates_numericality_of.rb
jnunemaker-validatable-1.8.2 lib/validatable/validations/validates_numericality_of.rb
jnunemaker-validatable-1.1.10 lib/validatable/validations/validates_numericality_of.rb
jnunemaker-validatable-1.1.9 lib/validatable/validations/validates_numericality_of.rb
durran-validatable-2.0.1 lib/validations/validates_numericality_of.rb
durran-validatable-2.0.0 lib/validations/validates_numericality_of.rb
durran-validatable-1.8.4 lib/validations/validates_numericality_of.rb
durran-validatable-1.8.3 lib/validations/validates_numericality_of.rb
jnunemaker-validatable-1.8.1 lib/validatable/validations/validates_numericality_of.rb