class Terrapin::CommandLine::ProcessRunner
def self.available?
def self.available? Process.respond_to?(:spawn) end
def self.supported?
def self.supported? available? && !OS.java? end
def call(command, env = {}, options = {})
def call(command, env = {}, options = {}) pipe = MultiPipe.new pid = spawn(env, command, options.merge(pipe.pipe_options)) pipe.read_and_then do waitpid(pid) end pipe.output end
def spawn(*args)
def spawn(*args) Process.spawn(*args) end
def supported?
def supported? self.class.supported? end
def waitpid(pid)
def waitpid(pid) Process.waitpid(pid) rescue Errno::ECHILD # In JRuby, waiting on a finished pid raises. end