class Timers::Timer
An individual timer set to fire a given proc at a given time
Attributes
interval[R]
recurring[R]
time[R]
Public Class Methods
new(timers, interval, recurring = false, &block)
click to toggle source
# File lib/timers.rb, line 71 def initialize(timers, interval, recurring = false, &block) @timers, @interval, @recurring = timers, interval, recurring @block = block @time = nil reset end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/timers.rb, line 79 def <=>(other) @time <=> other.time end
cancel()
click to toggle source
Cancel this timer
# File lib/timers.rb, line 84 def cancel @timers.cancel self end
fire(now = Time.now)
click to toggle source
Fire the block
# File lib/timers.rb, line 96 def fire(now = Time.now) reset(now) if recurring @block.call end
Also aliased as: call
inspect()
click to toggle source
Inspect a timer
# File lib/timers.rb, line 103 def inspect str = "#<Timers::Timer:#{object_id.to_s(16)} " now = Time.now if @time if @time >= now str << "fires in #{@time - now} seconds" else str << "fired #{now - @time} seconds ago" end str << ", recurs every #{interval}" if recurring else str << "dead" end str << ">" end
reset(now = Time.now)
click to toggle source
Reset this timer
# File lib/timers.rb, line 89 def reset(now = Time.now) @timers.cancel self if @time @time = now + @interval @timers.add self end