aruba 0.11.0.pre → 0.11.0.pre2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|