class Falcon::Adapters::Output
def self.wrap(status, headers, body)
def self.wrap(status, headers, body) # In no circumstance do we want this header propagating out: if length = headers.delete(CONTENT_LENGTH) # We don't really trust the user to provide the right length to the transport. length = Integer(length) end if body.is_a?(Async::HTTP::Body::Readable) return body elsif status == 200 and body.respond_to?(:to_path) # Don't mangle partial responsese (206) return Async::HTTP::Body::File.open(body.to_path) elsif body.is_a? Array # TODO after dropping 2.3, change to #sum length ||= body.inject(0){|sum, chunk| sum + chunk.bytesize} return self.new(headers, body, length) else return self.new(headers, body, length) end end