O método step step do Ruby causa uma execução muito lenta?
Eu tenho esse bloco de código:
date_counter = Time.mktime(2011,01,01,00,00,00,"+05:00")
@weeks = Array.new
(date_counter..Time.now).step(1.week) do |week|
logger.debug "WEEK: " + week.inspect
@weeks << week
end
Tecnicamente, o código funciona, gerando:
Sat Jan 01 00:00:00 -0500 2011
Sat Jan 08 00:00:00 -0500 2011
Sat Jan 15 00:00:00 -0500 2011
etc.
Mas o tempo de execução é um lixo completo! Demora aproximadamente quatro segundos para calcular a cada semana.
Existe alguma ineficiência grotesca que estou perdendo neste código? Parece bastante direto.
Estou executando o Ruby 1.8.7 com o Rails 3.0.