From 820a4b78a0f536d67bec89f78ca0b28ce01bb802 Mon Sep 17 00:00:00 2001 From: Benjamin Curtis Date: Fri, 13 Feb 2026 07:06:55 -0800 Subject: [PATCH] Upgrade Faraday to v2, drop faraday_middleware faraday_middleware was absorbed into Faraday core in v2, so `f.response :json` continues to work without the extra gem. - Bump faraday dependency from ~> 1.0 to >= 2.0 - Remove faraday_middleware runtime dependency - Remove `require "faraday_middleware"` from connection.rb - Move `f.adapter :net_http` to end of Faraday block (required by v2) - Upgrade webmock ~> 3.0 (v2 lacks write_timeout support needed by Faraday 2) - Add base64 gem (removed from Ruby 3.4 default gems, needed by webmock) Co-Authored-By: Claude Opus 4.6 --- Gemfile | 3 ++- convertkit-ruby.gemspec | 3 +-- lib/convertkit/connection.rb | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index eacacf1..851387f 100644 --- a/Gemfile +++ b/Gemfile @@ -3,6 +3,7 @@ source 'https://rubygems.org' # Specify your gem's dependencies in convertkit-ruby.gemspec gemspec +gem 'base64' gem 'dotenv', '~> 2.1', '>= 2.1.1' -gem 'webmock', '~> 2.1' +gem 'webmock', '~> 3.0' gem 'vcr', '~> 3.0', '>= 3.0.3' diff --git a/convertkit-ruby.gemspec b/convertkit-ruby.gemspec index 820c518..ed71124 100644 --- a/convertkit-ruby.gemspec +++ b/convertkit-ruby.gemspec @@ -33,7 +33,6 @@ Gem::Specification.new do |spec| spec.add_development_dependency "rspec", "~> 3.0" spec.add_development_dependency "dotenv", "~> 2.1" - spec.add_runtime_dependency "faraday", "~> 1.0" - spec.add_runtime_dependency "faraday_middleware", "~> 1.0" + spec.add_runtime_dependency "faraday", ">= 2.0" spec.add_runtime_dependency "json", '>= 1.8.3' end diff --git a/lib/convertkit/connection.rb b/lib/convertkit/connection.rb index a3fa832..2a5ccb6 100644 --- a/lib/convertkit/connection.rb +++ b/lib/convertkit/connection.rb @@ -1,6 +1,5 @@ require "convertkit/errors" require "faraday" -require "faraday_middleware" require "json" module Convertkit @@ -36,7 +35,6 @@ def delete(*args, &blk) def faraday_connection(api_key, api_secret) Faraday.new do |f| f.url_prefix = "https://api.convertkit.com/v3/" - f.adapter :net_http f.options.timeout = Convertkit.configuration.timeout f.options.open_timeout = Convertkit.configuration.open_timeout @@ -49,6 +47,8 @@ def faraday_connection(api_key, api_secret) f.params['api_key'] = api_key if api_key f.response :json, content_type: /\bjson$/ + + f.adapter :net_http end end