Class: Lore::Validation::Type_Validator
- 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
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 |