¿Hay alguna forma de iterar en un rango de tiempo en Ruby y establecer el delta?Iterar sobre el objeto Ruby Time con delta
Aquí es una idea de lo que me gustaría hacer:
for hour in (start_time..end_time, hour)
hour #=> Time object set to hour
end
Puede iterar sobre los objetos de tiempo, pero vuelve cada segundo entre los dos. Lo que realmente necesito es una forma de establecer el offset o delta (como minuto, hora, etc.)
¿Está esto incorporado a Ruby, o hay un plugin decente disponible?
Range # step no funciona para objetos Time en Ruby 1.9.2p180 y 1.9.3. Dice: TypeError: no puede iterar desde Time. – prekageo
@prekageo Gracias, actualizado. –
Es bastante fácil extender el método 'step' de' Range' para los pasos 'Time'. He escrito una respuesta para los intervalos dinámicos de paso como '2.months + 33.seconds' (_si_ estás usando' ActiveSupport'). Ver http://stackoverflow.com/questions/19093487/ruby-create-range-of-dates/19094504#19094504. Internamente, el método proxy utiliza este enfoque while-loop. – captainpete