Method: Window#every_n_seconds

Defined in:
lib/drydock/console.rb

#every_n_seconds(n) ⇒ Object

Execute the given block every n seconds in a separate thread. The lower limit for n is 1 second. Returns a Thread object.



254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
# File 'lib/drydock/console.rb', line 254

def every_n_seconds(n)
  #n = 1 if n < 1
  thread = Thread.new do
    
    begin
      while true
        before = Time.now
        yield
        interval = n - (Time.now - before)
        sleep(interval) if interval > 0
      end
    rescue Interrupt
      break
    ensure
      thread
    end
  end
end