summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRyan Winograd <[email protected]>2020-08-20 21:55:26 -0500
committerRyan Winograd <[email protected]>2020-08-20 21:55:26 -0500
commit2f2264dd98595cc71b8fd2df15490de8de57265a (patch)
tree6bb6cbd46cdd987334ee7674abfa6325cdd7e13f
parentdcce5db8a653a099d3c9a18cb84baa7b989199fd (diff)
downloadcaxlsx-2f2264dd98595cc71b8fd2df15490de8de57265a.tar.gz
caxlsx-2f2264dd98595cc71b8fd2df15490de8de57265a.zip
Actual fix for older rubies
-rw-r--r--test/tc_package.rb24
1 files 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