class Tod::Executor

Public Instance Methods

execute(command, &block) click to toggle source
# File lib/tod/executor.rb, line 6
def execute(command, &block)
  process = Open3.popen2e("#{command}") do |stdin, stdoe, wait_thread|
    read_thread(stdoe, &block).join
    wait_thread.value
  end

  Result.new(process.exitstatus)
end

Private Instance Methods

read_thread(stream) { |line| ... } click to toggle source
# File lib/tod/executor.rb, line 17
def read_thread(stream)
  Thread.new do
    stream.each { |line| yield(line) if block_given? }
  end
end