Class: Spikard::RateLimitConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/spikard/config.rb

Overview

Rate limiting configuration using Generic Cell Rate Algorithm (GCRA).

By default, rate limits are applied per IP address.

Examples:

rate_limit = RateLimitConfig.new(
  per_second: 100,
  burst: 200,
  ip_based: true
)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(per_second:, burst:, ip_based: true) ⇒ RateLimitConfig

Returns a new instance of RateLimitConfig.

Parameters:

  • per_second (Integer)

    Maximum requests per second

  • burst (Integer)

    Burst allowance - allows temporary spikes

  • ip_based (Boolean) (defaults to: true)

    Apply rate limits per IP address (default: true)



47
48
49
50
51
# File 'lib/spikard/config.rb', line 47

def initialize(per_second:, burst:, ip_based: true)
  @per_second = per_second
  @burst = burst
  @ip_based = ip_based
end

Instance Attribute Details

#burstObject

Returns the value of attribute burst.



42
43
44
# File 'lib/spikard/config.rb', line 42

def burst
  @burst
end

#ip_basedObject

Returns the value of attribute ip_based.



42
43
44
# File 'lib/spikard/config.rb', line 42

def ip_based
  @ip_based
end

#per_secondObject

Returns the value of attribute per_second.



42
43
44
# File 'lib/spikard/config.rb', line 42

def per_second
  @per_second
end