Class: Valkyrie::Sequel::Persister
- Inherits:
-
Object
- Object
- Valkyrie::Sequel::Persister
show all
- Defined in:
- lib/valkyrie/sequel/persister.rb
Defined Under Namespace
Classes: SaveAllPersister
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(adapter:) ⇒ Persister
Returns a new instance of Persister.
7
8
9
|
# File 'lib/valkyrie/sequel/persister.rb', line 7
def initialize(adapter:)
@adapter = adapter
end
|
Instance Attribute Details
#adapter ⇒ Object
Returns the value of attribute adapter.
4
5
6
|
# File 'lib/valkyrie/sequel/persister.rb', line 4
def adapter
@adapter
end
|
Instance Method Details
#delete(resource:) ⇒ Object
115
116
117
118
|
# File 'lib/valkyrie/sequel/persister.rb', line 115
def delete(resource:)
resources.where(id: resource.id.to_s).delete
resource
end
|
#save(resource:, external_resource: false) ⇒ Object
11
12
13
14
15
|
# File 'lib/valkyrie/sequel/persister.rb', line 11
def save(resource:, external_resource: false)
object_attributes = resource_factory.from_resource(resource: resource)
output = create_or_update(resource: resource, attributes: object_attributes, external_resource: external_resource)
resource_factory.to_resource(object: output)
end
|
#save_all(resources:) ⇒ Object
17
18
19
20
21
22
23
24
25
|
# File 'lib/valkyrie/sequel/persister.rb', line 17
def save_all(resources:)
connection.transaction do
output = SaveAllPersister::Factory.new(persister: self).for(resources: resources).persist!
raise Valkyrie::Persistence::StaleObjectError, "One or more resources have been updated by another process." if output.length != resources.length
output.map do |object|
resource_factory.to_resource(object: object)
end
end
end
|
#wipe! ⇒ Object
120
121
122
|
# File 'lib/valkyrie/sequel/persister.rb', line 120
def wipe!
resources.delete
end
|