class DockTest::RequestContext
Public Class Methods
new(options)
click to toggle source
# File lib/dock_test/request_context.rb, line 6 def initialize(options) @options = options end
Public Instance Methods
curl_command()
click to toggle source
# File lib/dock_test/request_context.rb, line 23 def curl_command headers_string = http_request.to_hash. map {|key, vals| vals.map {|val| [key, val]}.flatten}. map {|x| "-H '#{x[0].capitalize}: #{x[1]}'"}.join(' ') "curl -vv -X #{http_request.method.upcase} -d '#{http_request.body}' #{headers_string} '#{request_url}'" end
execute()
click to toggle source
# File lib/dock_test/request_context.rb, line 30 def execute Net::HTTP.start(uri.hostname, uri.port, :use_ssl => (uri.scheme == 'https'), :verify_mode => OpenSSL::SSL::VERIFY_NONE) do |http| oauth_sign! if DockTest.oauth? # processing oauth signing http.request(http_request) end end
http_request()
click to toggle source
# File lib/dock_test/request_context.rb, line 10 def http_request @_request ||= Net::HTTP.const_get(verb.capitalize).new(uri.request_uri).tap do |req| # add the params to the body of other requests req.body = params if verb_has_side_effects? # sets the headers headers.each do |key, value| req[key] = value end end end
verb_has_side_effects?()
click to toggle source
# File lib/dock_test/request_context.rb, line 42 def verb_has_side_effects? %w(post put patch delete).include?(verb) end
Private Instance Methods
endpoint()
click to toggle source
# File lib/dock_test/request_context.rb, line 52 def endpoint() DockTest.url; end
headers()
click to toggle source
# File lib/dock_test/request_context.rb, line 50 def headers() @options[:headers]; end
oauth_sign!()
click to toggle source
# File lib/dock_test/request_context.rb, line 54 def oauth_sign! http_request['Authorization'] = SimpleOAuth::Header.new(verb, request_url, {}, :consumer_key => DockTest.oauth_consumer_key, :consumer_secret => DockTest.oauth_consumer_secret) end
params()
click to toggle source
# File lib/dock_test/request_context.rb, line 51 def params() @options[:params]; end
path()
click to toggle source
# File lib/dock_test/request_context.rb, line 49 def path() @options[:path]; end
request_url()
click to toggle source
# File lib/dock_test/request_context.rb, line 79 def request_url end_path = path().dup if end_path.start_with?('http') end_path else url = endpoint.dup url = url[0..1] if url.end_with?('/') end_path = end_path[1..-1] if end_path.start_with?('/') "#{url}#{path}" end end
uri()
click to toggle source
# File lib/dock_test/request_context.rb, line 63 def uri @_uri ||= URI.parse(request_url).tap do |uri| uri.port = DockTest.port if DockTest.localhost? # add the params to the GET requests if !verb_has_side_effects? && !params.empty? if(params.is_a?(Hash)) uri.query = URI.encode_www_form(URI.decode_www_form(uri.query || '') + params.to_a) else uri.query = uri.query.nil? ? params : "#{uri.query}&#{params}" end end end end
verb()
click to toggle source
# File lib/dock_test/request_context.rb, line 48 def verb() @options[:verb]; end