class RuboCop::Cop::Style::ClassMethods
This cop checks for uses of the class/module name instead of self, when defining class/module methods.
@example
# bad class SomeClass def SomeClass.class_method ... end end # good class SomeClass def self.class_method ... end end
Constants
- MSG
Public Instance Methods
on_class(node)
click to toggle source
# File lib/rubocop/cop/style/class_methods.rb, line 26 def on_class(node) name, _superclass, body = *node check(name, body) end
on_module(node)
click to toggle source
# File lib/rubocop/cop/style/class_methods.rb, line 31 def on_module(node) name, body = *node check(name, body) end
Private Instance Methods
autocorrect(node)
click to toggle source
# File lib/rubocop/cop/style/class_methods.rb, line 62 def autocorrect(node) ->(corrector) { corrector.replace(node.loc.name, 'self') } end
check(name, node)
click to toggle source
# File lib/rubocop/cop/style/class_methods.rb, line 38 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
check_defs(name, node)
click to toggle source
# File lib/rubocop/cop/style/class_methods.rb, line 48 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, location: :name, message: message(class_name, method_name)) end
message(class_name, method_name)
click to toggle source
# File lib/rubocop/cop/style/class_methods.rb, line 58 def message(class_name, method_name) format(MSG, method_name, class_name, method_name) end