From: Pete Elmore <1337p337@...> Date: 2007-09-29T04:16:10+09:00 Subject: Re: sleep for lesser of two values On 28/09/2007, Earle Clubb 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 I don't know about elegant, but it's a little more easy to read sleep [15, end_time - t].min than the ?: business.