I have a loop that runs for a variable amount of time, as defined by
@duration. I need to re-execute the command every 15 seconds for the
length of @duration, which is a float and can have any value. Can
anyone think of a more elegant way to do this than the code below?
end_time = Time.now + @duration
while (t = Time.now) < end_time
sleep((15 < (end_time - t)) ? 15 : (end_time - t))