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