Parent

Files

EventMachine::HttpRequest

Public Instance Methods

send_request(&block) click to toggle source
Also aliased as: send_request_without_webmock
send_request_with_webmock(&block) click to toggle source
    # File lib/webmock/http_lib_adapters/em_http_request.rb, line 28
28:       def send_request_with_webmock(&block)
29:         request_signature = build_request_signature
30: 
31:         WebMock::RequestRegistry.instance.requested_signatures.put(request_signature)
32: 
33:         if WebMock.registered_request?(request_signature)
34:           webmock_response = WebMock.response_for_request(request_signature)
35:           WebMock::CallbackRegistry.invoke_callbacks(
36:             {:lib => :em_http_request}, request_signature, webmock_response)
37:           client = WebMockFakeHttpClient.new(nil)
38:           client.on_error("WebMock timeout error") if webmock_response.should_timeout
39:           client.setup(make_raw_response(webmock_response), @uri,
40:             webmock_response.should_timeout ? "WebMock timeout error" : nil)
41:           client
42:         elsif WebMock.net_connect_allowed?(request_signature.uri)
43:           http = send_request_without_webmock(&block)
44:           http.callback {
45:             if WebMock::CallbackRegistry.any_callbacks?
46:               webmock_response = build_webmock_response(http)
47:               WebMock::CallbackRegistry.invoke_callbacks(
48:                 {:lib => :em_http_request, :real_request => true}, request_signature,
49:                 webmock_response)
50:             end
51:           }
52:           http
53:         else
54:           raise WebMock::NetConnectNotAllowedError.new(request_signature)
55:         end
56:       end
Also aliased as: send_request
send_request_without_webmock(&block) click to toggle source
Alias for: send_request

Private Instance Methods

build_request_signature() click to toggle source
    # File lib/webmock/http_lib_adapters/em_http_request.rb, line 72
72:       def build_request_signature
73:         if @req
74:           options = @req.options
75:           method = @req.method
76:           uri = @req.uri
77:         else
78:           options = @options
79:           method = @method
80:           uri = @uri
81:         end  
82: 
83:         if options[:authorization] || options['authorization']
84:           auth = (options[:authorization] || options['authorization'])
85:           userinfo = auth.join(':')
86:           userinfo = WebMock::Util::URI.encode_unsafe_chars_in_userinfo(userinfo)
87:           options.reject! {|k,v| k.to_s == 'authorization' } #we added it to url userinfo
88:           uri.userinfo = userinfo
89:         end
90:         
91:        uri.query_values = (uri.query_values || {}).merge(options[:query]) if options[:query]
92:         
93:         WebMock::RequestSignature.new(
94:           method.downcase.to_sym,
95:           uri.to_s,
96:           :body => (options[:body] || options['body']),
97:           :headers => (options[:head] || options['head'])
98:         )
99:       end
build_webmock_response(http) click to toggle source
    # File lib/webmock/http_lib_adapters/em_http_request.rb, line 64
64:       def build_webmock_response(http)
65:         webmock_response = WebMock::Response.new
66:         webmock_response.status = [http.response_header.status, http.response_header.http_reason]
67:         webmock_response.headers = http.response_header
68:         webmock_response.body = http.response
69:         webmock_response
70:       end
make_raw_response(response) click to toggle source
     # File lib/webmock/http_lib_adapters/em_http_request.rb, line 102
102:       def make_raw_response(response)            
103:         response.raise_error_if_any
104:         
105:         status, headers, body = response.status, response.headers, response.body
106:         
107:         response_string = []
108:         response_string << "HTTP/1.1 #{status[0]} #{status[1]}"
109: 
110:         headers.each do |header, value|
111:           value = value.join(", ") if value.is_a?(Array)
112:           response_string << "#{header}: #{value}"
113:         end if headers
114: 
115:         response_string << "" << body
116:         response_string.join("\n")
117:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.