Curl::Easy
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 223 def body_str @body_str || super end
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 108 def build_curb_response(webmock_response) raise Curl::Err::TimeoutError if webmock_response.should_timeout webmock_response.raise_error_if_any @body_str = webmock_response.body @response_code = webmock_response.status[0] @header_str = "HTTP/1.1 #{webmock_response.status[0]} #{webmock_response.status[1]}\r\n" if webmock_response.headers @header_str << webmock_response.headers.map do |k,v| "#{k}: #{v.is_a?(Array) ? v.join(", ") : v}" end.join("\r\n") location = webmock_response.headers['Location'] if self.follow_location? && location @last_effective_url = location webmock_follow_location(location) end @content_type = webmock_response.headers["Content-Type"] end @last_effective_url ||= self.url end
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 82 def build_request_signature method = @webmock_method.to_s.downcase.to_sym uri = WebMock::Util::URI.heuristic_parse(self.url) uri.path = uri.normalized_path.gsub("[^:]//","/") uri.user = self.username uri.password = self.password request_body = case method when :post self.post_body || @post_body when :put @put_data else nil end request_signature = WebMock::RequestSignature.new( method, uri.to_s, :body => request_body, :headers => self.headers ) request_signature end
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 158 def build_webmock_response status, headers = WebMock::HttpLibAdapters::CurbAdapter.parse_header_string(self.header_str) webmock_response = WebMock::Response.new webmock_response.status = [self.response_code, status] webmock_response.body = self.body_str webmock_response.headers = headers webmock_response end
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 239 def content_type @content_type || super end
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 57 def curb_or_webmock request_signature = build_request_signature WebMock::RequestRegistry.instance.requested_signatures.put(request_signature) if webmock_response = WebMock::StubRegistry.instance.response_for_request(request_signature) build_curb_response(webmock_response) WebMock::CallbackRegistry.invoke_callbacks( {:lib => :curb}, request_signature, webmock_response) invoke_curb_callbacks true elsif WebMock.net_connect_allowed?(request_signature.uri) res = yield if WebMock::CallbackRegistry.any_callbacks? webmock_response = build_webmock_response WebMock::CallbackRegistry.invoke_callbacks( {:lib => :curb, :real_request => true}, request_signature, webmock_response) end res else raise WebMock::NetConnectNotAllowedError.new(request_signature) end end
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 213 def delete= value @webmock_method = :delete if value super end
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 218 def head= value @webmock_method = :head if value super end
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 231 def header_str @header_str || super end
Mocks of Curl::Easy methods below here.
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 173 def http(method) @webmock_method = method super end
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 191 def http_post *data @webmock_method = :post @post_body = data.join('&') if data && !data.empty? super end
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 185 def http_put data = nil @webmock_method = :put @put_data = data if data super end
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 144 def invoke_curb_callbacks @on_progress.call(0.0,1.0,0.0,1.0) if @on_progress self.header_str.lines.each { |header_line| @on_header.call header_line } if @on_header @on_body.call(self.body_str) if @on_body @on_complete.call(self) if @on_complete case response_code when 200..299 @on_success.call(self) if @on_success when 400..599 @on_failure.call(self, self.response_code) if @on_failure end end
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 235 def last_effective_url @last_effective_url || super end
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 197 def perform @webmock_method ||= :get curb_or_webmock { super } end
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 208 def post_body= data @webmock_method = :post super end
# File lib/webmock/http_lib_adapters/curb_adapter.rb, line 202 def put_data= data @webmock_method = :put @put_data = data super end
Generated with the Darkfish Rdoc Generator 2.