From fb16db3eb2fc719fdaedaaf086d1d0c6f63cc86a Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 30 Oct 2024 02:02:20 +0900 Subject: [PATCH 1/2] Fix method definition owners ruby/ruby@e22d5c2584ccdef5c972c6df8d1f719dcca2dba5 --- test/test_error_highlight.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/test_error_highlight.rb b/test/test_error_highlight.rb index 09f29dc..9a44732 100644 --- a/test/test_error_highlight.rb +++ b/test/test_error_highlight.rb @@ -1362,12 +1362,12 @@ def test_errors_on_terminal_window_smaller_than_min_width warning = nil original_warn = Warning.method(:warn) - Warning.define_singleton_method(:warn) {|s| warning = s} + Warning.define_method(:warn) {|s| warning = s} begin ErrorHighlight::DefaultFormatter.max_snippet_width = custom_max_width ensure - Warning.singleton_class.remove_method(:warn) - Warning.define_singleton_method(:warn, original_warn) + Warning.remove_method(:warn) + Warning.define_method(:warn, original_warn) end assert_match "'max_snippet_width' adjusted to minimum value of #{min_snippet_width}", warning From 0048bd028577812fbb3655d48de198e46d304ea0 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 30 Oct 2024 02:37:02 +0900 Subject: [PATCH 2/2] Redefine in the module context --- test/test_error_highlight.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/test/test_error_highlight.rb b/test/test_error_highlight.rb index 9a44732..6136bcd 100644 --- a/test/test_error_highlight.rb +++ b/test/test_error_highlight.rb @@ -1362,12 +1362,17 @@ def test_errors_on_terminal_window_smaller_than_min_width warning = nil original_warn = Warning.method(:warn) - Warning.define_method(:warn) {|s| warning = s} + Warning.class_eval do + remove_method(:warn) + define_method(:warn) {|str| warning = str} + end begin ErrorHighlight::DefaultFormatter.max_snippet_width = custom_max_width ensure - Warning.remove_method(:warn) - Warning.define_method(:warn, original_warn) + Warning.class_eval do + remove_method(:warn) + define_method(:warn, original_warn) + end end assert_match "'max_snippet_width' adjusted to minimum value of #{min_snippet_width}", warning