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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d1f405ccf5d3f49ac11166ce73e0268fc4203203a63b3e31999d9f2cfbc416bc
4
- data.tar.gz: 6d07fc35aad7fcf4ee6d2a0236476bd30ac68bbea0cc252a85e5b6d79ad216b8
3
+ metadata.gz: cb0d551d284814e63b1abe31b03f349ad6c75a8b39249a5c34f9d329c2853941
4
+ data.tar.gz: 9c840127de8523bbbda9e2040ae321d7d8211e5cb2c65ed8d0c9bbaed764e54b
5
5
  SHA512:
6
- metadata.gz: ff4a2dea42bcc6bdcd56f539757dad0b3c4ab185d4bf73be11d098176b7af030f4cce005addf6d5e9d6f907605de0406f81b53645110549ee67395b56bacc2f9
7
- data.tar.gz: 75decbc1a7c0058bc7476efbf05981a6bee4771663e285734b3c587a41c4b61b26f87960717216d0a28ff5e1bcade60e7f025232dc577cb9a273d13844852d5e
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
- open_timeout: 2,
80
- timeout: 10,
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.open_timeout = request.open_timeout || default_open_timeout # seconds
238
- req.options.timeout = request.timeout || default_timeout # seconds
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
@@ -1,3 +1,3 @@
1
1
  module RestfulResource
2
- VERSION = '2.5.1'.freeze
2
+ VERSION = '2.5.2'.freeze
3
3
  end
@@ -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', '~> 1.3'
22
- spec.add_development_dependency 'carwow_rubocop', '~> 2.0'
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', '~> 3.1'
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.1
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: 2018-11-21 00:00:00.000000000 Z
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: '1.3'
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: '1.3'
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: '2.0'
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: '2.0'
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: '3.1'
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: '3.1'
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
- rubyforge_project:
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