Class: Escher::Request::HashRequest

Inherits:
Base
  • Object
show all
Defined in:
lib/escher/request/hash_request.rb

Constant Summary collapse

URI_REGEXP =

Based on the example in RFC 3986, but scheme, user, password, host, port and fragment support removed, only path and query left

/^([^?#]*)(\?(.*))?$/

Instance Attribute Summary

Attributes inherited from Base

#request

Instance Method Summary collapse

Methods inherited from Base

#has_header?, #header

Constructor Details

#initialize(request) ⇒ HashRequest

Returns a new instance of HashRequest.



11
12
13
14
# File 'lib/escher/request/hash_request.rb', line 11

def initialize(request)
  super request
  @uri = parse_uri request[:uri]
end

Instance Method Details

#bodyObject



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

def body
  request[:body] or ''
end

#headersObject



18
19
20
# File 'lib/escher/request/hash_request.rb', line 18

def headers
  request[:headers].map { |(header_name, value)| [header_name.gsub('_', '-'), value] }
end

#methodObject



31
32
33
# File 'lib/escher/request/hash_request.rb', line 31

def method
  request[:method]
end

#pathObject



43
44
45
# File 'lib/escher/request/hash_request.rb', line 43

def path
  @uri.path
end

#query_valuesObject



49
50
51
# File 'lib/escher/request/hash_request.rb', line 49

def query_values
  @uri.query_values(Array) or []
end

#set_header(name, value) ⇒ Object



24
25
26
27
# File 'lib/escher/request/hash_request.rb', line 24

def set_header(name, value)
  request[:headers] ||= []
  request[:headers] << [name, value] unless has_header? name
end