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.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/History.md +21 -1
  4. data/aruba.gemspec +1 -0
  5. data/features/api/command/find_command.feature +83 -0
  6. data/features/api/command/last_command_started.feature +50 -0
  7. data/features/api/command/last_command_stopped.feature +89 -0
  8. data/features/api/command/run.feature +259 -0
  9. data/features/api/command/stop.feature +53 -1
  10. data/features/api/text/replace_variables.feature +1 -1
  11. data/features/getting_started/run_commands.feature +177 -0
  12. data/features/matchers/file/be_existing_executable.feature +87 -0
  13. data/features/{integration/rspec/getting_started.feature → rspec/integration.feature} +31 -0
  14. data/fixtures/getting-started-app/Gemfile +1 -1
  15. data/lib/aruba.rb +0 -19
  16. data/lib/aruba/api.rb +2 -0
  17. data/lib/aruba/api/command.rb +103 -44
  18. data/lib/aruba/api/core.rb +13 -8
  19. data/lib/aruba/api/deprecated.rb +26 -4
  20. data/lib/aruba/api/environment.rb +21 -13
  21. data/lib/aruba/api/filesystem.rb +13 -0
  22. data/lib/aruba/api/rvm.rb +5 -0
  23. data/lib/aruba/api/text.rb +7 -1
  24. data/lib/aruba/aruba_path.rb +6 -0
  25. data/lib/aruba/basic_configuration.rb +35 -3
  26. data/lib/aruba/basic_configuration/option.rb +7 -0
  27. data/lib/aruba/cli.rb +4 -0
  28. data/lib/aruba/command.rb +47 -1
  29. data/lib/aruba/config.rb +15 -2
  30. data/lib/aruba/config_wrapper.rb +49 -8
  31. data/lib/aruba/console.rb +4 -1
  32. data/lib/aruba/console/help.rb +2 -0
  33. data/lib/aruba/contracts/absolute_path.rb +7 -0
  34. data/lib/aruba/contracts/enum.rb +5 -0
  35. data/lib/aruba/contracts/is_power_of_two.rb +9 -2
  36. data/lib/aruba/contracts/relative_path.rb +7 -0
  37. data/lib/aruba/cucumber/command.rb +6 -9
  38. data/lib/aruba/cucumber/file.rb +1 -1
  39. data/lib/aruba/cucumber/hooks.rb +36 -29
  40. data/lib/aruba/errors.rb +16 -1
  41. data/lib/aruba/events.rb +39 -0
  42. data/lib/aruba/extensions/string/strip.rb +1 -0
  43. data/lib/aruba/file_size.rb +11 -0
  44. data/lib/aruba/hooks.rb +2 -0
  45. data/lib/aruba/in_config_wrapper.rb +24 -0
  46. data/lib/aruba/in_process.rb +2 -0
  47. data/lib/aruba/initializer.rb +37 -0
  48. data/lib/aruba/matchers/base/base_matcher.rb +2 -0
  49. data/lib/aruba/matchers/base/object_formatter.rb +4 -0
  50. data/lib/aruba/matchers/collection/all.rb +2 -0
  51. data/lib/aruba/matchers/collection/include_an_object.rb +2 -0
  52. data/lib/aruba/matchers/command/have_exit_status.rb +1 -1
  53. data/lib/aruba/matchers/command/have_finished_in_time.rb +1 -10
  54. data/lib/aruba/matchers/command/have_output.rb +1 -10
  55. data/lib/aruba/matchers/command/have_output_on_stderr.rb +1 -10
  56. data/lib/aruba/matchers/command/have_output_on_stdout.rb +1 -10
  57. data/lib/aruba/matchers/file/be_an_existing_executable.rb +37 -0
  58. data/lib/aruba/platform.rb +4 -0
  59. data/lib/aruba/platforms/announcer.rb +225 -0
  60. data/lib/aruba/platforms/aruba_file_creator.rb +4 -0
  61. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +4 -0
  62. data/lib/aruba/{aruba_logger.rb → platforms/aruba_logger.rb} +4 -0
  63. data/lib/aruba/platforms/command_monitor.rb +229 -0
  64. data/lib/aruba/platforms/determine_disk_usage.rb +5 -0
  65. data/lib/aruba/platforms/determine_file_size.rb +9 -0
  66. data/lib/aruba/platforms/disk_usage_calculator.rb +9 -0
  67. data/lib/aruba/platforms/local_environment.rb +12 -0
  68. data/lib/aruba/platforms/simple_table.rb +11 -0
  69. data/lib/aruba/platforms/unix_command_string.rb +3 -0
  70. data/lib/aruba/platforms/unix_environment_variables.rb +3 -0
  71. data/lib/aruba/platforms/unix_platform.rb +20 -2
  72. data/lib/aruba/platforms/unix_which.rb +6 -2
  73. data/lib/aruba/platforms/windows_command_string.rb +7 -0
  74. data/lib/aruba/platforms/windows_environment_variables.rb +2 -0
  75. data/lib/aruba/platforms/windows_platform.rb +3 -0
  76. data/lib/aruba/platforms/windows_which.rb +6 -2
  77. data/lib/aruba/processes/basic_process.rb +20 -5
  78. data/lib/aruba/processes/debug_process.rb +3 -1
  79. data/lib/aruba/processes/in_process.rb +18 -2
  80. data/lib/aruba/processes/spawn_process.rb +14 -13
  81. data/lib/aruba/rspec.rb +34 -23
  82. data/lib/aruba/runtime.rb +65 -6
  83. data/lib/aruba/setup.rb +87 -0
  84. data/lib/aruba/version.rb +1 -1
  85. data/spec/aruba/api_spec.rb +13 -36
  86. data/spec/aruba/{config_wrapper_spec.rb → in_config_wrapper_spec.rb} +1 -1
  87. data/spec/aruba/spawn_process_spec.rb +9 -14
  88. data/spec/support/configs/pry.rb +3 -0
  89. data/spec/support/shared_contexts/aruba.rb +1 -0
  90. metadata +40 -14
  91. data/features/getting_started/supported_programming_languages.feature +0 -89
  92. data/lib/aruba/announcer.rb +0 -219
  93. data/lib/aruba/matchers/rspec.rb +0 -0
  94. data/lib/aruba/process_monitor.rb +0 -201
  95. data/lib/aruba/processes/null_process.rb +0 -26
