Class: Hi::Request

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/hi/request.rb

Overview

Wrapper for rack request that exposes headers and body string

Constant Summary collapse

ATTRIBUTES =
[
  :host,
  :ip,
  :port,
  :request_method,
  :scheme,
  :url,
  :query_string,
  :body,
  :content_length,
  :media_type,
  :referer,
  :user_agent,
  :xhr?
]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(env) ⇒ Request

Returns a new instance of Request.



28
29
30
31
# File 'lib/hi/request.rb', line 28

def initialize(env)
  @env = env
  @request = Rack::Request.new(env)
end

Instance Attribute Details

#envObject (readonly)

Returns the value of attribute env.



26
27
28
# File 'lib/hi/request.rb', line 26

def env
  @env
end

#requestObject (readonly)

Returns the value of attribute request.



26
27
28
# File 'lib/hi/request.rb', line 26

def request
  @request
end

Instance Method Details

#body_stringObject



37
38
39
# File 'lib/hi/request.rb', line 37

def body_string
  body.string if body
end

#headersObject



33
34
35
# File 'lib/hi/request.rb', line 33

def headers
  env.select { |key| key.start_with? 'HTTP_' }
end

#to_hObject



41
42
43
44
45
46
# File 'lib/hi/request.rb', line 41

def to_h
  request_hash.merge({
    body: body_string,
    headers: headers,
  })
end