aruba 0.11.0.pre → 0.11.0.pre2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/History.md +21 -1
- data/aruba.gemspec +1 -0
- data/features/api/command/find_command.feature +83 -0
- data/features/api/command/last_command_started.feature +50 -0
- data/features/api/command/last_command_stopped.feature +89 -0
- data/features/api/command/run.feature +259 -0
- data/features/api/command/stop.feature +53 -1
- data/features/api/text/replace_variables.feature +1 -1
- data/features/getting_started/run_commands.feature +177 -0
- data/features/matchers/file/be_existing_executable.feature +87 -0
- data/features/{integration/rspec/getting_started.feature → rspec/integration.feature} +31 -0
- data/fixtures/getting-started-app/Gemfile +1 -1
- data/lib/aruba.rb +0 -19
- data/lib/aruba/api.rb +2 -0
- data/lib/aruba/api/command.rb +103 -44
- data/lib/aruba/api/core.rb +13 -8
- data/lib/aruba/api/deprecated.rb +26 -4
- data/lib/aruba/api/environment.rb +21 -13
- data/lib/aruba/api/filesystem.rb +13 -0
- data/lib/aruba/api/rvm.rb +5 -0
- data/lib/aruba/api/text.rb +7 -1
- data/lib/aruba/aruba_path.rb +6 -0
- data/lib/aruba/basic_configuration.rb +35 -3
- data/lib/aruba/basic_configuration/option.rb +7 -0
- data/lib/aruba/cli.rb +4 -0
- data/lib/aruba/command.rb +47 -1
- data/lib/aruba/config.rb +15 -2
- data/lib/aruba/config_wrapper.rb +49 -8
- data/lib/aruba/console.rb +4 -1
- data/lib/aruba/console/help.rb +2 -0
- data/lib/aruba/contracts/absolute_path.rb +7 -0
- data/lib/aruba/contracts/enum.rb +5 -0
- data/lib/aruba/contracts/is_power_of_two.rb +9 -2
- data/lib/aruba/contracts/relative_path.rb +7 -0
- data/lib/aruba/cucumber/command.rb +6 -9
- data/lib/aruba/cucumber/file.rb +1 -1
- data/lib/aruba/cucumber/hooks.rb +36 -29
- data/lib/aruba/errors.rb +16 -1
- data/lib/aruba/events.rb +39 -0
- data/lib/aruba/extensions/string/strip.rb +1 -0
- data/lib/aruba/file_size.rb +11 -0
- data/lib/aruba/hooks.rb +2 -0
- data/lib/aruba/in_config_wrapper.rb +24 -0
- data/lib/aruba/in_process.rb +2 -0
- data/lib/aruba/initializer.rb +37 -0
- data/lib/aruba/matchers/base/base_matcher.rb +2 -0
- data/lib/aruba/matchers/base/object_formatter.rb +4 -0
- data/lib/aruba/matchers/collection/all.rb +2 -0
- data/lib/aruba/matchers/collection/include_an_object.rb +2 -0
- data/lib/aruba/matchers/command/have_exit_status.rb +1 -1
- data/lib/aruba/matchers/command/have_finished_in_time.rb +1 -10
- data/lib/aruba/matchers/command/have_output.rb +1 -10
- data/lib/aruba/matchers/command/have_output_on_stderr.rb +1 -10
- data/lib/aruba/matchers/command/have_output_on_stdout.rb +1 -10
- data/lib/aruba/matchers/file/be_an_existing_executable.rb +37 -0
- data/lib/aruba/platform.rb +4 -0
- data/lib/aruba/platforms/announcer.rb +225 -0
- data/lib/aruba/platforms/aruba_file_creator.rb +4 -0
- data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +4 -0
- data/lib/aruba/{aruba_logger.rb → platforms/aruba_logger.rb} +4 -0
- data/lib/aruba/platforms/command_monitor.rb +229 -0
- data/lib/aruba/platforms/determine_disk_usage.rb +5 -0
- data/lib/aruba/platforms/determine_file_size.rb +9 -0
- data/lib/aruba/platforms/disk_usage_calculator.rb +9 -0
- data/lib/aruba/platforms/local_environment.rb +12 -0
- data/lib/aruba/platforms/simple_table.rb +11 -0
- data/lib/aruba/platforms/unix_command_string.rb +3 -0
- data/lib/aruba/platforms/unix_environment_variables.rb +3 -0
- data/lib/aruba/platforms/unix_platform.rb +20 -2
- data/lib/aruba/platforms/unix_which.rb +6 -2
- data/lib/aruba/platforms/windows_command_string.rb +7 -0
- data/lib/aruba/platforms/windows_environment_variables.rb +2 -0
- data/lib/aruba/platforms/windows_platform.rb +3 -0
- data/lib/aruba/platforms/windows_which.rb +6 -2
- data/lib/aruba/processes/basic_process.rb +20 -5
- data/lib/aruba/processes/debug_process.rb +3 -1
- data/lib/aruba/processes/in_process.rb +18 -2
- data/lib/aruba/processes/spawn_process.rb +14 -13
- data/lib/aruba/rspec.rb +34 -23
- data/lib/aruba/runtime.rb +65 -6
- data/lib/aruba/setup.rb +87 -0
- data/lib/aruba/version.rb +1 -1
- data/spec/aruba/api_spec.rb +13 -36
- data/spec/aruba/{config_wrapper_spec.rb → in_config_wrapper_spec.rb} +1 -1
- data/spec/aruba/spawn_process_spec.rb +9 -14
- data/spec/support/configs/pry.rb +3 -0
- data/spec/support/shared_contexts/aruba.rb +1 -0
- metadata +40 -14
- data/features/getting_started/supported_programming_languages.feature +0 -89
- data/lib/aruba/announcer.rb +0 -219
- data/lib/aruba/matchers/rspec.rb +0 -0
- data/lib/aruba/process_monitor.rb +0 -201
- data/lib/aruba/processes/null_process.rb +0 -26
data/lib/aruba/api/core.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
require 'rspec/expectations'
|
2
|
-
require 'aruba/announcer'
|
3
2
|
require 'aruba/runtime'
|
4
3
|
require 'aruba/errors'
|
4
|
+
require 'aruba/setup'
|
5
5
|
|
6
6
|
require 'aruba/config/jruby'
|
7
|
-
require 'aruba/aruba_logger'
|
8
7
|
|
8
|
+
# Aruba
|
9
9
|
module Aruba
|
10
|
+
# Api
|
10
11
|
module Api
|
11
12
|
# Core methods of aruba
|
12
13
|
#
|
@@ -25,9 +26,7 @@ module Aruba
|
|
25
26
|
# artifacts of your tests. This does NOT clean up the current working
|
26
27
|
# directory.
|
27
28
|
def setup_aruba
|
28
|
-
Aruba.
|
29
|
-
Aruba.platform.mkdir File.join(Aruba.config.root_directory, Aruba.config.working_directory)
|
30
|
-
Aruba.platform.chdir Aruba.config.root_directory
|
29
|
+
Aruba::Setup.new(aruba).call
|
31
30
|
|
32
31
|
self
|
33
32
|
end
|
@@ -52,8 +51,11 @@ module Aruba
|
|
52
51
|
begin
|
53
52
|
fail ArgumentError, "#{expand_path(dir)} is not a directory or does not exist." unless Aruba.platform.directory? expand_path(dir)
|
54
53
|
|
54
|
+
old_directory = expand_path('.')
|
55
55
|
aruba.current_directory << dir
|
56
|
-
|
56
|
+
new_directory = expand_path('.')
|
57
|
+
|
58
|
+
aruba.event_bus.notify Events::ChangedWorkingDirectory.new(:old => old_directory, :new => new_directory)
|
57
59
|
|
58
60
|
old_dir = Aruba.platform.getwd
|
59
61
|
|
@@ -74,8 +76,11 @@ module Aruba
|
|
74
76
|
|
75
77
|
fail ArgumentError, "#{expand_path(dir)} is not a directory or does not exist." unless Aruba.platform.directory? expand_path(dir)
|
76
78
|
|
79
|
+
old_directory = expand_path('.')
|
77
80
|
aruba.current_directory << dir
|
78
|
-
|
81
|
+
new_directory = expand_path('.')
|
82
|
+
|
83
|
+
aruba.event_bus.notify Events::ChangedWorkingDirectory.new(:old => old_directory, :new => new_directory)
|
79
84
|
|
80
85
|
self
|
81
86
|
end
|
@@ -170,7 +175,7 @@ module Aruba
|
|
170
175
|
# The variables to be used for block.
|
171
176
|
#
|
172
177
|
# @yield
|
173
|
-
# The block of code which should be run with the
|
178
|
+
# The block of code which should be run with the changed environment variables
|
174
179
|
def with_environment(env = {}, &block)
|
175
180
|
old_aruba_env = aruba.environment.to_h
|
176
181
|
|
data/lib/aruba/api/deprecated.rb
CHANGED
@@ -1,5 +1,10 @@
|
|
1
|
+
require 'aruba/platforms/announcer'
|
2
|
+
|
3
|
+
# Aruba
|
1
4
|
module Aruba
|
5
|
+
# Api
|
2
6
|
module Api
|
7
|
+
# Deprecated
|
3
8
|
module Deprecated
|
4
9
|
# @deprecated
|
5
10
|
# The path to the directory which should contain all your test data
|
@@ -376,7 +381,7 @@ module Aruba
|
|
376
381
|
# The variables to be used for block.
|
377
382
|
#
|
378
383
|
# @yield
|
379
|
-
# The block of code which should be run with the
|
384
|
+
# The block of code which should be run with the changed environment variables
|
380
385
|
def with_env(env = {}, &block)
|
381
386
|
Aruba.platform.deprecated('The use of "#with_env" is deprecated. Use "#with_environment {}" instead. But be careful this uses a different implementation')
|
382
387
|
|
@@ -415,8 +420,9 @@ module Aruba
|
|
415
420
|
def set_env(key, value)
|
416
421
|
Aruba.platform.deprecated('The use of "#set_env" is deprecated. Please use "set_environment_variable" instead. But be careful, this method uses a different kind of implementation')
|
417
422
|
|
418
|
-
announcer.announce(:environment, key, value)
|
423
|
+
aruba.announcer.announce(:environment, key, value)
|
419
424
|
set_environment_variable key, value
|
425
|
+
|
420
426
|
original_env[key] = ENV.delete(key) unless original_env.key? key
|
421
427
|
ENV[key] = value
|
422
428
|
end
|
@@ -879,9 +885,9 @@ module Aruba
|
|
879
885
|
#
|
880
886
|
# Access to announcer
|
881
887
|
def announcer
|
882
|
-
|
888
|
+
Aruba.platform.deprecated('The use of "#announcer" is deprecated. Use "aruba.announcer" instead')
|
883
889
|
|
884
|
-
@announcer ||= Announcer.new(
|
890
|
+
@announcer ||= Platforms::Announcer.new(
|
885
891
|
self,
|
886
892
|
:stdout => defined?(@announce_stdout),
|
887
893
|
:stderr => defined?(@announce_stderr),
|
@@ -892,6 +898,22 @@ module Aruba
|
|
892
898
|
|
893
899
|
@announcer
|
894
900
|
end
|
901
|
+
|
902
|
+
# @private
|
903
|
+
# @deprecated
|
904
|
+
def process_monitor
|
905
|
+
Aruba.platform.deprecated('The use of "#process_monitor" is deprecated.')
|
906
|
+
|
907
|
+
aruba.command_monitor
|
908
|
+
end
|
909
|
+
|
910
|
+
# @private
|
911
|
+
# @deprecated
|
912
|
+
def processes
|
913
|
+
Aruba.platform.deprecated('The use of "#process_monitor" is deprecated. Please use "#all_commands" instead.')
|
914
|
+
|
915
|
+
aruba.command_monitor.send(:processes)
|
916
|
+
end
|
895
917
|
end
|
896
918
|
end
|
897
919
|
end
|
@@ -1,12 +1,14 @@
|
|
1
1
|
require 'aruba/platform'
|
2
2
|
|
3
|
+
# Aruba
|
3
4
|
module Aruba
|
5
|
+
# Api
|
4
6
|
module Api
|
5
7
|
# Environment methods of aruba
|
6
8
|
module Environment
|
7
9
|
# Set environment variable
|
8
10
|
#
|
9
|
-
# @param [String]
|
11
|
+
# @param [String] name
|
10
12
|
# The name of the environment variable as string, e.g. 'HOME'
|
11
13
|
#
|
12
14
|
# @param [String] value
|
@@ -15,17 +17,18 @@ module Aruba
|
|
15
17
|
name = name.to_s
|
16
18
|
value = value.to_s
|
17
19
|
|
18
|
-
|
19
|
-
announcer.announce(:modified_environment, name, value)
|
20
|
-
|
20
|
+
old_environment = aruba.environment.to_h
|
21
21
|
aruba.environment[name] = value
|
22
|
+
new_environment = aruba.environment.to_h
|
23
|
+
|
24
|
+
aruba.event_bus.notify Events::AddedEnvironmentVariable.new(:old => old_environment, :new => new_environment, :changed => { :name => name, :value => value })
|
22
25
|
|
23
26
|
self
|
24
27
|
end
|
25
28
|
|
26
29
|
# Append environment variable
|
27
30
|
#
|
28
|
-
# @param [String]
|
31
|
+
# @param [String] name
|
29
32
|
# The name of the environment variable as string, e.g. 'HOME'
|
30
33
|
#
|
31
34
|
# @param [String] value
|
@@ -34,16 +37,18 @@ module Aruba
|
|
34
37
|
name = name.to_s
|
35
38
|
value = value.to_s
|
36
39
|
|
40
|
+
old_environment = aruba.environment.to_h
|
37
41
|
aruba.environment.append name, value
|
38
|
-
|
39
|
-
|
42
|
+
new_environment = aruba.environment.to_h
|
43
|
+
|
44
|
+
aruba.event_bus.notify Events::ChangedEnvironmentVariable.new(:old => old_environment, :new => new_environment, :changed => { :name => name, :value => value })
|
40
45
|
|
41
46
|
self
|
42
47
|
end
|
43
48
|
|
44
49
|
# Prepend environment variable
|
45
50
|
#
|
46
|
-
# @param [String]
|
51
|
+
# @param [String] name
|
47
52
|
# The name of the environment variable as string, e.g. 'HOME'
|
48
53
|
#
|
49
54
|
# @param [String] value
|
@@ -52,9 +57,11 @@ module Aruba
|
|
52
57
|
name = name.to_s
|
53
58
|
value = value.to_s
|
54
59
|
|
60
|
+
old_environment = aruba.environment.to_h
|
55
61
|
aruba.environment.prepend name, value
|
56
|
-
|
57
|
-
|
62
|
+
new_environment = aruba.environment.to_h
|
63
|
+
|
64
|
+
aruba.event_bus.notify Events::ChangedEnvironmentVariable.new(:old => old_environment, :new => new_environment, :changed => { :name => name, :value => value })
|
58
65
|
|
59
66
|
self
|
60
67
|
end
|
@@ -69,10 +76,11 @@ module Aruba
|
|
69
76
|
def delete_environment_variable(name)
|
70
77
|
name = name.to_s
|
71
78
|
|
72
|
-
|
73
|
-
announcer.announce(:modified_environment, name, '')
|
74
|
-
|
79
|
+
old_environment = aruba.environment.to_h
|
75
80
|
aruba.environment.delete name
|
81
|
+
new_environment = aruba.environment.to_h
|
82
|
+
|
83
|
+
aruba.event_bus.notify Events::DeletedEnvironmentVariable.new(:old => old_environment, :new => new_environment, :changed => { :name => name, :value => '' })
|
76
84
|
|
77
85
|
self
|
78
86
|
end
|
data/lib/aruba/api/filesystem.rb
CHANGED
@@ -8,8 +8,11 @@ Aruba.platform.require_matching_files('../matchers/file/*.rb', __FILE__)
|
|
8
8
|
Aruba.platform.require_matching_files('../matchers/directory/*.rb', __FILE__)
|
9
9
|
Aruba.platform.require_matching_files('../matchers/path/*.rb', __FILE__)
|
10
10
|
|
11
|
+
# Aruba
|
11
12
|
module Aruba
|
13
|
+
# Api
|
12
14
|
module Api
|
15
|
+
# Filesystem methods
|
13
16
|
module Filesystem
|
14
17
|
# Check if file or directory exist
|
15
18
|
#
|
@@ -35,6 +38,16 @@ module Aruba
|
|
35
38
|
Aruba.platform.directory? expand_path(file)
|
36
39
|
end
|
37
40
|
|
41
|
+
# Check if file exist and is executable
|
42
|
+
#
|
43
|
+
# @param [String] file
|
44
|
+
# The file which should exist
|
45
|
+
def executable?(path)
|
46
|
+
path = expand_path(path)
|
47
|
+
|
48
|
+
Aruba.platform.file?(path) && Aruba.platform.executable?(path)
|
49
|
+
end
|
50
|
+
|
38
51
|
# Check if path is absolute
|
39
52
|
#
|
40
53
|
# @return [TrueClass, FalseClass]
|
data/lib/aruba/api/rvm.rb
CHANGED
data/lib/aruba/api/text.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
|
+
# Aruba
|
1
2
|
module Aruba
|
3
|
+
# Api
|
2
4
|
module Api
|
5
|
+
# Text manipulation
|
3
6
|
module Text
|
4
7
|
# Unescape text
|
5
8
|
#
|
@@ -40,8 +43,11 @@ module Aruba
|
|
40
43
|
# @experimental
|
41
44
|
#
|
42
45
|
# Replace variables in command string
|
46
|
+
#
|
47
|
+
# @param [#to_s] text
|
48
|
+
# The text to parse
|
43
49
|
def replace_variables(text)
|
44
|
-
text = text.gsub(/<pid-last-command-started>/, last_command_started.pid.to_s)
|
50
|
+
text = text.gsub(/<pid-last-command-started>/, last_command_started.pid.to_s) if text.include? '<pid-last-command-started>'
|
45
51
|
|
46
52
|
text
|
47
53
|
end
|
data/lib/aruba/aruba_path.rb
CHANGED
@@ -3,7 +3,11 @@ require 'delegate'
|
|
3
3
|
|
4
4
|
require 'aruba/file_size'
|
5
5
|
|
6
|
+
# Aruba
|
6
7
|
module Aruba
|
8
|
+
# Pathname for aruba files and directories
|
9
|
+
#
|
10
|
+
# @private
|
7
11
|
class ArubaPath < Delegator
|
8
12
|
def initialize(path)
|
9
13
|
obj = [path.to_s].flatten
|
@@ -13,10 +17,12 @@ module Aruba
|
|
13
17
|
@delegate_sd_obj = obj
|
14
18
|
end
|
15
19
|
|
20
|
+
# Get path
|
16
21
|
def __getobj__
|
17
22
|
::Pathname.new(::File.join(*@delegate_sd_obj))
|
18
23
|
end
|
19
24
|
|
25
|
+
# Set path
|
20
26
|
def __setobj__(obj)
|
21
27
|
@delegate_sd_obj = [obj.to_s].flatten
|
22
28
|
end
|
@@ -1,8 +1,12 @@
|
|
1
1
|
require 'contracts'
|
2
2
|
require 'aruba/basic_configuration/option'
|
3
|
+
require 'aruba/in_config_wrapper'
|
3
4
|
|
5
|
+
# Aruba
|
4
6
|
module Aruba
|
5
|
-
# Basic configuration for
|
7
|
+
# Basic configuration for Aruba
|
8
|
+
#
|
9
|
+
# @private
|
6
10
|
class BasicConfiguration
|
7
11
|
include Contracts
|
8
12
|
|
@@ -11,6 +15,19 @@ module Aruba
|
|
11
15
|
@known_options ||= {}
|
12
16
|
end
|
13
17
|
|
18
|
+
# Define an option reader
|
19
|
+
#
|
20
|
+
# @param [Symbol] name
|
21
|
+
# The name of the reader
|
22
|
+
#
|
23
|
+
# @param [Hash] opts
|
24
|
+
# Options
|
25
|
+
#
|
26
|
+
# @option [Class, Module] contract
|
27
|
+
# The contract for the option
|
28
|
+
#
|
29
|
+
# @option [Object] default
|
30
|
+
# The default value
|
14
31
|
def option_reader(name, opts = {})
|
15
32
|
contract = opts[:contract]
|
16
33
|
default = opts[:default]
|
@@ -19,13 +36,27 @@ module Aruba
|
|
19
36
|
fail ArgumentError, 'contract-options is required' if contract.nil?
|
20
37
|
|
21
38
|
Contract contract
|
22
|
-
add_option(name, block_given? ? yield(
|
39
|
+
add_option(name, block_given? ? yield(InConfigWrapper.new(known_options)) : default)
|
23
40
|
|
24
41
|
define_method(name) { find_option(name).value }
|
25
42
|
|
26
43
|
self
|
27
44
|
end
|
28
45
|
|
46
|
+
# Define an option reader and writer
|
47
|
+
#
|
48
|
+
# @param [Symbol] name
|
49
|
+
# The name of the reader
|
50
|
+
#
|
51
|
+
# @param [Hash] opts
|
52
|
+
# Options
|
53
|
+
#
|
54
|
+
# @option [Class, Module] contract
|
55
|
+
# The contract for the option
|
56
|
+
#
|
57
|
+
# @option [Object] default
|
58
|
+
# The default value
|
59
|
+
#
|
29
60
|
# rubocop:disable Metrics/CyclomaticComplexity
|
30
61
|
def option_accessor(name, opts = {})
|
31
62
|
contract = opts[:contract]
|
@@ -36,7 +67,7 @@ module Aruba
|
|
36
67
|
fail ArgumentError, 'contract-options is required' if contract.nil?
|
37
68
|
|
38
69
|
# Add writer
|
39
|
-
add_option(name, block_given? ? yield(
|
70
|
+
add_option(name, block_given? ? yield(InConfigWrapper.new(known_options)) : default)
|
40
71
|
|
41
72
|
Contract contract
|
42
73
|
define_method("#{name}=") { |v| find_option(name).value = v }
|
@@ -66,6 +97,7 @@ module Aruba
|
|
66
97
|
|
67
98
|
public
|
68
99
|
|
100
|
+
# Create configuration
|
69
101
|
def initialize
|
70
102
|
initialize_configuration
|
71
103
|
end
|
@@ -1,10 +1,16 @@
|
|
1
|
+
# Aruba
|
1
2
|
module Aruba
|
3
|
+
# Basic Configuration
|
4
|
+
#
|
2
5
|
class BasicConfiguration
|
3
6
|
# A configuration option
|
7
|
+
#
|
8
|
+
# @private
|
4
9
|
class Option
|
5
10
|
attr_accessor :name, :value
|
6
11
|
attr_reader :default_value
|
7
12
|
|
13
|
+
# Create option
|
8
14
|
def initialize(opts = {})
|
9
15
|
name = opts[:name]
|
10
16
|
value = opts[:value]
|
@@ -17,6 +23,7 @@ module Aruba
|
|
17
23
|
@default_value = value
|
18
24
|
end
|
19
25
|
|
26
|
+
# Compare option
|
20
27
|
def ==(other)
|
21
28
|
name == other.name && value == other.value
|
22
29
|
end
|
data/lib/aruba/cli.rb
CHANGED
data/lib/aruba/command.rb
CHANGED
@@ -1,14 +1,32 @@
|
|
1
|
+
require 'delegate'
|
1
2
|
require 'aruba/processes/spawn_process'
|
2
3
|
require 'aruba/processes/in_process'
|
3
4
|
require 'aruba/processes/debug_process'
|
4
5
|
|
6
|
+
# Aruba
|
5
7
|
module Aruba
|
8
|
+
# Command
|
9
|
+
#
|
10
|
+
# This class is not meant for direct use - Command.new, though it's API is
|
11
|
+
# public. As it is just a wrapper class, have a look at `BasicProcess` and
|
12
|
+
# the like for the public API.
|
13
|
+
#
|
14
|
+
# @see BasicProcess
|
15
|
+
# @see SpawnProcess
|
16
|
+
#
|
17
|
+
# @private
|
6
18
|
class Command < SimpleDelegator
|
19
|
+
private
|
20
|
+
|
21
|
+
attr_reader :event_bus
|
22
|
+
|
23
|
+
public
|
24
|
+
|
25
|
+
# rubocop:disable Metrics/MethodLength
|
7
26
|
def initialize(command, opts = {})
|
8
27
|
launchers = []
|
9
28
|
launchers << Processes::DebugProcess
|
10
29
|
launchers << Processes::InProcess
|
11
|
-
launchers << Processes::NullProcess
|
12
30
|
launchers << Processes::SpawnProcess
|
13
31
|
|
14
32
|
launcher = launchers.find { |l| l.match? opts[:mode] }
|
@@ -23,8 +41,36 @@ module Aruba
|
|
23
41
|
opts.fetch(:stop_signal),
|
24
42
|
opts.fetch(:startup_wait_time)
|
25
43
|
)
|
44
|
+
|
45
|
+
@event_bus = opts.fetch(:event_bus)
|
26
46
|
rescue KeyError => e
|
27
47
|
raise ArgumentError, e.message
|
28
48
|
end
|
49
|
+
# rubocop:enable Metrics/MethodLength
|
50
|
+
|
51
|
+
# Stop command
|
52
|
+
def stop(*)
|
53
|
+
__getobj__.stop
|
54
|
+
event_bus.notify Events::CommandStopped.new(self)
|
55
|
+
|
56
|
+
self
|
57
|
+
end
|
58
|
+
|
59
|
+
# Terminate command
|
60
|
+
def terminate(*)
|
61
|
+
__getobj__.terminate
|
62
|
+
event_bus.notify Events::CommandStopped.new(self)
|
63
|
+
|
64
|
+
self
|
65
|
+
end
|
66
|
+
|
67
|
+
# Start command
|
68
|
+
def start
|
69
|
+
__getobj__.start
|
70
|
+
event_bus.notify Events::CommandStarted.new(self)
|
71
|
+
|
72
|
+
self
|
73
|
+
end
|
74
|
+
alias_method :run!, :start
|
29
75
|
end
|
30
76
|
end
|