class Faraday::RateLimiter
Public Class Methods
new(app, options={})
click to toggle source
Calls superclass method
# File lib/faraday/rate_limiter.rb, line 3 def initialize(app, options={}) super(app) @interval = options.fetch(:interval, 1) @last_request_time = nil end
Public Instance Methods
call(env)
click to toggle source
# File lib/faraday/rate_limiter.rb, line 9 def call(env) if @last_request_time time_since_last_request = Time.now - @last_request_time if time_since_last_request < @interval sleep(@interval-time_since_last_request) end end @last_request_time = Time.now @app.call(env) end