Method: Sequel::Postgres::PGRow::DatabaseMethods#row_type
- Defined in:
- lib/sequel/extensions/pg_row.rb
#row_type(db_type, obj) ⇒ Object
Handle typecasting of the given object to the given database type. In general, the given database type should already be registered, but if obj is an array, this will handled unregistered types.
514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 |
# File 'lib/sequel/extensions/pg_row.rb', line 514 def row_type(db_type, obj) (type_hash = @row_types[literal(db_type)]) && (parser = type_hash[:parser]) case obj when ArrayRow, HashRow obj when Array if parser parser.typecast(obj) else obj = ArrayRow.new(obj) obj.db_type = db_type obj end when Hash if parser parser.typecast(obj) else raise InvalidValue, "Database#row_type requires the #{db_type.inspect} type have a registered parser and typecaster when called with a hash" end else raise InvalidValue, "cannot convert #{obj.inspect} to row type #{db_type.inspect}" end end |