Class: RuboCop::Cop::Gusto::PerformClassMethod

Inherits:
Base
  • Object
show all
Defined in:
lib/rubocop/cop/gusto/perform_class_method.rb

Overview

Checks for a defined ‘.perform` class method in Sidekiq workers. These are most likely intended to have been instance methods.

Examples:

# bad
class MyWorker
  include Sidekiq::Worker

  def self.perform
    # ...
  end
end

# good
class MyWorker
  include Sidekiq::Worker

  def perform
    # ...
  end
end

Constant Summary collapse

MSG =
'Class-level `perform` method is being defined. Did you mean to use an instance method?'
WORKER_FALLBACK =
%w(Sidekiq::Worker).freeze
WORKER_MODULES =
'WorkerModules'

Instance Method Summary collapse

Instance Method Details

#on_def(node) ⇒ Object Also known as: on_defs



33
34
35
36
37
38
39
# File 'lib/rubocop/cop/gusto/perform_class_method.rb', line 33

def on_def(node)
  return unless node.method?(:perform)
  return unless (method_type = perform_class_method_type(node))
  return unless is_sidekiq_worker?(node, method_type)

  add_offense(node)
end