Sha256: 9b96205d198990fe822d37aacfc687e55783d14d0e3710fd47e4e3838e9e0975
Contents?: true
Size: 1.12 KB
Versions: 1
Compression:
Stored size: 1.12 KB
Contents
# frozen_string_literal: true export_default :Request require 'uri' class Request attr_reader :headers, :adapter def initialize(headers, adapter) @headers = headers @adapter = adapter end def protocol @adapter.protocol end def method @method ||= @headers[':method'] end def scheme @scheme ||= @headers[':scheme'] end def uri @uri ||= URI.parse(@headers[':path'] || '') end def path @path ||= uri.path end def query @uri ||= URI.parse(@headers[':path'] || '') return @query if @query if (q = uri.query) @query = q.split('&').each_with_object({}) do |kv, h| k, v = kv.split('=') h[k.to_sym] = URI.decode_www_form_component(v) end else @query = {} end end EMPTY_HASH = {} def respond(chunk, headers = EMPTY_HASH) @adapter.respond(chunk, headers) end def send_headers(headers = EMPTY_HASH, empty_response = false) @adapter.send_headers(headers, empty_response) end def send_body_chunk(body, done: false) @adapter.send_body_chunk(body, done: done) end def finish @adapter.finish end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
polyphony-0.19 | lib/polyphony/http/request.rb |