class RuboCop::Cop::Lint::RedundantWithIndex
end
v
ary.each do |v|
# good
end
v
ary.each.with_index do |v|
# bad
end
v
ary.each do |v|
# good
end
v
ary.each_with_index do |v|
# bad
@example
This cop checks for redundant ‘with_index`.
def autocorrect(node)
def autocorrect(node) lambda do |corrector| redundant_with_index?(node) do |send| if send.method_name == :each_with_index corrector.replace(send.loc.selector, 'each') else corrector.remove(with_index_range(send)) corrector.remove(send.loc.dot) end end end end
def message(node)
def message(node) if node.method_name == :each_with_index MSG_EACH_WITH_INDEX else MSG_WITH_INDEX end end
def on_block(node)
def on_block(node) redundant_with_index?(node) do |send| add_offense(node, location: with_index_range(send)) end end
def with_index_range(send)
def with_index_range(send) range_between( send.loc.selector.begin_pos, send.loc.expression.end_pos ) end