From 27a1b642e500ff08ec1a66dba943c6ac200e89b7 Mon Sep 17 00:00:00 2001 From: Tim Rogers Date: Wed, 18 Jan 2023 14:58:13 +0000 Subject: [PATCH] Add support for Ruby 3.2.0 in Faraday v1.x (#1483) * Run tests against Ruby 3.2 * Declare `DependencyLoader#new` with `ruby2_keywords` to fix Ruby 3.2.0 When adding a middleware that receives keyword arguments in the constructor, the call from `DependencyLoader#new` fails because the method is not defined using `ruby2_keywords`. This adds the required `ruby2_keywords` declaration to `DependencyLoader#new`, fixing the tests and getting Faraday v1.x working with Ruby 3.2.0. Fixes #1479. Co-authored-by: Matt --- .github/workflows/ci.yml | 2 +- lib/faraday/dependency_loader.rb | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index be1382ad0..ca4382b68 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,7 +43,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ['2.4', '2.5', '2.6', '2.7', '3.0'] + ruby: ['2.4', '2.5', '2.6', '2.7', '3.0', '3.1', '3.2'] steps: - uses: actions/checkout@v1 diff --git a/lib/faraday/dependency_loader.rb b/lib/faraday/dependency_loader.rb index 57345646d..3f1708f8c 100644 --- a/lib/faraday/dependency_loader.rb +++ b/lib/faraday/dependency_loader.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require 'ruby2_keywords' + module Faraday # DependencyLoader helps Faraday adapters and middleware load dependencies. module DependencyLoader @@ -13,7 +15,7 @@ def dependency(lib = nil) self.load_error = e end - def new(*) + ruby2_keywords def new(*) unless loaded? raise "missing dependency for #{self}: #{load_error.message}" end