Class: Valkyrie::Persistence::Postgres::Persister

Inherits:
Object
  • Object
show all
Defined in:
lib/valkyrie/persistence/postgres/persister.rb

Overview

Persister for Postgres MetadataAdapter.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(adapter:) ⇒ Persister

Returns a new instance of Persister.



9
10
11
# File 'lib/valkyrie/persistence/postgres/persister.rb', line 9

def initialize(adapter:)
  @adapter = adapter
end

Instance Attribute Details

#adapterObject (readonly)

Returns the value of attribute adapter.



7
8
9
# File 'lib/valkyrie/persistence/postgres/persister.rb', line 7

def adapter
  @adapter
end

Instance Method Details

#delete(resource:) ⇒ Object

Parameters:



29
30
31
32
33
# File 'lib/valkyrie/persistence/postgres/persister.rb', line 29

def delete(resource:)
  orm_object = resource_factory.from_resource(resource: resource)
  orm_object.delete
  resource
end

#save(resource:) ⇒ Valkyrie::Resource

Returns The resource with an ‘#id` value generated by the persistence backend.

Parameters:

Returns:

  • (Valkyrie::Resource)

    The resource with an ‘#id` value generated by the persistence backend.



14
15
16
17
18
19
# File 'lib/valkyrie/persistence/postgres/persister.rb', line 14

def save(resource:)
  ensure_multiple_values!(resource)
  orm_object = resource_factory.from_resource(resource: resource)
  orm_object.save!
  resource_factory.to_resource(object: orm_object)
end

#save_all(resources:) ⇒ Array<Valkyrie::Resource>

Returns List of resources with an ‘#id` value generated by the persistence backend.

Parameters:

Returns:

  • (Array<Valkyrie::Resource>)

    List of resources with an ‘#id` value generated by the persistence backend.



22
23
24
25
26
# File 'lib/valkyrie/persistence/postgres/persister.rb', line 22

def save_all(resources:)
  resources.map do |resource|
    save(resource: resource)
  end
end

#wipe!Object

Wipes all data in the persistence backend.



36
37
38
# File 'lib/valkyrie/persistence/postgres/persister.rb', line 36

def wipe!
  resource_factory.orm_class.delete_all
end