Sha256: 16d1d23508456c35a10059116e841d1273d4f98a3b746417e78ba07f3c0438f6
Contents?: true
Size: 864 Bytes
Versions: 2
Compression:
Stored size: 864 Bytes
Contents
require 'forwardable' require 'rack/request' module Hi class Request extend Forwardable ATTRIBUTES = [ :host, :ip, :port, :request_method, :scheme, :url, :query_string, :body, :content_length, :media_type, :referer, :user_agent, :xhr? ] def_delegators :request, *ATTRIBUTES attr_reader :env, :request def initialize(env) @env = env @request = Rack::Request.new(env) end def headers env.select { |key| key.start_with? 'HTTP_' } end def body_string body.string if body end def to_h request_hash.merge({ body: body_string, headers: headers, }) end private def request_hash ATTRIBUTES.inject({}) { |hash, attr| hash[attr] = send(attr); hash } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
hi-1.2.1 | lib/hi/request.rb |
hi-1.2.0 | lib/hi/request.rb |