From e39385bf849610a58865722cdd330eff9475b00e Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Fri, 14 Nov 2025 10:57:18 +0900 Subject: [PATCH] [ruby/rubygems] Use `method_defined?` instead of `instance_methods.include?` While the latter creates an intermediate array of all method names including all ancestors, the former just traverse the inheritance chain and can stop if found once. https://github.com/ruby/rubygems/commit/b291070b3b --- test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb | 2 +- test/rubygems/test_gem_package_tar_header_ractor.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb b/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb index a3fef50d54..3693f63df6 100644 --- a/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +++ b/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb @@ -25,7 +25,7 @@ class TestGemExtCargoBuilderLinkFlagConverter < Gem::TestCase }.freeze CASES.each do |test_name, (arg, expected)| - raise "duplicate test name" if instance_methods.include?(test_name) + raise "duplicate test name" if method_defined?(test_name) define_method(test_name) do assert_equal(expected, Gem::Ext::CargoBuilder::LinkFlagConverter.convert(arg)) diff --git a/test/rubygems/test_gem_package_tar_header_ractor.rb b/test/rubygems/test_gem_package_tar_header_ractor.rb index 8f4cfb0072..5714064805 100644 --- a/test/rubygems/test_gem_package_tar_header_ractor.rb +++ b/test/rubygems/test_gem_package_tar_header_ractor.rb @@ -2,7 +2,7 @@ require_relative "package/tar_test_case" -unless Gem::Package::TarTestCase.instance_methods.include?(:assert_ractor) +unless Gem::Package::TarTestCase.method_defined?(:assert_ractor) require "core_assertions" Gem::Package::TarTestCase.include Test::Unit::CoreAssertions end