class Aruba::Processes::InProcess
Run command in your ruby process
`InProcess` is not meant for direct use - `InProcess.new` - by users. Only it's public methods are part of the public API of aruba, e.g. `#stdin`, `#stdout`.
@private
Attributes
main_class[RW]
@deprecated
exit_status[R]
main_class[R]
@private
Public Class Methods
match?(mode)
click to toggle source
Use only if mode is in_process
# File lib/aruba/processes/in_process.rb, line 19 def self.match?(mode) mode == :in_process || (mode.is_a?(Class) && mode <= InProcess) end
new(cmd, exit_timeout, io_wait_timeout, working_directory, environment = ENV.to_hash.dup, main_class = nil, stop_signal = nil, startup_wait_time = 0)
click to toggle source
Calls superclass method
Aruba::Processes::BasicProcess::new
# File lib/aruba/processes/in_process.rb, line 48 def initialize(cmd, exit_timeout, io_wait_timeout, working_directory, environment = ENV.to_hash.dup, main_class = nil, stop_signal = nil, startup_wait_time = 0) @cmd = cmd @argv = arguments @stdin = StringIO.new @stdout = StringIO.new @stderr = StringIO.new @kernel = FakeKernel.new super end
Public Instance Methods
close_io(name)
click to toggle source
Close io
# File lib/aruba/processes/in_process.rb, line 106 def close_io(name) fail ArgumentError, 'Only stdin stdout and stderr are allowed to close' unless [:stdin, :stdout, :stderr].include? name get_instance_variable(name.to_sym).close end
pid()
click to toggle source
Output pid of process
This is the PID of the ruby process! So be careful
# File lib/aruba/processes/in_process.rb, line 120 def pid $PROCESS_ID end
start() { |self| ... }
click to toggle source
Start command
# File lib/aruba/processes/in_process.rb, line 60 def start fail "You need to call aruba.config.main_class = YourMainClass" unless main_class Dir.chdir @working_directory do before_run Aruba.platform.with_environment environment.merge('PWD' => @working_directory) do main_class.new(@argv, @stdin, @stdout, @stderr, @kernel).execute! end after_run yield self if block_given? end end
stderr(*)
click to toggle source
Access stderr
# File lib/aruba/processes/in_process.rb, line 93 def stderr(*) @stderr.string end
stdin()
click to toggle source
Access stdin
# File lib/aruba/processes/in_process.rb, line 83 def stdin @stdin.string end
stdout(*)
click to toggle source
Access stdout
# File lib/aruba/processes/in_process.rb, line 88 def stdout(*) @stdout.string end
stop(*)
click to toggle source
Stop command
# File lib/aruba/processes/in_process.rb, line 77 def stop(*) @started = false @exit_status = @kernel.exitstatus end
terminate()
click to toggle source
Terminate program
# File lib/aruba/processes/in_process.rb, line 113 def terminate stop end
write(input)
click to toggle source
Write strint to stdin
@param [String] input
Write string to stdin in
# File lib/aruba/processes/in_process.rb, line 101 def write(input) @stdin.write input end