diff --git a/rspec-mocks-pr282-skip-mock-for-ruby4_0-inspect.patch b/rspec-mocks-pr282-skip-mock-for-ruby4_0-inspect.patch new file mode 100644 index 0000000..d1c309b --- /dev/null +++ b/rspec-mocks-pr282-skip-mock-for-ruby4_0-inspect.patch @@ -0,0 +1,35 @@ +From 939c4799993b7ff7e524fac701ae6490772ca6de Mon Sep 17 00:00:00 2001 +From: Jon Rowe +Date: Mon, 1 Dec 2025 14:08:25 +0000 +Subject: [PATCH] Skip mock for calls to `:respond_to?` from `Kernel#inspect` + +--- + rspec-mocks/lib/rspec/mocks/method_double.rb | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +diff --git a/rspec-mocks/lib/rspec/mocks/method_double.rb b/rspec-mocks/lib/rspec/mocks/method_double.rb +index e2edb1e21..3276c49a5 100644 +--- a/rspec-mocks/lib/rspec/mocks/method_double.rb ++++ b/rspec-mocks/lib/rspec/mocks/method_double.rb +@@ -68,8 +68,19 @@ def define_proxy_method + + save_original_implementation_callable! + definition_target.class_exec(self, method_name, @original_visibility || visibility) do |method_double, method_name, visibility| +- define_method(method_name) do |*args, &block| +- method_double.proxy_method_invoked(self, *args, &block) ++ if RUBY_VERSION.to_f > 3 && method_name == :respond_to? ++ define_method(method_name) do |*args, &block| ++ # This is a work around for a respond_to? check within kernel_inspect ++ if caller_locations[0].label == "Kernel#inspect" ++ super(*args, &block) ++ else ++ method_double.proxy_method_invoked(self, *args, &block) ++ end ++ end ++ else ++ define_method(method_name) do |*args, &block| ++ method_double.proxy_method_invoked(self, *args, &block) ++ end + end + # This can't be `if respond_to?(:ruby2_keywords, true)`, + # see https://github.com/rspec/rspec-mocks/pull/1385#issuecomment-755340298 diff --git a/rubygem-rspec-mocks.spec b/rubygem-rspec-mocks.spec index 3f1ffe2..2a2f1da 100644 --- a/rubygem-rspec-mocks.spec +++ b/rubygem-rspec-mocks.spec @@ -1,9 +1,9 @@ -%global majorver 3.13.6 +%global majorver 3.13.7 #%%global preminorver .rc6 %global rpmminorver .%(echo %preminorver | sed -e 's|^\\.\\.*||') %global fullver %{majorver}%{?preminorver} -%global baserelease 1 +%global baserelease 2 %global gem_name rspec-mocks @@ -23,6 +23,9 @@ Source0: https://rubygems.org/gems/%{gem_name}-%{fullver}.gem # %%{SOURCE2} %%{name} %%{version} Source1: rubygem-%{gem_name}-%{version}-full.tar.gz Source2: rspec-related-create-full-tarball.sh +# https://github.com/rspec/rspec/pull/282/commits/939c4799993b7ff7e524fac701ae6490772ca6de +# Skip mock for ruby4_0 Kernel#inspect +Patch0: rspec-mocks-pr282-skip-mock-for-ruby4_0-inspect.patch BuildRequires: rubygems-devel %if %{without bootstrap} @@ -55,6 +58,7 @@ This package contains documentation for %{name}. gem unpack %{SOURCE0} %setup -q -D -T -n %{gem_name}-%{version} -b 1 +%patch -P0 -p2 # Cucumber 7 syntax change sed -i cucumber.yml -e "s|~@wip|not @wip|" @@ -118,6 +122,12 @@ cucumber %{gem_docdir} %changelog +* Tue Dec 02 2025 Mamoru TASAKA - 3.13.7-2 +- Backport upstream patch to skip mock for Kernel#inspect on ruby4_0 + +* Mon Nov 24 2025 Mamoru TASAKA - 3.13.7-1 +- 3.13.7 + * Fri Oct 17 2025 Mamoru TASAKA - 3.13.6-1 - 3.13.6 diff --git a/sources b/sources index 2f17ca9..38528a1 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (rspec-mocks-3.13.6.gem) = 768199567b3220707d0294afb9d2e56a6e95e705f58ecae87cc1070de317d5883c41722bcc0f8445db582b341234553b1e3a583a66d5e18c81a5e1b23b5d8d70 -SHA512 (rubygem-rspec-mocks-3.13.6-full.tar.gz) = 47da2ab21faffa2e382c699580243ec1c3e0b8c7ba5885efc605ab777ebca28d4429b6e6988b4f64fddceb0230759a764dc0c8bf37d226c876b42120c21415d0 +SHA512 (rspec-mocks-3.13.7.gem) = fa30824f1d7ab82e2c0d1cde1f076cb84b9a9e1e9e7292e33bcfda934468a50f2b59a1dc539137be14ad5b86465ed6fa12c32af2e3a79992c3ce5d278072861c +SHA512 (rubygem-rspec-mocks-3.13.7-full.tar.gz) = 7666b07e6b9806e36d53ede810c6efc0ceb57bc554c96e0fdf44efbfd9dd027a8e999ce942d20bf46f93f93bfae1a88c7ffd0bfbf2cdf08601093a98218a059a