Sha256: 0b2d853026cef575f5c5563c5424cbe0c3c171dae48e9dfdac6c07fa278eaafe

Contents?: true

Size: 790 Bytes

Versions: 10

Compression:

Stored size: 790 Bytes

Contents

module SecondBase
  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

10 entries across 10 versions & 1 rubygems

Version Path
secondbase-2.2.0 test/test_helpers/stream_helpers.rb
secondbase-2.1.6 test/test_helpers/stream_helpers.rb
secondbase-2.1.5 test/test_helpers/stream_helpers.rb
secondbase-2.1.4 test/test_helpers/stream_helpers.rb
secondbase-2.1.3 test/test_helpers/stream_helpers.rb
secondbase-2.1.2 test/test_helpers/stream_helpers.rb
secondbase-2.1.0 test/test_helpers/stream_helpers.rb
secondbase-2.0.0 test/test_helpers/stream_helpers.rb
secondbase-1.0.1 test/test_helpers/stream_helpers.rb
secondbase-1.0.0 test/test_helpers/stream_helpers.rb