Skip to content

Commit d4c421c

Browse files
authored
Merge pull request #412 from Shopify/seb-faraday-2.x
Add support for faraday 2.x
2 parents 5d46961 + 1db00ea commit d4c421c

21 files changed

+117
-172
lines changed

.github/workflows/ruby.yml

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -22,27 +22,11 @@ jobs:
2222
strategy:
2323
fail-fast: false
2424
matrix:
25-
ruby: [2.3, 2.4, 2.5, 2.6, 2.7]
26-
rails: ["4.1", "4.2", "5.0", "5.2.3", "6.0"]
27-
exclude:
28-
- ruby: "2.4"
29-
rails: "4.1"
30-
- ruby: "2.4"
31-
rails: "4.2"
32-
- ruby: "2.4"
33-
rails: "6.0"
34-
- ruby: "2.5"
35-
rails: "4.1"
36-
- ruby: "2.5"
37-
rails: "4.2"
38-
- ruby: "2.6"
39-
rails: "4.1"
40-
- ruby: "2.6"
41-
rails: "4.2"
42-
- ruby: "2.7"
43-
rails: "4.1"
44-
- ruby: "2.7"
45-
rails: "4.2"
25+
ruby:
26+
- "3.0"
27+
- "3.1"
28+
- "3.2"
29+
- "3.3"
4630
steps:
4731
- uses: actions/checkout@v4
4832
- name: Set up Ruby
@@ -51,4 +35,6 @@ jobs:
5135
ruby-version: ${{ matrix.ruby }}
5236
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
5337
- name: Run tests
54-
run: bundle exec rake
38+
run: |
39+
bundle exec appraisal install
40+
bundle exec appraisal rake test

Appraisals

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
1-
appraise '3.2' do
2-
gem 'activesupport', '~> 3.2.22'
3-
gem 'minitest', '~> 5'
1+
appraise 'activesupport-6.0' do
2+
gem 'activesupport', '~> 6.0.0'
43
end
54

6-
appraise '4.0' do
7-
gem 'activesupport', '~> 4.0.13'
5+
appraise 'activesupport-6.1' do
6+
gem 'activesupport', '~> 6.1.0'
87
end
98

10-
appraise '4.1' do
11-
gem 'activesupport', '~> 4.1.14'
9+
appraise 'activesupport-7.0' do
10+
gem 'activesupport', '~> 7.0.0'
1211
end
1312

14-
appraise '4.2' do
15-
gem 'activesupport', '~> 4.2.5.1'
13+
appraise 'activesupport-7.1' do
14+
gem 'activesupport', '~> 7.1.0'
1615
end
1716

18-
appraise '5.0' do
19-
gem 'activesupport', '~> 5.0.0'
17+
appraise 'faraday-1.x' do
18+
gem 'faraday', '~> 1.10'
19+
gem 'faraday-gzip', '~> 1.0'
20+
end
21+
22+
appraise 'faraday-2.x' do
23+
gem 'faraday', '~> 2.0'
24+
gem 'faraday-gzip', '~> 2.0'
2025
end

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
## Unreleased
44

