class Cocaine::CommandLine::PosixRunner
Public Class Methods
available?()
click to toggle source
# File lib/cocaine/command_line/runners/posix_runner.rb, line 5 def self.available? require 'posix/spawn' true rescue LoadError false end
supported?()
click to toggle source
# File lib/cocaine/command_line/runners/posix_runner.rb, line 12 def self.supported? available? && !Cocaine::CommandLine.java? end
Public Instance Methods
call(command, env = {}, options = {})
click to toggle source
# File lib/cocaine/command_line/runners/posix_runner.rb, line 20 def call(command, env = {}, options = {}) input, output = IO.pipe options[:out] = output with_modified_environment(env) do pid = spawn(env, command, options) output.close result = "" while partial_result = input.read(8192) result << partial_result end waitpid(pid) input.close result end end
supported?()
click to toggle source
# File lib/cocaine/command_line/runners/posix_runner.rb, line 16 def supported? self.class.supported? end
Private Instance Methods
spawn(*args)
click to toggle source
# File lib/cocaine/command_line/runners/posix_runner.rb, line 38 def spawn(*args) POSIX::Spawn.spawn(*args) end
waitpid(pid)
click to toggle source
# File lib/cocaine/command_line/runners/posix_runner.rb, line 42 def waitpid(pid) Process.waitpid(pid) end
with_modified_environment(env, &block)
click to toggle source
# File lib/cocaine/command_line/runners/posix_runner.rb, line 46 def with_modified_environment(env, &block) ClimateControl.modify(env, &block) end