Class: ActionLimiter::Middleware::IP
- Inherits:
-
Object
- Object
- ActionLimiter::Middleware::IP
- Defined in:
- lib/action_limiter/middleware/ip.rb
Overview
IP based rate limiting middleware
Defined Under Namespace
Classes: ResponseBuilder
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, options = {}) ⇒ IP
constructor
A new instance of IP.
Constructor Details
#initialize(app, options = {}) ⇒ IP
Returns a new instance of IP.
41 42 43 44 45 46 47 48 49 |
# File 'lib/action_limiter/middleware/ip.rb', line 41 def initialize(app, = {}) @app = app @response_builder = .fetch(:response_builder) { ResponseBuilder.new } @token_bucket = ActionLimiter::TokenBucket.new( period: .fetch(:period, 1), size: .fetch(:size, 100), namespace: .fetch(:namespace, 'action_limiter/middleware/ip') ) end |
Instance Method Details
#call(env) ⇒ Object
53 54 55 56 57 58 59 |
# File 'lib/action_limiter/middleware/ip.rb', line 53 def call(env) status, headers, body = _call(env) headers.merge!(create_rate_limit_headers(env)) [status, headers, body] end |