5-
5+
- [#412](https://github.com/JsonApiClient/json_api_client/pull/412)
6+
- Add support for faraday 2.x
7+
- Drop support for Ruby < 3.0 (EOL)
8+
- Drop support for activesupport < 6.0 (EOL)
9+
- Remove deprecated faraday_middleware and add faraday-gzip (from [#402](https://github.com/JsonApiClient/json_api_client/pull/402))
610
- [#400](https://github.com/JsonApiClient/json_api_client/pull/400) - Fix for multi-word custom endpoint and route format
711

812
## 1.22.0

Gemfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@ source "https://rubygems.org"
33
gemspec
44

55
gem 'rake'
6-
gem 'appraisal'
76

8-
gem "activesupport"
7+
gem "activesupport", ">= 4.0.13"
98
gem 'addressable', '~> 2.2'
109

1110
gem "codeclimate-test-reporter", group: :test, require: nil

gemfiles/3.2.gemfile

Lines changed: 0 additions & 16 deletions
This file was deleted.

gemfiles/4.0.gemfile

Lines changed: 0 additions & 15 deletions
This file was deleted.

gemfiles/4.1.gemfile

Lines changed: 0 additions & 15 deletions
This file was deleted.

gemfiles/4.2.gemfile

Lines changed: 0 additions & 15 deletions
This file was deleted.

gemfiles/5.0.gemfile

Lines changed: 0 additions & 15 deletions
This file was deleted.

gemfiles/5.2.3.gemfile

Lines changed: 0 additions & 15 deletions
This file was deleted.

gemfiles/6.0.gemfile renamed to gemfiles/activesupport_6.0.gemfile

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33
source "https://rubygems.org"
44

55
gem "rake"
6-
gem "appraisal"
76
gem "activesupport", "~> 6.0.0"
87
gem "addressable", "~> 2.2"
9-
gem "codeclimate-test-reporter", :group => :test, :require => nil
8+
gem "codeclimate-test-reporter", group: :test, require: nil
109

1110
group :development, :test do
12-
gem "byebug", :platforms => [:mri_25]
11+
gem "byebug", "~> 10.0", platforms: [:mri_20, :mri_21, :mri_22]
1312
end
1413

15-
gemspec :path => "../"
14+
gemspec path: "../"

gemfiles/activesupport_6.1.gemfile

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# This file was generated by Appraisal
2+
3+
source "https://rubygems.org"
4+
5+
gem "rake"
6+
gem "activesupport", "~> 6.1.0"
7+
gem "addressable", "~> 2.2"
8+
gem "codeclimate-test-reporter", group: :test, require: nil
9+
10+
group :development, :test do
11+
gem "byebug", "~> 10.0", platforms: [:mri_20, :mri_21, :mri_22]
12+
end
13+
14+
gemspec path: "../"

gemfiles/activesupport_7.0.gemfile

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# This file was generated by Appraisal
2+
3+
source "https://rubygems.org"
4+
5+
gem "rake"
6+
gem "activesupport", "~> 7.0.0"
7+
gem "addressable", "~> 2.2"
8+
gem "codeclimate-test-reporter", group: :test, require: nil
9+
10+
group :development, :test do
11+
gem "byebug", "~> 10.0", platforms: [:mri_20, :mri_21, :mri_22]
12+
end
13+
14+
gemspec path: "../"

gemfiles/activesupport_7.1.gemfile

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# This file was generated by Appraisal
2+
3+
source "https://rubygems.org"
4+
5+
gem "rake"
6+
gem "activesupport", "~> 7.1.0"
7+
gem "addressable", "~> 2.2"
8+
gem "codeclimate-test-reporter", group: :test, require: nil
9+
10+
group :development, :test do
11+
gem "byebug", "~> 10.0", platforms: [:mri_20, :mri_21, :mri_22]
12+
end
13+
14+
gemspec path: "../"

gemfiles/faraday_1.x.gemfile

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# This file was generated by Appraisal
2+
3+
source "https://rubygems.org"
4+
5+
gem "rake"
6+
gem "activesupport", ">= 4.0.13"
7+
gem "addressable", "~> 2.2"
8+
gem "codeclimate-test-reporter", group: :test, require: nil
9+
gem "faraday", "~> 1.10"
10+
gem "faraday-gzip", "~> 1.0"
11+
12+
group :development, :test do
13+
gem "byebug", "~> 10.0", platforms: [:mri_20, :mri_21, :mri_22]
14+
end
15+
16+
gemspec path: "../"

gemfiles/faraday_2.x.gemfile

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# This file was generated by Appraisal
2+
3+
source "https://rubygems.org"
4+
5+
gem "rake"
6+
gem "activesupport", ">= 4.0.13"
7+
gem "addressable", "~> 2.2"
8+
gem "codeclimate-test-reporter", group: :test, require: nil
9+
gem "faraday", "~> 2.0"
10+
gem "faraday-gzip", "~> 2.0"
11+
12+
group :development, :test do
13+
gem "byebug", "~> 10.0", platforms: [:mri_20, :mri_21, :mri_22]
14+
end
15+
16+
gemspec path: "../"

json_api_client.gemspec

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,16 @@ Gem::Specification.new do |s|
1111
s.description = 'Build client libraries compliant with specification defined by jsonapi.org'
1212
s.summary = 'Build client libraries compliant with specification defined by jsonapi.org'
1313

14-
s.add_dependency "activesupport", '>= 3.2.0'
15-
s.add_dependency "faraday", '>= 0.15.2', '< 2.0'
16-
s.add_dependency "faraday_middleware", '>= 0.9.0', '< 2.0'
14+
s.add_dependency "activesupport", '>= 6.0.0'
15+
s.add_dependency "faraday", '>= 1.10', '< 3.0'
16+
s.add_dependency "faraday-gzip", '>= 1.0', '< 3.0'
1717
s.add_dependency "addressable", '~> 2.2'
18-
s.add_dependency "activemodel", '>= 3.2.0'
18+
s.add_dependency "activemodel", '>= 6.0.0'
1919
s.add_dependency "rack", '>= 0.2'
2020

2121
s.add_development_dependency "webmock", '~> 3.5.1'
2222
s.add_development_dependency "mocha"
23+
s.add_development_dependency "appraisal"
2324

2425
s.license = "MIT"
2526

lib/json_api_client.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
require 'faraday'
2-
require 'faraday_middleware'
2+
require 'faraday/gzip'
33
require 'json'
44
require 'addressable/uri'
55
require 'json_api_client/formatter'

lib/json_api_client/connection.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ def initialize(options = {})
1313
builder.request :json
1414
builder.use Middleware::JsonRequest
1515
builder.use Middleware::Status, status_middleware_options
16-
builder.use Middleware::ParseJson
17-
builder.use ::FaradayMiddleware::Gzip
16+
builder.response :json
17+
builder.use ::Faraday::Gzip::Middleware
1818
builder.adapter(*adapter_options)
1919
end
2020
yield(self) if block_given?
@@ -24,7 +24,7 @@ def initialize(options = {})
2424
# inserted middleware will run after json parsed
2525
def use(middleware, *args, &block)
2626
return if faraday.builder.locked?
27-
faraday.builder.insert_before(Middleware::ParseJson, middleware, *args, &block)
27+
faraday.builder.insert_before(::Faraday::Response::Json, middleware, *args, &block)
2828
end
2929

3030
def delete(middleware)

lib/json_api_client/middleware.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
module JsonApiClient
22
module Middleware
33
autoload :JsonRequest, 'json_api_client/middleware/json_request'
4-
autoload :ParseJson, 'json_api_client/middleware/parse_json'
54
autoload :Status, 'json_api_client/middleware/status'
65
end
7-
end
6+
end

lib/json_api_client/middleware/parse_json.rb

Lines changed: 0 additions & 31 deletions
This file was deleted.

0 commit comments

Comments
 (0)