Sha256: d1a2ca1917ece4c2882caa9a8f5aebe169d180e1407e3123b702b1b1c11db48d

Contents?: true

Size: 637 Bytes

Versions: 7

Compression:

Stored size: 637 Bytes

Contents

module Kernel
  def capture_stdio(input = nil, &block)
    require 'stringio'
    org_stdin, $stdin = $stdin, StringIO.new(input) if input
    org_stdout, $stdout = $stdout, StringIO.new
    yield
    return @out = $stdout.string
  ensure
    $stdout = org_stdout
    $stdin = org_stdin
  end
  alias capture_stdout capture_stdio
end

class IO
  def read_available_bytes(chunk_size = 1024, select_timeout = 5)
    buffer = []

    while self.class.select([self], nil, nil, select_timeout)
      begin
        buffer << self.readpartial(chunk_size)
      rescue(EOFError)
        break
      end
    end

    return buffer.join
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
engineyard-0.3.2 spec/support/ruby_ext.rb
engineyard-0.3.1 spec/support/ruby_ext.rb
engineyard-0.3.0 spec/support/ruby_ext.rb
engineyard-0.2.13 spec/support/ruby_ext.rb
engineyard-0.2.12 spec/support/ruby_ext.rb
engineyard-0.2.11 spec/support/ruby_ext.rb
engineyard-0.2.10 spec/support/ruby_ext.rb