module Qeweney
Constants
- HTTP_HEADER_RE
- RACK_ENV
TODO: improve conformance to rack spec TODO: set values like port, scheme etc from actual connection
- VERSION
Public Class Methods
rack(&block)
click to toggle source
# File lib/qeweney/rack.rb, line 61 def self.rack(&block) proc do |env| adapter = RackRequestAdapter.new(env) req = Request.new(adapter.request_headers, adapter) block.(req) adapter.rack_response end end
rack_env_from_request(request)
click to toggle source
# File lib/qeweney/rack.rb, line 89 def self.rack_env_from_request(request) Hash.new do |h, k| h[k] = rack_env_value_from_request(request, k) end end
rack_env_value_from_request(request, key)
click to toggle source
# File lib/qeweney/rack.rb, line 116 def self.rack_env_value_from_request(request, key) case key when 'REQUEST_METHOD' then request.method.upcase when 'PATH_INFO' then request.path when 'QUERY_STRING' then request.query_string || '' when 'SERVER_NAME' then request.headers['host'] when 'rack.input' then InputStream.new(request) when HTTP_HEADER_RE then request.headers[$1.gsub('_', '-').downcase] else RACK_ENV[key] end end
route(&block)
click to toggle source
# File lib/qeweney/routing.rb, line 4 def self.route(&block) ->(r) { r.route(&block) } end