Module: Requests
- Extended by:
- Sugar
- Defined in:
- lib/requests.rb,
lib/requests/sugar.rb
Defined Under Namespace
Modules: Sugar
Classes: Response
Constant Summary
collapse
- Error =
Class.new(StandardError)
- CA_FILE =
ENV.fetch('REQUESTS_CA_FILE',
File.expand_path('../cacert.pem', __FILE__))
Class Method Summary
collapse
Methods included from Sugar
delete, get, head, options, patch, post, put, trace
Class Method Details
.basic_auth(headers, user, pass) ⇒ Object
50
51
52
|
# File 'lib/requests.rb', line 50
def self.basic_auth(, user, pass)
['Authorization'] = 'Basic ' + ["#{user}:#{pass}"].pack('m0')
end
|
37
38
39
|
# File 'lib/requests.rb', line 37
def self.encode_www_form(params)
URI.encode_www_form(params)
end
|
.opts(uri) ⇒ Object
41
42
43
44
45
46
47
48
|
# File 'lib/requests.rb', line 41
def self.opts(uri)
if uri.scheme == 'https'
{ use_ssl: true,
verify_mode: OpenSSL::SSL::VERIFY_PEER,
ca_file: CA_FILE
}
end
end
|
.process_params(headers: nil, data: nil) ⇒ Object
54
55
56
57
58
59
60
61
62
|
# File 'lib/requests.rb', line 54
def self.process_params(headers: nil, data: nil)
if not data.kind_of?(Enumerable)
data
else
['content-type'] = 'application/x-www-form-urlencoded'
encode_www_form(data)
end
end
|
.request(method, url, headers: {}, data: nil, params: nil, auth: nil) ⇒ Object
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/requests.rb', line 12
def self.request(method, url,
headers: {},
data: nil,
params: nil,
auth: nil)
uri = URI.parse(url)
uri.query = encode_www_form(params) if params
body = process_params(headers: , data: data) if data
basic_auth(, *auth) if auth
response = Net::HTTP.start(uri.host, uri.port, opts(uri)) do |http|
http.send_request(method, uri, body, )
end
if response.is_a?(Net::HTTPSuccess)
Response.new(response.code, response.to_hash, response.body)
else
raise Error, response.inspect
end
end
|