rb-net_http-client 1.1.4 → 1.6.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: ccd08c5fc978270d92748ff8a6594e8d5bb378291f6f9c20876ef4bcf1324c2a
4
- data.tar.gz: cd627208077f5aee71a705fbffa68508d30bbaeafe60b38398b9aadeea69906f
3
+ metadata.gz: 76514495cfbed0e713c811a595304ea13ae5937725b1dba6646fac7e3ad30c51
4
+ data.tar.gz: f8e1c648f4a160894bb528b1c0de495b177447c64667b6e2cd3dffce60b38f84
5
5
  SHA512:
6
- metadata.gz: 9a78e2436a1d5a7434e916faba197d82fef92e226c31f2d4506d2b3fcd49af6b21210b877fa3bf0d5d386b49e5de9b28758ee625d715e25ca2078b39ee8f6bc0
7
- data.tar.gz: 17f36a54dd7dc2f85a066ab13e62134e73346a7e58fdef771209f901c39a4810f341244408cb6c95526f4b1c428e38f4ce9235fff209ed9f20f6ec13a6270262
6
+ metadata.gz: c37314a18313a524c34866fa7c9fe2cbddb8afd1df9ada8758de62902fd577812d98369cfc9aee358cc3e38a46a1536f1ded02c99fdc4fbdd6cf5b840c5b1c4b
7
+ data.tar.gz: 1dca387d785df28c71ec30609bb6d6203f311070417054dfeac4b4315ac9637fca4ddb497753c836e99f880d6ad8d0fc2dba0d7911fffe57cda0c76209782696
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,
@@ -32,22 +33,27 @@ module NetHTTP
32
33
 
33
34
  def initialize(opts = {})
34
35
  send('logger=', opts[:logger])
35
- schema_results = Core.schema_validation(opts, NetHTTP::Client::Schema) unless opts[:enforce_schema_validation] == false
36
+ schema_results = Core.schema_validation(opts, NetHTTP::Client::Schema.new) unless opts[:enforce_schema_validation] == false
36
37
  unless schema_results.nil?
37
38
  logger.debug("NetHTTP::Client::SchemaError -> #{schema_results}")
38
39
  raise NetHTTP::Client::SchemaError.new(schema_results.to_s)
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
data/lib/client/schema.rb CHANGED
@@ -4,47 +4,42 @@ require 'dry-validation'
4
4
 
5
5
  module NetHTTP
6
6
  class Client
7
- Schema = Dry::Validation.Schema do
8
- configure do
9
- def name
10
- 'NetHTTP::Client::Schema'
11
- end
12
-
13
- def true_or_false
14
- [true, false]
15
- end
7
+ class Schema < Dry::Validation::Contract
8
+ schema do
9
+ optional(:ca_file).value(:string).filled
10
+ optional(:host).value(:string)
11
+ optional(:logger).filled
12
+ optional(:open_timeout).value(:integer).filled
13
+ optional(:path).value(:string)
14
+ optional(:port).value(:integer)
15
+ optional(:pkcs12_file).value(:string).filled
16
+ optional(:pkcs12_passphrase).value(:string).filled
17
+ optional(:proxy_uri_host).value(:string)
18
+ optional(:proxy_uri_path).value(:string)
19
+ optional(:proxy_uri_port).value(:integer)
20
+ optional(:proxy_uri_scheme).value(:string)
21
+ optional(:proxy_uri).value(:string).filled
22
+ optional(:proxy_url).value(:string).filled
23
+ optional(:query).value(:string).filled
24
+ optional(:read_timeout).value(:integer).filled
25
+ optional(:scheme).value(:string)
26
+ optional(:ssl_path).value(:string).filled
27
+ optional(:uri).value(:string)
28
+ optional(:url).value(:string)
29
+ optional(:use_ssl)
30
+ optional(:verify_mode).filled
16
31
  end
17
32
 
