class RuboCop::Cop::Style::ClassMethods

end
end

def self.class_method
class SomeClass
# good
end
end

def SomeClass.class_method
class SomeClass
# bad
@example
self, when defining class/module methods.
This cop checks for uses of the class/module name instead of

def autocorrect(node)

def autocorrect(node)
  ->(corrector) { corrector.replace(node.loc.name, 'self') }
end

def check(name, node)

def check(name, node)
  return unless node
  if node.defs_type?
    check_defs(name, node)
  elsif node.begin_type?
    node.each_child_node(:defs) { |n| check_defs(name, n) }
  end
end

def check_defs(name, node)

def check_defs(name, node)
  definee, method_name, _args, _body = *node
  # check if the class/module name matches the definee for the defs node
  return unless name == definee
  _, class_name = *definee
  add_offense(definee, :name, message(class_name, method_name))
end

def message(class_name, method_name)

def message(class_name, method_name)
  format(MSG, method_name, class_name, method_name)
end

def on_class(node)

def on_class(node)
  name, _superclass, body = *node
  check(name, body)
end

def on_module(node)

def on_module(node)
  name, body = *node
  check(name, body)
end