Sha256: 6fc98ffc238cd60e59b4f4d4c5b90a16cae2bc6492e87d1546b83a07d26698c2
Contents?: true
Size: 663 Bytes
Versions: 3
Compression:
Stored size: 663 Bytes
Contents
require 'hitimes' module Timers # An exclusive, monotonic timeout class. class Timeout def initialize(duration) @duration = duration @remaining = true end attr :duration attr :remaining # Yields while time remains for work to be done: def while_time_remaining(&block) @interval = Hitimes::Interval.new @interval.start while time_remaining? yield @remaining end ensure @interval.stop @interval = nil end private def time_remaining? @remaining = (@duration - @interval.duration) return @remaining > 0 end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
timers-3.0.1 | lib/timers/timeout.rb |
timers-3.0.0 | lib/timers/timeout.rb |
timers-3.0.0.pre | lib/timers/timeout.rb |