module SidekiqUniqueJobs::SidekiqWorkerMethods

Module with convenience methods for the Sidekiq::Worker class

@author Mikael Henriksson <mikael@mhenrixon.com>

Public Instance Methods

after_unlock_hook() click to toggle source

The hook to call after a successful unlock @return [Proc]

# File lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb, line 37
def after_unlock_hook
  lambda do
    if @worker_class.respond_to?(:after_unlock)
      @worker_class.after_unlock # instance method in sidekiq v6
    elsif worker_class.respond_to?(:after_unlock)
      worker_class.after_unlock # class method regardless of sidekiq version
    end
  end
end
default_worker_options() click to toggle source

Returns the default worker options from Sidekiq

@return [Hash<Symbol, Object>]

# File lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb, line 61
def default_worker_options
  Sidekiq.default_worker_options
end
sidekiq_worker_class?() click to toggle source

Tests that the @return [true] if worker_class responds to get_sidekiq_options @return [false] if worker_class does not respond to get_sidekiq_options

# File lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb, line 25
def sidekiq_worker_class?
  worker_method_defined?(:get_sidekiq_options)
end
worker_class() click to toggle source

The Sidekiq::Worker implementation @return [Sidekiq::Worker]

# File lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb, line 31
def worker_class
  @_worker_class ||= worker_class_constantize # rubocop:disable Naming/MemoizedInstanceVariableName
end
worker_class_constantize(klazz = @worker_class) click to toggle source

Attempt to constantize a string worker_class argument, always failing back to the original argument when the constant can't be found

@return [Sidekiq::Worker]

# File lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb, line 51
def worker_class_constantize(klazz = @worker_class)
  SidekiqUniqueJobs.safe_constantize(klazz)
end
worker_method_defined?(method_sym) click to toggle source

Avoids duplicating worker_class.respond_to? in multiple places @return [true, false]

# File lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb, line 10
def worker_method_defined?(method_sym)
  worker_class.respond_to?(method_sym)
end
worker_options() click to toggle source

Wraps get_sidekiq_options to always work with a hash @return [Hash] of the worker class sidekiq options

# File lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb, line 16
def worker_options
  return {} unless sidekiq_worker_class?

  worker_class.get_sidekiq_options.deep_stringify_keys
end