rb-net_http-client 1.1.5 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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