Class: Net::HTTP

Inherits:
Object
  • Object
show all
Defined in:
lib/fake_web/ext/net_http.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.socket_typeObject



24
25
26
# File 'lib/fake_web/ext/net_http.rb', line 24

def self.socket_type
  FakeWeb::SocketDelegator
end

Instance Method Details

#connectObject



54
55
# File 'lib/fake_web/ext/net_http.rb', line 54

def connect
end

#original_net_http_connectObject



29
# File 'lib/fake_web/ext/net_http.rb', line 29

alias :original_net_http_connect :connect

#original_net_http_requestObject



28
# File 'lib/fake_web/ext/net_http.rb', line 28

alias :original_net_http_request :request

#request(request, body = nil, &block) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/fake_web/ext/net_http.rb', line 31

def request(request, body = nil, &block)
  protocol = use_ssl ? "https" : "http"

  path = request.path
  path = URI.parse(request.path).request_uri if request.path =~ /^http/

  uri = "#{protocol}://#{self.address}:#{self.port}#{path}"
  method = request.method.downcase.to_sym

  if registered = FakeWeb::Registry.instance.registered_uri(method, uri)
    responder = FakeWeb::Registry.instance.send(:pick_responder, registered)
    responder.verify(request)
    @socket = Net::HTTP.socket_type.new
    responder.response(&block)
  elsif FakeWeb.allow_net_connect?
    original_net_http_connect
    original_net_http_request(request, body, &block)
  else
    raise FakeWeb::NetConnectNotAllowedError,
          "Real HTTP connections are disabled. Unregistered request: #{request.method} #{uri}"
  end
end