restful_resource 2.17.0 → 2.18.1

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: 4f1e1688884fd8954caa9da4cef1a9d2c3a1e294ded09414ce82a3865cf40e30
4
- data.tar.gz: cb8672227647b41612c0a6a9ba739dde8705fb353369347106b037cc4c2a45c2
3
+ metadata.gz: ae9742d01111654892905db77a9f9e81ba74faf1924a438db004192dc748a6f8
4
+ data.tar.gz: 2434e333866d1642800b5624a5602be68be0ef6c496cd7bfdc655ef9c16e7910
5
5
  SHA512:
6
- metadata.gz: 676a02c4acb372b64b6a82e628cef146a2043709cecb56a9819e37ce253d15af0f386db2a9d6e08a5c9b02d5e7e8895b61e88af7065f560c941ccad1400a8daa
7
- data.tar.gz: e5ebf7348404ce117ac51963c23969754adbc144fbd97cc8ee4a967a80fe8c0a1a162ce55824800f5afd321167efe240fdb97226d05ded37fb74ba67209d6f4d
6
+ metadata.gz: f91c478064cd2c7caa343fdd8327c616c8e8f276fae93f7ab1ffe0be7f7e517b7ec6e92be254ece7da2e47aa7cdad002ce3649a6747ee1c777b700a50b587b06
7
+ data.tar.gz: f0d2700f5ed096c09427175d7a7a7c909c1e8f0be1f68b2bc107d0de36801f6e36e6acd26cb94f41c4f64de30671dc798cc57c4d4fb6346e83a083265b01558f
data/CHANGELOG.md CHANGED
@@ -1,4 +1,15 @@
1
1
  # Changelog
2
+ 2.18.1
3
+ ---
4
+
5
+ - Explicitly require 'ostruct' to prevent load error
6
+
7
+ 2.18
8
+ ---
9
+
10
+ - Configure Faraday's default adapter as `net_http`
11
+ - Fix `X-Client-Start` & `X-Client-Timeout` headers to be strings not integers
12
+
2
13
  2.17
3
14
  ---
4
15
 
data/README.md CHANGED
@@ -102,6 +102,14 @@ Metrics.sample('rails_site.api.cache_bypass', 1) # When a request did not go thr
102
102
  4. Push to the branch (`git push origin my-new-feature`)
103
103
  5. Create new Pull Request
104
104
 
105
+ ## Releasing new version
106
+
107
+ 1. Amend the `version.rb` to your desired version on your Pull Request & get it merged
108
+ 2. Pull latest `main` & create a matching tag e.g.: `git tag -a v2.15.0 -m "Bump Faraday to a minimum 1.10"`
109
+ 3. Push the tag e.g.: ` git push origin v2.15.0`
110
+ 4. Run `bundle exec rake release`
111
+ - You'll need to authenticate with RubyGems, the credentials are in [Bitwarden](https://vault.bitwarden.com/#/vault?search=ruby&itemId=54601528-29be-494f-ba3c-aa3300d5dd18)
112
+
105
113
  ## Planned Features
106
114
 
107
115
  ### Core
@@ -1,6 +1,3 @@
1
- # Use the Faraday-Typhoeus adapter provided by Typhoeus, not Faraday
2
- require 'typhoeus/adapters/faraday'
3
-
4
1
  module RestfulResource
5
2
  class HttpClient
6
3
  class HttpError < StandardError
@@ -240,7 +237,7 @@ module RestfulResource
240
237
  b.response :encoding
241
238
  b.use :gzip
242
239
 
243
- b.adapter :typhoeus
240
+ b.adapter Faraday.default_adapter
244
241
  end
245
242
  end
246
243
 
@@ -261,7 +258,7 @@ module RestfulResource
261
258
  req.url request.url
262
259
 
263
260
  req.headers = req.headers.merge(request.headers).merge(x_client_start: time_current_ms)
264
- req.headers = req.headers.merge(x_client_timeout: req.options[:timeout]) if req.options[:timeout]
261
+ req.headers = req.headers.merge(x_client_timeout: req.options[:timeout]&.to_s) if req.options[:timeout]
265
262
  end
266
263
 
267
264
  Response.new(body: response.body, headers: response.headers, status: response.status)
