class RuboCop::Cop::Style::CollectionMethods

This cop enforces the use of consistent method names from the Enumerable module.

Unfortunately we cannot actually know if a method is from Enumerable or not (static analysis limitation), so this cop can yield some false positives.

Constants

MSG

Public Instance Methods

autocorrect(node) click to toggle source
# File lib/rubocop/cop/style/collection_methods.rb, line 30
def autocorrect(node)
  lambda do |corrector|
    corrector.replace(node.loc.selector,
                      preferred_method(node.loc.selector.source))
  end
end
on_block(node) click to toggle source
# File lib/rubocop/cop/style/collection_methods.rb, line 17
def on_block(node)
  method, _args, _body = *node

  check_method_node(method)
end
on_send(node) click to toggle source
# File lib/rubocop/cop/style/collection_methods.rb, line 23
def on_send(node)
  _receiver, _method_name, *args = *node
  return unless args.size == 1 && args.first.type == :block_pass

  check_method_node(node)
end

Private Instance Methods

check_method_node(node) click to toggle source
# File lib/rubocop/cop/style/collection_methods.rb, line 39
def check_method_node(node)
  _receiver, method_name, *_args = *node

  return unless preferred_methods[method_name]
  add_offense(node, :selector,
              format(MSG,
                     preferred_method(method_name),
                     method_name)
             )
end