Sha256: 3fbae7d5a0874bc918d35fab1f1380687378bd311f129e16654cc54c7151fe17

Contents?: true

Size: 630 Bytes

Versions: 1

Compression:

Stored size: 630 Bytes

Contents

# frozen_string_literal: true

module LunaPark
  module Extensions
    module Repositories
      module Postgres
        module Create
          def create(input)
            entity = wrap(input)

            time = Time.now
            entity.created_at = time if entity.respond_to?(:created_at)
            entity.updated_at = time if entity.respond_to?(:updated_at)

            row       = to_row(entity)
            new_row   = dataset.returning.insert(row).first
            new_attrs = from_row(new_row)

            entity.set_attributes(new_attrs)
            entity
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
luna_park-0.13.0 lib/luna_park/extensions/repositories/postgres/create.rb