Parent

Class/Module Index [+]

Quicksearch

WebMock::HttpLibAdapters::NetHttpAdapter

Public Class Methods

const_defined?(name) click to toggle source
# File lib/webmock/http_lib_adapters/net_http.rb, line 42
def const_defined?(name)
  super || self.superclass.const_defined?(name)
end
const_get(name, inherit=true) click to toggle source
# File lib/webmock/http_lib_adapters/net_http.rb, line 52
def const_get(name, inherit=true)
  super
rescue NameError
  self.superclass.const_get(name, inherit)
end
constants(inherit=true) click to toggle source
# File lib/webmock/http_lib_adapters/net_http.rb, line 60
def constants(inherit=true)
  super + self.superclass.constants(inherit)
end
disable!() click to toggle source
# File lib/webmock/http_lib_adapters/net_http.rb, line 24
def self.disable!
  Net.send(:remove_const, :BufferedIO)
  Net.send(:remove_const, :HTTP)
  Net.send(:remove_const, :HTTPSession)
  Net.send(:const_set, :HTTP, OriginalNetHTTP)
  Net.send(:const_set, :HTTPSession, OriginalNetHTTP)
  Net.send(:const_set, :BufferedIO, OriginalNetBufferedIO)
end
enable!() click to toggle source
# File lib/webmock/http_lib_adapters/net_http.rb, line 15
def self.enable!
  Net.send(:remove_const, :BufferedIO)
  Net.send(:remove_const, :HTTP)
  Net.send(:remove_const, :HTTPSession)
  Net.send(:const_set, :HTTP, @webMockNetHTTP)
  Net.send(:const_set, :HTTPSession, @webMockNetHTTP)
  Net.send(:const_set, :BufferedIO, Net::WebMockNetBufferedIO)
end
socket_type() click to toggle source
Also aliased as: socket_type_without_webmock
socket_type_with_webmock() click to toggle source
# File lib/webmock/http_lib_adapters/net_http.rb, line 35
def socket_type_with_webmock
  StubSocket
end
Also aliased as: socket_type
socket_type_without_webmock() click to toggle source
Alias for: socket_type

Public Instance Methods

build_net_http_response(webmock_response, &block) click to toggle source
# File lib/webmock/http_lib_adapters/net_http.rb, line 129
def build_net_http_response(webmock_response, &block)
  response = Net::HTTPResponse.send(:response_class, webmock_response.status[0].to_s).new("1.0", webmock_response.status[0].to_s, webmock_response.status[1])
  response.instance_variable_set(:@body, webmock_response.body)
  webmock_response.headers.to_a.each do |name, values|
    values = [values] unless values.is_a?(Array)
    values.each do |value|
      response.add_field(name, value)
    end
  end

  response.instance_variable_set(:@read, true)

  response.extend Net::WebMockHTTPResponse

  raise Timeout::Error, "execution expired" if webmock_response.should_timeout

  webmock_response.raise_error_if_any

  yield response if block_given?

  response
end
build_webmock_response(net_http_response) click to toggle source
# File lib/webmock/http_lib_adapters/net_http.rb, line 152
def build_webmock_response(net_http_response)
  webmock_response = WebMock::Response.new
  webmock_response.status = [
     net_http_response.code.to_i,
     net_http_response.message]
  webmock_response.headers = net_http_response.to_hash
  webmock_response.body = net_http_response.body
  webmock_response
end
check_right_http_connection() click to toggle source
# File lib/webmock/http_lib_adapters/net_http.rb, line 163
def check_right_http_connection
  unless @@alredy_checked_for_right_http_connection ||= false
    WebMock::NetHTTPUtility.puts_warning_for_right_http_if_needed
    @@alredy_checked_for_right_http_connection = true
  end
end
request_with_webmock(request, body = nil, &block) click to toggle source
# File lib/webmock/http_lib_adapters/net_http.rb, line 66
def request_with_webmock(request, body = nil, &block)
  request_signature = WebMock::NetHTTPUtility.request_signature_from_request(self, request, body)

  WebMock::RequestRegistry.instance.requested_signatures.put(request_signature)

  if webmock_response = WebMock::StubRegistry.instance.response_for_request(request_signature)
    @socket = Net::HTTP.socket_type.new
    WebMock::CallbackRegistry.invoke_callbacks(
      {:lib => :net_http}, request_signature, webmock_response)
    build_net_http_response(webmock_response, &block)
  elsif WebMock.net_connect_allowed?(request_signature.uri)
    check_right_http_connection
    after_request = lambda do |response|
      if WebMock::CallbackRegistry.any_callbacks?
        webmock_response = build_webmock_response(response)
        WebMock::CallbackRegistry.invoke_callbacks(
          {:lib => :net_http, :real_request => true}, request_signature, webmock_response)
      end
      response.extend Net::WebMockHTTPResponse
      block.call response if block
      response
    end
    response = if (started? && !WebMock::Config.instance.net_http_connect_on_start) || !started?
      @started = false #otherwise start_with_connect wouldn't execute and connect
      start_with_connect {
        response = request_without_webmock(request, nil)
        after_request.call(response)
      }
    else
      response = request_without_webmock(request, nil)
      after_request.call(response)
    end
  else
    raise WebMock::NetConnectNotAllowedError.new(request_signature)
  end
end
start_with_conditional_connect(&block) click to toggle source
# File lib/webmock/http_lib_adapters/net_http.rb, line 119
def start_with_conditional_connect(&block)
  if WebMock::Config.instance.net_http_connect_on_start
    start_with_connect(&block)
  else
    start_without_connect(&block)
  end
end
start_without_connect() click to toggle source
# File lib/webmock/http_lib_adapters/net_http.rb, line 105
def start_without_connect
  raise IOError, 'HTTP session already opened' if @started
  if block_given?
    begin
      @started = true
      return yield(self)
    ensure
      do_finish
    end
  end
  @started = true
  self
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.