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 content_length = headers.delete(CONTENT_LENGTH) content_length = Integer(content_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) else return self.new(headers, body, content_length) end end
def empty?
def empty? @length == 0 end
def initialize(headers, body, length)
def initialize(headers, body, length) # We don't trust the user to provide the right length to the transport. @length = length @body = body @chunks = body.to_enum(:each) end
def inspect
def inspect "\#<#{self.class} length=#{@length.inspect} body=#{@body.class}>" end
def read
def read @chunks.next rescue StopIteration nil end