@@ -1,8 +1,12 @@
1
1
  require 'aruba/platform'
2
2
 
3
+ # Aruba
3
4
  module Aruba
5
+ # Platforms
4
6
  module Platforms
5
7
  # Implement `which(command)` for UNIX/Linux
8
+ #
9
+ # @private
6
10
  class UnixWhich
7
11
  # Bail out because this should never be reached
8
12
  class DefaultWhich
@@ -22,7 +26,7 @@ module Aruba
22
26
  end
23
27
 
24
28
  def call(program, path)
25
- return File.expand_path(program) if Aruba.platform.executable_file?(program)
29
+ return File.expand_path(program) if Aruba.platform.executable?(program)
26
30
 
27
31
  nil
28
32
  end
@@ -43,7 +47,7 @@ module Aruba
43
47
  next unless Aruba.platform.exist?(dir) # In case of bogus second argument
44
48
 
45
49
  found = Dir[File.join(dir, program)].first
46
- return found if found && Aruba.platform.executable_file?(found)
50
+ return found if found && Aruba.platform.executable?(found)
47
51
  end
48
52
 
49
53
  nil
@@ -1,13 +1,20 @@
1
1
  require 'delegate'
2
2
 
3
+ # Aruba
3
4
  module Aruba
5
+ # Platforms
4
6
  module Platforms
5
7
  # This is a command which should be run
8
+ #
9
+ # This adds `cmd.exec` in front of commmand
10
+ #
11
+ # @private
6
12
  class WindowsCommandString < SimpleDelegator
7
13
  def initialize(cmd)
8
14
  __setobj__ format('%s /c "%s"', Aruba.platform.which('cmd.exe'), cmd)
9
15
  end
10
16
 
17
+ # Convert to array
11
18
  def to_a
12
19
  Shellwords.split __getobj__
13
20
  end
@@ -1,6 +1,8 @@
1
1
  require 'aruba/platforms/unix_environment_variables'
2
2
 
3
+ # Aruba
3
4
  module Aruba
5
+ # Platforms
4
6
  module Platforms
5
7
  # Windows is case-insensitive when it accesses its environment variables.
6
8
  # That means that at the Windows command line:
