class Terrapin::CommandLine::MultiPipe
Public Class Methods
new()
click to toggle source
# File lib/terrapin/command_line/multi_pipe.rb, line 4 def initialize @stdout_in, @stdout_out = IO.pipe @stderr_in, @stderr_out = IO.pipe end
Public Instance Methods
output()
click to toggle source
# File lib/terrapin/command_line/multi_pipe.rb, line 13 def output Output.new(@stdout_output, @stderr_output) end
pipe_options()
click to toggle source
# File lib/terrapin/command_line/multi_pipe.rb, line 9 def pipe_options { out: @stdout_out, err: @stderr_out } end
read_and_then(&block)
click to toggle source
# File lib/terrapin/command_line/multi_pipe.rb, line 17 def read_and_then(&block) close_write read block.call close_read end
Private Instance Methods
close_read()
click to toggle source
# File lib/terrapin/command_line/multi_pipe.rb, line 36 def close_read @stdout_in.close @stderr_in.close end
close_write()
click to toggle source
# File lib/terrapin/command_line/multi_pipe.rb, line 26 def close_write @stdout_out.close @stderr_out.close end
read()
click to toggle source
# File lib/terrapin/command_line/multi_pipe.rb, line 31 def read @stdout_output = read_stream(@stdout_in) @stderr_output = read_stream(@stderr_in) end
read_stream(io)
click to toggle source
# File lib/terrapin/command_line/multi_pipe.rb, line 41 def read_stream(io) result = "" while partial_result = io.read(8192) result << partial_result end result end