Sha256: 93d5c3aaf9197c0c1ffed850d2015cdebdbb0cc2d504ade0542ccfb376976750
Contents?: true
Size: 1.01 KB
Versions: 39
Compression:
Stored size: 1.01 KB
Contents
module Sprout #:nodoc: class ProcessRunnerError < StandardError # :nodoc: end class ProcessRunner #:nodoc: attr_reader :pid, :r, :w, :e def initialize(*command) @command = command begin usr = User.new() if(usr.is_a?(WinUser) && !usr.is_a?(CygwinUser)) require 'win32/open3' Open3.popen3(*@command) do |w, r, e, pid| @w = w @r = r @e = e @pid = pid end else require 'open4' @pid, @w, @r, @e = open4.popen4(*@command) end rescue Errno::ENOENT => e part = command[0].split(' ').shift raise ProcessRunnerError.new("The expected executable was not found for command [#{part}], please check your system path and/or sprout definition") end end def puts(msg) @w.puts(msg) end def read return r.read end def read_err return e.read end end end
Version data entries
39 entries across 39 versions & 1 rubygems