class Tartarus::Repository

Attributes

backend[R]
serializer[R]

Public Class Methods

new(backend: Sidekiq::Cron::Job, serializer: Tartarus::ArchivableItem::SidekiqCronJobSerializer.new) click to toggle source
# File lib/tartarus/repository.rb, line 5
def initialize(backend: Sidekiq::Cron::Job, serializer: Tartarus::ArchivableItem::SidekiqCronJobSerializer.new)
  @backend = backend
  @serializer = serializer
end

Public Instance Methods

save(archivable_item) click to toggle source
# File lib/tartarus/repository.rb, line 10
def save(archivable_item)
  backend.new(serializer.serialize(archivable_item)).tap do |job|
    if job.valid?
      job.save
    else
      raise_invalid_job(job)
    end
  end
end

Private Instance Methods

raise_invalid_job(job) click to toggle source
# File lib/tartarus/repository.rb, line 22
def raise_invalid_job(job)
  errors = job.errors.join(",")
  raise "could not save job: #{errors}"
end