18
- optional(:ca_file).filled(type?: String)
19
- optional(:host).maybe(type?: String)
20
- optional(:logger).filled
21
- optional(:open_timeout).filled(type?: Integer)
22
- optional(:path).maybe(type?: String)
23
- optional(:port).maybe(type?: Integer)
24
- optional(:pkcs12_file).filled(type?: String)
25
- optional(:pkcs12_passphrase).filled(type?: String)
26
- optional(:proxy_uri_host).maybe(type?: String)
27
- optional(:proxy_uri_path).maybe(type?: String)
28
- optional(:proxy_uri_port).maybe(type?: Integer)
29
- optional(:proxy_uri_scheme).maybe(type?: String)
30
- optional(:proxy_uri).filled(type?: String)
31
- optional(:proxy_url).filled(type?: String)
32
- optional(:query).filled(type?: String)
33
- optional(:read_timeout).filled(type?: Integer)
34
- optional(:scheme).maybe(type?: String)
35
- optional(:ssl_path).filled(type?: String)
36
- optional(:uri).maybe(type?: String)
37
- optional(:url).maybe(type?: String)
38
- optional(:use_ssl).filled(included_in?: true_or_false)
39
- optional(:verify_mode).filled
33
+ rule(:uri, :url, :host) do
34
+ key.failure('uri, url, & host cannot all be nil') if (values[:uri].nil? && values[:url].nil? && values[:host].nil?)
35
+ end
40
36
 
41
- rule(if_url_and_uri_are_nil_must_provide_host: [:uri, :url, :host]) do |uri, url, host|
42
- uri.empty?.then(url.empty?.then(host.filled?))
37
+ rule(:uri, :url, :scheme, :port) do
38
+ key.failure('if uri and url are nil, scheme or port cannot be nil') if (values[:uri].nil? && values[:url].nil? && (values[:scheme].nil? || values[:port].nil?))
43
39
  end
44
40
 
45
- rule(if_url_and_uri_are_nil_must_provide_scheme_or_port: [:uri, :url, :scheme, :port]) do |uri, url, scheme, port|
46
- uri.empty?.then(url.empty?.then(scheme.empty?.then(port.filled?)))
47
- uri.empty?.then(url.empty?.then(port.empty?.then(scheme.filled?)))
41
+ rule(:use_ssl) do
42
+ key.failure('use_ssl must be either true or false') if (!values[:use_ssl].nil? && values[:use_ssl].class != (FalseClass || TrueClass))
48
43
  end
49
44
  end
50
45
 
data/lib/core/core.rb CHANGED
@@ -20,14 +20,8 @@ module NetHTTP
20
20
  if results.success?
21
21
  return nil
22
22
  else
23
- return results.messages
23
+ return results.errors.to_h
24
24
  end
25
25
  end
26
26
  end
27
-
28
- class SchemaError < StandardError
29
- def initialize(msg)
30
- super(msg)
31
- end
32
- end
33
27
  end
@@ -56,15 +56,14 @@ module NetHTTP
56
56
  end
57
57
 
58
58
  def self.parse_query(query)
59
- # todo: may need to update this as URI.escape is considered obsolete
60
59
  case query
61
60
  when String
62
61
  query = query[1..-1] if query.start_with?('?')
63
- URI.escape("?#{query}")
62
+ URI.encode_www_form_component("?#{query}")
64
63
  when Hash
65
64
  query = query.map { |k, v| "#{k}=#{v}" }
66
65
  query = query.join('&')
67
- URI.escape("?#{query}")
66
+ URI.encode_www_form_component("?#{query}")
68
67
  else
69
68
  nil
70
69
  end
@@ -221,8 +220,8 @@ module NetHTTP
221
220
  format: 'snake',
222
221
  type: type.downcase
223
222
  )
224
- rescue RuntimeError => error
225
- raise error
223
+ rescue RuntimeError => err
224
+ raise err
226
225
  end
227
226
  end
228
227
 
@@ -245,8 +244,8 @@ module NetHTTP
245
244
  format: 'snake',
246
245
  type: type.downcase
