Class: Lore::Validation::Type_Validator

Inherits:
Object
  • Object
show all
Defined in:
lib/lore/validation/type_validator.rb

Overview

:nodoc:

Constant Summary collapse

@@type_validation_rules =
{
  Lore::PG_BOOL               => Proc.new { |value, required| 
                                   (value == 't' || value == 'f' || value.empty? && !required)
                                 }, 
  Lore::PG_BYTEA              => Proc.new { |value, required| true }, 
  Lore::PG_INT                => Proc.new { |value, required|
                                   value && ((value.kind_of?(Integer) || value.to_i.to_s == value)) || 
                                   !required && (value.empty?)
                                 }, 
  Lore::PG_SMALLINT           => Proc.new { |value, required|
                                   value && ((value.kind_of?(Integer) || value.to_i.to_s == value) && 
                                    (value.to_i < 1024 && value.to_i > -1024)) || 
                                   !required && (value.empty?)
                                 }, 
  Lore::PG_DECIMAL            => Proc.new { |value, required| 
                                   value && (value.kind_of?(Integer) || value.to_f.to_s == value) ||
                                   !required && (value.empty?)
                                 }, 
  Lore::PG_TEXT               => Proc.new { |value, required| !required || !value.empty? }, 
  Lore::PG_VARCHAR            => Proc.new { |value, required| !required || !value.empty? }, 
  Lore::PG_TIME               => Proc.new { |value, required| !required || !value.empty? },  # TODO
  Lore::PG_DATE               => Proc.new { |value, required| !required || !value.empty? },  # TODO
  Lore::PG_TIMESTAMP          => Proc.new { |value, required| !required || !value.empty? },  # TODO
  Lore::PG_VCHAR_LIST         => Proc.new { |value, required| !required || !value.empty? },  # TODO
  Lore::PG_TIMESTAMP_TIMEZONE => Proc.new { |value, required| !required || !value.empty? }   # TODO
}

Instance Method Summary collapse

Instance Method Details

#typecheck(code, value, is_required) ⇒ Object

Raises:

  • (Lore::Exceptions::Unkown_Type)


38
39
40
41
42
# File 'lib/lore/validation/type_validator.rb', line 38

def typecheck(code, value, is_required)
    validation = @@type_validation_rules[code]
    return validation.call(value, is_required) if validation
	raise Lore::Exceptions::Unkown_Type.new(code, value)
end