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
@private
Public Class Methods
Source
# File lib/aruba/processes/in_process.rb, line 19 def self.match?(mode) mode == :in_process || (mode.is_a?(Class) && mode <= InProcess) end
Use only if mode is in_process
Source
# File lib/aruba/processes/in_process.rb, line 49 def initialize(cmd, exit_timeout, io_wait_timeout, working_directory, # rubocop:disable Metrics/ParameterLists environment = Aruba.platform.environment_variables.hash_from_env, 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
Calls superclass method
Aruba::Processes::BasicProcess::new
Public Instance Methods
Source
# File lib/aruba/processes/in_process.rb, line 111 def close_io(name) unless [:stdin, :stdout, :stderr].include? name raise ArgumentError, "Only stdin stdout and stderr are allowed to close" end get_instance_variable(name.to_sym).close end
Close io
Source
# File lib/aruba/processes/in_process.rb, line 131 def interactive? false end
Source
# File lib/aruba/processes/in_process.rb, line 127 def pid $PROCESS_ID end
Output pid of process
This is the PID of the ruby process! So be careful
Source
# File lib/aruba/processes/in_process.rb, line 63 def start raise "You need to call aruba.config.main_class = YourMainClass" unless main_class @started = true 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
Start command
Source
# File lib/aruba/processes/in_process.rb, line 98 def stderr(*) @stderr.string end
Access stderr
Source
# File lib/aruba/processes/in_process.rb, line 88 def stdin @stdin.string end
Access stdin
Source
# File lib/aruba/processes/in_process.rb, line 93 def stdout(*) @stdout.string end
Access stdout
Source
# File lib/aruba/processes/in_process.rb, line 82 def stop(*) @started = false @exit_status = @kernel.exitstatus end
Stop command
Source
# File lib/aruba/processes/in_process.rb, line 120 def terminate stop end
Terminate program
Source
# File lib/aruba/processes/in_process.rb, line 106 def write(input) @stdin.write input end
Write strint to stdin
@param [String] input
Write string to stdin in