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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '021493f1e1819711eb6eec48efa97a574e84f8fae8f505a320448589cf7db8be'
4
- data.tar.gz: 991c6b0fde58a8fb3c62017c795f94ed89107ad8b6ca7259039fde338fb47dcd
3
+ metadata.gz: 14323bd6e2637680c2d405ea680e837525108165986ea58220e47517f913a8e6
4
+ data.tar.gz: 21a8cfd6e3a4830e4af1c050c237bd3e58960f6dd221e6e25f12507090ae0409
5
5
  SHA512:
6
- metadata.gz: 76a70f6b7e21a066b682048bf70e21c28be5c29a0b0692f7406cd7dc9216427bbf37c8c62fa331d0f6d7ef28583f430491008833127d1de9bccfbd8cc9b43999
7
- data.tar.gz: b2e04511965e66c30a8688e79eeb4726941c889db8475022072d60e49597a1f171bb6c5fb947fc6c16cf94108407090b512604a5b0b3570d1f516735b527bc99
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)
@@ -235,7 +235,7 @@ module RestfulResource
235
235
  faraday_config&.call(b)
236
236
 
237
237
  b.response :encoding
238
- b.use :gzip
238
+ b.request :gzip
239
239
 
240
240
  b.adapter Faraday.default_adapter
241
241
  end
@@ -1,3 +1,3 @@
1
1
  module RestfulResource
2
- VERSION = '2.19.0'.freeze
2
+ VERSION = '2.19.2'.freeze
3
3
  end
@@ -2,13 +2,14 @@ require 'rack'
2
2
  require 'uri'
3
3
  require 'link_header'
4
4
  require 'faraday'
5
- require 'faraday_middleware'
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'
@@ -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', '>= 6', '< 8'
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 FaradayMiddleware::Gzip
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, 'FaradayMiddleware::Instrumentation')).to include(name: 'http.api')
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, 'FaradayMiddleware::Instrumentation')).to include(name: 'http.my_api_name')
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, 'FaradayMiddleware::Instrumentation')).to include(name: 'foo.bar')
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 http_client(connection)
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 = http_client(connection).get('http://httpbin.org/bearer', headers: { 'Authorization' => 'Bearer abc123' })
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.0
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: 2025-03-12 00:00:00.000000000 Z
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: '6'
118
+ version: '7'
119
119
  - - "<"
120
120
  - !ruby/object:Gem::Version
121
- version: '8'
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: '6'
128
+ version: '7'
129
129
  - - "<"
130
130
  - !ruby/object:Gem::Version
131
- version: '8'
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-http-cache
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.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.2'
187
+ version: '2.0'
188
188
  - !ruby/object:Gem::Dependency
189
- name: faraday_middleware
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: '1.0'
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: '1.0'
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.4.19
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