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)



71
72
73
74
75
# File 'lib/spikard/config.rb', line 71

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.



66
67
68
# File 'lib/spikard/config.rb', line 66

def burst
  @burst
end

#ip_basedObject

Returns the value of attribute ip_based.



66
67
68
# File 'lib/spikard/config.rb', line 66

def ip_based
  @ip_based
end

#per_secondObject

Returns the value of attribute per_second.



66
67
68
# File 'lib/spikard/config.rb', line 66

def per_second
  @per_second
end