class RuboCop::Cop::Naming::AccessorMethodName
Makes sure that accessor methods are named properly. Applies to both instance and class methods.
NOTE: Offenses are only registered for methods with the expected arity. Getters (‘get_attribute`) must have no arguments to be registered, and setters (`set_attribute(value)`) must have exactly one.
@example
# bad def set_attribute(value) end # good def attribute=(value) end # bad def get_attribute end # good def attribute end # accepted, incorrect arity for getter def get_value(attr) end # accepted, incorrect arity for setter def set_value end
Constants
- MSG_READER
- MSG_WRITER
Public Instance Methods
on_def(node)
click to toggle source
# File lib/rubocop/cop/naming/accessor_method_name.rb, line 42 def on_def(node) return unless bad_reader_name?(node) || bad_writer_name?(node) message = message(node) add_offense(node.loc.name, message: message) end
Also aliased as: on_defs
Private Instance Methods
bad_reader_name?(node)
click to toggle source
# File lib/rubocop/cop/naming/accessor_method_name.rb, line 61 def bad_reader_name?(node) node.method_name.to_s.start_with?('get_') && !node.arguments? end
bad_writer_name?(node)
click to toggle source
# File lib/rubocop/cop/naming/accessor_method_name.rb, line 65 def bad_writer_name?(node) node.method_name.to_s.start_with?('set_') && node.arguments.one? && node.first_argument.arg_type? end
message(node)
click to toggle source
# File lib/rubocop/cop/naming/accessor_method_name.rb, line 53 def message(node) if bad_reader_name?(node) MSG_READER elsif bad_writer_name?(node) MSG_WRITER end end