Class: Valkyrie::Persistence::Memory::Persister

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

Overview

Note:

Documentation for persisters in general is maintained here.

Persister for the memory metadata adapter.

Direct Known Subclasses

DeleteTrackingBuffer::Persister

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(adapter) ⇒ Persister

Returns a new instance of Persister.

Parameters:



11
12
13
# File 'lib/valkyrie/persistence/memory/persister.rb', line 11

def initialize(adapter)
  @adapter = adapter
end

Instance Attribute Details

#adapterObject (readonly)

Returns the value of attribute adapter.



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

def adapter
  @adapter
end

Instance Method Details

#delete(resource:) ⇒ Object

Parameters:



39
40
41
# File 'lib/valkyrie/persistence/memory/persister.rb', line 39

def delete(resource:)
  cache.delete(resource.id)
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.



18
19
20
21
22
23
24
25
26
# File 'lib/valkyrie/persistence/memory/persister.rb', line 18

def save(resource:)
  resource = generate_id(resource) if resource.id.blank?
  resource.created_at ||= Time.current
  resource.updated_at = Time.current
  resource.new_record = false
  normalize_dates!(resource)
  ensure_multiple_values!(resource)
  cache[resource.id] = resource
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.



31
32
33
34
35
# File 'lib/valkyrie/persistence/memory/persister.rb', line 31

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

#wipe!Object

Wipes all data in the persistence backend.



44
45
46
# File 'lib/valkyrie/persistence/memory/persister.rb', line 44

def wipe!
  cache.clear
end