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 28
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)
  check_method_node(node.send_node)
end
on_send(node) click to toggle source
# File lib/rubocop/cop/style/collection_methods.rb, line 21
def on_send(node)
  return unless node.arguments.one? &&
                node.first_argument.block_pass_type?

  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 41
def check_method_node(node)
  return unless preferred_methods[node.method_name]

  add_offense(node, location: :selector)
end
message(node) click to toggle source
# File lib/rubocop/cop/style/collection_methods.rb, line 37
def message(node)
  format(MSG, preferred_method(node.method_name), node.method_name)
end