Module: LunaPark::Extensions::Repositories::Postgres::Delete

Defined in:
lib/luna_park/extensions/repositories/postgres/delete.rb

Instance Method Summary collapse

Instance Method Details

#delete(input, **scope_opts) ⇒ Object

Raises:

  • (ArgumentError)


8
9
10
11
12
13
14
15
16
17
18
# File 'lib/luna_park/extensions/repositories/postgres/delete.rb', line 8

def delete(input, **scope_opts)
  pk_value = case input
             when self.class.entity_class then input.public_send(primary_key)
             when Hash                    then input[primary_key]
             else input
             end

  raise ArgumentError, "primary key '#{primary_key}' value can't be nil" if pk_value.nil?

  scoped(**scope_opts).where(primary_key => pk_value).delete.positive?
end