class Polyphony::HTTP::Server::Request
HTTP
request
Attributes
__next__[RW]
adapter[R]
headers[R]
Public Class Methods
new(headers, adapter)
click to toggle source
# File lib/polyphony/http/server/request.rb, line 13 def initialize(headers, adapter) @headers = headers @adapter = adapter end
Public Instance Methods
buffer_body_chunk(chunk)
click to toggle source
# File lib/polyphony/http/server/request.rb, line 55 def buffer_body_chunk(chunk) @buffered_body_chunks ||= [] @buffered_body_chunks << chunk end
complete!(keep_alive = nil)
click to toggle source
# File lib/polyphony/http/server/request.rb, line 70 def complete!(keep_alive = nil) @message_complete = true @keep_alive = keep_alive end
complete?()
click to toggle source
# File lib/polyphony/http/server/request.rb, line 75 def complete? @message_complete end
consume()
click to toggle source
# File lib/polyphony/http/server/request.rb, line 79 def consume @adapter.consume_request end
each_chunk() { |chunk| ... }
click to toggle source
# File lib/polyphony/http/server/request.rb, line 60 def each_chunk(&block) if @buffered_body_chunks @buffered_body_chunks.each(&block) @buffered_body_chunks = nil end while !@message_complete && (chunk = @adapter.get_body_chunk) yield chunk end end
finish()
click to toggle source
# File lib/polyphony/http/server/request.rb, line 114 def finish send_headers({}) unless @headers_sent @adapter.finish end
keep_alive?()
click to toggle source
# File lib/polyphony/http/server/request.rb, line 83 def keep_alive? @keep_alive end
method()
click to toggle source
# File lib/polyphony/http/server/request.rb, line 22 def method @method ||= @headers[':method'] end
path()
click to toggle source
# File lib/polyphony/http/server/request.rb, line 34 def path @path ||= uri.path end
protocol()
click to toggle source
# File lib/polyphony/http/server/request.rb, line 18 def protocol @protocol = @adapter.protocol end
query()
click to toggle source
# File lib/polyphony/http/server/request.rb, line 42 def query return @query if @query @query = (q = uri.query) ? split_query_string(q) : {} end
query_string()
click to toggle source
# File lib/polyphony/http/server/request.rb, line 38 def query_string @query_string ||= uri.query end
read()
click to toggle source
# File lib/polyphony/http/server/request.rb, line 87 def read buf = @buffered_body_chunks ? @buffered_body_chunks.join : +'' while (chunk = @adapter.get_body_chunk) buf << chunk end buf end
respond(body, headers = {})
click to toggle source
# File lib/polyphony/http/server/request.rb, line 95 def respond(body, headers = {}) @adapter.respond(body, headers) @headers_sent = true end
scheme()
click to toggle source
# File lib/polyphony/http/server/request.rb, line 26 def scheme @scheme ||= @headers[':scheme'] end
send_chunk(body, done: false)
click to toggle source
# File lib/polyphony/http/server/request.rb, line 107 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/polyphony/http/server/request.rb, line 100 def send_headers(headers = {}, empty_response = false) return if @headers_sent @headers_sent = true @adapter.send_headers(headers, empty_response: empty_response) end
split_query_string(query)
click to toggle source
# File lib/polyphony/http/server/request.rb, line 48 def split_query_string(query) query.split('&').each_with_object({}) do |kv, h| k, v = kv.split('=') h[k.to_sym] = URI.decode_www_form_component(v) end end
uri()
click to toggle source
# File lib/polyphony/http/server/request.rb, line 30 def uri @uri ||= URI.parse(@headers[':path'] || '') end