Module: Philiprehberger::RateLimiter

Defined in:
lib/philiprehberger/rate_limiter.rb,
lib/philiprehberger/rate_limiter/noop.rb,
lib/philiprehberger/rate_limiter/version.rb,
lib/philiprehberger/rate_limiter/token_bucket.rb,
lib/philiprehberger/rate_limiter/sliding_window.rb,
lib/philiprehberger/rate_limiter/stats_tracking.rb

Defined Under Namespace

Modules: StatsTracking Classes: Error, Noop, RateLimitExceeded, SlidingWindow, TokenBucket

Constant Summary collapse

VERSION =
'0.7.0'

Class Method Summary collapse

Class Method Details

.noopNoop

Build a no-op limiter that always allows requests.

Returns:



35
36
37
# File 'lib/philiprehberger/rate_limiter.rb', line 35

def self.noop
  Noop.new
end

.sliding_window(limit:, window:) ⇒ Object



24
25
26
# File 'lib/philiprehberger/rate_limiter.rb', line 24

def self.sliding_window(limit:, window:)
  SlidingWindow.new(limit: limit, window: window)
end

.token_bucket(rate:, capacity:) ⇒ Object



28
29
30
# File 'lib/philiprehberger/rate_limiter.rb', line 28

def self.token_bucket(rate:, capacity:)
  TokenBucket.new(rate: rate, capacity: capacity)
end