Class: Sidekiq::DeferredJobs::Filter
- Inherits:
-
Object
- Object
- Sidekiq::DeferredJobs::Filter
- Defined in:
- lib/sidekiq/deferred_jobs.rb
Overview
Logic for filtering jobs by worker class and/or sidekiq_options.
Instance Method Summary collapse
-
#initialize(filters) ⇒ Filter
constructor
A new instance of Filter.
-
#match?(klass, opts = nil) ⇒ Boolean
True if the job matches the filters.
Constructor Details
#initialize(filters) ⇒ Filter
Returns a new instance of Filter.
223 224 225 226 227 228 229 |
# File 'lib/sidekiq/deferred_jobs.rb', line 223 def initialize(filters) @filters = (filters.is_a?(Hash) ? [filters] : Array(filters).flatten) invalid = @filters.reject { |filter| filter.is_a?(Module) || filter.is_a?(Hash) } unless invalid.empty? raise ArgumentError, "Filters must be classes, modules, or hashes; got #{invalid.collect(&:inspect).join(", ")}" end end |
Instance Method Details
#match?(klass, opts = nil) ⇒ Boolean
Returns true if the job matches the filters.
232 233 234 235 236 237 238 239 240 241 242 |
# File 'lib/sidekiq/deferred_jobs.rb', line 232 def match?(klass, opts = nil) return true if @filters.empty? @filters.any? do |filter| if filter.is_a?(Module) klass <= filter else = Sidekiq::DeferredJobs.(klass, opts) filter.all? { |key, value| [key.to_s] == value } end end end |