class QNA::Request
HTTP request
Attributes
__next__[RW]
adapter[R]
headers[R]
Public Class Methods
new(headers, adapter)
click to toggle source
# File lib/qna/request.rb, line 19 def initialize(headers, adapter) @headers = headers @adapter = adapter end
Public Instance Methods
buffer_body_chunk(chunk)
click to toggle source
# File lib/qna/request.rb, line 24 def buffer_body_chunk(chunk) @buffered_body_chunks ||= [] @buffered_body_chunks << chunk end
complete!(keep_alive = nil)
click to toggle source
# File lib/qna/request.rb, line 51 def complete!(keep_alive = nil) @message_complete = true @keep_alive = keep_alive end
complete?()
click to toggle source
# File lib/qna/request.rb, line 56 def complete? @message_complete end
consume()
click to toggle source
# File lib/qna/request.rb, line 60 def consume @adapter.consume_request end
each_chunk() { |chunk| ... }
click to toggle source
# File lib/qna/request.rb, line 39 def each_chunk if @buffered_body_chunks while (chunk = @buffered_body_chunks.shift) yield chunk end @buffered_body_chunks = nil end while !@message_complete && (chunk = @adapter.get_body_chunk) yield chunk end end
finish()
click to toggle source
# File lib/qna/request.rb, line 97 def finish send_headers({}) unless @headers_sent @adapter.finish end
headers_sent?()
click to toggle source
# File lib/qna/request.rb, line 103 def headers_sent? @headers_sent end
keep_alive?()
click to toggle source
# File lib/qna/request.rb, line 64 def keep_alive? @keep_alive end
next_chunk()
click to toggle source
# File lib/qna/request.rb, line 29 def next_chunk if @buffered_body_chunks chunk = @buffered_body_chunks.shift @buffered_body_chunks = nil if @buffered_body_chunks.empty? return chunk end @message_complete ? nil : @adapter.get_body_chunk end
read()
click to toggle source
# File lib/qna/request.rb, line 68 def read buf = @buffered_body_chunks ? @buffered_body_chunks.join : nil while (chunk = @adapter.get_body_chunk) (buf ||= +'') << chunk end @buffered_body_chunks = nil buf end
Also aliased as: body
respond(body, headers = {})
click to toggle source
# File lib/qna/request.rb, line 78 def respond(body, headers = {}) @adapter.respond(body, headers) @headers_sent = true end
send_chunk(body, done: false)
click to toggle source
# File lib/qna/request.rb, line 90 def send_chunk(body, done: false) send_headers({}) unless @headers_sent @adapter.send_chunk(body, done: done) end
Also aliased as: <<
send_headers(headers = {}, empty_response = false)
click to toggle source
# File lib/qna/request.rb, line 83 def send_headers(headers = {}, empty_response = false) return if @headers_sent @headers_sent = true @adapter.send_headers(headers, empty_response: empty_response) end