rb-net_http-client 1.1.5 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 385806b49e0eb5862c3b4440e12d6834008c30434037938b6da9ccd36564cf8a
4
- data.tar.gz: 3a4a62b42dc8c9ec1b814484a5b01a29c0608de26cba913a7fb3d3a3b034563d
3
+ metadata.gz: 8b228d13177b1a537598d3c2c47da13fc2575d4e9237f399f8bd4c832c10fd5a
4
+ data.tar.gz: 692ec538534c4d7f7cb6da96415a878646a7fd8f06e15226a06ea6ffd817def2
5
5
  SHA512:
6
- metadata.gz: 9ea7f8839c0f505a170f6bd0876201e45d2df50a3e9429940b3117c3417c780bc6a1021b0619a6e8a8b0a898c16c20c8107fc989c139b2c750e44744b51d0672
7
- data.tar.gz: 72c53ddb920a4df253f5bcc38f733a78b1fe5e5266b9036d84f1944908d05c96906bd7c288abb491ab9253162775c06d7dc07d32afc7b26e3910ef1db5c2db38
6
+ metadata.gz: c4d311ce8705c1bfce6167f06020088aced267cd23d91861a08649f1753fbd2aae5592829e359217b12beefc2ca9e9ff43ca99498f517ce7b2521c3b15755a03
7
+ data.tar.gz: 7a3960a8c40b07f89ef7c0ffc81241a80a224e95f587f65de9a0764e6b8279a8d3c4d9a2679e7bdc4623a66e1880d6188a0af48d9896acffaf2acee0f766c1db
data/lib/client/client.rb CHANGED
@@ -18,6 +18,7 @@ module NetHTTP
18
18
  :pkcs12,
19
19
  :pkcs12_file,
20
20
  :pkcs12_passphrase,
21
+ :proxy_from_env,
21
22
  :proxy_uri,
22
23
  :proxy_url,
23
24
  :query,
@@ -39,15 +40,20 @@ module NetHTTP
39
40
  end
40
41
 
41
42
  send('uri=', opts)
43
+ send('proxy_uri=', opts)
42
44
  send('client=', opts)
43
45
  end
44
46
 
45
47
  def client=(opts = {})
46
- @client = Net::HTTP.new(uri.host, uri.port)
48
+ if proxy_uri
49
+ @client = Net::HTTP::Proxy(proxy_uri.host, proxy_uri.port).new(uri.host, uri.port)
50
+ else
51
+ @client = Net::HTTP.new(uri.host, uri.port)
52
+ end
47
53
 
48
- send('proxy_uri=', opts)
49
- send('open_timeout=', (opts[:open_timeout] ||= 60))
50
- send('read_timeout=', (opts[:read_timeout] ||= 60))
54
+ send('proxy_from_env=', opts[:proxy_from_env])
55
+ send('open_timeout=', (opts[:open_timeout] || 60))
56
+ send('read_timeout=', (opts[:read_timeout] || 60))
51
57
  send('use_ssl=', opts[:use_ssl], uri.scheme)
52
58
  send('ssl_path=', opts[:ssl_path])
53
59
  send('pkcs12_file=', opts[:pkcs12_file])
@@ -58,6 +64,7 @@ module NetHTTP
58
64
  send('ca_file=', opts[:ca_file])
59
65
  send('verify_mode=', opts[:verify_mode])
60
66
 
67
+ @client.proxy_from_env = proxy_from_env
61
68
  @client.open_timeout = open_timeout
62
69
  @client.read_timeout = read_timeout
63
70
  @client.use_ssl = use_ssl
data/lib/client/ext.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  module NetHTTP
4
4
  class Client
5
5
  def proxy_uri=(opts = {})
6
- proxy_uri = opts[:proxy_uri] ||= opts[:proxy_url] ||= ENV['http_proxy'] ||= ENV['HTTP_PROXY'] ||= ENV['https_proxy'] ||= ENV['HTTPS_PROXY']
6
+ proxy_uri = opts[:proxy_uri] || opts[:proxy_url]
7
7
 
