Class: Redd::Utilities::RateLimiter
- Inherits:
-
Object
- Object
- Redd::Utilities::RateLimiter
- Defined in:
- lib/redd/utilities/rate_limiter.rb
Overview
Manages rate limiting by sleeping.
Instance Method Summary collapse
- #after_limit ⇒ Object
-
#initialize(gap) ⇒ RateLimiter
constructor
A new instance of RateLimiter.
Constructor Details
#initialize(gap) ⇒ RateLimiter
Returns a new instance of RateLimiter.
7 8 9 10 |
# File 'lib/redd/utilities/rate_limiter.rb', line 7 def initialize(gap) @gap = gap @last_request_time = Time.now - gap end |
Instance Method Details
#after_limit ⇒ Object
12 13 14 15 16 17 18 |
# 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 |