lib/minitest/silence_plugin.rb in minitest-silence-0.2.0 vs lib/minitest/silence_plugin.rb in minitest-silence-0.2.1

- old
+ new

@@ -13,32 +13,27 @@ module ResultOutputPatch attr_accessor :output end module RunOneMethodPatch - attr_reader :original_stdin, :original_stdout, :original_stderr - - def __run(*) - @original_stdin = $stdin.dup - @original_stdout = $stdout.dup - @original_stderr = $stderr.dup - super - end - def run_one_method(klass, method_name) + @original_stdin ||= $stdin.dup + @original_stdout ||= $stdout.dup + @original_stderr ||= $stderr.dup + output_reader, output_writer = IO.pipe output_thread = Thread.new { output_reader.read } result = begin $stdout.reopen(output_writer) $stderr.reopen(output_writer) $stdin.reopen(File::NULL) super ensure - $stdout.reopen(original_stdout) - $stderr.reopen(original_stderr) - $stdin.reopen(original_stdin) + $stdout.reopen(@original_stdout) + $stderr.reopen(@original_stderr) + $stdin.reopen(@original_stdin) output_writer.close end result.output = output_thread.value result