lib/rubocop/cop/style/class_methods.rb in rubocop-0.19.1 vs lib/rubocop/cop/style/class_methods.rb in rubocop-0.20.0

- old
+ new

@@ -4,16 +4,32 @@ module Cop module Style # This cop checks for uses of the class/module name instead of # self, when defining class/module methods. class ClassMethods < Cop - MSG = 'Prefer self over class/module for class/module methods.' + MSG = 'Use `self.%s` instead of `%s.%s`.' # TODO: Check if we're in a class/module def on_defs(node) - definee, _name, _args, _body = *node + definee, method_name, _args, _body = *node - add_offense(definee, :name) if definee.type == :const + if definee.type == :const + _, class_name = *definee + add_offense(definee, :name, + message(class_name, method_name)) + end + end + + private + + def message(class_name, method_name) + format(MSG, method_name, class_name, method_name) + end + + def autocorrect(node) + @corrections << lambda do |corrector| + corrector.replace(node.loc.name, 'self') + end end end end end end