class Ammeter::OutputCapturer
Public Class Methods
Source
# File lib/ammeter/output_capturer.rb, line 5 def self.capture(io, &block) case io when :stdout capture_stdout(&block) when :stderr capture_stderr(&block) else raise "Unknown IO #{io}" end end
Is this thread safe!?!? This won’t work with sub-processes
Source
# File lib/ammeter/output_capturer.rb, line 28 def self.capture_stderr(&block) captured_stream = StringIO.new orginal_io, $stderr = $stderr, captured_stream block.call captured_stream.string ensure $stderr = orginal_io end
Source
# File lib/ammeter/output_capturer.rb, line 16 def self.capture_stdout(&block) captured_stream = StringIO.new orginal_io, $stdout = $stdout, captured_stream block.call captured_stream.string ensure $stdout = orginal_io end