module Pact::Consumer::RequestExtractor
def headers_from env
def headers_from env headers = env.reject{ |key, value| !(key.start_with?("HTTP") || key == 'CONTENT_TYPE')} headers.inject({}) do | hash, header | hash[standardise_header(header.first)] = header.last hash end end
def request_from env
def request_from env request = env.inject({}) do |memo, (k, v)| request_key = REQUEST_KEYS[k] memo[request_key] = v if request_key memo end mashed_request = Hashie::Mash.new request mashed_request[:headers] = headers_from env body_string = mashed_request[:body].read if body_string.empty? mashed_request.delete :body else body_is_json = mashed_request[:headers]['Content-Type'] =~ /json/ mashed_request[:body] = body_is_json ? JSON.parse(body_string) : body_string end mashed_request[:method] = mashed_request[:method].downcase mashed_request end
def standardise_header header
def standardise_header header header.gsub(/^HTTP_/, '').split("_").collect{|word| word[0] + word[1..-1].downcase}.join("-") end