Module: Labkit::RateLimit
- Defined in:
- lib/labkit/rate_limit.rb,
lib/labkit/rate_limit/rule.rb,
lib/labkit/rate_limit/result.rb,
lib/labkit/rate_limit/limiter.rb,
lib/labkit/rate_limit/evaluator.rb,
lib/labkit/rate_limit/identifier.rb,
lib/labkit/rate_limit/configuration.rb
Overview
RateLimit provides a rules-based rate limiting API backed by Redis counters. Primary usage: instantiate a Limiter once per call site and reuse it.
Defined Under Namespace
Classes: Configuration, Evaluator, Identifier, Limiter, Result, Rule
Class Method Summary collapse
-
.check(name:, identifier:, rules:, redis: nil, logger: nil) ⇒ Result
Convenience wrapper - creates a throw-away Limiter.
- .config ⇒ Object
- .configure {|config| ... } ⇒ Object
Class Method Details
.check(name:, identifier:, rules:, redis: nil, logger: nil) ⇒ Result
Convenience wrapper - creates a throw-away Limiter. Prefer Limiter for call sites that can cache the object.
45 46 47 |
# File 'lib/labkit/rate_limit.rb', line 45 def check(name:, identifier:, rules:, redis: nil, logger: nil) Limiter.new(name: name, rules: rules, redis: redis, logger: logger).check(identifier) end |
.config ⇒ Object
32 33 34 |
# File 'lib/labkit/rate_limit.rb', line 32 def config @config ||= Configuration.new end |
.configure {|config| ... } ⇒ Object
28 29 30 |
# File 'lib/labkit/rate_limit.rb', line 28 def configure yield config end |