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_defs(name, node)
def check_defs(name, node) # check if the class/module name matches the definee for the defs node return unless name == node.receiver add_offense(node.receiver, location: :name) end
def message(node)
def message(node) _, class_name = *node format(MSG, method: node.parent.method_name, class: class_name) end
def on_class(node)
def on_class(node) return unless node.body if node.body.defs_type? check_defs(node.identifier, node.body) elsif node.body.begin_type? node.body.each_child_node(:defs) do |def_node| check_defs(node.identifier, def_node) end end end