Sha256: e289c3f613a776f04ee49087b247dee28f534f018690b12d0aa953e95590eea7
Contents?: true
Size: 917 Bytes
Versions: 1
Compression:
Stored size: 917 Bytes
Contents
require 'childprocess' require 'tempfile' require 'shellwords' module Aruba class Process include Shellwords def initialize(cmd, timeout) @timeout = timeout @out = Tempfile.new("aruba-out") @err = Tempfile.new("aruba-err") @process = ChildProcess.build(*shellwords(cmd)) @process.io.stdout = @out @process.io.stderr = @err @process.duplex = true end def run!(&block) @process.start yield self if block_given? end def stdin sleep 0.1 @process.io.stdin end def output stdout + stderr end def stdout sleep 0.1 @out.rewind @out.read end def stderr sleep 0.1 @err.rewind @err.read end def stop if @process stdout && stderr # flush output @process.poll_for_exit(@timeout) @process.exit_code end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
aruba-0.2.8 | lib/aruba/process.rb |