class RediSearch::Validations::Numericality
Attributes
allow_nil[R]
allow_nil?[R]
field[R]
only_integer[R]
only_integer?[R]
within[R]
Public Class Methods
new(field:, within:, only_integer: false, allow_nil: false)
click to toggle source
# File lib/redi_search/validations/numericality.rb, line 8 def initialize(field:, within:, only_integer: false, allow_nil: false) @field = field @within = within @only_integer = only_integer @allow_nil = allow_nil end
Public Instance Methods
validate!(object)
click to toggle source
# File lib/redi_search/validations/numericality.rb, line 15 def validate!(object) value = object.send(field) return true if value.nil? && allow_nil? validate_numberness!(value) validate_inclusion!(object) end
Private Instance Methods
validate_inclusion!(object)
click to toggle source
# File lib/redi_search/validations/numericality.rb, line 40 def validate_inclusion!(object) Inclusion.new(field: field, within: within).validate!(object) end
validate_numberness!(value)
click to toggle source
# File lib/redi_search/validations/numericality.rb, line 30 def validate_numberness!(value) raise(ValidationError, "#{field} must be a number") unless value.is_a?(Numeric) raise(ValidationError, "#{field} must be an Integer") if only_integer? && !value.is_a?(Integer) true end