Classes and Modules
Public Class methods
Public Instance methods
after(interval_in_secs, cb = nil, &blk)
[show source]
# File lib/httpx/timers.rb 9 def after(interval_in_secs, cb = nil, &blk) 10 callback = cb || blk 11 12 raise Error, "timer must have a callback" unless callback 13 14 # I'm assuming here that most requests will have the same 15 # request timeout, as in most cases they share common set of 16 # options. A user setting different request timeouts for 100s of 17 # requests will already have a hard time dealing with that. 18 unless (interval = @intervals.bsearch { |t| t.interval == interval_in_secs }) 19 interval = Interval.new(interval_in_secs) 20 @intervals << interval 21 @intervals.sort! 22 end 23 24 interval << callback 25 26 @next_interval_at = nil 27 28 Timer.new(interval, callback) 29 end
fire(error = nil)
[show source]
# File lib/httpx/timers.rb 43 def fire(error = nil) 44 raise error if error && error.timeout != @intervals.first 45 return if @intervals.empty? || !@next_interval_at 46 47 elapsed_time = Utils.elapsed_time(@next_interval_at) 48 49 drop_elapsed!(elapsed_time) 50 51 @next_interval_at = nil if @intervals.empty? 52 end
wait_interval()
[show source]
# File lib/httpx/timers.rb 31 def wait_interval 32 return if @intervals.empty? 33 34 first_interval = @intervals.first 35 36 drop_elapsed!(0) if first_interval.elapsed?(0) 37 38 @next_interval_at = Utils.now 39 40 first_interval.interval 41 end