nonnative 1.87.0 → 1.89.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: d084e050131452576fb0716fa60f9ad641f8d18e50cf99c05d0f3e0c37742f58
4
- data.tar.gz: dea87ac4b7b3c1d85bba7b1253d24191654fa3a7a338c54767716a85ff6b1123
3
+ metadata.gz: 9d27a1ee9bc751f5da70f20f485d56ad06eed943a41824a20bee328feb643853
4
+ data.tar.gz: 40f2576800f2b7571a4c613a957970a18ef00c99c6c936dddd2bd1ee3d2cf331
5
5
  SHA512:
6
- metadata.gz: 38c23a797f43a2193335fbcf50550311a0881de585d27af319935eeba9bb3e07e2f920c06004accd9cc3eada1079e374f5e9ffd6a51fcf238908b57ff04f3e42
7
- data.tar.gz: e6e63b0ed16fb218b56d981e04577774128d52e0a281e6937eb5127beee7a180fdd0fc7fbbfa536e75e78570aaa1202b3f21a69b2669f83dc8b1933abe4518bf
6
+ metadata.gz: 0d5e87666be587a5a91782932f3f484093c3c1fdc178d16d53e6631c8388abb942d346c1762a5458be2316e636790ce550d99c1090eed5a7947b06f8f7dec873
7
+ data.tar.gz: 03f379392cff88ddcc234ab6871c7b6bab01cb21916978434d63999cddfb936cdcf2bdd39b96a409f419662d416a75bb46a3406246018c2709bd1e5d361d629a
data/CHANGELOG.md CHANGED
@@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ ## [v1.89.0](https://github.com/alexfalkowski/nonnative/releases/tag/v1.89.0) - 2025-01-27
10
+
11
+ - [`e31d54e`](https://github.com/alexfalkowski/nonnative/commit/e31d54e2ebeec01a56974897f40679ca86fb2006) feat(http_client): add ability to retry (#496)
12
+
13
+ ## [v1.88.0](https://github.com/alexfalkowski/nonnative/releases/tag/v1.88.0) - 2025-01-26
14
+
15
+ - [`897e4d4`](https://github.com/alexfalkowski/nonnative/commit/897e4d421cdb72378c9f241d2ecee152b75b7f13) feat(http_client): handle RestClient::Exception (#494)
16
+
9
17
  ## [v1.87.0](https://github.com/alexfalkowski/nonnative/releases/tag/v1.87.0) - 2025-01-26
10
18
 
11
19
  - [`c370c66`](https://github.com/alexfalkowski/nonnative/commit/c370c664ff1f6f83a8f2afe7075afd1b34bc333a) feat(proxy): add wait to the proxy, not globally (#493)
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nonnative (1.87.0)
4
+ nonnative (1.89.0)
5
5
  concurrent-ruby (>= 1, < 2)
6
6
  config (>= 5, < 6)
7
7
  cucumber (>= 7, < 10)
@@ -9,6 +9,7 @@ PATH
9
9
  grpc (>= 1, < 2)
10
10
  rackup (>= 2, < 3)
11
11
  rest-client (>= 2, < 3)
12
+ retriable (>= 3, < 4)
12
13
  rspec-benchmark (>= 0, < 1)
13
14
  rspec-expectations (>= 3, < 4)
14
15
  rspec-wait (>= 1, < 2)
@@ -126,6 +127,7 @@ GEM
126
127
  http-cookie (>= 1.0.2, < 2.0)
127
128
  mime-types (>= 1.16, < 4.0)
128
129
  netrc (~> 0.8)
130
+ retriable (3.1.2)
129
131
  rexml (3.4.0)
130
132
  rspec (3.13.0)
131
133
  rspec-core (~> 3.13.0)
@@ -4,10 +4,18 @@ module Nonnative
4
4
  class HTTPClient
5
5
  def initialize(host)
6
6
  @host = host
7
+ @expections = [
8
+ RestClient::Exceptions::Timeout,
9
+ RestClient::ServerBrokeConnection
10
+ ]
7
11
  end
8
12
 
9
13
  protected
10
14
 
15
+ def with_retry(tries, wait, &)
16
+ Retriable.retriable(tries: tries, base_interval: wait, on: expections, &)
17
+ end
18
+
11
19
  def get(pathname, opts = {})
12
20
  with_exception do
13
21
  resource(pathname, opts).get
@@ -38,13 +46,13 @@ module Nonnative
38
46
 
39
47
  private
40
48
 
41
- attr_reader :host
49
+ attr_reader :host, :expections
42
50
 
43
51
  def with_exception
44
52
  yield
45
- rescue RestClient::Exceptions::ReadTimeout => e
53
+ rescue *expections => e
46
54
  raise e
47
- rescue RestClient::ExceptionWithResponse => e
55
+ rescue RestClient::Exception => e
48
56
  e.response
49
57
  end
50
58
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nonnative
4
- VERSION = '1.87.0'
4
+ VERSION = '1.89.0'
5
5
  end
data/lib/nonnative.rb CHANGED
@@ -10,6 +10,7 @@ require 'grpc'
10
10
  require 'sinatra'
11
11
  require 'rackup'
12
12
  require 'rest-client'
13
+ require 'retriable'
13
14
  require 'concurrent'
14
15
  require 'config'
15
16
  require 'cucumber'
data/nonnative.gemspec CHANGED
@@ -31,6 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency 'grpc', '>= 1', '< 2'
32
32
  spec.add_dependency 'rackup', '>= 2', '< 3'
33
33
  spec.add_dependency 'rest-client', '>= 2', '< 3'
34
+ spec.add_dependency 'retriable', '>= 3', '< 4'
34
35
  spec.add_dependency 'rspec-benchmark', '>= 0', '< 1'
35
36
  spec.add_dependency 'rspec-expectations', '>= 3', '< 4'
36
37
  spec.add_dependency 'rspec-wait', '>= 1', '< 2'
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nonnative
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.87.0
4
+ version: 1.89.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alejandro Falkowski
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-01-26 00:00:00.000000000 Z
10
+ date: 2025-01-27 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: concurrent-ruby
@@ -149,6 +149,26 @@ dependencies:
149
149
  - - "<"
150
150
  - !ruby/object:Gem::Version
151
151
  version: '3'
152
+ - !ruby/object:Gem::Dependency
153
+ name: retriable
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '3'
159
+ - - "<"
160
+ - !ruby/object:Gem::Version
161
+ version: '4'
162
+ type: :runtime
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: '3'
169
+ - - "<"
170
+ - !ruby/object:Gem::Version
171
+ version: '4'
152
172
  - !ruby/object:Gem::Dependency
153
173
  name: rspec-benchmark
154
174
  requirement: !ruby/object:Gem::Requirement