8
8
  begin
9
9
  if proxy_uri.to_s.empty? == false
@@ -21,14 +21,14 @@ module NetHTTP
21
21
  )
22
22
  )
23
23
  end
24
- rescue RuntimeError => error
25
- logger.debug(error)
24
+ rescue RuntimeError => err
25
+ logger.debug(err)
26
26
  @proxy_uri = nil
27
27
  end
28
28
  end
29
29
 
30
30
  def uri=(opts = {})
31
- uri = opts[:uri] ||= opts[:url]
31
+ uri = opts[:uri] || opts[:url]
32
32
  begin
33
33
  if uri.to_s.empty? == false
34
34
  @uri = Core::Utilities.parse_uri(uri)
@@ -45,8 +45,8 @@ module NetHTTP
45
45
  )
46
46
  )
47
47
  end
48
- rescue RuntimeError => error
49
- logger.debug(error)
48
+ rescue RuntimeError => err
49
+ logger.debug(err)
50
50
  @uri = nil
51
51
  end
52
52
  end
@@ -109,6 +109,14 @@ module NetHTTP
109
109
  end
110
110
  end
111
111
 
112
+ def proxy_from_env=(proxy_from_env)
113
+ if proxy_from_env == true
114
+ @proxy_from_env = true
115
+ else
116
+ @proxy_from_env = false
117
+ end
118
+ end
119
+
112
120
  def read_timeout=(read_timeout)
113
121
  @read_timeout = read_timeout.to_s.to_i
114
122
  end
@@ -221,8 +221,8 @@ module NetHTTP
221
221
  format: 'snake',
222
222
  type: type.downcase
223
223
  )
224
- rescue RuntimeError => error
225
- raise error
224
+ rescue RuntimeError => err
225
+ raise err
226
226
  end
227
227
  end
228
228
 
@@ -245,8 +245,8 @@ module NetHTTP
245
245
  format: 'snake',
246
246
  type: type.downcase
247
247
  )
248
- rescue RuntimeError => error
249
- raise error
248
+ rescue RuntimeError => err
249
+ raise err
250
250
  end
251
251
  end
252
252
 
@@ -289,8 +289,8 @@ module NetHTTP
289
289
  format: 'snake',
290
290
  type: type.downcase
291
291
  )
292
- rescue RuntimeError => error
293
- raise error
292
+ rescue RuntimeError => err
293
+ raise err
294
294
  end
295
295
  end
296
296
 
@@ -300,13 +300,13 @@ module NetHTTP
300
300
  return false if json_doc.empty?
301
301
 
302
302
  JSON.parse(json_doc)
303
- rescue JSON::ParserError => error
303
+ rescue JSON::ParserError => err
304
304
  if logger.nil? || logger.to_s.empty?
305
305
  puts 'WARNING - JSON syntax / parsing errors detected:'
306
- puts error
306
+ puts err
307
307
  else
308
308
  logger.debug('WARNING - JSON syntax / parsing errors detected:')
309
- logger.debug(error)
309
+ logger.debug(err)
310
310
  end
311
311
  return false
312
312
  end
@@ -362,8 +362,8 @@ module NetHTTP
362
362
  end
363
363
  return true
364
364
  end
365
- rescue RuntimeError => error
366
- raise error
365
+ rescue RuntimeError => err
366
+ raise err
367
367
  end
368
368
 
369
369
  true
@@ -41,6 +41,8 @@ module NetHTTP
41
41
  logger.debug('Request Host => ' + request_opts[:uri].scheme.to_s + '://' + request_opts[:uri].host.to_s)
42
42
  logger.debug('Request Port => ' + request_opts[:uri].port.to_s)
43
43
  logger.debug('Request Path => ' + path)
