Class: Philiprehberger::RateLimiter::Noop

Inherits:
Object
  • Object
show all
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

Instance Method Details

#allow!(_key = :default, weight: 1) ⇒ Object



12
13
14
15
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 12

def allow!(_key = :default, weight: 1)
  _ = weight
  true
end

#allow?(_key = :default, weight: 1) ⇒ Boolean

Returns:

  • (Boolean)


7
8
9
10
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 7

def allow?(_key = :default, weight: 1)
  _ = weight
  true
end

#clearObject



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

def clear
  nil
end

#info(_key = :default) ⇒ Object



33
34
35
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 33

def info(_key = :default)
  { remaining: Float::INFINITY, limit: Float::INFINITY, used: 0 }
end

#keysObject



41
42
43
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 41

def keys
  []
end

#on_rejectObject



50
51
52
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 50

def on_reject(&)
  self
end

#peek(_key = :default) ⇒ Object



17
18
19
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 17

def peek(_key = :default)
  true
end

#remaining(_key = :default) ⇒ Object



21
22
23
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 21

def remaining(_key = :default)
  Float::INFINITY
end

#reset(_key = :default) ⇒ Object



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

def reset(_key = :default)
  nil
end

#stats(_key = :default) ⇒ Object



37
38
39
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 37

def stats(_key = :default)
  { allowed: 0, rejected: 0 }
end

#throttle(_key = :default, weight: 1, &block) ⇒ Object



45
46
47
48
# File 'lib/philiprehberger/rate_limiter/noop.rb', line 45

def throttle(_key = :default, weight: 1, &block)
  _ = weight
  { allowed: true, value: block.call }
end