module Excon
def defaults
-
(Hash)
- defaults for Excon connections
def defaults @defaults ||= DEFAULTS end
def defaults=(new_defaults)
-
(Hash)
- defaults for Excon connections
def defaults=(new_defaults) @defaults = new_defaults end
def display_warning(warning)
def display_warning(warning) # Show warning if $VERBOSE or ENV['EXCON_DEBUG'] is set if $VERBOSE || ENV['EXCON_DEBUG'] $stderr.puts '[excon][WARNING] ' << warning << "\n#{ caller.join("\n") }" end end
def mock
def mock display_warning('Excon#mock is deprecated, use Excon.defaults[:mock] instead.') self.defaults[:mock] end
def mock=(new_mock)
false is the default and works as expected
Change the status of mocking
def mock=(new_mock) display_warning('Excon#mock is deprecated, use Excon.defaults[:mock]= instead.') self.defaults[:mock] = new_mock end
def new(url, params = {})
-
(Connection)
- A new Excon::Connection instance
Parameters:
-
params
(Hash
) -- One or more option params to set on the Connection instance -
url
(String
) -- The destination URL
Other tags:
- See: Connection#initialize -
def new(url, params = {}) uri_parser = params[:uri_parser] || defaults[:uri_parser] uri = uri_parser.parse(url) unless uri.scheme raise ArgumentError.new("Invalid URI: #{uri}") end params = { :host => uri.host, :hostname => uri.hostname, :path => uri.path, :port => uri.port, :query => uri.query, :scheme => uri.scheme }.merge(params) if uri.password params[:password] = Utils.unescape_uri(uri.password) end if uri.user params[:user] = Utils.unescape_uri(uri.user) end Excon::Connection.new(params) end
def ssl_ca_path
-
(String)
- The filesystem path to the SSL Certificate Authority
def ssl_ca_path display_warning('Excon#ssl_ca_path is deprecated, use Excon.defaults[:ssl_ca_path] instead.') self.defaults[:ssl_ca_path] end
def ssl_ca_path=(new_ssl_ca_path)
-
(String)
- The filesystem path to the SSL Certificate Authority
def ssl_ca_path=(new_ssl_ca_path) display_warning('Excon#ssl_ca_path= is deprecated, use Excon.defaults[:ssl_ca_path]= instead.') self.defaults[:ssl_ca_path] = new_ssl_ca_path end
def ssl_verify_peer
-
(true, false)
- Whether or not to verify the peer's SSL certificate / chain
def ssl_verify_peer display_warning('Excon#ssl_verify_peer is deprecated, use Excon.defaults[:ssl_verify_peer] instead.') self.defaults[:ssl_verify_peer] end
def ssl_verify_peer=(new_ssl_verify_peer)
- See: Excon#ssl_verify_peer - (attr_reader)
def ssl_verify_peer=(new_ssl_verify_peer) display_warning('Excon#ssl_verify_peer= is deprecated, use Excon.defaults[:ssl_verify_peer]= instead.') self.defaults[:ssl_verify_peer] = new_ssl_verify_peer end
def stub(request_params = {}, response_params = nil)
-
response
(Hash
) -- params to return from matched request or block to call with params -
request
(Hash
) -- params to match against, omitted params match all
def stub(request_params = {}, response_params = nil) if method = request_params.delete(:method) request_params[:method] = method.to_s.downcase.to_sym end if url = request_params.delete(:url) uri = URI.parse(url) request_params = { :host => uri.host, :path => uri.path, :port => uri.port, :query => uri.query, :scheme => uri.scheme }.merge!(request_params) if uri.user || uri.password request_params[:headers] ||= {} user, pass = Utils.unescape_form(uri.user.to_s), Utils.unescape_form(uri.password.to_s) request_params[:headers]['Authorization'] ||= 'Basic ' << ['' << user << ':' << pass].pack('m').delete(Excon::CR_NL) end end if request_params.has_key?(:headers) headers = Excon::Headers.new request_params[:headers].each do |key, value| headers[key] = value end request_params[:headers] = headers end 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
def stub_for(request_params={})
-
(Hash
- response params to return from matched request or block to call with params)
Parameters:
-
request
(Hash
) -- params to match against, omitted params match all
def stub_for(request_params={}) if method = request_params.delete(:method) request_params[:method] = method.to_s.downcase.to_sym end Excon.stubs.each do |stub, response_params| captures = { :headers => {} } headers_match = !stub.has_key?(:headers) || stub[:headers].keys.all? do |key| case value = stub[:headers][key] when Regexp if match = value.match(request_params[:headers][key]) captures[:headers][key] = match.captures end match else value == request_params[:headers][key] end end non_headers_match = (stub.keys - [:headers]).all? do |key| case value = stub[key] when Regexp if match = value.match(request_params[key]) captures[key] = match.captures end match else value == request_params[key] end end if headers_match && non_headers_match request_params[:captures] = captures return [stub, response_params] end end nil end
def stubs
def stubs @stubs ||= [] end
def unstub(request_params = {})
-
(Hash
- response params from deleted stub)
Parameters:
-
request
(Hash
) -- params to match against, omitted params match all
def unstub(request_params = {}) stub = stub_for(request_params) Excon.stubs.delete_at(Excon.stubs.index(stub)) end