Sha256: 37db68dab772cc7836142ba30ba30b9df50feca5b3be22b8aed931d33e98ed8c

Contents?: true

Size: 789 Bytes

Versions: 2

Compression:

Stored size: 789 Bytes

Contents

module ThirdBase
  module StreamHelpers

    private

    def silence_stream(stream)
      old_stream = stream.dup
      stream.reopen(IO::NULL)
      stream.sync = true
      yield
    ensure
      stream.reopen(old_stream)
      old_stream.close
    end

    def quietly
      silence_stream(STDOUT) do
        silence_stream(STDERR) do
          yield
        end
      end
    end

    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.close
      captured_stream.unlink
      stream_io.reopen(origin_stream)
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
thirdbase-2.1.2 test/test_helpers/stream_helpers.rb
thirdbase-2.1.1 test/test_helpers/stream_helpers.rb