Class: Escher::Request::HashRequest
- 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
Instance Method Summary collapse
- #body ⇒ Object
- #headers ⇒ Object
-
#initialize(request) ⇒ HashRequest
constructor
A new instance of HashRequest.
- #method ⇒ Object
- #path ⇒ Object
- #query_values ⇒ Object
- #set_header(name, value) ⇒ Object
Methods inherited from Base
Constructor Details
#initialize(request) ⇒ HashRequest
Returns a new instance of HashRequest.
11 12 13 |
# File 'lib/escher/request/hash_request.rb', line 11 def initialize(request) super request end |
Instance Method Details
#body ⇒ Object
36 37 38 |
# File 'lib/escher/request/hash_request.rb', line 36 def body request[:body] or '' end |
#headers ⇒ Object
17 18 19 |
# File 'lib/escher/request/hash_request.rb', line 17 def headers request[:headers].map { |(header_name, value)| [header_name.gsub('_', '-'), value] } end |
#method ⇒ Object
30 31 32 |
# File 'lib/escher/request/hash_request.rb', line 30 def method request[:method] end |
#path ⇒ Object
42 43 44 |
# File 'lib/escher/request/hash_request.rb', line 42 def path request[:uri].match(URI_REGEXP)[1] end |
#query_values ⇒ Object
48 49 50 51 |
# File 'lib/escher/request/hash_request.rb', line 48 def query_values query = request[:uri].match(URI_REGEXP)[3] (Addressable::URI.new query: query).query_values(Array) or [] end |
#set_header(name, value) ⇒ Object
23 24 25 26 |
# File 'lib/escher/request/hash_request.rb', line 23 def set_header(name, value) request[:headers] ||= [] request[:headers] << [name, value] unless has_header? name end |