Class: Philiprehberger::RateLimiter::Noop
- Inherits:
-
Object
- Object
- Philiprehberger::RateLimiter::Noop
- Defined in:
- lib/philiprehberger/rate_limiter/noop.rb
Overview
A limiter that always allows requests. Useful for tests and feature-flagged rollouts.
Instance Method Summary collapse
- #allow!(_key = :default, weight: 1) ⇒ Object
- #allow?(_key = :default, weight: 1) ⇒ Boolean
- #allow_batch(keys) ⇒ Object
- #clear ⇒ Object
- #drain(_key = :default) ⇒ Object
- #info(_key = :default) ⇒ Object
- #keys ⇒ Object
- #on_reject ⇒ Object
- #peek(_key = :default) ⇒ Object
- #remaining(_key = :default) ⇒ Object
- #reset(_key = :default) ⇒ Object
- #retry_after(_key = :default) ⇒ Object
- #stats(_key = :default) ⇒ Object
- #throttle(_key = :default, weight: 1, &block) ⇒ Object
- #used(_key = :default) ⇒ Object
Instance Method Details
#allow!(_key = :default, weight: 1) ⇒ Object
16 17 18 19 |
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 16 def allow!(_key = :default, weight: 1) _ = weight true end |
#allow?(_key = :default, weight: 1) ⇒ Boolean
7 8 9 10 |
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 7 def allow?(_key = :default, weight: 1) _ = weight true end |
#allow_batch(keys) ⇒ Object
12 13 14 |
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 12 def allow_batch(keys) keys.to_h { |key| [key, true] } end |
#clear ⇒ Object
45 46 47 |
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 45 def clear nil end |
#drain(_key = :default) ⇒ Object
37 38 39 |
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 37 def drain(_key = :default) Float::INFINITY end |
#info(_key = :default) ⇒ Object
49 50 51 |
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 49 def info(_key = :default) { remaining: Float::INFINITY, limit: Float::INFINITY, used: 0 } end |
#keys ⇒ Object
57 58 59 |
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 57 def keys [] end |
#on_reject ⇒ Object
66 67 68 |
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 66 def on_reject(&) self end |
#peek(_key = :default) ⇒ Object
21 22 23 |
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 21 def peek(_key = :default) true end |
#remaining(_key = :default) ⇒ Object
25 26 27 |
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 25 def remaining(_key = :default) Float::INFINITY end |
#reset(_key = :default) ⇒ Object
33 34 35 |
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 33 def reset(_key = :default) nil end |
#retry_after(_key = :default) ⇒ Object
41 42 43 |
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 41 def retry_after(_key = :default) 0.0 end |
#stats(_key = :default) ⇒ Object
53 54 55 |
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 53 def stats(_key = :default) { allowed: 0, rejected: 0 } end |
#throttle(_key = :default, weight: 1, &block) ⇒ Object
61 62 63 64 |
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 61 def throttle(_key = :default, weight: 1, &block) _ = weight { allowed: true, value: block.call } end |
#used(_key = :default) ⇒ Object
29 30 31 |
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 29 def used(_key = :default) 0 end |