From ffac0cf2f48ccd116abba4db2835a069c54d988d Mon Sep 17 00:00:00 2001 From: Eike Send Date: Tue, 4 Jun 2024 12:19:12 +0200 Subject: [PATCH 1/8] Update faraday to 2.9, remove deprecated faraday_middleware gem --- Gemfile.lock | 36 ++++++------------------------- ioki-ruby.gemspec | 1 - lib/ioki/apis/endpoints/create.rb | 2 +- lib/ioki/apis/endpoints/delete.rb | 2 +- lib/ioki/apis/endpoints/update.rb | 2 +- lib/ioki/http_adapter.rb | 1 - spec/ioki/client_spec.rb | 14 ++---------- 7 files changed, 12 insertions(+), 46 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 6243a77b..772821b1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -5,7 +5,6 @@ PATH activemodel (>= 6.0.0) activesupport (>= 6.0.0) faraday (>= 1.8, < 3.0) - faraday_middleware (~> 1.2) oauth2 (>= 2.0.2, < 3) openssl (>= 2.2.0) @@ -47,31 +46,10 @@ GEM diff-lcs (1.5.1) docile (1.4.0) drb (2.2.1) - faraday (1.10.4) - faraday-em_http (~> 1.0) - faraday-em_synchrony (~> 1.0) - faraday-excon (~> 1.1) - faraday-httpclient (~> 1.0) - faraday-multipart (~> 1.0) - faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.0) - faraday-patron (~> 1.0) - faraday-rack (~> 1.0) - faraday-retry (~> 1.0) - ruby2_keywords (>= 0.0.4) - faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) - faraday-excon (1.1.0) - faraday-httpclient (1.0.1) - faraday-multipart (1.0.4) - multipart-post (~> 2) - faraday-net_http (1.0.2) - faraday-net_http_persistent (1.2.0) - faraday-patron (1.0.0) - faraday-rack (1.0.0) - faraday-retry (1.0.3) - faraday_middleware (1.2.0) - faraday (~> 1.0) + faraday (2.9.0) + faraday-net_http (>= 2.0, < 3.2) + faraday-net_http (3.1.0) + net-http ffi (1.15.5) formatador (1.1.0) guard (2.18.0) @@ -114,9 +92,10 @@ GEM mini_mime (1.1.5) minitest (5.25.1) multi_xml (0.6.0) - multipart-post (2.4.1) mutex_m (0.2.0) nenv (0.3.0) + net-http (0.4.1) + uri net-imap (0.4.2) date net-protocol @@ -190,8 +169,6 @@ GEM rubocop-rspec (3.2.0) rubocop (~> 1.61) ruby-progressbar (1.13.0) - ruby2_keywords (0.0.5) - securerandom (0.3.1) shellany (0.0.1) simplecov (0.22.0) docile (~> 1.1) @@ -208,6 +185,7 @@ GEM tzinfo (2.0.6) concurrent-ruby (~> 1.0) unicode-display_width (2.6.0) + uri (0.13.0) vcr (6.3.1) base64 version_gem (1.1.3) diff --git a/ioki-ruby.gemspec b/ioki-ruby.gemspec index 921bce15..300f2a05 100644 --- a/ioki-ruby.gemspec +++ b/ioki-ruby.gemspec @@ -34,7 +34,6 @@ Gem::Specification.new do |spec| spec.add_dependency 'activemodel', '>= 6.0.0' spec.add_dependency 'activesupport', '>= 6.0.0' spec.add_dependency 'faraday', '>= 1.8', '< 3.0' - spec.add_dependency 'faraday_middleware', '~> 1.2' spec.add_dependency 'oauth2', '>= 2.0.2', '< 3' spec.add_dependency 'openssl', '>= 2.2.0' end diff --git a/lib/ioki/apis/endpoints/create.rb b/lib/ioki/apis/endpoints/create.rb index bbd67dd6..a8a0e68f 100644 --- a/lib/ioki/apis/endpoints/create.rb +++ b/lib/ioki/apis/endpoints/create.rb @@ -40,7 +40,7 @@ def call(client, model, args = [], options = {}) params: options[:params] ) - return if parsed_response.nil? + return if parsed_response.empty? model_class .new(parsed_response['data'], response.headers[:etag], show_deprecation_warnings: false) diff --git a/lib/ioki/apis/endpoints/delete.rb b/lib/ioki/apis/endpoints/delete.rb index d7fc4f3a..0595fb39 100644 --- a/lib/ioki/apis/endpoints/delete.rb +++ b/lib/ioki/apis/endpoints/delete.rb @@ -31,7 +31,7 @@ def call(client, args = [], options = {}) params: options[:params] ) - return if parsed_response.nil? + return if parsed_response.empty? model_class .new(parsed_response['data'], nil, show_deprecation_warnings: false) diff --git a/lib/ioki/apis/endpoints/update.rb b/lib/ioki/apis/endpoints/update.rb index c248875b..435b4ce2 100644 --- a/lib/ioki/apis/endpoints/update.rb +++ b/lib/ioki/apis/endpoints/update.rb @@ -39,7 +39,7 @@ def call(client, model, args = [], options = {}) params: options[:params] ) - return if parsed_response.nil? + return if parsed_response.empty? model_class .new(parsed_response['data'], response.headers[:etag], show_deprecation_warnings: false) diff --git a/lib/ioki/http_adapter.rb b/lib/ioki/http_adapter.rb index e2955881..d179453c 100644 --- a/lib/ioki/http_adapter.rb +++ b/lib/ioki/http_adapter.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true require 'faraday' -require 'faraday_middleware' module Ioki class HttpAdapter diff --git a/spec/ioki/client_spec.rb b/spec/ioki/client_spec.rb index 94dab783..9513c59d 100644 --- a/spec/ioki/client_spec.rb +++ b/spec/ioki/client_spec.rb @@ -197,18 +197,8 @@ class NullApi [200, {}, ''] end - it 'returns nil' do - expect(client_response[0]).to be_nil - end - end - - context 'when response body is somewhat malformed' do - let(:response) do - [200, {}, '{ look"mum" & $ : borken_json '] - end - - it 'raise a proper error' do - expect { client_response }.to raise_error(Faraday::ParsingError) + it 'returns empty string' do + expect(client_response[0]).to be_empty end end end From d74932ee82fbf38ff4641f9fb41d44ec11434472 Mon Sep 17 00:00:00 2001 From: Eike Send Date: Tue, 4 Jun 2024 12:28:11 +0200 Subject: [PATCH 2/8] use Support#blank? method to determine if parsed_response is empty or nil --- lib/ioki/apis/endpoints/create.rb | 2 +- lib/ioki/apis/endpoints/delete.rb | 2 +- lib/ioki/apis/endpoints/update.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/ioki/apis/endpoints/create.rb b/lib/ioki/apis/endpoints/create.rb index a8a0e68f..7e2eed30 100644 --- a/lib/ioki/apis/endpoints/create.rb +++ b/lib/ioki/apis/endpoints/create.rb @@ -40,7 +40,7 @@ def call(client, model, args = [], options = {}) params: options[:params] ) - return if parsed_response.empty? + return if Support.blank?(parsed_response) model_class .new(parsed_response['data'], response.headers[:etag], show_deprecation_warnings: false) diff --git a/lib/ioki/apis/endpoints/delete.rb b/lib/ioki/apis/endpoints/delete.rb index 0595fb39..f54eff75 100644 --- a/lib/ioki/apis/endpoints/delete.rb +++ b/lib/ioki/apis/endpoints/delete.rb @@ -31,7 +31,7 @@ def call(client, args = [], options = {}) params: options[:params] ) - return if parsed_response.empty? + return if Support.blank?(parsed_response) model_class .new(parsed_response['data'], nil, show_deprecation_warnings: false) diff --git a/lib/ioki/apis/endpoints/update.rb b/lib/ioki/apis/endpoints/update.rb index 435b4ce2..b1a8c6e8 100644 --- a/lib/ioki/apis/endpoints/update.rb +++ b/lib/ioki/apis/endpoints/update.rb @@ -39,7 +39,7 @@ def call(client, model, args = [], options = {}) params: options[:params] ) - return if parsed_response.empty? + return if Support.blank?(parsed_response) model_class .new(parsed_response['data'], response.headers[:etag], show_deprecation_warnings: false) From 91fa420231018da992d9a6eb32774605944b0db3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serge=20H=C3=A4nni?= Date: Tue, 4 Feb 2025 16:56:25 +0100 Subject: [PATCH 3/8] Add `faraday-retry` explicitly It's no longer bundled since Faraday 2. --- Gemfile.lock | 18 +++++++++++------- ioki-ruby.gemspec | 1 + lib/ioki/http_adapter.rb | 1 + 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 772821b1..2ae0f483 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -5,6 +5,7 @@ PATH activemodel (>= 6.0.0) activesupport (>= 6.0.0) faraday (>= 1.8, < 3.0) + faraday-retry (~> 2.2) oauth2 (>= 2.0.2, < 3) openssl (>= 2.2.0) @@ -31,11 +32,11 @@ GEM ast (2.4.2) awesome_print (1.9.2) base64 (0.2.0) - benchmark (0.3.0) + benchmark (0.4.0) bigdecimal (3.1.8) coderay (1.1.3) - concurrent-ruby (1.3.4) - connection_pool (2.4.1) + concurrent-ruby (1.3.5) + connection_pool (2.5.0) crack (1.0.0) bigdecimal rexml @@ -50,6 +51,8 @@ GEM faraday-net_http (>= 2.0, < 3.2) faraday-net_http (3.1.0) net-http + faraday-retry (2.2.1) + faraday (~> 2.0) ffi (1.15.5) formatador (1.1.0) guard (2.18.0) @@ -68,7 +71,7 @@ GEM rspec (>= 2.99.0, < 4.0) hashdiff (1.1.1) hashie (5.0.0) - i18n (1.14.6) + i18n (1.14.7) concurrent-ruby (~> 1.0) io-console (0.7.2) irb (1.12.0) @@ -81,7 +84,7 @@ GEM listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - logger (1.6.1) + logger (1.6.5) lumberjack (1.2.8) mail (2.8.1) mini_mime (>= 0.1.1) @@ -90,9 +93,9 @@ GEM net-smtp method_source (1.0.0) mini_mime (1.1.5) - minitest (5.25.1) + minitest (5.25.4) multi_xml (0.6.0) - mutex_m (0.2.0) + mutex_m (0.3.0) nenv (0.3.0) net-http (0.4.1) uri @@ -169,6 +172,7 @@ GEM rubocop-rspec (3.2.0) rubocop (~> 1.61) ruby-progressbar (1.13.0) + securerandom (0.4.1) shellany (0.0.1) simplecov (0.22.0) docile (~> 1.1) diff --git a/ioki-ruby.gemspec b/ioki-ruby.gemspec index 300f2a05..ef38ed98 100644 --- a/ioki-ruby.gemspec +++ b/ioki-ruby.gemspec @@ -34,6 +34,7 @@ Gem::Specification.new do |spec| spec.add_dependency 'activemodel', '>= 6.0.0' spec.add_dependency 'activesupport', '>= 6.0.0' spec.add_dependency 'faraday', '>= 1.8', '< 3.0' + spec.add_dependency 'faraday-retry', '~> 2.2' spec.add_dependency 'oauth2', '>= 2.0.2', '< 3' spec.add_dependency 'openssl', '>= 2.2.0' end diff --git a/lib/ioki/http_adapter.rb b/lib/ioki/http_adapter.rb index d179453c..72b8ca9f 100644 --- a/lib/ioki/http_adapter.rb +++ b/lib/ioki/http_adapter.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require 'faraday' +require 'faraday/retry' module Ioki class HttpAdapter From e2bb0f1766d9a912ecc2799b11fd4e2135649ad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serge=20H=C3=A4nni?= Date: Tue, 4 Feb 2025 17:30:32 +0100 Subject: [PATCH 4/8] Add spec for invalid JSON response --- spec/ioki/client_spec.rb | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/spec/ioki/client_spec.rb b/spec/ioki/client_spec.rb index 9513c59d..1d158488 100644 --- a/spec/ioki/client_spec.rb +++ b/spec/ioki/client_spec.rb @@ -3,7 +3,14 @@ require 'spec_helper' class NullApi - ENDPOINTS = [].freeze + ENDPOINTS = + [ + Ioki::Endpoints::Index.new( + :ping, + base_path: ['driver'], + model_class: Ioki::Model::Base + ) + ].freeze end RSpec.describe Ioki::Client do @@ -243,4 +250,25 @@ class NullApi end end end + + context 'with endpoints' do + let(:client) { described_class.new(Ioki::Configuration.new, NullApi) } + + context 'with invalid JSON response' do + let!(:ping_request) do + stub_request(:get, 'https://app.io.ki/api/driver/ping') + .to_return( + status: 200, + body: '{ look"mum" & $ : borken_json ', + headers: { content_type: 'application/json' } + ) + end + + it 'raises a parsing error' do + expect do + client.ping + end.to raise_error(Faraday::ParsingError) + end + end + end end From 50f1036aa2dd03314d1b094bb0d378032ccebcdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serge=20H=C3=A4nni?= Date: Tue, 4 Feb 2025 18:00:02 +0100 Subject: [PATCH 5/8] Add spec to ensure that an empty response returns a model --- spec/ioki/client_spec.rb | 44 ++++++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/spec/ioki/client_spec.rb b/spec/ioki/client_spec.rb index 1d158488..d982395b 100644 --- a/spec/ioki/client_spec.rb +++ b/spec/ioki/client_spec.rb @@ -2,17 +2,6 @@ require 'spec_helper' -class NullApi - ENDPOINTS = - [ - Ioki::Endpoints::Index.new( - :ping, - base_path: ['driver'], - model_class: Ioki::Model::Base - ) - ].freeze -end - RSpec.describe Ioki::Client do let(:config) { Ioki::Configuration.new http_adapter: http_adapter } let(:client) { described_class.new(config, NullApi) } @@ -25,6 +14,25 @@ class NullApi end let(:stubs) { Faraday::Adapter::Test::Stubs.new } + before do + stub_const('DummyModel', Class.new(Ioki::Model::Base) do + attribute :id, type: :string, on: :read + end) + stub_const('NullApi', Class.new) + stub_const('NullApi::ENDPOINTS', [ + Ioki::Endpoints::Index.new( + :ping, + base_path: ['driver'], + model_class: DummyModel + ), + Ioki::Endpoints::Show.new( + :pong, + base_path: ['driver'], + model_class: DummyModel + ) + ].freeze) + end + describe 'constants' do it { expect(described_class::VALID_API_NAMESPACES).to eq([:driver, :operator, :passenger, :platform]) } end @@ -270,5 +278,19 @@ class NullApi end.to raise_error(Faraday::ParsingError) end end + + context 'with empty response' do + let!(:pong_request) do + stub_request(:get, 'https://app.io.ki/api/driver/pongs') + .to_return_json( + status: 200, + body: {} + ) + end + + it 'returns an empty response' do + expect(client.pong(DummyModel.new(1))).to be_an_instance_of(DummyModel) + end + end end end From 5aaad00efa4922f7d00b3a96286f01572fd6ae67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serge=20H=C3=A4nni?= Date: Tue, 4 Feb 2025 18:31:55 +0100 Subject: [PATCH 6/8] Change to ensure that behavior of returned models is not changed The current behavior depends on the response: - response `""`: `nil` as model - response `nil`: `nil` as model - response `{}`: empty model --- lib/ioki/apis/endpoints/create.rb | 2 +- lib/ioki/apis/endpoints/delete.rb | 2 +- lib/ioki/apis/endpoints/index.rb | 2 +- lib/ioki/apis/endpoints/update.rb | 2 +- spec/ioki/client_spec.rb | 102 ++++++++++++++++++++++++++---- 5 files changed, 92 insertions(+), 18 deletions(-) diff --git a/lib/ioki/apis/endpoints/create.rb b/lib/ioki/apis/endpoints/create.rb index 7e2eed30..bbd67dd6 100644 --- a/lib/ioki/apis/endpoints/create.rb +++ b/lib/ioki/apis/endpoints/create.rb @@ -40,7 +40,7 @@ def call(client, model, args = [], options = {}) params: options[:params] ) - return if Support.blank?(parsed_response) + return if parsed_response.nil? model_class .new(parsed_response['data'], response.headers[:etag], show_deprecation_warnings: false) diff --git a/lib/ioki/apis/endpoints/delete.rb b/lib/ioki/apis/endpoints/delete.rb index f54eff75..d7fc4f3a 100644 --- a/lib/ioki/apis/endpoints/delete.rb +++ b/lib/ioki/apis/endpoints/delete.rb @@ -31,7 +31,7 @@ def call(client, args = [], options = {}) params: options[:params] ) - return if Support.blank?(parsed_response) + return if parsed_response.nil? model_class .new(parsed_response['data'], nil, show_deprecation_warnings: false) diff --git a/lib/ioki/apis/endpoints/index.rb b/lib/ioki/apis/endpoints/index.rb index 586a7605..42bad245 100644 --- a/lib/ioki/apis/endpoints/index.rb +++ b/lib/ioki/apis/endpoints/index.rb @@ -75,7 +75,7 @@ def send_request(client, args, options) ) [ - parsed_response['data'].map do |attr| + Support.blank?(parsed_response) ? [] : parsed_response['data'].map do |attr| model_class .new(attr, nil, show_deprecation_warnings: false) .tap(&:clear_changes_information) diff --git a/lib/ioki/apis/endpoints/update.rb b/lib/ioki/apis/endpoints/update.rb index b1a8c6e8..c248875b 100644 --- a/lib/ioki/apis/endpoints/update.rb +++ b/lib/ioki/apis/endpoints/update.rb @@ -39,7 +39,7 @@ def call(client, model, args = [], options = {}) params: options[:params] ) - return if Support.blank?(parsed_response) + return if parsed_response.nil? model_class .new(parsed_response['data'], response.headers[:etag], show_deprecation_warnings: false) diff --git a/spec/ioki/client_spec.rb b/spec/ioki/client_spec.rb index d982395b..3f5babee 100644 --- a/spec/ioki/client_spec.rb +++ b/spec/ioki/client_spec.rb @@ -20,13 +20,8 @@ end) stub_const('NullApi', Class.new) stub_const('NullApi::ENDPOINTS', [ - Ioki::Endpoints::Index.new( - :ping, - base_path: ['driver'], - model_class: DummyModel - ), - Ioki::Endpoints::Show.new( - :pong, + Ioki::Endpoints.crud_endpoints( + :vehicle, base_path: ['driver'], model_class: DummyModel ) @@ -263,8 +258,8 @@ let(:client) { described_class.new(Ioki::Configuration.new, NullApi) } context 'with invalid JSON response' do - let!(:ping_request) do - stub_request(:get, 'https://app.io.ki/api/driver/ping') + let!(:vehicles_request) do + stub_request(:get, 'https://app.io.ki/api/driver/vehicles') .to_return( status: 200, body: '{ look"mum" & $ : borken_json ', @@ -274,22 +269,101 @@ it 'raises a parsing error' do expect do - client.ping + client.vehicles end.to raise_error(Faraday::ParsingError) end end context 'with empty response' do - let!(:pong_request) do - stub_request(:get, 'https://app.io.ki/api/driver/pongs') + let!(:get_vehicles_request) do + stub_request(:get, 'https://app.io.ki/api/driver/vehicles') + .to_return_json( + status: 200, + body: {} + ) + end + let!(:get_vehicle_request) do + stub_request(:get, 'https://app.io.ki/api/driver/vehicles/1') + .to_return_json( + status: 200, + body: {} + ) + end + let!(:create_vehicle_request) do + stub_request(:post, 'https://app.io.ki/api/driver/vehicles') .to_return_json( status: 200, body: {} ) end + let!(:update_vehicle_request) do + stub_request(:patch, 'https://app.io.ki/api/driver/vehicles/1') + .to_return_json( + status: 200, + body: {} + ) + end + let!(:delete_vehicle_request) do + stub_request(:delete, 'https://app.io.ki/api/driver/vehicles/1') + .to_return_json( + status: 200, + body: {} + ) + end + + it 'returns empty models for index requests' do + expect(client.vehicles).to eq [] + expect(get_vehicles_request).to have_been_requested.once + end + + it 'returns empty models for get requests' do + expect(client.vehicle(DummyModel.new(id: 1))).to be_an_instance_of(DummyModel) + expect(get_vehicle_request).to have_been_requested.once + end + + it 'returns empty models for create requests' do + expect(client.create_vehicle(DummyModel.new(id: 1))).to be_an_instance_of(DummyModel) + expect(create_vehicle_request).to have_been_requested.once + end + + it 'returns empty models for update requests' do + expect(client.update_vehicle(DummyModel.new(id: 1))).to be_an_instance_of(DummyModel) + expect(update_vehicle_request).to have_been_requested.once + end + + it 'returns empty models for delete requests' do + expect(client.delete_vehicle(DummyModel.new(id: 1))).to be_an_instance_of(DummyModel) + expect(delete_vehicle_request).to have_been_requested.once + end + end + + context 'with an empty string response' do + let!(:update_vehicle_request) do + stub_request(:patch, 'https://app.io.ki/api/driver/vehicles/1') + .to_return_json( + status: 200, + body: '' + ) + end + + it 'returns nil for update requests' do + expect(client.update_vehicle(DummyModel.new(id: 1))).to be_nil + expect(update_vehicle_request).to have_been_requested.once + end + end + + context 'with a nil response' do + let!(:update_vehicle_request) do + stub_request(:patch, 'https://app.io.ki/api/driver/vehicles/1') + .to_return_json( + status: 200, + body: nil + ) + end - it 'returns an empty response' do - expect(client.pong(DummyModel.new(1))).to be_an_instance_of(DummyModel) + it 'returns nil for update requests' do + expect(client.update_vehicle(DummyModel.new(id: 1))).to be_nil + expect(update_vehicle_request).to have_been_requested.once end end end From 71136258d521f42bf209b9ed91034f67a4f77af2 Mon Sep 17 00:00:00 2001 From: Eike Send Date: Tue, 11 Feb 2025 13:46:08 +0100 Subject: [PATCH 7/8] Updates ffi gem --- Gemfile.lock | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 512a4488..5eaa7c11 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -53,7 +53,7 @@ GEM net-http faraday-retry (2.2.1) faraday (~> 2.0) - ffi (1.15.5) + ffi (1.17.1) formatador (1.1.0) guard (2.18.0) formatador (>= 0.2.4) @@ -96,7 +96,6 @@ GEM mini_mime (1.1.5) minitest (5.25.4) multi_xml (0.6.0) - multipart-post (2.4.1) mutex_m (0.3.0) nenv (0.3.0) net-http (0.4.1) @@ -178,7 +177,6 @@ GEM rubocop-rspec (3.4.0) rubocop (~> 1.61) ruby-progressbar (1.13.0) - ruby2_keywords (0.0.5) securerandom (0.4.1) shellany (0.0.1) simplecov (0.22.0) @@ -197,8 +195,8 @@ GEM concurrent-ruby (~> 1.0) unicode-display_width (3.1.4) unicode-emoji (~> 4.0, >= 4.0.4) - uri (0.13.0) unicode-emoji (4.0.4) + uri (0.13.0) vcr (6.3.1) base64 version_gem (1.1.3) From 5e1c3f34a3d9fe7e52c52bcf6085026d9bb31eb3 Mon Sep 17 00:00:00 2001 From: Eike Send Date: Tue, 11 Feb 2025 13:47:58 +0100 Subject: [PATCH 8/8] Updates Faraday yet again --- Gemfile.lock | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5eaa7c11..3ee6b7c0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -47,10 +47,12 @@ GEM diff-lcs (1.5.1) docile (1.4.0) drb (2.2.1) - faraday (2.9.0) - faraday-net_http (>= 2.0, < 3.2) - faraday-net_http (3.1.0) - net-http + faraday (2.12.2) + faraday-net_http (>= 2.0, < 3.5) + json + logger + faraday-net_http (3.4.0) + net-http (>= 0.5.0) faraday-retry (2.2.1) faraday (~> 2.0) ffi (1.17.1) @@ -98,7 +100,7 @@ GEM multi_xml (0.6.0) mutex_m (0.3.0) nenv (0.3.0) - net-http (0.4.1) + net-http (0.6.0) uri net-imap (0.4.19) date @@ -196,7 +198,7 @@ GEM unicode-display_width (3.1.4) unicode-emoji (~> 4.0, >= 4.0.4) unicode-emoji (4.0.4) - uri (0.13.0) + uri (1.0.2) vcr (6.3.1) base64 version_gem (1.1.3)