@@ -5,6 +5,7 @@ require 'aruba/platforms/windows_command_string'
5
5
  require 'aruba/platforms/windows_environment_variables'
6
6
  require 'aruba/platforms/windows_which'
7
7
 
8
+ # Aruba
8
9
  module Aruba
9
10
  # This abstracts OS-specific things
10
11
  module Platforms
@@ -15,6 +16,8 @@ module Aruba
15
16
  # any further notice.
16
17
  #
17
18
  # This includes all methods for the Windows platform
19
+ #
20
+ # @private
18
21
  class WindowsPlatform < UnixPlatform
19
22
  def self.match?
20
23
  FFI::Platform.windows?
@@ -1,8 +1,12 @@
1
1
  require 'aruba/platform'
2
2
 
3
+ # Aruba
3
4
  module Aruba
5
+ # Platforms
4
6
  module Platforms
5
7
  # Implement `which(command)` for windows
8
+ #
9
+ # @private
6
10
  class WindowsWhich
7
11
  # Bail out because this should never be reached
8
12
  class DefaultWhich
@@ -25,7 +29,7 @@ module Aruba
25
29
  # Expand `#path_exts`
26
30
  found = Dir[program].first
27
31
 
28
- return File.expand_path(found) if found && Aruba.platform.executable_file?(found)
32
+ return File.expand_path(found) if found && Aruba.platform.executable?(found)
29
33
  nil
30
34
  end
31
35
  end
@@ -53,7 +57,7 @@ module Aruba
53
57
  found = Dir[file].first
54
58
 
55
59
  # Convert all forward slashes to backslashes if supported
56
- if found && Aruba.platform.executable_file?(found)
60
+ if found && Aruba.platform.executable?(found)
57
61
  found.tr!(File::SEPARATOR, File::ALT_SEPARATOR)
58
62
  return found
59
63
  end
@@ -1,7 +1,9 @@
1
1
  require 'aruba/platform'
2
2
  require 'shellwords'
3
3
 
4
+ # Aruba
4
5
  module Aruba
6
+ # Processes
5
7
  module Processes
6
8
  # Basic Process
7
9
  #
@@ -9,9 +11,9 @@ module Aruba
9
11
  #
10
12
  # @private
11
13
  class BasicProcess
12
- attr_reader :exit_status, :environment, :startup_wait_time
14
+ attr_reader :exit_status, :environment, :working_directory, :main_class, :io_wait_timeout, :exit_timeout, :startup_wait_time
13
15
 
14
- def initialize(cmd, exit_timeout, io_wait, working_directory, environment = ENV.to_hash.dup, main_class = nil, stop_signal = nil, startup_wait_time = 0)
16
+ 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)
15
17
  @cmd = cmd
16
18
  @working_directory = working_directory
17
19
  @environment = environment
@@ -20,8 +22,10 @@ module Aruba
20
22
  @stop_signal = stop_signal
21
23
  @startup_wait_time = startup_wait_time
22
24
 
23
- @exit_timeout = exit_timeout
24
- @io_wait = io_wait
25
+ @exit_timeout = exit_timeout
26
+ @io_wait_timeout = io_wait_timeout
27
+
28
+ @started = false
25
29
  end
26
30
 
27
31
  # Return command line
@@ -67,9 +71,20 @@ module Aruba
67
71
  NotImplementedError
68
72
  end
69
73
 
74
+ # Restart a command
75
+ def restart
76
+ stop
77
+ start
78
+ end
79
+
70
80
  # Was process already stopped
71
81
  def stopped?
72
- @stopped == true
82
+ @started == false
83
+ end
84
+
85
+ # Was process already started
86
+ def started?
87
+ @started == true
73
88
  end
74
89
 
75
90
  # Does the process failed to stop in time
@@ -1,6 +1,8 @@
1
1
  require 'aruba/processes/spawn_process'
2
2
 
3
+ # Aruba
3
4
  module Aruba
5
+ # Processes
4
6
  module Processes
5
7
  # Run your command in `systemd()` to make debugging it easier
6
8
  #
@@ -57,7 +59,7 @@ module Aruba
57
59
 
58
60
  # Stop process
59
61
  def stop(*)
60
- @stopped = true
62
+ @started = false
61
63
 
62
64
  @exit_status
63
65
  end
@@ -3,7 +3,9 @@ require 'stringio'
3
3
  require 'aruba/processes/basic_process'
