restful_resource 2.19.0 → 2.19.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/CHANGELOG.md +9 -0
- data/lib/restful_resource/faraday_instrumentation_middleware.rb +22 -0
- data/lib/restful_resource/http_client.rb +1 -1
- data/lib/restful_resource/version.rb +1 -1
- data/lib/restful_resource.rb +2 -1
- data/restful_resource.gemspec +3 -2
- data/spec/restful_resource/http_client_configuration_spec.rb +4 -4
- data/spec/restful_resource/http_client_spec.rb +12 -2
- metadata +31 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 14323bd6e2637680c2d405ea680e837525108165986ea58220e47517f913a8e6
|
|
4
|
+
data.tar.gz: 21a8cfd6e3a4830e4af1c050c237bd3e58960f6dd221e6e25f12507090ae0409
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 21dd821aec6d3131d86cfa09a5a3e34e2d6d2a87d7f1d089db67666276e603085cb109f8e66769f631df0a84225965ef88ef98a1d2820a1328e4d99beda582d0
|
|
7
|
+
data.tar.gz: f8a7f4c6a88f817f154b077a2b5c31ca7d80a4dc352e7a78e7cd4856667e630dd1ad0bf667dd3fd4fd2c8d449fac3f7846e4a5c4cde923c68734139bd51aa700
|
data/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
|
+
2.19.2
|
|
3
|
+
---
|
|
4
|
+
- Drop `faraday_middleware` dependency (deprecated upstream, no Faraday 2 support). `:gzip` now uses the `faraday-gzip` gem; `:instrumentation` is a small custom middleware reproducing the previous behaviour. `faraday` stays `~> 1.10` for now.
|
|
5
|
+
|
|
6
|
+
2.19.1
|
|
7
|
+
---
|
|
8
|
+
- Update activesupport requirement to `>= 7, < 9`
|
|
9
|
+
- Add explicit `ostruct` dependency
|
|
10
|
+
|
|
2
11
|
2.19.0
|
|
3
12
|
---
|
|
4
13
|
- Remove resolv-replace dependency
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'faraday'
|
|
2
|
+
require 'active_support/notifications'
|
|
3
|
+
|
|
4
|
+
module RestfulResource
|
|
5
|
+
# Faraday middleware that instruments requests via ActiveSupport::Notifications.
|
|
6
|
+
# Replaces FaradayMiddleware::Instrumentation, which the faraday_middleware gem
|
|
7
|
+
# does not ship a Faraday 2 compatible release of.
|
|
8
|
+
class InstrumentationMiddleware < Faraday::Middleware
|
|
9
|
+
def initialize(app, name: 'request.faraday')
|
|
10
|
+
super(app)
|
|
11
|
+
@name = name
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def call(env)
|
|
15
|
+
ActiveSupport::Notifications.instrument(@name, env) do
|
|
16
|
+
@app.call(env)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
Faraday::Middleware.register_middleware(instrumentation: RestfulResource::InstrumentationMiddleware)
|
data/lib/restful_resource.rb
CHANGED
|
@@ -2,13 +2,14 @@ require 'rack'
|
|
|
2
2
|
require 'uri'
|
|
3
3
|
require 'link_header'
|
|
4
4
|
require 'faraday'
|
|
5
|
-
require '
|
|
5
|
+
require 'faraday/gzip'
|
|
6
6
|
require 'faraday-http-cache'
|
|
7
7
|
require 'faraday_cdn_metrics'
|
|
8
8
|
require 'faraday/encoding'
|
|
9
9
|
require 'active_support'
|
|
10
10
|
require 'active_support/all'
|
|
11
11
|
require_relative 'restful_resource/version'
|
|
12
|
+
require_relative 'restful_resource/faraday_instrumentation_middleware'
|
|
12
13
|
require_relative 'restful_resource/null_logger'
|
|
13
14
|
require_relative 'restful_resource/paginated_array'
|
|
14
15
|
require_relative 'restful_resource/parameter_missing_error'
|
data/restful_resource.gemspec
CHANGED
|
@@ -26,12 +26,13 @@ Gem::Specification.new do |spec|
|
|
|
26
26
|
spec.add_development_dependency 'rspec-its'
|
|
27
27
|
spec.add_development_dependency 'rspec_junit_formatter'
|
|
28
28
|
|
|
29
|
-
spec.add_dependency 'activesupport', '>=
|
|
29
|
+
spec.add_dependency 'activesupport', '>= 7', '< 9'
|
|
30
30
|
spec.add_dependency 'faraday', '~> 1.10'
|
|
31
31
|
spec.add_dependency 'faraday-cdn-metrics', '~> 0.2'
|
|
32
32
|
spec.add_dependency 'faraday-encoding'
|
|
33
|
+
spec.add_dependency 'faraday-gzip', '~> 2.0'
|
|
33
34
|
spec.add_dependency 'faraday-http-cache', '~> 2.2'
|
|
34
|
-
spec.add_dependency 'faraday_middleware', '~> 1.0'
|
|
35
35
|
spec.add_dependency 'link_header'
|
|
36
|
+
spec.add_dependency 'ostruct'
|
|
36
37
|
spec.add_dependency 'rack', '~> 3'
|
|
37
38
|
end
|
|
@@ -31,13 +31,13 @@ describe RestfulResource::HttpClient do
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
it 'compresses requests' do
|
|
34
|
-
expect(middleware).to include
|
|
34
|
+
expect(middleware).to include Faraday::Gzip::Middleware
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
describe 'instrumentation' do
|
|
38
38
|
context 'with the default key' do
|
|
39
39
|
it 'uses default instrumenter and key' do
|
|
40
|
-
expect(find_middleware_args(connection, '
|
|
40
|
+
expect(find_middleware_args(connection, 'RestfulResource::InstrumentationMiddleware')).to include(name: 'http.api')
|
|
41
41
|
end
|
|
42
42
|
end
|
|
43
43
|
|
|
@@ -45,7 +45,7 @@ describe RestfulResource::HttpClient do
|
|
|
45
45
|
let(:connection) { described_class.new(instrumentation: { api_name: 'my_api_name' }).instance_variable_get('@connection') }
|
|
46
46
|
|
|
47
47
|
it 'uses default instrumenter with the api_name' do
|
|
48
|
-
expect(find_middleware_args(connection, '
|
|
48
|
+
expect(find_middleware_args(connection, 'RestfulResource::InstrumentationMiddleware')).to include(name: 'http.my_api_name')
|
|
49
49
|
end
|
|
50
50
|
end
|
|
51
51
|
|
|
@@ -53,7 +53,7 @@ describe RestfulResource::HttpClient do
|
|
|
53
53
|
let(:connection) { described_class.new(instrumentation: { request_instrument_name: 'foo.bar' }).instance_variable_get('@connection') }
|
|
54
54
|
|
|
55
55
|
it 'uses default instrumenter with the custom key' do
|
|
56
|
-
expect(find_middleware_args(connection, '
|
|
56
|
+
expect(find_middleware_args(connection, 'RestfulResource::InstrumentationMiddleware')).to include(name: 'foo.bar')
|
|
57
57
|
end
|
|
58
58
|
end
|
|
59
59
|
|
|
@@ -152,7 +152,7 @@ RSpec.describe RestfulResource::HttpClient do
|
|
|
152
152
|
end
|
|
153
153
|
|
|
154
154
|
describe 'Token auth' do
|
|
155
|
-
def
|
|
155
|
+
def http_client_with_auth(connection)
|
|
156
156
|
described_class.new(connection: connection, auth_token: 'abc123')
|
|
157
157
|
end
|
|
158
158
|
|
|
@@ -161,7 +161,17 @@ RSpec.describe RestfulResource::HttpClient do
|
|
|
161
161
|
stubs.get('http://httpbin.org/bearer', 'Authorization' => 'Bearer abc123') { |_env| [200, {}, nil] }
|
|
162
162
|
end
|
|
163
163
|
|
|
164
|
-
response =
|
|
164
|
+
response = http_client_with_auth(connection).get('http://httpbin.org/bearer')
|
|
165
|
+
|
|
166
|
+
expect(response.status).to eq 200
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
it 'overrides authentication headers when a custom authentication header is passed in' do
|
|
170
|
+
connection = faraday_connection do |stubs|
|
|
171
|
+
stubs.get('http://httpbin.org/bearer', 'Authorization' => 'Bearer my-custom-header') { |_env| [200, {}, nil] }
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
response = http_client_with_auth(connection).get('http://httpbin.org/bearer', headers: { 'Authorization' => 'Bearer my-custom-header' })
|
|
165
175
|
|
|
166
176
|
expect(response.status).to eq 200
|
|
167
177
|
end
|
metadata
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: restful_resource
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.19.
|
|
4
|
+
version: 2.19.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Santoro
|
|
8
8
|
- Federico Rebora
|
|
9
|
-
autorequire:
|
|
9
|
+
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2026-08-17 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: bundler
|
|
@@ -115,20 +115,20 @@ dependencies:
|
|
|
115
115
|
requirements:
|
|
116
116
|
- - ">="
|
|
117
117
|
- !ruby/object:Gem::Version
|
|
118
|
-
version: '
|
|
118
|
+
version: '7'
|
|
119
119
|
- - "<"
|
|
120
120
|
- !ruby/object:Gem::Version
|
|
121
|
-
version: '
|
|
121
|
+
version: '9'
|
|
122
122
|
type: :runtime
|
|
123
123
|
prerelease: false
|
|
124
124
|
version_requirements: !ruby/object:Gem::Requirement
|
|
125
125
|
requirements:
|
|
126
126
|
- - ">="
|
|
127
127
|
- !ruby/object:Gem::Version
|
|
128
|
-
version: '
|
|
128
|
+
version: '7'
|
|
129
129
|
- - "<"
|
|
130
130
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: '
|
|
131
|
+
version: '9'
|
|
132
132
|
- !ruby/object:Gem::Dependency
|
|
133
133
|
name: faraday
|
|
134
134
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -172,33 +172,33 @@ dependencies:
|
|
|
172
172
|
- !ruby/object:Gem::Version
|
|
173
173
|
version: '0'
|
|
174
174
|
- !ruby/object:Gem::Dependency
|
|
175
|
-
name: faraday-
|
|
175
|
+
name: faraday-gzip
|
|
176
176
|
requirement: !ruby/object:Gem::Requirement
|
|
177
177
|
requirements:
|
|
178
178
|
- - "~>"
|
|
179
179
|
- !ruby/object:Gem::Version
|
|
180
|
-
version: '2.
|
|
180
|
+
version: '2.0'
|
|
181
181
|
type: :runtime
|
|
182
182
|
prerelease: false
|
|
183
183
|
version_requirements: !ruby/object:Gem::Requirement
|
|
184
184
|
requirements:
|
|
185
185
|
- - "~>"
|
|
186
186
|
- !ruby/object:Gem::Version
|
|
187
|
-
version: '2.
|
|
187
|
+
version: '2.0'
|
|
188
188
|
- !ruby/object:Gem::Dependency
|
|
189
|
-
name:
|
|
189
|
+
name: faraday-http-cache
|
|
190
190
|
requirement: !ruby/object:Gem::Requirement
|
|
191
191
|
requirements:
|
|
192
192
|
- - "~>"
|
|
193
193
|
- !ruby/object:Gem::Version
|
|
194
|
-
version: '
|
|
194
|
+
version: '2.2'
|
|
195
195
|
type: :runtime
|
|
196
196
|
prerelease: false
|
|
197
197
|
version_requirements: !ruby/object:Gem::Requirement
|
|
198
198
|
requirements:
|
|
199
199
|
- - "~>"
|
|
200
200
|
- !ruby/object:Gem::Version
|
|
201
|
-
version: '
|
|
201
|
+
version: '2.2'
|
|
202
202
|
- !ruby/object:Gem::Dependency
|
|
203
203
|
name: link_header
|
|
204
204
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -213,6 +213,20 @@ dependencies:
|
|
|
213
213
|
- - ">="
|
|
214
214
|
- !ruby/object:Gem::Version
|
|
215
215
|
version: '0'
|
|
216
|
+
- !ruby/object:Gem::Dependency
|
|
217
|
+
name: ostruct
|
|
218
|
+
requirement: !ruby/object:Gem::Requirement
|
|
219
|
+
requirements:
|
|
220
|
+
- - ">="
|
|
221
|
+
- !ruby/object:Gem::Version
|
|
222
|
+
version: '0'
|
|
223
|
+
type: :runtime
|
|
224
|
+
prerelease: false
|
|
225
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
226
|
+
requirements:
|
|
227
|
+
- - ">="
|
|
228
|
+
- !ruby/object:Gem::Version
|
|
229
|
+
version: '0'
|
|
216
230
|
- !ruby/object:Gem::Dependency
|
|
217
231
|
name: rack
|
|
218
232
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -252,6 +266,7 @@ files:
|
|
|
252
266
|
- lib/restful_resource/associations.rb
|
|
253
267
|
- lib/restful_resource/authorization.rb
|
|
254
268
|
- lib/restful_resource/base.rb
|
|
269
|
+
- lib/restful_resource/faraday_instrumentation_middleware.rb
|
|
255
270
|
- lib/restful_resource/http_client.rb
|
|
256
271
|
- lib/restful_resource/instrumentation.rb
|
|
257
272
|
- lib/restful_resource/null_logger.rb
|
|
@@ -283,7 +298,7 @@ homepage: http://www.github.com/carwow/restful_resource
|
|
|
283
298
|
licenses:
|
|
284
299
|
- MIT
|
|
285
300
|
metadata: {}
|
|
286
|
-
post_install_message:
|
|
301
|
+
post_install_message:
|
|
287
302
|
rdoc_options: []
|
|
288
303
|
require_paths:
|
|
289
304
|
- lib
|
|
@@ -298,8 +313,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
298
313
|
- !ruby/object:Gem::Version
|
|
299
314
|
version: '0'
|
|
300
315
|
requirements: []
|
|
301
|
-
rubygems_version: 3.
|
|
302
|
-
signing_key:
|
|
316
|
+
rubygems_version: 3.5.20
|
|
317
|
+
signing_key:
|
|
303
318
|
specification_version: 4
|
|
304
319
|
summary: A simple activerecord inspired rest resource base class implemented using
|
|
305
320
|
rest-client
|