Sha256: 6651f0ed72ca020917a8a4b1d39940d06ed061c4db48842a4790385f9e539f63

Contents?: true

Size: 507 Bytes

Versions: 12

Compression:

Stored size: 507 Bytes

Contents

require 'stringio'

class STDCapture < StringIO
  
  def initialize io1,io2
    @io1 = io1
    @io2 = io2
    super ""
  end

  def write text
    @io1.write text
    @io2.write text
  end

  def self.capture buffer = nil
    
    buffer ||= StringIO.new

    stdout_old = $stdout
    stderr_old = $stderr

    $stdout = STDCapture.new(stdout_old,buffer)
    $stderr = STDCapture.new(stderr_old,buffer)

    yield
    
    buffer.string
  ensure
    $stdout = stdout_old
    $stderr = stderr_old
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
keepitsafe-0.2.6 lib/stdcapture.rb
keepitsafe-0.2.5 lib/stdcapture.rb
keepitsafe-0.2.4 lib/stdcapture.rb
keepitsafe-0.2.3 lib/stdcapture.rb
keepitsafe-0.2.2 lib/stdcapture.rb
keepitsafe-0.2.1 lib/stdcapture.rb
keepitsafe-0.2.0 lib/stdcapture.rb
keepitsafe-0.1.10 lib/stdcapture.rb
keepitsafe-0.1.7 lib/stdcapture.rb
keepitsafe-0.1.5 lib/stdcapture.rb
keepitsafe-0.1.4 lib/stdcapture.rb
keepitsafe-0.1.3 lib/stdcapture.rb