restful_resource 2.17.0 → 2.18.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/README.md +8 -0
- data/lib/restful_resource/http_client.rb +3 -6
- data/lib/restful_resource/strict_open_struct.rb +2 -0
- data/lib/restful_resource/version.rb +1 -1
- data/restful_resource.gemspec +0 -1
- data/spec/restful_resource/http_client_configuration_spec.rb +2 -2
- data/spec/restful_resource/http_client_spec.rb +3 -3
- metadata +2 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae9742d01111654892905db77a9f9e81ba74faf1924a438db004192dc748a6f8
|
4
|
+
data.tar.gz: 2434e333866d1642800b5624a5602be68be0ef6c496cd7bfdc655ef9c16e7910
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
data/restful_resource.gemspec
CHANGED
@@ -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
|
22
|
-
expect(connection.adapter).to eq Faraday::Adapter::
|
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.
|
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-
|
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:
|