From 86298d0c45fab60189e89a1be260a066951ea199 Mon Sep 17 00:00:00 2001 From: Matt Brictson Date: Wed, 7 Jun 2023 01:46:49 -0700 Subject: [PATCH] Fix "method redefined" warnings introduced in Faraday 2.7.5 (#1506) * Print Ruby warnings when running specs * Fix 'method redefined' warnings --- Rakefile | 4 +++- lib/faraday/options.rb | 1 + lib/faraday/request.rb | 2 ++ lib/faraday/request/instrumentation.rb | 2 ++ 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Rakefile b/Rakefile index cffdd09b..4339ceee 100644 --- a/Rakefile +++ b/Rakefile @@ -2,6 +2,8 @@ require 'rspec/core/rake_task' -RSpec::Core::RakeTask.new(:spec) +RSpec::Core::RakeTask.new(:spec) do |task| + task.ruby_opts = %w[-W] +end task default: :spec diff --git a/lib/faraday/options.rb b/lib/faraday/options.rb index d6d8353a..417f2d63 100644 --- a/lib/faraday/options.rb +++ b/lib/faraday/options.rb @@ -174,6 +174,7 @@ module Faraday memoized_attributes[key.to_sym] = block class_eval <<-RUBY, __FILE__, __LINE__ + 1 + remove_method(key) if method_defined?(key, false) def #{key}() self[:#{key}]; end RUBY end diff --git a/lib/faraday/request.rb b/lib/faraday/request.rb index a8255cda..8c5bf952 100644 --- a/lib/faraday/request.rb +++ b/lib/faraday/request.rb @@ -42,6 +42,7 @@ module Faraday end end + remove_method :params= # Replace params, preserving the existing hash type. # # @param hash [Hash] new params @@ -53,6 +54,7 @@ module Faraday end end + remove_method :headers= # Replace request headers, preserving the existing hash type. # # @param hash [Hash] new headers diff --git a/lib/faraday/request/instrumentation.rb b/lib/faraday/request/instrumentation.rb index 401f0e1f..a5020598 100644 --- a/lib/faraday/request/instrumentation.rb +++ b/lib/faraday/request/instrumentation.rb @@ -6,11 +6,13 @@ module Faraday class Instrumentation < Faraday::Middleware # Options class used in Request::Instrumentation class. Options = Faraday::Options.new(:name, :instrumenter) do + remove_method :name # @return [String] def name self[:name] ||= 'request.faraday' end + remove_method :instrumenter # @return [Class] def instrumenter self[:instrumenter] ||= ActiveSupport::Notifications