Sha256: aaf422915888de893acd8be1895810eb439742acad61174db9fc4f1e5165f05b
Contents?: true
Size: 1 KB
Versions: 1
Compression:
Stored size: 1 KB
Contents
# encoding: utf-8 module Hatetepe class Serializer module Encoding TRANSFER_ENCODING = 'Transfer-Encoding'.freeze CHUNKED = 'chunked'.freeze CRLF = "\r\n".freeze CONTENT_LENGTH = 'Content-Length'.freeze def setup_chunked_encoding headers.delete(CONTENT_LENGTH) headers[TRANSFER_ENCODING] = CHUNKED end def setup_chunked_streaming body.closed.on_progress { |chunk| write_chunk(chunk) } body.closed.then { |_| write_chunk!('') } end def setup_identity_encoding headers.delete(TRANSFER_ENCODING) headers[CONTENT_LENGTH] = body.to_s.bytesize end def write_body if headers.key?(TRANSFER_ENCODING) write_chunk(body.string) else write(body.to_s) end end def write_chunk(chunk) write_chunk!(chunk) unless chunk.empty? end def write_chunk!(chunk) write(chunk.bytesize.to_s(16), CRLF, chunk, CRLF) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hatetepe-0.6.0.pre.2 | lib/hatetepe/serializer/encoding.rb |