Class: Fibeline::ProcessTransformer

Inherits:
GenericElement show all
Defined in:
lib/fibeline/process.rb

Instance Attribute Summary

Attributes inherited from GenericElement

#source

Instance Method Summary collapse

Methods inherited from GenericElement

#each, #filter, #handle_value, #input, #output, #resume, #transform, #|

Constructor Details

#initialize(*popen_arguments) ⇒ ProcessTransformer

Returns a new instance of ProcessTransformer.



8
9
10
11
# File 'lib/fibeline/process.rb', line 8

def initialize(*popen_arguments)
  @popen_arguments = popen_arguments
  super()
end

Instance Method Details

#processObject



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/fibeline/process.rb', line 13

def process
  Open3.popen3(*@popen_arguments) do |stdin, stdout, _|
    while (value = input)
      stdin.puts value
    end
    stdin.close

    stdout.each_line do |output_line|
      output(output_line.rstrip)
    end
    stdout.close
  end
end