Class: ProviderDSL::RateLimiter
- Inherits:
-
Object
- Object
- ProviderDSL::RateLimiter
- Defined in:
- lib/provider_dsl/rate_limiter.rb
Overview
Simple rate limiter
Instance Method Summary collapse
-
#initialize(maximum_calls, time_period) ⇒ RateLimiter
constructor
A new instance of RateLimiter.
- #wait ⇒ Object
Constructor Details
#initialize(maximum_calls, time_period) ⇒ RateLimiter
Returns a new instance of RateLimiter.
4 5 6 7 8 |
# File 'lib/provider_dsl/rate_limiter.rb', line 4 def initialize(maximum_calls, time_period) @maximum_calls = maximum_calls @time_period = time_period reset end |
Instance Method Details
#wait ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/provider_dsl/rate_limiter.rb', line 10 def wait if @call_countdown.zero? delta = Time.now - @timestamp sleep(@time_period - delta) if delta < @time_period reset end @call_countdown -= 1 end |