Module: Excon

Defined in:
lib/excon.rb,
lib/excon.rb,
lib/excon/errors.rb,
lib/excon/socket.rb,
lib/excon/response.rb,
lib/excon/constants.rb,
lib/excon/connection.rb,
lib/excon/ssl_socket.rb,
lib/excon/standard_instrumentor.rb

Overview

Define defaults first so they will be available to other files

Defined Under Namespace

Modules: Errors Classes: Connection, Response, SSLSocket, Socket, StandardInstrumentor

Constant Summary collapse

VERSION =
'0.16.2'
CHUNK_SIZE =

1 megabyte

1048576
CR_NL =
"\r\n"
DEFAULT_CA_FILE =
File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "data", "cacert.pem"))
DEFAULT_RETRY_LIMIT =
4
FORCE_ENC =
CR_NL.respond_to?(:force_encoding)
HTTP_1_1 =
" HTTP/1.1\r\n"
HTTP_VERBS =
%w{connect delete get head options post put trace}
HTTPS =
'https'
NO_ENTITY =
[204, 205, 304].freeze

Class Method Summary collapse

Class Method Details

.defaultsHash

Returns defaults for Excon connections.

Returns:

  • (Hash)

    defaults for Excon connections



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/excon.rb', line 17

def defaults
  @defaults ||= {
    :connect_timeout    => 60,
    :headers            => {},
    :instrumentor_name  => 'excon',
    :mock               => false,
    :nonblock           => true,
    :read_timeout       => 60,
    :retry_limit        => DEFAULT_RETRY_LIMIT,
    :ssl_ca_file        => DEFAULT_CA_FILE,
    :ssl_verify_peer    => RbConfig::CONFIG['host_os'] !~ /mswin|win32|dos|cygwin|mingw/i,
    :write_timeout      => 60
  }
end

.defaults=(new_defaults) ⇒ Hash

Change defaults for Excon connections

Returns:

  • (Hash)

    defaults for Excon connections



34
35
36
# File 'lib/excon.rb', line 34

def defaults=(new_defaults)
  @defaults = new_defaults
end

.mockObject

Status of mocking



53
54
55
56
# File 'lib/excon.rb', line 53

def mock
  puts("Excon#mock is deprecated, pass Excon.defaults[:mock] instead (#{caller.first})")
  self.defaults[:mock]
end

.mock=(new_mock) ⇒ Object

Change the status of mocking false is the default and works as expected true returns a value from stubs or raises



61
62
63
64
# File 'lib/excon.rb', line 61

def mock=(new_mock)
  puts("Excon#mock is deprecated, pass Excon.defaults[:mock]= instead (#{caller.first})")
  self.defaults[:mock] = new_mock
end

.new(url, params = {}) ⇒ Object

Initializes a new keep-alive session for a given remote host

@param [String] url The destination URL
@param [Hash<Symbol, >] params One or more option params to set on the Connection instance
@return [Connection] A new Excon::Connection instance


97
98
99
# File 'lib/excon.rb', line 97

def new(url, params = {})
  Excon::Connection.new(url, params)
end

.ssl_ca_pathString

Returns The filesystem path to the SSL Certificate Authority.

Returns:

  • (String)

    The filesystem path to the SSL Certificate Authority



67
68
69
70
# File 'lib/excon.rb', line 67

def ssl_ca_path
  puts("Excon#ssl_ca_path is deprecated, use Excon.defaults[:ssl_ca_path] instead (#{caller.first})")
  self.defaults[:ssl_ca_path]
end

.ssl_ca_path=(new_ssl_ca_path) ⇒ String

Change path to the SSL Certificate Authority

Returns:

  • (String)

    The filesystem path to the SSL Certificate Authority



74
75
76
77
# File 'lib/excon.rb', line 74

def ssl_ca_path=(new_ssl_ca_path)
  puts("Excon#ssl_ca_path= is deprecated, use Excon.defaults[:ssl_ca_path]= instead (#{caller.first})")
  self.defaults[:ssl_ca_path] = new_ssl_ca_path
end

.ssl_verify_peertrue, false

Returns Whether or not to verify the peer’s SSL certificate / chain.

Returns:

  • (true, false)

    Whether or not to verify the peer’s SSL certificate / chain



80
81
82
83
# File 'lib/excon.rb', line 80

def ssl_verify_peer
  puts("Excon#ssl_verify_peer= is deprecated, use Excon.defaults[:ssl_verify_peer]= instead (#{caller.first})")
  self.defaults[:ssl_verify_peer]
end

.ssl_verify_peer=(new_ssl_verify_peer) ⇒ Object

Change the status of ssl peer verification

See Also:



87
88
89
90
# File 'lib/excon.rb', line 87

def ssl_verify_peer=(new_ssl_verify_peer)
  puts("Excon#ssl_verify_peer is deprecated, use Excon.defaults[:ssl_verify_peer] instead (#{caller.first})")
  self.defaults[:ssl_verify_peer] = new_ssl_verify_peer
end

.stub(request_params, response_params = nil) ⇒ Object

push an additional stub onto the list to check for mock requests

@param [Hash<Symbol, >] request params to match against, omitted params match all
@param [Hash<Symbol, >] response params to return from matched request or block to call with params


104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/excon.rb', line 104

def stub(request_params, response_params = nil)
  if block_given?
    if response_params
      raise(ArgumentError.new("stub requires either response_params OR a block"))
    else
      stub = [request_params, Proc.new]
    end
  elsif response_params
    stub = [request_params, response_params]
  else
    raise(ArgumentError.new("stub requires either response_params OR a block"))
  end
  stubs.unshift(stub)
  stub
end

.stubsObject

get a list of defined stubs



121
122
123
# File 'lib/excon.rb', line 121

def stubs
  @stubs ||= []
end