Sha256: 6f4e7c7782fa39334a85a35103aee4656e7eb56efeb75c119035b19f2e2bd54e
Contents?: true
Size: 1.02 KB
Versions: 4
Compression:
Stored size: 1.02 KB
Contents
# coding: UTF-8 module Cocaine class CommandLine class PosixRunner def self.available? return @available unless @available.nil? @available = posix_spawn_gem_available? end def self.supported? available? && !OS.java? end def supported? self.class.supported? end def call(command, env = {}, options = {}) input, output = IO.pipe options[:out] = output pid = spawn(env, command, options) output.close result = "" while partial_result = input.read(8192) result << partial_result end waitpid(pid) input.close result end private def spawn(*args) POSIX::Spawn.spawn(*args) end def waitpid(pid) Process.waitpid(pid) end def self.posix_spawn_gem_available? require 'posix/spawn' true rescue LoadError false end private_class_method :posix_spawn_gem_available? end end end
Version data entries
4 entries across 4 versions & 2 rubygems