class RuboCop::Cop::Performance::TimesMap

end
i.to_s
Array.new(9) do |i|
@good
end
i.to_s
9.times.map do |i|
@bad
@example
with an explicit array creation.
In most cases such calls can be replaced
This cop checks for .times.map calls.

def autocorrect(node)

def autocorrect(node)
  send_node = node.send_type? ? node : node.each_descendant(:send).first
  count, = *send_node.receiver
  replacement =
    "Array.new(#{count.source}" \
    "#{send_node.arguments.map { |arg| ", #{arg.source}" }.join})"
  lambda do |corrector|
    corrector.replace(send_node.loc.expression, replacement)
  end
end

def check(node)

def check(node)
  times_map_call(node) do |map_or_collect|
    add_offense(node, :expression, format(MSG, map_or_collect))
  end
end

def on_block(node)

def on_block(node)
  check(node)
end

def on_send(node)

def on_send(node)
  check(node)
end