class Falcon::Adapters::Output

def self.wrap(status, headers, body)

Wraps an array into a buffered body.
def self.wrap(status, headers, body)
	# In no circumstance do we want this propagating up:
	content_length = headers.delete(CONTENT_LENGTH)
	
	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, (Integer(content_length) rescue nil))
	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