Class: Aruba::Command
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- Aruba::Command
- Defined in:
- lib/aruba/command.rb
Overview
Command
This class is not meant for direct use - Command.new, though it's API is
public. As it is just a wrapper class, have a look at BasicProcess
and
the like for the public API.
Instance Method Summary collapse
-
#initialize(command, opts = {}) ⇒ Command
constructor
A new instance of Command.
-
#start ⇒ Object
(also: #run!)
Start command.
-
#stop ⇒ Object
Stop command.
-
#terminate ⇒ Object
Terminate command.
Constructor Details
#initialize(command, opts = {}) ⇒ Command
Returns a new instance of Command.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/aruba/command.rb', line 25 def initialize(command, opts = {}) launchers = [] launchers << Processes::DebugProcess launchers << Processes::InProcess launchers << Processes::SpawnProcess launcher = launchers.find { |l| l.match? opts[:mode] } super launcher.new( command, opts.fetch(:exit_timeout), opts.fetch(:io_wait_timeout), opts.fetch(:working_directory), opts.fetch(:environment), opts.fetch(:main_class), opts.fetch(:stop_signal), opts.fetch(:startup_wait_time) ) @event_bus = opts.fetch(:event_bus) rescue KeyError => e raise ArgumentError, e. end |
Instance Method Details
#start ⇒ Object Also known as: run!
Start command
66 67 68 69 70 71 |
# File 'lib/aruba/command.rb', line 66 def start __getobj__.start event_bus.notify Events::CommandStarted.new(self) self end |
#stop ⇒ Object
Stop command
50 51 52 53 54 55 |
# File 'lib/aruba/command.rb', line 50 def stop(*) __getobj__.stop event_bus.notify Events::CommandStopped.new(self) self end |
#terminate ⇒ Object
Terminate command
58 59 60 61 62 63 |
# File 'lib/aruba/command.rb', line 58 def terminate(*) __getobj__.terminate event_bus.notify Events::CommandStopped.new(self) self end |