test/io_helper.rb in compass-edge-0.9.1 vs test/io_helper.rb in compass-edge-0.9.2
- old
+ new
@@ -13,7 +13,24 @@
yield
$stderr.string
ensure
$stderr = real_stderr
end
+
+ def capture_pipe(io, options = {})
+ options[:wait] = 0.25
+ options[:timeout] = 1.0
+ output = ""
+ eof_at = nil
+ while !eof_at || (Time.now - eof_at < options[:wait])
+ if io.eof?
+ eof_at ||= Time.now
+ sleep 0.1
+ else
+ eof_at = nil
+ timeout(options[:timeout]) { output << io.readpartial(1024) }
+ end
+ end
+ output
+ end
end
-end
\ No newline at end of file
+end