module Sidekiq::CurrentAttributes

def build_cattrs_hash(klass_or_array)

def build_cattrs_hash(klass_or_array)
  if klass_or_array.is_a?(Array)
    {}.tap do |hash|
      klass_or_array.each_with_index do |klass, index|
        hash[key_at(index)] = klass.to_s
      end
    end
  else
    {key_at(0) => klass_or_array.to_s}
  end
end

def key_at(index)

def key_at(index)
  (index == 0) ? "cattr" : "cattr_#{index}"
end

def persist(klass_or_array, config = Sidekiq.default_configuration)

def persist(klass_or_array, config = Sidekiq.default_configuration)
  cattrs = build_cattrs_hash(klass_or_array)
  config.client_middleware.add Save, cattrs
  config.server_middleware.prepend Load, cattrs
end