thoughtbot--shoulda-matchers/spec/support/unit/capture.rb

20 lines
425 B
Ruby

module Kernel
unless method_defined?(:capture)
def capture(stream)
stream = stream.to_s
captured_stream = Tempfile.new(stream)
stream_io = eval("$#{stream}")
origin_stream = stream_io.dup
stream_io.reopen(captured_stream)
yield
stream_io.rewind
return captured_stream.read
ensure
captured_stream.unlink
stream_io.reopen(origin_stream)
end
end
end