Sha256: 5143e22059af4e46801c1bf89c9402024bd80ac967e200813c0f0080ee6f522e

Contents?: true

Size: 896 Bytes

Versions: 1

Compression:

Stored size: 896 Bytes

Contents

require "sequel/extensions/pg_array"

class ReeDao::PgArray < ReeMapper::AbstractType
  contract(
    ReeEnum::Value,
    Kwargs[
      role: Nilor[Symbol, ArrayOf[Symbol]]
    ] => String
  )
  def serialize(value, role: nil)
    raise ArgumentError.new("not supported")
  end

  contract(
    Any,
    Kwargs[
      role: Nilor[Symbol, ArrayOf[Symbol]]
    ] => ReeEnum::Value
  ).throws(ReeMapper::CoercionError)
  def cast(value, role: nil)
    raise ArgumentError.new("not supported")
  end

  contract(
    ArrayOf[Any],
    Kwargs[
      role: Nilor[Symbol, ArrayOf[Symbol]]
    ] => Sequel::Postgres::PGArray
  )
  def db_dump(value, role: nil)
    Sequel.pg_array(value)
  end

  contract(
    Sequel::Postgres::PGArray,
    Kwargs[
      role: Nilor[Symbol, ArrayOf[Symbol]]
    ] => ArrayOf[Any]
  ).throws(ReeMapper::TypeError)
  def db_load(value, role: nil)
    value.to_a
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ree_lib-1.0.16 lib/ree_lib/packages/ree_dao/package/ree_dao/types/pg_array.rb