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