class RuboCop::Cop::Performance::ReverseEach

[].reverse_each
# good
[].reverse.each
# bad
@example
change them to use ‘reverse_each` instead.
This cop is used to identify usages of `reverse.each` and

def autocorrect(node)

def autocorrect(node)
  ->(corrector) { corrector.replace(node.loc.dot, '_') }
end

def on_send(node)

def on_send(node)
  receiver, second_method = *node
  return unless second_method == :each
  return if receiver.nil?
  _, first_method = *receiver
  return unless first_method == :reverse
  source_buffer = node.loc.expression.source_buffer
  location_of_reverse = receiver.loc.selector.begin_pos
  end_location = node.loc.selector.end_pos
  range = Parser::Source::Range.new(source_buffer,
                                    location_of_reverse,
                                    end_location)
  add_offense(node, range, MSG)
end