class Escher::Request::HashRequest
Constants
- URI_REGEXP
Based on the example in RFC 3986, but scheme, user, password, host, port and fragment support removed, only path and query left
Public Class Methods
new(request)
click to toggle source
Calls superclass method
Escher::Request::Base::new
# File lib/escher/request/hash_request.rb, line 11 def initialize(request) super request end
Public Instance Methods
body()
click to toggle source
# File lib/escher/request/hash_request.rb, line 36 def body request[:body] or '' end
headers()
click to toggle source
# File lib/escher/request/hash_request.rb, line 17 def headers request[:headers].map { |(header_name, value)| [header_name.gsub('_', '-'), value] } end
method()
click to toggle source
# File lib/escher/request/hash_request.rb, line 30 def method request[:method] end
path()
click to toggle source
# File lib/escher/request/hash_request.rb, line 42 def path request[:uri].match(URI_REGEXP)[1] end
query_values()
click to toggle source
# 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)
click to toggle source
# 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