class Capture

Mess wit stdout, capture, restore stdout

Public Class Methods

capture(&block) click to toggle source
# File lib/monkey-patches/stdout_capture.rb, line 8
def self.capture(&block)
  # redirect output to StringIO objects
  stdout = StringIO.new
  stderr = StringIO.new
  $stdout = stdout
  $stderr = stderr

  result = block.call

  # restore normal output
  $stdout = STDOUT
  $stderr = STDERR

  OpenStruct.new result: result, stdout: stdout.string, stderr: stderr.string
end