On Sat, 29 Sep 2007 04:07:40 +0900, Earle Clubb <eclubb / valcom.com> wrote:
> 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
>   # execute command
>   sleep((15 < (end_time - t)) ? 15 : (end_time - t))
> end

Maybe:

 sleep [ 15, end_time - t ].min

-mental