Protocol::RackSourceProtocolRackAdapter

module Adapter

The Rack adapter provides a bridge between Protocol::HTTP and Rack applications. It automatically selects the appropriate implementation based on the installed Rack version.

app = ->(env) { [200, {"content-type" => "text/plain"}, ["Hello World"]] }
adapter = Protocol::Rack::Adapter.new(app)
response = adapter.call(request)

Nested

Definitions

VERSION = ENV.fetch("PROTOCOL_RACK_ADAPTER_VERSION", ::Rack.release)

The version of Rack being used. Can be overridden using the PROTOCOL_RACK_ADAPTER_VERSION environment variable.

def self.new(app)

Creates a new adapter instance for the given Rack application.

Signature

parameter app Interface(:call)

A Rack application that responds to #call

returns Protocol::HTTP::Middleware

An adapter that can handle HTTP requests

Implementation

def self.new(app)
	IMPLEMENTATION.wrap(app)
end

def self.make_response(env, response)

Converts a Rack response into a Protocol::HTTP response.

Signature

parameter env Hash

The Rack environment

parameter response Array

The Rack response [status, headers, body]

returns Protocol::HTTP::Response

A Protocol::HTTP response

Implementation

def self.make_response(env, response)
	IMPLEMENTATION.make_response(env, response)
end

def self.parse_file(...)

Parses a file path from the Rack environment.

Signature

parameter env Hash

The Rack environment

returns String | Nil

The parsed file path or nil if not found

Implementation

def self.parse_file(...)
	IMPLEMENTATION.parse_file(...)
end