4
4
  require 'aruba/platform'
5
5
 
6
+ # Aruba
6
7
  module Aruba
8
+ # Platforms
7
9
  module Processes
8
10
  # Run command in your ruby process
9
11
  #
@@ -20,6 +22,9 @@ module Aruba
20
22
 
21
23
  attr_reader :exit_status
22
24
 
25
+ # Fake Kernel module of ruby
26
+ #
27
+ # @private
23
28
  class FakeKernel
24
29
  attr_reader :exitstatus
25
30
 
@@ -40,7 +45,7 @@ module Aruba
40
45
  # @private
41
46
  attr_reader :main_class
42
47
 
43
- def initialize(cmd, exit_timeout, io_wait, working_directory, environment = ENV.to_hash.dup, main_class = nil, stop_signal = nil, startup_wait_time = 0)
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)
44
49
  @cmd = cmd
45
50
  @argv = arguments
46
51
  @stdin = StringIO.new
@@ -51,6 +56,7 @@ module Aruba
51
56
  super
52
57
  end
53
58
 
59
+ # Start command
54
60
  def start
55
61
  fail "You need to call aruba.config.main_class = YourMainClass" unless main_class
56
62
 
@@ -67,33 +73,43 @@ module Aruba
67
73
  end
68
74
  end
69
75
 
76
+ # Stop command
70
77
  def stop(*)
71
- @stopped = true
78
+ @started = false
72
79
  @exit_status = @kernel.exitstatus
73
80
  end
74
81
 
82
+ # Access stdin
75
83
  def stdin
76
84
  @stdin.string
77
85
  end
78
86
 
87
+ # Access stdout
79
88
  def stdout(*)
80
89
  @stdout.string
81
90
  end
82
91
 
92
+ # Access stderr
83
93
  def stderr(*)
84
94
  @stderr.string
85
95
  end
86
96
 
97
+ # Write strint to stdin
98
+ #
99
+ # @param [String] input
100
+ # Write string to stdin in
87
101
  def write(input)
88
102
  @stdin.write input
89
103
  end
90
104
 
105
+ # Close io
91
106
  def close_io(name)
92
107
  fail ArgumentError, 'Only stdin stdout and stderr are allowed to close' unless [:stdin, :stdout, :stderr].include? name
93
108
 
94
109
  get_instance_variable(name.to_sym).close
95
110
  end
96
111
 
112
+ # Terminate program
97
113
  def terminate
98
114
  stop
99
115
  end
@@ -6,7 +6,9 @@ require 'aruba/errors'
6
6
  require 'aruba/processes/basic_process'
7
7
  require 'aruba/platform'
8
8
 
9
+ # Aruba
9
10
  module Aruba
11
+ # Platforms
10
12
  module Processes
11
13
  # Spawn a process for command
12
14
  #
@@ -29,12 +31,12 @@ module Aruba
29
31
  # @params [Integer] exit_timeout
30
32
  # The timeout until we expect the command to be finished
31
33
  #
32
- # @params [Integer] io_wait
34
+ # @params [Integer] io_wait_timeout
33
35
  # The timeout until we expect the io to be finished
34
36
  #
35
37
  # @params [String] working_directory
36
38
  # The directory where the command will be executed
37
- def initialize(cmd, exit_timeout, io_wait, working_directory, environment = ENV.to_hash.dup, main_class = nil, stop_signal = nil, startup_wait_time = 0)
39
+ 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)
38
40
  super
39
41
 
40
42
  @process = nil
@@ -50,6 +52,12 @@ module Aruba
50
52
  # rubocop:disable Metrics/MethodLength
51
53
  # rubocop:disable Metrics/CyclomaticComplexity
52
54
  def start
