From 2f2264dd98595cc71b8fd2df15490de8de57265a Mon Sep 17 00:00:00 2001 From: Ryan Winograd Date: Thu, 20 Aug 2020 21:55:26 -0500 Subject: Actual fix for older rubies --- test/tc_package.rb | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/test/tc_package.rb b/test/tc_package.rb index 1574c8b8..628d20ae 100644 --- a/test/tc_package.rb +++ b/test/tc_package.rb @@ -165,21 +165,15 @@ class TestPackage < Test::Unit::TestCase end def capture_warnings(&block) - # Only capture warnings on versions of ruby that expose `:define_method` as - # a public method - if Kernel.respond_to?(:define_method) - original_warn = Kernel.method(:warn) - warnings = [] - Kernel.define_method(:warn){ |string| warnings << string } - block.call - original_verbose = $VERBOSE - $VERBOSE = nil - Kernel.define_method(:warn, &original_warn) - $VERBOSE = original_verbose - warnings - else - &block.call - end + original_warn = Kernel.method(:warn) + warnings = [] + Kernel.send(:define_method, :warn) { |string| warnings << string } + block.call + original_verbose = $VERBOSE + $VERBOSE = nil + Kernel.send(:define_method, :warn, &original_warn) + $VERBOSE = original_verbose + warnings end # See comment for Package#zip_entry_for_part -- cgit v1.2.3