Sha256: d5e136f75ea2c9e66b9e53a218ead46ed221e7253acd95ac3b3887f9b19999bc

Contents?: true

Size: 459 Bytes

Versions: 8

Compression:

Stored size: 459 Bytes

Contents

# frozen_string_literal: true

module Redd
  module Utilities
    # Manages rate limiting by sleeping.
    class RateLimiter
      def initialize(gap)
        @gap = gap
        @last_request_time = Time.now - gap
      end

      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
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
spinels-redd-0.9.0 lib/redd/utilities/rate_limiter.rb
redd-0.9.0.pre.3 lib/redd/utilities/rate_limiter.rb
redd-0.9.0.pre.2 lib/redd/utilities/rate_limiter.rb
redd-0.9.0.pre.1 lib/redd/utilities/rate_limiter.rb
redd-0.8.8 lib/redd/utilities/rate_limiter.rb
redd-0.8.7 lib/redd/utilities/rate_limiter.rb
redd-0.8.6 lib/redd/utilities/rate_limiter.rb
redd-0.8.5 lib/redd/utilities/rate_limiter.rb