@@ -295,7 +292,7 @@ module RestfulResource
295
292
  end
296
293
 
297
294
  def time_current_ms
298
- (Time.current.to_f * 1_000.0).to_i
295
+ (Time.current.to_f * 1_000.0).to_i.to_s
299
296
  end
300
297
  end
301
298
  end
@@ -1,3 +1,5 @@
1
+ require 'ostruct'
2
+
1
3
  module RestfulResource
2
4
  class StrictOpenStruct < ::OpenStruct
3
5
  deprecate :dig, :[], deprecator: Base::Deprecator
@@ -1,3 +1,3 @@
1
1
  module RestfulResource
2
- VERSION = '2.17.0'.freeze
2
+ VERSION = '2.18.1'.freeze
3
3
  end
@@ -34,5 +34,4 @@ Gem::Specification.new do |spec|
34
34
  spec.add_dependency 'faraday_middleware', '~> 1.0'
35
35
  spec.add_dependency 'link_header'
36
36
  spec.add_dependency 'rack', '~> 2.2'
37
- spec.add_dependency 'typhoeus', '~> 1.4'
38
37
  end
@@ -18,8 +18,8 @@ describe RestfulResource::HttpClient do
18
18
  let(:middleware) { connection.builder.handlers }
19
19
 
20
20
  describe 'Builder configuration' do
21
- it 'uses the typhoeus adapter' do
22
- expect(connection.adapter).to eq Faraday::Adapter::Typhoeus
21
+ it 'uses the net http adapter' do
22
+ expect(connection.adapter).to eq Faraday::Adapter::NetHttp
23
23
  end
24
24
 
25
25
  it 'url_encodes requests' do
@@ -221,7 +221,7 @@ RSpec.describe RestfulResource::HttpClient do
221
221
 
222
222
  context 'when explicit timeout set on connection' do
223
223
  let(:timeout) { 5 }
224
- let(:required_headers) { { 'X-Client-Timeout' => 5 } }
224
+ let(:required_headers) { { 'X-Client-Timeout' => '5' } }
225
225
 
226
226
  it 'sets X-Client-Timeout correctly' do
227
227
  response = http_client.get('http://httpbin.org/get')
@@ -243,7 +243,7 @@ RSpec.describe RestfulResource::HttpClient do
243
243
 
244
244
  context 'when set on request' do
245
245
  let(:timeout) { nil }
246
- let(:required_headers) { { 'X-Client-Timeout' => 1 } }
246
+ let(:required_headers) { { 'X-Client-Timeout' => '1' } }
247
247
 
248
248
  it 'sets X-Client-Timeout correctly' do
249
249
  response = http_client.get('http://httpbin.org/get', timeout: 1)
@@ -255,7 +255,7 @@ RSpec.describe RestfulResource::HttpClient do
255
255
 
256
256
  describe 'X-Client-Start' do
257
257
  let(:now) { Time.current }
258
- let(:required_headers) { { 'X-Client-Start' => (now.to_f * 1000.0).to_i } }
258
+ let(:required_headers) { { 'X-Client-Start' => (now.to_f * 1000.0).to_i.to_s } }
259
259
  let(:http_client) { described_class.new(connection: connection) }
260
260
  let(:connection) do
261
261
  conn = faraday_connection do |stubs|
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.17.0
4
+ version: 2.18.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Santoro
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-03-05 00:00:00.000000000 Z
12
+ date: 2024-05-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -227,20 +227,6 @@ dependencies:
227
227
  - - "~>"
228
228
  - !ruby/object:Gem::Version
229
229
  version: '2.2'
230
- - !ruby/object:Gem::Dependency
231
- name: typhoeus
232
- requirement: !ruby/object:Gem::Requirement
233
- requirements:
234
- - - "~>"
235
- - !ruby/object:Gem::Version
236
- version: '1.4'
237
- type: :runtime
238
- prerelease: false
239
- version_requirements: !ruby/object:Gem::Requirement
240
- requirements:
241
- - - "~>"
242
- - !ruby/object:Gem::Version
243
- version: '1.4'
244
230
  description: A simple activerecord inspired rest resource base class implemented using
245
231
  rest-client
246
232
  email: