Sha256: 911814538ea355e5cbbec071e7b1ecb2fddd1e6b90379ca6c55fd241f2262a96
Contents?: true
Size: 1.25 KB
Versions: 3
Compression:
Stored size: 1.25 KB
Contents
# frozen_string_literal: true # Released under the MIT License. # Copyright, 2018-2024, by Samuel Williams. # Copyright, 2023, by Josh Huber. require_relative '../response' module Async module HTTP module Protocol module HTTP1 class Response < Protocol::Response def self.read(connection, request) while parts = connection.read_response(request.method) response = self.new(connection, *parts) if response.final? return response end end end UPGRADE = 'upgrade' # @attribute [String] The HTTP response line reason. attr :reason # @parameter reason [String] HTTP response line reason phrase. def initialize(connection, version, status, reason, headers, body) @connection = connection @reason = reason # Technically, there should never be more than one value for the upgrade header, but we'll just take the first one to avoid complexity. protocol = headers.delete(UPGRADE)&.first super(version, status, headers, body, protocol) end def connection @connection end def hijack? @body.nil? end def hijack! @connection.hijack! end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
async-http-0.72.0 | lib/async/http/protocol/http1/response.rb |
async-http-0.71.0 | lib/async/http/protocol/http1/response.rb |
async-http-0.70.0 | lib/async/http/protocol/http1/response.rb |