55
+ # rubocop:disable Metrics/LineLength
56
+ fail CommandAlreadyStartedError, %(Command "#{commandline}" has already been started. Please `#stop` the command first and `#start` it again. Alternatively use `#restart`.\n#{caller.join("\n")}) if started?
57
+ # rubocop:enable Metrics/LineLength
58
+
59
+ @started = true
60
+
53
61
  # gather fully qualified path
54
62
  cmd = Aruba.platform.which(command, environment['PATH'])
55
63
 
@@ -157,6 +165,7 @@ module Aruba
157
165
  self
158
166
  end
159
167
 
168
+ # Close io
160
169
  def close_io(name)
161
170
  return if stopped?
162
171
 
@@ -167,8 +176,8 @@ module Aruba
167
176
  end
168
177
  end
169
178
 
170
- # rubocop:disable Metrics/MethodLength
171
- def stop(reader)
179
+ # Stop command
180
+ def stop(*)
172
181
  return @exit_status if stopped?
173
182
 
174
183
  begin
@@ -178,15 +187,7 @@ module Aruba
178
187
  end
179
188
 
180
189
  terminate
181
-
182
- if reader
183
- reader.announce :stdout, @stdout_cache
184
- reader.announce :stderr, @stderr_cache
185
- end
186
-
187
- @exit_status
188
190
  end
189
- # rubocop:enable Metrics/MethodLength
190
191
 
191
192
  # Wait for command to finish
192
193
  def wait
@@ -216,7 +217,7 @@ module Aruba
216
217
  # @stdout_file = nil
217
218
  # @stderr_file = nil
218
219
 
219
- @stopped = true
220
+ @started = false
220
221
 
221
222
  @exit_status
222
223
  end
data/lib/aruba/rspec.rb CHANGED
@@ -21,6 +21,9 @@ RSpec.configure do |config|
21
21
  end
22
22
 
23
23
  example.run
24
+
25
+ next unless self.class.include? Aruba::Api
26
+ stop_all_commands
24
27
  end
25
28
 
26
29
  if Aruba::VERSION >= '1.0.0'
@@ -42,37 +45,45 @@ RSpec.configure do |config|
42
45
  next unless self.class.include?(Aruba::Api)
43
46
 
44
47
  if example.metadata[:announce_environment]
45
- Aruba.platform.deprecated 'announce_environment is deprecated. Use announce_modified_environment instead'
48
+ Aruba.platform.deprecated 'announce_environment is deprecated. Use announce_changed_environment instead'
49
+
50
+ aruba.announcer.activate(:changed_environment)
51
+ end
52
+
53
+ aruba.announcer.activate(:full_environment) if example.metadata[:announce_full_environment]
54
+ aruba.announcer.activate(:changed_environment) if example.metadata[:announce_changed_environment]
55
+
56
+ if example.metadata[:announce_modified_environment]
57
+ Aruba.platform.deprecated 'announce_modified_environment is deprecated. Use announce_changed_environment instead'
46
58
 
47
- announcer.activate(:modified_environment)
59
+ aruba.announcer.activate(:changed_environment)
48
60
  end
49
61
 
50
- announcer.activate(:full_environment) if example.metadata[:announce_full_environment]
51
- announcer.activate(:modified_environment) if example.metadata[:announce_modified_environment]
52
- announcer.activate(:command) if example.metadata[:announce_command]
53
- announcer.activate(:directory) if example.metadata[:announce_directory]
54
- announcer.activate(:stdout) if example.metadata[:announce_stdout]
55
- announcer.activate(:stderr) if example.metadata[:announce_stderr]
56
- announcer.activate(:timeout) if example.metadata[:announce_timeout]
57
- announcer.activate(:wait_time) if example.metadata[:announce_wait_time]
58
- announcer.activate(:stop_signal) if example.metadata[:announce_stop_signal]
62
+ aruba.announcer.activate(:command) if example.metadata[:announce_command]
63
+ aruba.announcer.activate(:directory) if example.metadata[:announce_directory]
64
+ aruba.announcer.activate(:full_environment) if example.metadata[:announce_full_environment]
65
+ aruba.announcer.activate(:stderr) if example.metadata[:announce_stderr]
66
+ aruba.announcer.activate(:stdout) if example.metadata[:announce_stdout]
67
+ aruba.announcer.activate(:stop_signal) if example.metadata[:announce_stop_signal]
68
+ aruba.announcer.activate(:timeout) if example.metadata[:announce_timeout]
69
+ aruba.announcer.activate(:wait_time) if example.metadata[:announce_wait_time]
59
70
 
60
71
  if example.metadata[:announce_output]
61
- announcer.activate(:stderr)
62
- announcer.activate(:stdout)
72
+ aruba.announcer.activate(:stderr)
73
+ aruba.announcer.activate(:stdout)
63
74
  end
64
75
 
65
76
  if example.metadata[:announce]
66
- announcer.activate(:stderr)
67
- announcer.activate(:stdout)
68
- announcer.activate(:environment)
69
- announcer.activate(:modified_environment)
70
- announcer.activate(:full_environment)
71
- announcer.activate(:command)
72
- announcer.activate(:directory)
73
- announcer.activate(:stop_signal)
74
- announcer.activate(:timeout)
75
- announcer.activate(:wait_time)
77
+ aruba.announcer.activate(:changed_environment)
78
+ aruba.announcer.activate(:command)
79
+ aruba.announcer.activate(:directory)
80
+ aruba.announcer.activate(:environment)
81
+ aruba.announcer.activate(:full_environment)
82
+ aruba.announcer.activate(:stderr)
83
+ aruba.announcer.activate(:stdout)
84
+ aruba.announcer.activate(:stop_signal)
85
+ aruba.announcer.activate(:timeout)
86
+ aruba.announcer.activate(:wait_time)
76
87
  end
77
88
  end
78
89
 
data/lib/aruba/runtime.rb CHANGED
@@ -1,18 +1,77 @@
1
1
  require 'aruba/config'
2
- require 'aruba/aruba_logger'
2
+ require 'aruba/aruba_path'
3
+ require 'aruba/config_wrapper'
4
+ require 'aruba/events'
5
+ require 'event/bus'
3
6
 
4
7
  module Aruba
8
+ # Runtime of aruba
9
+ #
10
+ # Most methods are considered private. Please look for `(private)` in the
11
+ # attribute descriptions. Only a few like `#current_directory`,
12
+ # '#root_directory` and `#config` are considered to be part of the public
13
+ # API.
5
14
  class Runtime
6
- attr_reader :config, :current_directory, :environment, :root_directory, :logger
15
+ # @!attribute [r] current_directory
16
+ # Returns the current working directory
17
+ #
18
+ # @!attribute [r] root_directory
19
+ # Returns the root directory of aruba
20
+ attr_reader :current_directory, :root_directory
21
+
22
+ # @!attribute [r] config
23
+ # Access configuration of aruba
24
+ #
25
+ # @!attribute [r] environment
26
+ # Access environment of aruba (private)
27
+ #
28
+ # @!attribute [r] logger
29
+ # Logger of aruba (private)
30
+ #
31
+ # @!attribute [r] command_monitor
32
+ # Handler started commands (private)
33
+ #
34
+ # @!attribute [r] announcer
35
+ # Announce information
36
+ #
37
+ # @!attribute [r] event_bus
38
+ # Handle events (private)
39
+ #
40
+ attr_accessor :config, :environment, :logger, :command_monitor, :announcer, :event_bus
41
+
42
+ def initialize(opts = {})
43
+ @environment = opts.fetch(:environment, Aruba.platform.environment_variables)
44
+ @event_bus = ::Event::Bus.new(::Event::NameResolver.new(Aruba::Events))
45
+ @announcer = opts.fetch(:announcer, Aruba.platform.announcer.new)
7
46
 
8
- def initialize
9
- @config = Aruba.config.make_copy
47
+ @config = opts.fetch(:config, ConfigWrapper.new(Aruba.config.make_copy, @event_bus))
10
48
  @current_directory = ArubaPath.new(@config.working_directory)
11
49
  @root_directory = ArubaPath.new(@config.root_directory)
12
- @environment = Aruba.platform.environment_variables
13
50
 
14
- @logger = ArubaLogger.new
51
+ if Aruba::VERSION < '1'
52
+ @command_monitor = opts.fetch(:command_monitor, Aruba.platform.command_monitor.new(:announcer => @announcer))
53
+ else
54
+ @command_monitor = opts.fetch(:command_monitor, Aruba.platform.command_monitor.new)
55
+ end
56
+
57
+ @logger = opts.fetch(:logger, Aruba.platform.logger.new)
15
58
  @logger.mode = @config.log_level
59
+
60
+ @setup_done = false
61
+ end
62
+
63
+ # @private
64
+ #
65
+ # Setup of aruba is finshed. Should be used only internally.
66
+ def setup_done
67
+ @setup_done = true
68
+ end
69
+
70
+ # @private
71
+ #
72
+ # Has aruba already been setup. Should be used only internally.
73
+ def setup_already_done?
74
+ @setup_done == true
16
75
  end
17
76
 
18
77
  # The path to the directory which contains fixtures