module OStreamCatcher

Constants

VERSION

Public Instance Methods

catch(&block) click to toggle source
# File lib/o_stream_catcher/o_stream_catcher.rb, line 3
def catch(&block)
  stdout_orig, stdout_mock = mock_stdout
  stderr_orig, stderr_mock = mock_stderr

  stderr_orig = $stderr
  stderr_mock = StringIO.new
  $stderr = stderr_mock

  begin
    result = block.call
  ensure
    $stdout = stdout_orig
    $stderr = stderr_orig
  end

  [result, stdout_mock.string, stderr_mock.string]
end

Protected Instance Methods

mock_stderr() click to toggle source
# File lib/o_stream_catcher/o_stream_catcher.rb, line 30
def mock_stderr
  orig = $stderr
  mock = StringIO.new
  $sterr = mock
  [orig, mock]
end
mock_stdout() click to toggle source
# File lib/o_stream_catcher/o_stream_catcher.rb, line 23
def mock_stdout
  orig = $stdout
  mock = StringIO.new
  $stdout = mock
  [orig, mock]
end