class Sidekiq::DeferredJobs::Filter
Logic for filtering jobs by worker class and/or sidekiq_options.
Public Class Methods
new(filters)
click to toggle source
# File lib/sidekiq/deferred_jobs.rb, line 140 def initialize(filters) @filters = Array(filters).flatten end
Public Instance Methods
match?(klass, opts = nil)
click to toggle source
@return [Boolean] true if the job matches the filters.
# File lib/sidekiq/deferred_jobs.rb, line 145 def match?(klass, opts = nil) return true if @filters.empty? @filters.any? do |filter| if filter.is_a?(Module) klass <= filter elsif filter.is_a?(Hash) worker_options = (opts ? klass.sidekiq_options.merge(opts.transform_keys(&:to_s)) : klass.sidekiq_options) filter.all? { |key, value| worker_options[key.to_s] == value } else filter end end end