Sha256: 289dbfa800c7be5b1949a81444205f9c8a6d2e025e443ece5e774def1c46eca5
Contents?: true
Size: 1.7 KB
Versions: 2
Compression:
Stored size: 1.7 KB
Contents
# encoding: utf-8 module HTTPkit module Support module Message TRANSFER_ENCODING = 'Transfer-Encoding'.freeze CHUNKED = 'chunked'.freeze CONTENT_LENGTH = 'Content-Length'.freeze def closed? !body.closed.pending? end def closed! body.closed.sync end def closed(&block) body.closed.then(&block) end def close body.closed.fulfill end def reject_closed(reason) body.closed.reject(reason) end def body_headers length, encoding = nil, nil if body_present? if body.length_known? length = body.length.to_i else encoding = CHUNKED end end { CONTENT_LENGTH => length, TRANSFER_ENCODING => encoding } end def self.build(parser) message = build_message(parser) message.close if !message.body_included? || !message.body_present? message end private def self.build_message(parser) if parser.http_method build_request(parser) else build_response(parser) end end def self.build_request(parser) Request.new(http_method_from(parser), parser.request_url, parser.headers, Body.new, http_version_from(parser)) end def self.build_response(parser) Response.new(parser.status_code, parser.headers, Body.new, http_version_from(parser)) end def self.http_method_from(parser) parser.http_method.downcase.to_sym end def self.http_version_from(parser) parser.http_version.join('.').to_f end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
httpkit-0.6.0 | lib/httpkit/support/message.rb |
httpkit-0.6.0.pre.5 | lib/httpkit/support/message.rb |