Class: DebugBundle::Rack::RelayMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/debugbundle/rack/relay_middleware.rb

Instance Method Summary collapse

Constructor Details

#initialize(app = nil, handler: DebugBundle::Relay::Handler.new) ⇒ RelayMiddleware

Returns a new instance of RelayMiddleware.



8
9
10
11
# File 'lib/debugbundle/rack/relay_middleware.rb', line 8

def initialize(app = nil, handler: DebugBundle::Relay::Handler.new)
  @app = app
  @handler = handler
end

Instance Method Details

#call(env) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/debugbundle/rack/relay_middleware.rb', line 13

def call(env)
  response = @handler.handle(
    method: env['REQUEST_METHOD'],
    headers: relay_headers(env),
    body: env.fetch('rack.input', StringIO.new).read,
    ip_address: env['REMOTE_ADDR']
  )

  body = response.body ? JSON.generate(response.body) : ''
  [response.status, { 'Content-Type' => 'application/json' }, [body]]
end