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