class Redd::Utilities::RateLimiter

Manages rate limiting by sleeping.

Public Class Methods

new(gap) click to toggle source
# File lib/redd/utilities/rate_limiter.rb, line 7
def initialize(gap)
  @gap = gap
  @last_request_time = Time.now - gap
end

Public Instance Methods

after_limit() { || ... } click to toggle source
# File lib/redd/utilities/rate_limiter.rb, line 12
def after_limit
  sleep_time = (@last_request_time + @gap) - Time.now
  sleep(sleep_time) if sleep_time > 0.01
  response = yield
  @last_request_time += @gap
  response
end