247
246
  )
248
- rescue RuntimeError => error
249
- raise error
247
+ rescue RuntimeError => err
248
+ raise err
250
249
  end
251
250
  end
252
251
 
@@ -289,8 +288,8 @@ module NetHTTP
289
288
  format: 'snake',
290
289
  type: type.downcase
291
290
  )
292
- rescue RuntimeError => error
293
- raise error
291
+ rescue RuntimeError => err
292
+ raise err
294
293
  end
295
294
  end
296
295
 
@@ -300,13 +299,13 @@ module NetHTTP
300
299
  return false if json_doc.empty?
301
300
 
302
301
  JSON.parse(json_doc)
303
- rescue JSON::ParserError => error
302
+ rescue JSON::ParserError => err
304
303
  if logger.nil? || logger.to_s.empty?
305
304
  puts 'WARNING - JSON syntax / parsing errors detected:'
306
- puts error
305
+ puts err
307
306
  else
308
307
  logger.debug('WARNING - JSON syntax / parsing errors detected:')
309
- logger.debug(error)
308
+ logger.debug(err)
310
309
  end
311
310
  return false
312
311
  end
@@ -362,8 +361,8 @@ module NetHTTP
362
361
  end
363
362
  return true
364
363
  end
365
- rescue RuntimeError => error
366
- raise error
364
+ rescue RuntimeError => err
365
+ raise err
367
366
  end
368
367
 
369
368
  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(
@@ -165,18 +167,18 @@ module NetHTTP
165
167
  end
166
168
 
167
169
  def request_opts(opts)
168
- schema_results = Core.schema_validation(opts, NetHTTP::Request::Schema) unless opts[:enforce_schema_validation] == false
170
+ schema_results = Core.schema_validation(opts, NetHTTP::Request::Schema.new) unless opts[:enforce_schema_validation] == false
169
171
  unless schema_results.nil?
170
172
  logger.debug("NetHTTP::Request::SchemaError -> #{schema_results}")
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,
@@ -4,20 +4,19 @@ require 'dry-validation'
4
4
 
5
5
  module NetHTTP
6
6
  class Request
7
- Schema = Dry::Validation.Schema do
8
- configure do
9
- def name
10
- 'NetHTTP::Request::Schema'
11
- end
7
+ class Schema < Dry::Validation::Contract
8
+ schema do
9
+ required(:method).value(:string).filled
10
+ optional(:headers).value(:hash)
11
+ optional(:body)
12
+ optional(:query).filled
13
+ optional(:uri).value(:string).filled
14
+ optional(:url).value(:string).filled
15
+ optional(:path).value(:string).filled
12
16
  end
13
17
 
14
- required(:method).filled(type?: String)
15
- optional(:headers).maybe(type?: Hash)
16
- optional(:body).maybe
17
- optional(:query).filled
18
-
19
- rule(if_url_and_uri_are_nil_must_provide_path: [:uri, :url, :path]) do |uri, url, path|
20
- uri.empty?.then(url.empty?.then(path.filled?))
18
+ rule(:uri, :url, :path) do
19
+ key.failure('uri, url, & path cannot all be nil') if (values[:uri].nil? && values[:url].nil? && values[:path].nil?)
21
20
  end
22
21
  end
23
22
 
@@ -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_obj = 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.4'
4
+ VERSION = '1.6.0'
5
5
  end
metadata CHANGED
@@ -1,57 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rb-net_http-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.6.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-04 00:00:00.000000000 Z
11
+ date: 2021-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5.1'
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '5.1'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: dry-validation
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.13.0
33
+ version: '0'
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'
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: '0'
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: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rexml
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: bundler
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -279,7 +293,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
279
293
  - !ruby/object:Gem::Version
280
294
  version: '0'
281
295
  requirements: []
282
- rubygems_version: 3.0.1
296
+ rubygems_version: 3.2.3
283
297
  signing_key:
284
298
  specification_version: 4
285
299
  summary: A Simple Ruby HTTP Client