class TimeOut
Attributes
active[R]
callback[R]
seconds[R]
Public Class Methods
clear_interval(index)
click to toggle source
# File lib/time_out.rb, line 23 def self.clear_interval(index) @intervals[index].clear end
new(callback, seconds)
click to toggle source
# File lib/time_out.rb, line 31 def initialize(callback, seconds) @callback, @seconds, @active = callback, seconds, true end
set_interval(callback, seconds)
click to toggle source
# File lib/time_out.rb, line 16 def self.set_interval(callback, seconds) interval = self.new(callback, seconds) interval.set @intervals << interval @intervals.length - 1 end
set_timeout(callback, seconds)
click to toggle source
# File lib/time_out.rb, line 4 def self.set_timeout(callback, seconds) end_time = Time.now + seconds Thread.new do while Time.now <= end_time Thread.pass end callback.() end end
wait_for_intervals()
click to toggle source
# File lib/time_out.rb, line 27 def self.wait_for_intervals Thread.list.drop(1).each(&:join) end
Public Instance Methods
clear()
click to toggle source
# File lib/time_out.rb, line 43 def clear @active = false end
set()
click to toggle source
# File lib/time_out.rb, line 35 def set Thread.new do while active TimeOut.set_timeout(callback, seconds).join end end end