class Timers::Timer
An individual timer set to fire a given proc at a given time
def <=>(other)
def <=>(other) @offset <=> other.offset end
def cancel
def cancel @timers.cancel self end
def continue
def continue @timers.continue self end
def delay(seconds)
def delay(seconds) @timers.delete self @offset += seconds @timers.add self end
def fire(offset = @timers.current_offset)
def fire(offset = @timers.current_offset) reset(offset) if recurring @block.call end
def initialize(timers, interval, recurring = false, &block)
def initialize(timers, interval, recurring = false, &block) @timers, @interval, @recurring = timers, interval, recurring @block = block @offset = nil reset end
def inspect
def inspect str = "#<Timers::Timer:#{object_id.to_s(16)} " offset = @timers.current_offset if @offset if @offset >= offset str << "fires in #{@offset - offset} seconds" else str << "fired #{offset - @offset} seconds ago" end str << ", recurs every #{interval}" if recurring else str << "dead" end str << ">" end
def pause
def pause @timers.pause self end
def reset(offset = @timers.current_offset)
def reset(offset = @timers.current_offset) @timers.cancel self if @time @offset = Float(offset) + @interval @timers.add self end