restful_resource 2.5.1 → 2.5.2
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 +4 -4
- data/lib/restful_resource/base.rb +4 -0
- data/lib/restful_resource/http_client.rb +15 -8
- data/lib/restful_resource/version.rb +1 -1
- data/restful_resource.gemspec +3 -3
- data/spec/restful_resource/base_spec.rb +6 -0
- data/spec/restful_resource/http_client_configuration_spec.rb +7 -0
- metadata +15 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb0d551d284814e63b1abe31b03f349ad6c75a8b39249a5c34f9d329c2853941
|
4
|
+
data.tar.gz: 9c840127de8523bbbda9e2040ae321d7d8211e5cb2c65ed8d0c9bbaed764e54b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87673da4a908520471c159f872cff232c9ed120421ba1ac8c6cb8307d8a3f1c7782881791b8a2c27afc1cc4e286f29fd1f60fbfbb108c394e6ef963b903b1ae2
|
7
|
+
data.tar.gz: 0ee761effc856af7cbfe4605c277e3df5f6c589c58e07f172effc4128c7d557f55200a1355b56a20ac223d18c3d48094481fbb94a35205b6ee20d0cc0d71e22b
|
@@ -9,6 +9,8 @@ module RestfulResource
|
|
9
9
|
logger: nil,
|
10
10
|
cache_store: nil,
|
11
11
|
instrumentation: {},
|
12
|
+
timeout: nil,
|
13
|
+
open_timeout: nil,
|
12
14
|
faraday_config: nil,
|
13
15
|
faraday_options: nil)
|
14
16
|
|
@@ -19,6 +21,8 @@ module RestfulResource
|
|
19
21
|
auth_token: auth_token,
|
20
22
|
logger: logger,
|
21
23
|
cache_store: cache_store,
|
24
|
+
timeout: timeout,
|
25
|
+
open_timeout: open_timeout,
|
22
26
|
instrumentation: instrumentation,
|
23
27
|
faraday_config: faraday_config,
|
24
28
|
faraday_options: faraday_options
|
@@ -69,6 +69,9 @@ module RestfulResource
|
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
|
+
DEFAULT_TIMEOUT_IN_SECS = 10
|
73
|
+
DEFAULT_OPEN_TIMEOUT_IN_SECS = 2
|
74
|
+
|
72
75
|
def initialize(username: nil,
|
73
76
|
password: nil,
|
74
77
|
auth_token: nil,
|
@@ -76,8 +79,8 @@ module RestfulResource
|
|
76
79
|
cache_store: nil,
|
77
80
|
connection: nil,
|
78
81
|
instrumentation: {},
|
79
|
-
|
80
|
-
|
82
|
+
timeout: nil,
|
83
|
+
open_timeout: nil,
|
81
84
|
faraday_config: nil,
|
82
85
|
faraday_options: nil)
|
83
86
|
api_name = instrumentation[:api_name] ||= 'api'
|
@@ -101,6 +104,8 @@ module RestfulResource
|
|
101
104
|
@connection = connection || initialize_connection(logger: logger,
|
102
105
|
cache_store: cache_store,
|
103
106
|
instrumenter: ActiveSupport::Notifications,
|
107
|
+
timeout: timeout,
|
108
|
+
open_timeout: open_timeout,
|
104
109
|
request_instrument_name: instrumentation.fetch(:request_instrument_name, nil),
|
105
110
|
cache_instrument_name: instrumentation.fetch(:cache_instrument_name, nil),
|
106
111
|
server_cache_instrument_name: instrumentation.fetch(:server_cache_instrument_name, nil),
|
@@ -115,8 +120,6 @@ module RestfulResource
|
|
115
120
|
end
|
116
121
|
|
117
122
|
@connection.headers[:user_agent] = build_user_agent(instrumentation[:app_name])
|
118
|
-
@default_open_timeout = open_timeout
|
119
|
-
@default_timeout = timeout
|
120
123
|
end
|
121
124
|
|
122
125
|
def get(url, headers: {}, open_timeout: nil, timeout: nil)
|
@@ -184,11 +187,11 @@ module RestfulResource
|
|
184
187
|
|
185
188
|
private
|
186
189
|
|
187
|
-
attr_reader :default_open_timeout, :default_timeout
|
188
|
-
|
189
190
|
def initialize_connection(logger: nil,
|
190
191
|
cache_store: nil,
|
191
192
|
instrumenter: nil,
|
193
|
+
timeout: nil,
|
194
|
+
open_timeout: nil,
|
192
195
|
request_instrument_name: nil,
|
193
196
|
cache_instrument_name: nil,
|
194
197
|
server_cache_instrument_name: nil,
|
@@ -215,6 +218,9 @@ module RestfulResource
|
|
215
218
|
|
216
219
|
b.use :instrumentation, name: request_instrument_name if instrumenter && request_instrument_name
|
217
220
|
|
221
|
+
b.options.timeout = timeout || DEFAULT_TIMEOUT_IN_SECS
|
222
|
+
b.options.open_timeout = open_timeout || DEFAULT_OPEN_TIMEOUT_IN_SECS
|
223
|
+
|
218
224
|
faraday_config&.call(b)
|
219
225
|
|
220
226
|
b.response :encoding
|
@@ -234,14 +240,15 @@ module RestfulResource
|
|
234
240
|
|
235
241
|
def http_request(request)
|
236
242
|
response = @connection.send(request.method) do |req|
|
237
|
-
req.options.
|
238
|
-
req.options.
|
243
|
+
req.options.timeout = request.timeout if request.timeout
|
244
|
+
req.options.open_timeout = request.open_timeout if request.open_timeout
|
239
245
|
|
240
246
|
req.body = request.body unless request.body.nil?
|
241
247
|
req.url request.url
|
242
248
|
|
243
249
|
req.headers = req.headers.merge(request.headers)
|
244
250
|
end
|
251
|
+
|
245
252
|
Response.new(body: response.body, headers: response.headers, status: response.status)
|
246
253
|
rescue Faraday::ConnectionFailed
|
247
254
|
raise
|
data/restful_resource.gemspec
CHANGED
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.require_paths = ['lib']
|
19
19
|
spec.required_ruby_version = '>= 2.4'
|
20
20
|
|
21
|
-
spec.add_development_dependency 'bundler'
|
22
|
-
spec.add_development_dependency 'carwow_rubocop'
|
21
|
+
spec.add_development_dependency 'bundler'
|
22
|
+
spec.add_development_dependency 'carwow_rubocop'
|
23
23
|
spec.add_development_dependency 'rake'
|
24
|
-
spec.add_development_dependency 'rspec'
|
24
|
+
spec.add_development_dependency 'rspec'
|
25
25
|
spec.add_development_dependency 'rspec_junit_formatter'
|
26
26
|
spec.add_development_dependency 'rspec-its'
|
27
27
|
|
@@ -379,6 +379,8 @@ RSpec.describe RestfulResource::Base do
|
|
379
379
|
let(:logger) { double }
|
380
380
|
let(:cache_store) { double }
|
381
381
|
let(:instrumentation) { double }
|
382
|
+
let(:timeout) { double }
|
383
|
+
let(:open_timeout) { double }
|
382
384
|
let(:faraday_config) { double }
|
383
385
|
let(:faraday_options) { double }
|
384
386
|
|
@@ -389,6 +391,8 @@ RSpec.describe RestfulResource::Base do
|
|
389
391
|
logger: logger,
|
390
392
|
cache_store: cache_store,
|
391
393
|
instrumentation: instrumentation,
|
394
|
+
timeout: timeout,
|
395
|
+
open_timeout: open_timeout,
|
392
396
|
faraday_config: faraday_config,
|
393
397
|
faraday_options: faraday_options
|
394
398
|
)
|
@@ -400,6 +404,8 @@ RSpec.describe RestfulResource::Base do
|
|
400
404
|
logger: logger,
|
401
405
|
cache_store: cache_store,
|
402
406
|
instrumentation: instrumentation,
|
407
|
+
timeout: timeout,
|
408
|
+
open_timeout: open_timeout,
|
403
409
|
faraday_config: faraday_config,
|
404
410
|
faraday_options: faraday_options
|
405
411
|
)
|
@@ -111,6 +111,13 @@ describe RestfulResource::HttpClient do
|
|
111
111
|
end
|
112
112
|
end
|
113
113
|
|
114
|
+
describe 'when provided a timeout' do
|
115
|
+
let(:connection) { described_class.new(timeout: 111, open_timeout: 222).instance_variable_get('@connection') }
|
116
|
+
|
117
|
+
it { expect(connection.options.timeout).to eq(111) }
|
118
|
+
it { expect(connection.options.open_timeout).to eq(222) }
|
119
|
+
end
|
120
|
+
|
114
121
|
describe 'when provided a cache store' do
|
115
122
|
let(:connection) { described_class.new(cache_store: 'redis').instance_variable_get('@connection') }
|
116
123
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: restful_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.5.
|
4
|
+
version: 2.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Santoro
|
@@ -9,36 +9,36 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-05-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '0'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - "
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: carwow_rubocop
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - "
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
34
|
+
version: '0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - "
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
41
|
+
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rake
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -57,16 +57,16 @@ dependencies:
|
|
57
57
|
name: rspec
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - "
|
60
|
+
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
62
|
+
version: '0'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - "
|
67
|
+
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
69
|
+
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rspec_junit_formatter
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -288,8 +288,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
288
288
|
- !ruby/object:Gem::Version
|
289
289
|
version: '0'
|
290
290
|
requirements: []
|
291
|
-
|
292
|
-
rubygems_version: 2.7.6
|
291
|
+
rubygems_version: 3.0.3
|
293
292
|
signing_key:
|
294
293
|
specification_version: 4
|
295
294
|
summary: A simple activerecord inspired rest resource base class implemented using
|