Class: Valkyrie::Sequel::Persister::SaveAllPersister

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

Defined Under Namespace

Classes: CompositePersister, Factory

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resources:, relation:, resource_factory:) ⇒ SaveAllPersister

Returns a new instance of SaveAllPersister.



80
81
82
83
84
# File 'lib/valkyrie/sequel/persister.rb', line 80

def initialize(resources:, relation:, resource_factory:)
  @resources = resources
  @relation = relation
  @resource_factory = resource_factory
end

Instance Attribute Details

#relationObject (readonly)

Returns the value of attribute relation.



79
80
81
# File 'lib/valkyrie/sequel/persister.rb', line 79

def relation
  @relation
end

#resource_factoryObject (readonly)

Returns the value of attribute resource_factory.



79
80
81
# File 'lib/valkyrie/sequel/persister.rb', line 79

def resource_factory
  @resource_factory
end

#resourcesObject (readonly)

Returns the value of attribute resources.



79
80
81
# File 'lib/valkyrie/sequel/persister.rb', line 79

def resources
  @resources
end

Instance Method Details

#converted_resourcesObject



93
94
95
96
97
98
99
100
101
# File 'lib/valkyrie/sequel/persister.rb', line 93

def converted_resources
  @converted_resources ||= resources.map do |resource|
    output = resource_factory.from_resource(resource: resource)
    output[:lock_version] ||= 0
    output[:created_at] ||= Time.now.utc
    output[:updated_at] ||= Time.now.utc
    output
  end
end

#persist!Object



86
87
88
89
90
91
# File 'lib/valkyrie/sequel/persister.rb', line 86

def persist!
  return [] if resources.empty?
  Array.wrap(
    relation.multi_insert(converted_resources)
  )
end