summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-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