module SidekiqUniqueRetries

Attributes

adapter[R]

Public Class Methods

adapter=(name) click to toggle source
# File lib/sidekiq_unique_retries.rb, line 10
def adapter=(name)
  @adapter = adapter_for(name)
end
lock(item) click to toggle source
# File lib/sidekiq_unique_retries.rb, line 18
def lock(item)
  Lock.new(item, adapter).acquire
end
lockable?(item) click to toggle source
# File lib/sidekiq_unique_retries.rb, line 14
def lockable?(item)
  adapter.lockable?(item)
end
unlock(item) click to toggle source
# File lib/sidekiq_unique_retries.rb, line 22
def unlock(item)
  Lock.new(item, adapter).release
end

Private Class Methods

adapter_for(object) click to toggle source
# File lib/sidekiq_unique_retries.rb, line 28
def adapter_for(object)
  case object
  when Symbol
    load_adapter(object)
    build_adapter(object)
  else
    object
  end
end
build_adapter(name) click to toggle source
# File lib/sidekiq_unique_retries.rb, line 42
def build_adapter(name)
  class_name = name.to_s.split('_').map(&:capitalize).join
  klass = self::Adapters.const_get(class_name, false)
  klass.new
end
load_adapter(name) click to toggle source
# File lib/sidekiq_unique_retries.rb, line 38
def load_adapter(name)
  require "sidekiq_unique_retries/adapters/#{name}"
end