class Sidekiq::Control::Configuration

Constants

DEFAULT_IGNORED_CLASSES

Attributes

ignored_classes[RW]
jobs[W]

Public Class Methods

new() click to toggle source
# File lib/sidekiq/control/configuration.rb, line 22
def initialize
  self.ignored_classes = DEFAULT_IGNORED_CLASSES
end

Public Instance Methods

jobs() click to toggle source
# File lib/sidekiq/control/configuration.rb, line 26
def jobs
  @jobs ||= application_jobs.sort_by(&:name)
end

Private Instance Methods

active_jobs() click to toggle source
# File lib/sidekiq/control/configuration.rb, line 49
def active_jobs
  return [] unless defined?(::ActiveJob::Base)

  find_descendants_of(::ActiveJob::Base)
end
application_jobs() click to toggle source
# File lib/sidekiq/control/configuration.rb, line 32
def application_jobs
  rails_eager_load
  (sidekiq_jobs + active_jobs).select(&method(:select_class?))
end
find_descendants_of(obj) click to toggle source
# File lib/sidekiq/control/configuration.rb, line 55
def find_descendants_of(obj)
  ObjectSpace.each_object(Class).select(&obj.method(:>))
end
rails_eager_load() click to toggle source
# File lib/sidekiq/control/configuration.rb, line 59
def rails_eager_load
  ::Rails.application.eager_load! if defined?(::Rails) && !::Rails.env.production?
end
select_class?(klass) click to toggle source
# File lib/sidekiq/control/configuration.rb, line 37
def select_class?(klass)
  return if Sidekiq::Control.config.ignored_classes.include?(klass.name)

  klass.public_instance_methods(false).include?(:perform)
end
sidekiq_jobs() click to toggle source
# File lib/sidekiq/control/configuration.rb, line 43
def sidekiq_jobs
  return [] unless defined?(::Sidekiq::Worker)

  find_descendants_of(::Sidekiq::Worker)
end