Sha256: 3c60e3d13da315acf2a2c575d4823c29278255fac9df97c738d7a8a741fff042
Contents?: true
Size: 806 Bytes
Versions: 37
Compression:
Stored size: 806 Bytes
Contents
# frozen_string_literal: true require_relative 'constants' require_relative 'utils' module Rack # Sets the content-length header on responses that do not specify # a content-length or transfer-encoding header. Note that this # does not fix responses that have an invalid content-length # header specified. class ContentLength include Rack::Utils def initialize(app) @app = app end def call(env) status, headers, body = response = @app.call(env) if !STATUS_WITH_NO_ENTITY_BODY.key?(status.to_i) && !headers[CONTENT_LENGTH] && !headers[TRANSFER_ENCODING] && body.respond_to?(:to_ary) response[2] = body = body.to_ary headers[CONTENT_LENGTH] = body.sum(&:bytesize).to_s end response end end end
Version data entries
37 entries across 36 versions & 8 rubygems