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.



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

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.



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

def relation
  @relation
end

#resource_factoryObject (readonly)

Returns the value of attribute resource_factory.



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

def resource_factory
  @resource_factory
end

#resourcesObject (readonly)

Returns the value of attribute resources.



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

def resources
  @resources
end

Instance Method Details

#converted_resourcesObject



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

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



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

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