module Sidekiq::Apriori::ClassMethods

Public Instance Methods

perform(*args) click to toggle source
Calls superclass method
# File lib/sidekiq-apriori/worker.rb, line 16
def perform(*args)
  super(*args)
rescue ArgumentError => err
  raise err unless has_priority?(args.last)
  super(*args[0..-2])
end

Private Instance Methods

has_priority?(options) click to toggle source
# File lib/sidekiq-apriori/worker.rb, line 23
def has_priority?(options)
  return false unless hashlike?(options)
  stringify_keys(options).has_key?('priority')
end
hashlike?(hashish) click to toggle source
# File lib/sidekiq-apriori/worker.rb, line 42
def hashlike?(hashish)
  [ :keys, :has_key?, :[] ].
    map { |method| hashish.respond_to?(method) }.all?
end
stringify_keys(hashish) click to toggle source
# File lib/sidekiq-apriori/worker.rb, line 29
def stringify_keys(hashish)
  duplicate = hashish.dup

  if hashlike?(hashish)
    duplicate.keys.each do |key|
      duplicate[key.to_s] = duplicate.delete(key)
    end
  end

  duplicate
end