class Tartarus::ArchiveModelWithoutTenant

Attributes

registry[R]
repository[R]

Public Class Methods

new(registry: Tartarus.registry, repository: Tartarus::ArchivableCollectionRepository.new) click to toggle source
# File lib/tartarus/archive_model_without_tenant.rb, line 5
def initialize(registry: Tartarus.registry, repository: Tartarus::ArchivableCollectionRepository.new)
  @registry = registry
  @repository = repository
end

Public Instance Methods

archive(archivable_item_name) click to toggle source
# File lib/tartarus/archive_model_without_tenant.rb, line 10
def archive(archivable_item_name)
  archivable_item = registry.find_by_name(archivable_item_name)
  collection = collection_to_archive(archivable_item)
  archivable_item.remote_storage.store(collection, archivable_item.name)
  archivable_item.archive_strategy.call(collection)
end

Private Instance Methods

collection_to_archive(archivable_item) click to toggle source
# File lib/tartarus/archive_model_without_tenant.rb, line 19
def collection_to_archive(archivable_item)
  repository
    .items_older_than(
      archivable_item.model,
      archivable_item.timestamp_field, archivable_item.archive_items_older_than.call
    )
end