module RSpecApprovals::Stream::Capture

Public Class Methods

capture(stream, block) click to toggle source
# File lib/rspec_approvals/stream.rb, line 10
def self.capture(stream, block)
  RSpecApprovals.stdout.truncate 0
  RSpecApprovals.stdout.rewind
  RSpecApprovals.stderr.truncate 0
  RSpecApprovals.stderr.rewind

  stdout_original_stream = $stdout
  stderr_original_stream = $stderr
  $stdout = RSpecApprovals.stdout
  $stderr = RSpecApprovals.stderr
  block.call
  RSpecApprovals.send(stream).string.dup

ensure
  $stdout = stdout_original_stream
  $stderr = stderr_original_stream

end