From a51965ccdac1727cc6ae281f21da27160f5fceab Mon Sep 17 00:00:00 2001 From: johnnyshields Date: Sun, 5 Mar 2023 22:36:26 +0900 Subject: [PATCH] Fix broken spec in Mongoid 8.1 --- lib/mongoid/config.rb | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/lib/mongoid/config.rb b/lib/mongoid/config.rb index f66fe98c6a..4e24a42fdf 100644 --- a/lib/mongoid/config.rb +++ b/lib/mongoid/config.rb @@ -412,10 +412,25 @@ module DeprecatedOptions object_id_as_json_oid overwrite_chained_operators ] - OPTIONS.each do |option| - define_method(:"#{option}=") do |value| - Mongoid::Warnings.send(:"warn_#{option}_deprecated") - super(value) + if RUBY_VERSION < '3.0' + def self.prepended(klass) + klass.class_eval do + OPTIONS.each do |option| + alias_method :"#{option}_without_deprecation=", :"#{option}=" + + define_method(:"#{option}=") do |value| + Mongoid::Warnings.send(:"warn_#{option}_deprecated") + send(:"#{option}_without_deprecation=", value) + end + end + end + end + else + OPTIONS.each do |option| + define_method(:"#{option}=") do |value| + Mongoid::Warnings.send(:"warn_#{option}_deprecated") + super(value) + end end end end