Class Timer
In: lib/more/facets/timer.rb
Parent: Object

Timer

Provides a strightforward means for controlling time critical execution. Can be used as a "stop watch" timer or as a "time bomb" timer.

  t = Timer.new(10) { raise TimeoutError, "timeout!" }
  t.start
    :      # done within 10sec timeout
  t.stop
  t.start
    :
  if condition then
    t.reset       #--> restart timer
  end

A Kernel method is also provided for easily timing the exectuion of a block.

  timed { |timer|
     timer.total_time.round #=> 0

     sleep 1
     timer.total_time.round #=> 1

     timer.stop
     timer.total_time.round #=> 1

     sleep 2
     timer.total_time.round #=> 1

     timer.start
     timer.total_time.round #=> 1

     sleep 1
     timer.total_time.round #=> 2
  }

Methods

defuse   limit   new   on_timeout   reset   reset_limit   running?   start   stop   stopped?   total_time  

Classes and Modules

Class Timer::Dummy

Attributes

end_time  [R] 
start_time  [R] 
time_limit  [RW] 

Public Class methods

Public Instance methods

Kill time limit thread, if any.

Establish a time limit on execution.

Stops and resets the timer. If the timer was running returns the total time. If not returns 0.

Resets the time limit. Same as:

  t.stop
  t.start

Queries whether the timer is still running.

Start the timer.

Stops timer and returns total time. If timer was not running returns false.

Queries whether the timer is still not running.

Queries total recorded time of timer.

[Validate]