class Tartarus::ScheduleArchivingModel
Attributes
registry[R]
Public Class Methods
new(registry: Tartarus.registry)
click to toggle source
# File lib/tartarus/schedule_archiving_model.rb, line 5 def initialize(registry: Tartarus.registry) @registry = registry end
Public Instance Methods
schedule(archivable_item_name)
click to toggle source
# File lib/tartarus/schedule_archiving_model.rb, line 9 def schedule(archivable_item_name) archivable_item = registry.find_by_name(archivable_item_name) if archivable_item.scope_by_tenant? each_tenant(archivable_item) do |tenant| enqueue(Tartarus::Sidekiq::ArchiveModelWithTenantJob, archivable_item.queue, archivable_item.name, tenant) end else enqueue(Tartarus::Sidekiq::ArchiveModelWithoutTenantJob, archivable_item.queue, archivable_item.name) end end
Private Instance Methods
each_tenant(archivable_item) { |public_send| ... }
click to toggle source
# File lib/tartarus/schedule_archiving_model.rb, line 23 def each_tenant(archivable_item) collection = archivable_item.tenants_range.call if collection.respond_to?(:find_each) collection.find_each { |element| yield element.public_send(archivable_item.tenant_value_source) } else collection.each { |element| yield element } end end
enqueue(job_class, queue, *args)
click to toggle source
# File lib/tartarus/schedule_archiving_model.rb, line 33 def enqueue(job_class, queue, *args) job_class.set(queue: queue).perform_async(*args) end