Parent

Files

Patron::Session

Public Instance Methods

build_patron_response(webmock_response) click to toggle source
    # File lib/webmock/http_lib_adapters/patron.rb, line 77
77:       def build_patron_response(webmock_response)
78:         raise Patron::TimeoutError if webmock_response.should_timeout        
79:         webmock_response.raise_error_if_any
80:         res = Patron::Response.new
81:         res.instance_variable_set(:@body, webmock_response.body)
82:         res.instance_variable_set(:@status, webmock_response.status[0])
83:         res.instance_variable_set(:@status_line, webmock_response.status[1])
84:         res.instance_variable_set(:@headers, webmock_response.headers)
85:         res
86:       end
build_request_signature(req) click to toggle source
    # File lib/webmock/http_lib_adapters/patron.rb, line 49
49:       def build_request_signature(req)
50:         uri = WebMock::Util::URI.heuristic_parse(req.url)
51:         uri.path = uri.normalized_path.gsub("[^:]//","/")
52:         uri.user = req.username
53:         uri.password = req.password
54: 
55:         if [:put, :post].include?(req.action)
56:           if req.file_name
57:             if !File.exist?(req.file_name) || !File.readable?(req.file_name)
58:               raise ArgumentError.new("Unable to open specified file.")
59:             end
60:             request_body = File.read(req.file_name)
61:           elsif req.upload_data
62:             request_body = req.upload_data
63:           else
64:             raise ArgumentError.new("Must provide either data or a filename when doing a PUT or POST")
65:           end
66:         end
67: 
68:         request_signature = WebMock::RequestSignature.new(
69:           req.action,
70:           uri.to_s,
71:           :body => request_body,
72:           :headers => req.headers
73:         )
74:         request_signature
75:       end
build_webmock_response(patron_response) click to toggle source
    # File lib/webmock/http_lib_adapters/patron.rb, line 88
88:       def build_webmock_response(patron_response)
89:         webmock_response = WebMock::Response.new
90:         reason = patron_response.status_line.scan(%(\AHTTP/(\d+\.\d+)\s+(\d\d\d)\s*([^\r\n]+)?\r?\z))[0][2]
91:         webmock_response.status = [patron_response.status, reason]
92:         webmock_response.body = patron_response.body
93:         webmock_response.headers = patron_response.headers
94:         webmock_response
95:       end
handle_file_name(req, webmock_response) click to toggle source
    # File lib/webmock/http_lib_adapters/patron.rb, line 37
37:       def handle_file_name(req, webmock_response)
38:         if req.action == :get && req.file_name
39:           begin
40:             File.open(req.file_name, "w") do |f|
41:               f.write webmock_response.body
42:             end
43:           rescue Errno::EACCES
44:             raise ArgumentError.new("Unable to open specified file.")
45:           end
46:         end
47:       end
handle_request(req) click to toggle source
handle_request_with_webmock(req) click to toggle source
    # File lib/webmock/http_lib_adapters/patron.rb, line 6
 6:       def handle_request_with_webmock(req)
 7:         request_signature = build_request_signature(req)
 8: 
 9:         WebMock::RequestRegistry.instance.requested_signatures.put(request_signature)
10: 
11:         if WebMock.registered_request?(request_signature)
12:           webmock_response = WebMock.response_for_request(request_signature)
13:           handle_file_name(req, webmock_response)
14:           res = build_patron_response(webmock_response)
15:           WebMock::CallbackRegistry.invoke_callbacks(
16:             {:lib => :patron}, request_signature, webmock_response)
17:           res
18:         elsif WebMock.net_connect_allowed?(request_signature.uri)
19:           res = handle_request_without_webmock(req)
20:           if WebMock::CallbackRegistry.any_callbacks?
21:             webmock_response = build_webmock_response(res)
22:             WebMock::CallbackRegistry.invoke_callbacks(
23:               {:lib => :patron, :real_request => true}, request_signature,
24:                 webmock_response)   
25:           end
26:           res
27:         else
28:           raise WebMock::NetConnectNotAllowedError.new(request_signature)
29:         end
30:       end
Also aliased as: handle_request
handle_request_without_webmock(req) click to toggle source
Alias for: handle_request

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.