class Tartarus::ArchivableItem

Constants

OPTIONAL_ATTRIBUTES_NAMES
REQUIRED_ATTRIBUTES_NAMES

Public Instance Methods

active_job() click to toggle source
# File lib/tartarus/archivable_item.rb, line 38
def active_job
  @active_job || false
end
archive_items_older_than=(value) click to toggle source
# File lib/tartarus/archivable_item.rb, line 14
def archive_items_older_than=(value)
  raise ":archive_items_older_than must be a lambda" if !value.respond_to?(:call)

  @archive_items_older_than = value
end
archive_strategy(factory: Tartarus::ArchiveStrategy.new) click to toggle source
# File lib/tartarus/archivable_item.rb, line 66
def archive_strategy(factory: Tartarus::ArchiveStrategy.new)
  factory.for(archive_with, batch_size: batch_size)
end
archive_with() click to toggle source
# File lib/tartarus/archivable_item.rb, line 42
def archive_with
  return @archive_with if defined?(@archive_with)

  @archive_with ||= :delete_all
end
batch_size() click to toggle source
# File lib/tartarus/archivable_item.rb, line 48
def batch_size
  return @batch_size if defined?(@batch_size)

  @batch_size ||= 10_000
end
cron=(value) click to toggle source
# File lib/tartarus/archivable_item.rb, line 8
def cron=(value)
  Fugit.do_parse_cron(value)

  @cron = value
end
name() click to toggle source
# File lib/tartarus/archivable_item.rb, line 54
def name
  @name || @model.to_s
end
remote_storage() click to toggle source
# File lib/tartarus/archivable_item.rb, line 70
def remote_storage
  @remote_storage || Tartarus::RemoteStorage::Null
end
scope_by_tenant?() click to toggle source
# File lib/tartarus/archivable_item.rb, line 62
def scope_by_tenant?
  !!tenant_id_field
end
tenant_value_source() click to toggle source
# File lib/tartarus/archivable_item.rb, line 32
def tenant_value_source
  return @tenant_value_source if defined?(@tenant_value_source)

  @tenant_value_source ||= :id
end
tenants_range() click to toggle source
# File lib/tartarus/archivable_item.rb, line 26
def tenants_range
  return @tenants_range if defined?(@tenants_range)

  @tenants_range ||= -> { [] }
end
tenants_range=(value) click to toggle source
# File lib/tartarus/archivable_item.rb, line 20
def tenants_range=(value)
  raise ":tenants_range must be a lambda" if !value.respond_to?(:call)

  @tenants_range = value
end
validate!() click to toggle source
# File lib/tartarus/archivable_item.rb, line 58
def validate!
  validate_presence
end

Private Instance Methods

validate_presence() click to toggle source
# File lib/tartarus/archivable_item.rb, line 76
def validate_presence
  REQUIRED_ATTRIBUTES_NAMES.each do |attribute|
    raise ":#{attribute} must be present" if public_send(attribute).nil?
  end
end