44
+ logger.debug('Request Headers =>')
45
+ logger.debug(Hash[request_opts[:headers].to_h.map { |k, v| [k.to_s, v] }])
44
46
  NetHTTP::Response.new(
45
47
  response: client.delete(
46
48
  path
@@ -65,7 +67,7 @@ module NetHTTP
65
67
  logger.debug('Request Port => ' + request_opts[:uri].port.to_s)
66
68
  logger.debug('Request Path => ' + path)
67
69
  logger.debug('Request Headers =>')
68
- logger.debug(request_opts[:headers])
70
+ logger.debug(Hash[request_opts[:headers].to_h.map { |k, v| [k.to_s, v] }])
69
71
  NetHTTP::Response.new(
70
72
  response: client.get(
71
73
  path,
@@ -91,7 +93,7 @@ module NetHTTP
91
93
  logger.debug('Request Port => ' + request_opts[:uri].port.to_s)
92
94
  logger.debug('Request Path => ' + path)
93
95
  logger.debug('Request Headers =>')
94
- logger.debug(request_opts[:headers])
96
+ logger.debug(Hash[request_opts[:headers].to_h.map { |k, v| [k.to_s, v] }])
95
97
  logger.debug('Request Body =>')
96
98
  logger.debug(request_opts[:body])
97
99
  NetHTTP::Response.new(
@@ -120,7 +122,7 @@ module NetHTTP
120
122
  logger.debug('Request Port => ' + request_opts[:uri].port.to_s)
121
123
  logger.debug('Request Path => ' + path)
122
124
  logger.debug('Request Headers =>')
123
- logger.debug(request_opts[:headers])
125
+ logger.debug(Hash[request_opts[:headers].to_h.map { |k, v| [k.to_s, v] }])
124
126
  logger.debug('Request Body =>')
125
127
  logger.debug(URI.encode_www_form(request_opts[:body]))
126
128
  NetHTTP::Response.new(
@@ -151,7 +153,7 @@ module NetHTTP
151
153
  logger.debug('Request Port => ' + request_opts[:uri].port.to_s)
152
154
  logger.debug('Request Path => ' + path)
153
155
  logger.debug('Request Headers =>')
154
- logger.debug(request_opts[:headers])
156
+ logger.debug(Hash[request_opts[:headers].to_h.map { |k, v| [k.to_s, v] }])
155
157
  logger.debug('Request Body =>')
156
158
  logger.debug(request_opts[:body])
157
159
  NetHTTP::Response.new(
@@ -171,12 +173,12 @@ module NetHTTP
171
173
  raise NetHTTP::Request::SchemaError.new(schema_results.to_s)
172
174
  end
173
175
 
174
- request_method = opts[:method] ||= 'post'
176
+ request_method = opts[:method] || 'post'
175
177
  request_uri = Core::Utilities.parse_uri(opts[:uri] || opts[:url] || uri)
176
178
  request_path = (opts[:path] || request_uri.path || path).chomp('?')
177
179
  request_query = Core::Utilities.parse_query((opts[:query] || request_uri.query || query))
178
- request_headers = opts[:headers] ||= {}
179
- request_body = opts[:body] ||= nil
180
+ request_headers = opts[:headers] || {}
181
+ request_body = opts[:body] || nil
180
182
 
181
183
  {
182
184
  method: request_method,
@@ -32,52 +32,37 @@ module NetHTTP
32
32
  log_response
33
33
  end
34
34
 
35
- alias resp response
36
-
37
35
  def body=
38
36
  @body = response.body
39
37
  end
40
38
 
41
- alias resp_body body
42
- alias response_body body
43
-
44
39
  def body_obj=
45
40
  @body_obj = {}
46
41
 
47
- if valid_json?
48
- begin
49
- @body_obj = NetHTTP::Core::Utilities.json_2_hash(body, 'symbol', logger)
50
- rescue JSON::ParserError => error
51
- logger.debug(error)
52
- end
53
- elsif valid_xml? || valid_html?
54
- begin
55
- @body_obj = NetHTTP::Core::Utilities.xml_2_hash(body, 'symbol', logger)
56
- rescue Nokogiri::XML::SyntaxError => error
57
- logger.debug(error)
58
- end
42
+ if content_type.to_s.downcase.include?('json')
43
+ @body_obj = parse_json(body, logger)
44
+ elsif content_type.to_s.downcase.include?('xml') || content_type.to_s.downcase.include?('html')
45
+ @body_boj = parse_xml(body, logger)
59
46
  end
60
- end
61
47
 
62
- alias resp_body_obj body_obj
63
- alias response_body_obj body_obj
48
+ @body_obj
49
+ end
64
50
 
65
51
  def body_os=
66
52
  @body_os = JSON.parse(body_obj.to_json, object_class: OpenStruct)
67
53
  end
68
54
 
69
- alias resp_body_os body_os
70
- alias response_body_os body_os
71
- alias body_open_struct body_os
72
- alias resp_body_open_struct body_os
73
- alias response_body_open_struct body_os
74
-
75
55
  def code=
76
56
  @code = response.code
77
57
  end
78
58
 
79
- alias resp_code code
80
- alias response_code code
59
+ def content_type
60
+ content_type = headers_hash.select { |k,v| k.to_s.downcase == 'content_type' }
61
+
62
+ return nil if content_type.empty?
63
+
64
+ content_type[:content_type]
65
+ end
81
66
 
82
67
  def headers=
83
68
  @headers = {}
@@ -86,35 +71,40 @@ module NetHTTP
86
71
  end
87
72
  end
88
73
 
89
- alias resp_headers headers
90
- alias response_headers headers
91
-
92
74
  def headers_hash=
93
- @headers_hash = {}
94
- NetHTTP::Core::Utilities.convert_hash_keys(
75
+ @headers_hash = NetHTTP::Core::Utilities.convert_hash_keys(
95
76
  object: headers,
96
77
  format: 'snake',
97
78
  type: 'symbol'
98
79
  )
99
80
  end
100
81
 
101
- alias resp_headers_hash headers_hash
102
- alias response_headers_hash headers_hash
103
-
104
82
  def headers_os=
105
83
  @headers_os = JSON.parse(headers_hash.to_json, object_class: OpenStruct)
106
84
  end
107
85
 
108
- alias resp_headers_os headers_os
109
- alias response_headers_os headers_os
110
- alias headers_open_struct headers_os
111
- alias resp_headers_struct headers_os
112
- alias response_headers_open_struct headers_os
113
-
114
86
  def response=(response)
115
87
  @response = response
116
88
  end
117
89
 
90
+ def parse_json(body, logger)
91
+ begin
92
+ NetHTTP::Core::Utilities.json_2_hash(body, 'symbol', logger)
93
+ rescue JSON::ParserError => err
94
+ logger.debug(err)
95
+ return {}
96
+ end
97
+ end
98
+
99
+ def parse_xml(body, logger)
100
+ begin
101
+ NetHTTP::Core::Utilities.xml_2_hash(body, 'symbol', logger)
102
+ rescue Nokogiri::XML::SyntaxError => err
103
+ logger.debug(err)
104
+ return {}
105
+ end
106
+ end
107
+
118
108
  def valid_json?
119
109
  NetHTTP::Core::Utilities.valid_json?(body, logger)
120
110
  end
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NetHTTP
4
- VERSION = '1.1.5'
4
+ VERSION = '1.2.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rb-net_http-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.5
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Bostian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-05 00:00:00.000000000 Z
11
+ date: 2019-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.13.0
33
+ version: 0.13.3
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.13.0
40
+ version: 0.13.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: nokogiri
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.10.0
47
+ version: 1.10.4
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.10.0
54
+ version: 1.10.4
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -279,7 +279,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
279
279
  - !ruby/object:Gem::Version
280
280
  version: '0'
281
281
  requirements: []
282
- rubygems_version: 3.0.1
282
+ rubygems_version: 3.0.6
283
283
  signing_key:
284
284
  specification_version: 4
285
285
  summary: A Simple Ruby HTTP Client