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



41
42
43
# File 'lib/fake_web/ext/net_http.rb', line 41

def socket_type
  FakeWeb::StubSocket
end

.socket_type_without_fakewebObject



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

alias socket_type_without_fakeweb socket_type

Instance Method Details

#after_unhandled_request(uri, request, response, response_buffer) ⇒ Object



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

def after_unhandled_request(uri, request, response, response_buffer)
end

#connectObject



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

def connect
end

#connect_without_fakewebObject



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

alias connect_without_fakeweb connect

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



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/fake_web/ext/net_http.rb', line 47

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/

  if request["authorization"] =~ /^Basic /
    userinfo = request["authorization"].sub(/^Basic /, "").unpack("m").first + "@"
  else
    userinfo = ""
  end

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

  if FakeWeb.registered_uri?(method, uri)
    @socket = Net::HTTP.socket_type.new
    FakeWeb.response_for(method, uri, &block)
  elsif FakeWeb.allow_net_connect?
    connect_without_fakeweb
    res = request_without_fakeweb(request, body, &block)
    after_unhandled_request(uri, request, res, @socket && @socket.full_rbuf)
    res
  else
    raise FakeWeb::NetConnectNotAllowedError,
          "Real HTTP connections are disabled. Unregistered request: #{request.method} #{uri}"
  end
end

#request_without_fakewebObject



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

alias request_without_fakeweb request