aruba 1.0.0 → 1.1.0

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 (150) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +72 -1
  3. data/CONTRIBUTING.md +11 -31
  4. data/README.md +1 -2
  5. data/exe/aruba +2 -2
  6. data/lib/aruba.rb +1 -1
  7. data/lib/aruba/api.rb +11 -12
  8. data/lib/aruba/api/bundler.rb +18 -3
  9. data/lib/aruba/api/commands.rb +19 -22
  10. data/lib/aruba/api/core.rb +65 -48
  11. data/lib/aruba/api/environment.rb +13 -5
  12. data/lib/aruba/api/filesystem.rb +69 -39
  13. data/lib/aruba/api/text.rb +15 -3
  14. data/lib/aruba/aruba_path.rb +3 -4
  15. data/lib/aruba/basic_configuration.rb +52 -71
  16. data/lib/aruba/basic_configuration/option.rb +2 -2
  17. data/lib/aruba/cli.rb +9 -6
  18. data/lib/aruba/command.rb +4 -4
  19. data/lib/aruba/config/jruby.rb +9 -9
  20. data/lib/aruba/config_wrapper.rb +17 -2
  21. data/lib/aruba/configuration.rb +37 -32
  22. data/lib/aruba/console.rb +11 -13
  23. data/lib/aruba/console/help.rb +9 -6
  24. data/lib/aruba/contracts/absolute_path.rb +2 -2
  25. data/lib/aruba/contracts/enum.rb +1 -1
  26. data/lib/aruba/contracts/is_power_of_two.rb +3 -3
  27. data/lib/aruba/contracts/relative_path.rb +2 -2
  28. data/lib/aruba/cucumber.rb +7 -7
  29. data/lib/aruba/cucumber/command.rb +106 -95
  30. data/lib/aruba/cucumber/environment.rb +7 -7
  31. data/lib/aruba/cucumber/file.rb +50 -26
  32. data/lib/aruba/cucumber/hooks.rb +32 -29
  33. data/lib/aruba/cucumber/testing_frameworks.rb +32 -30
  34. data/lib/aruba/event_bus.rb +6 -4
  35. data/lib/aruba/event_bus/name_resolver.rb +12 -11
  36. data/lib/aruba/events.rb +2 -1
  37. data/lib/aruba/file_size.rb +1 -1
  38. data/lib/aruba/generators/script_file.rb +2 -2
  39. data/lib/aruba/hooks.rb +2 -4
  40. data/lib/aruba/in_config_wrapper.rb +8 -5
  41. data/lib/aruba/initializer.rb +14 -12
  42. data/lib/aruba/matchers/base/base_matcher.rb +3 -12
  43. data/lib/aruba/matchers/base/message_indenter.rb +2 -2
  44. data/lib/aruba/matchers/base/object_formatter.rb +2 -5
  45. data/lib/aruba/matchers/collection.rb +1 -1
  46. data/lib/aruba/matchers/collection/all.rb +1 -1
  47. data/lib/aruba/matchers/collection/include_an_object.rb +6 -6
  48. data/lib/aruba/matchers/command.rb +1 -1
  49. data/lib/aruba/matchers/command/be_successfully_executed.rb +6 -4
  50. data/lib/aruba/matchers/command/have_exit_status.rb +3 -1
  51. data/lib/aruba/matchers/command/have_finished_in_time.rb +4 -2
  52. data/lib/aruba/matchers/command/have_output.rb +4 -2
  53. data/lib/aruba/matchers/command/have_output_on_stderr.rb +3 -1
  54. data/lib/aruba/matchers/command/have_output_on_stdout.rb +3 -1
  55. data/lib/aruba/matchers/directory.rb +1 -1
  56. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +2 -2
  57. data/lib/aruba/matchers/directory/have_sub_directory.rb +9 -4
  58. data/lib/aruba/matchers/environment.rb +1 -1
  59. data/lib/aruba/matchers/file.rb +1 -1
  60. data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +1 -1
  61. data/lib/aruba/matchers/file/be_an_existing_executable.rb +2 -2
  62. data/lib/aruba/matchers/file/be_an_existing_file.rb +2 -2
  63. data/lib/aruba/matchers/file/have_file_content.rb +1 -1
  64. data/lib/aruba/matchers/file/have_file_size.rb +5 -3
  65. data/lib/aruba/matchers/file/have_same_file_content.rb +2 -2
  66. data/lib/aruba/matchers/path.rb +1 -1
  67. data/lib/aruba/matchers/path/a_path_matching_pattern.rb +1 -1
  68. data/lib/aruba/matchers/path/be_an_absolute_path.rb +1 -1
  69. data/lib/aruba/matchers/path/be_an_existing_path.rb +1 -1
  70. data/lib/aruba/matchers/path/have_permissions.rb +9 -6
  71. data/lib/aruba/matchers/string.rb +1 -1
  72. data/lib/aruba/matchers/string/include_output_string.rb +1 -1
  73. data/lib/aruba/matchers/string/match_output_string.rb +1 -1
  74. data/lib/aruba/matchers/string/output_string_eq.rb +1 -1
  75. data/lib/aruba/platform.rb +2 -2
  76. data/lib/aruba/platforms/announcer.rb +29 -17
  77. data/lib/aruba/platforms/aruba_file_creator.rb +3 -1
  78. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +7 -2
  79. data/lib/aruba/platforms/aruba_logger.rb +11 -10
  80. data/lib/aruba/platforms/command_monitor.rb +7 -9
  81. data/lib/aruba/platforms/determine_disk_usage.rb +2 -4
  82. data/lib/aruba/platforms/filesystem_status.rb +20 -14
  83. data/lib/aruba/platforms/simple_table.rb +3 -3
  84. data/lib/aruba/platforms/unix_command_string.rb +2 -2
  85. data/lib/aruba/platforms/unix_environment_variables.rb +2 -4
  86. data/lib/aruba/platforms/unix_platform.rb +23 -23
  87. data/lib/aruba/platforms/unix_which.rb +2 -2
  88. data/lib/aruba/platforms/windows_command_string.rb +2 -2
  89. data/lib/aruba/platforms/windows_environment_variables.rb +3 -2
  90. data/lib/aruba/platforms/windows_platform.rb +7 -7
  91. data/lib/aruba/platforms/windows_which.rb +8 -4
  92. data/lib/aruba/processes/basic_process.rb +4 -4
  93. data/lib/aruba/processes/debug_process.rb +5 -3
  94. data/lib/aruba/processes/in_process.rb +10 -8
  95. data/lib/aruba/processes/spawn_process.rb +28 -25
  96. data/lib/aruba/rspec.rb +30 -20
  97. data/lib/aruba/runtime.rb +16 -9
  98. data/lib/aruba/setup.rb +25 -12
  99. data/lib/aruba/version.rb +1 -1
  100. metadata +77 -88
  101. data/.cucumberproignore +0 -3
  102. data/.document +0 -5
  103. data/.github/ISSUE_TEMPLATE.md +0 -48
  104. data/.github/PULL_REQUEST_TEMPLATE.md +0 -41
  105. data/.gitignore +0 -38
  106. data/.rspec +0 -3
  107. data/.rubocop.yml +0 -31
  108. data/.rubocop_todo.yml +0 -262
  109. data/.simplecov +0 -36
  110. data/.travis.yml +0 -62
  111. data/.yardopts +0 -11
  112. data/Dockerfile +0 -67
  113. data/Gemfile +0 -12
  114. data/Rakefile +0 -80
  115. data/TODO.md +0 -13
  116. data/appveyor.yml +0 -29
  117. data/aruba.gemspec +0 -54
  118. data/bin/console +0 -7
  119. data/bin/test +0 -9
  120. data/config/.gitignore +0 -1
  121. data/cucumber.yml +0 -6
  122. data/docker-compose.yml +0 -26
  123. data/fixtures/cli-app/.gitignore +0 -9
  124. data/fixtures/cli-app/.rspec +0 -2
  125. data/fixtures/cli-app/README.md +0 -39
  126. data/fixtures/cli-app/Rakefile +0 -1
  127. data/fixtures/cli-app/bin/aruba-test-cli +0 -6
  128. data/fixtures/cli-app/cli-app.gemspec +0 -25
  129. data/fixtures/cli-app/features/support/aruba.rb +0 -1
  130. data/fixtures/cli-app/features/support/env.rb +0 -1
  131. data/fixtures/cli-app/lib/cli/app.rb +0 -9
  132. data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +0 -15
  133. data/fixtures/cli-app/lib/cli/app/version.rb +0 -5
  134. data/fixtures/cli-app/script/console +0 -14
  135. data/fixtures/cli-app/spec/spec_helper.rb +0 -7
  136. data/fixtures/cli-app/spec/support/aruba.rb +0 -1
  137. data/fixtures/copy/file.txt +0 -1
  138. data/fixtures/empty-app/.gitignore +0 -9
  139. data/fixtures/empty-app/.rspec +0 -2
  140. data/fixtures/empty-app/README.md +0 -24
  141. data/fixtures/empty-app/Rakefile +0 -1
  142. data/fixtures/empty-app/cli-app.gemspec +0 -25
  143. data/fixtures/empty-app/lib/cli/app.rb +0 -7
  144. data/fixtures/empty-app/lib/cli/app/version.rb +0 -5
  145. data/fixtures/getting-started-app/.gitignore +0 -4
  146. data/fixtures/getting-started-app/Gemfile +0 -4
  147. data/fixtures/getting-started-app/README.md +0 -3
  148. data/fixtures/getting-started-app/features/support/env.rb +0 -1
  149. data/lib/aruba/extensions/string/strip.rb +0 -25
  150. data/lib/aruba/tasks/docker_helpers.rb +0 -154
@@ -1,4 +1,4 @@
1
- require 'aruba/file_size'
1
+ require "aruba/file_size"
2
2
 
3
3
  module Aruba
4
4
  module Platforms
@@ -7,9 +7,7 @@ module Aruba
7
7
  # @private
8
8
  class DetermineDiskUsage
9
9
  def call(paths)
10
- size = paths.flatten.map do |path|
11
- minimum_disk_space_used path
12
- end.inject(0, &:+)
10
+ size = paths.flatten.sum { |path| minimum_disk_space_used path }
13
11
 
14
12
  FileSize.new(size)
15
13
  end
@@ -1,28 +1,34 @@
1
- require 'forwardable'
2
-
3
1
  module Aruba
4
2
  module Platforms
5
3
  # File System Status object
6
4
  #
7
5
  # This is a wrapper for File::Stat returning only a subset of information.
8
6
  class FilesystemStatus
9
- METHODS = [
10
- :executable?,
11
- :ctime,
12
- :atime,
13
- :mtime,
14
- :size
15
- ].freeze
16
-
17
- extend Forwardable
18
-
19
7
  private
20
8
 
21
9
  attr_reader :status
22
10
 
23
11
  public
24
12
 
25
- def_delegators :@status, *METHODS
13
+ def executable?
14
+ status.executable?
15
+ end
16
+
17
+ def ctime
18
+ status.ctime
19
+ end
20
+
21
+ def atime
22
+ status.atime
23
+ end
24
+
25
+ def mtime
26
+ status.mtime
27
+ end
28
+
29
+ def size
30
+ status.size
31
+ end
26
32
 
27
33
  def initialize(path)
28
34
  @status = File::Stat.new(path)
@@ -30,7 +36,7 @@ module Aruba
30
36
 
31
37
  # Return permissions
32
38
  def mode
33
- format('%o', status.mode)[-4, 4].gsub(/^0*/, '')
39
+ format("%o", status.mode)[-4, 4].gsub(/^0*/, "")
34
40
  end
35
41
 
36
42
  # Return owner
@@ -27,12 +27,12 @@ module Aruba
27
27
  # The table
28
28
  def to_s
29
29
  longest_key = hash.keys.map(&:to_s).max_by(&:length)
30
- return '' if longest_key.nil?
30
+ return "" if longest_key.nil?
31
31
 
32
32
  name_size = longest_key.length
33
33
 
34
- rows = hash.each_with_object([]) do |(k, v), a|
35
- a << format("# %-#{name_size}s => %s", k, v)
34
+ rows = hash.map do |k, v|
35
+ format("# %-#{name_size}s => %s", k, v)
36
36
  end
37
37
 
38
38
  if opts[:sort] == true
@@ -1,5 +1,5 @@
1
- require 'delegate'
2
- require 'shellwords'
1
+ require "delegate"
2
+ require "shellwords"
3
3
 
4
4
  # Aruba
5
5
  module Aruba
@@ -9,11 +9,9 @@ module Aruba
9
9
  attr_reader :other_env, :block
10
10
 
11
11
  def initialize(other_env, &block)
12
- @other_env = other_env.to_h.each_with_object({}) { |(k, v), a| a[k] = v.to_s }
12
+ @other_env = other_env.to_h.transform_values(&:to_s)
13
13
 
14
- @block = if block_given?
15
- block
16
- end
14
+ @block = block
17
15
  end
18
16
 
19
17
  def call(env)
@@ -1,20 +1,20 @@
1
- require 'rbconfig'
2
- require 'pathname'
3
-
4
- require 'aruba/aruba_path'
5
-
6
- require 'aruba/platforms/simple_table'
7
- require 'aruba/platforms/unix_command_string'
8
- require 'aruba/platforms/unix_which'
9
- require 'aruba/platforms/determine_file_size'
10
- require 'aruba/platforms/determine_disk_usage'
11
- require 'aruba/platforms/aruba_file_creator'
12
- require 'aruba/platforms/aruba_fixed_size_file_creator'
13
- require 'aruba/platforms/local_environment'
14
- require 'aruba/platforms/aruba_logger'
15
- require 'aruba/platforms/announcer'
16
- require 'aruba/platforms/command_monitor'
17
- require 'aruba/platforms/filesystem_status'
1
+ require "rbconfig"
2
+ require "pathname"
3
+
4
+ require "aruba/aruba_path"
5
+
6
+ require "aruba/platforms/simple_table"
7
+ require "aruba/platforms/unix_command_string"
8
+ require "aruba/platforms/unix_which"
9
+ require "aruba/platforms/determine_file_size"
10
+ require "aruba/platforms/determine_disk_usage"
11
+ require "aruba/platforms/aruba_file_creator"
12
+ require "aruba/platforms/aruba_fixed_size_file_creator"
13
+ require "aruba/platforms/local_environment"
14
+ require "aruba/platforms/aruba_logger"
15
+ require "aruba/platforms/announcer"
16
+ require "aruba/platforms/command_monitor"
17
+ require "aruba/platforms/filesystem_status"
18
18
 
19
19
  # Aruba
20
20
  module Aruba
@@ -31,7 +31,7 @@ module Aruba
31
31
  # @private
32
32
  class UnixPlatform
33
33
  def self.match?
34
- !FFI::Platform.windows?
34
+ !Cucumber::WINDOWS
35
35
  end
36
36
 
37
37
  def environment_variables
@@ -79,7 +79,7 @@ module Aruba
79
79
  end
80
80
 
81
81
  def default_shell
82
- 'bash'
82
+ "bash"
83
83
  end
84
84
 
85
85
  def detect_ruby(cmd)
@@ -91,11 +91,11 @@ module Aruba
91
91
  end
92
92
 
93
93
  def deprecated(msg)
94
- warn(format('%s. Called by %s', msg, caller[1]))
94
+ warn(format("%s. Called by %s", msg, caller[1]))
95
95
  end
96
96
 
97
97
  def current_ruby
98
- ::File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name'])
98
+ ::File.join(RbConfig::CONFIG["bindir"], RbConfig::CONFIG["ruby_install_name"])
99
99
  end
100
100
 
101
101
  def require_matching_files(pattern, base)
@@ -125,7 +125,7 @@ module Aruba
125
125
  def chdir(dir_name, &block)
126
126
  dir_name = ::File.expand_path(dir_name.to_s)
127
127
 
128
- with_environment 'OLDPWD' => getwd, 'PWD' => dir_name do
128
+ with_environment "OLDPWD" => getwd, "PWD" => dir_name do
129
129
  ::Dir.chdir(dir_name, &block)
130
130
  end
131
131
  end
@@ -233,7 +233,7 @@ module Aruba
233
233
  # @param [String] path
234
234
  # The PATH, a string concatenated with ":", e.g. /usr/bin/:/bin on a
235
235
  # UNIX-system
236
- def which(program, path = ENV['PATH'])
236
+ def which(program, path = ENV["PATH"])
237
237
  UnixWhich.new.call(program, path)
238
238
  end
239
239
 
@@ -13,7 +13,7 @@ module Aruba
13
13
  end
14
14
 
15
15
  def call(program, path)
16
- fail %(Invalid input program "#{program}" and/or path "#{path}".)
16
+ raise %(Invalid input program "#{program}" and/or path "#{path}".)
17
17
  end
18
18
  end
19
19
 
@@ -70,7 +70,7 @@ module Aruba
70
70
  #
71
71
  # @param [String] path
72
72
  # ENV['PATH']
73
- def call(program, path = ENV['PATH'])
73
+ def call(program, path = ENV["PATH"])
74
74
  raise ArgumentError, "ENV['PATH'] cannot be empty" if path.nil? || path.empty?
75
75
 
76
76
  program = program.to_s
@@ -15,7 +15,7 @@ module Aruba
15
15
 
16
16
  # Convert to array
17
17
  def to_a
18
- [cmd_path, '/c', [escaped_command, *escaped_arguments].join(' ')]
18
+ [cmd_path, "/c", [escaped_command, *escaped_arguments].join(" ")]
19
19
  end
20
20
 
21
21
  private
@@ -30,7 +30,7 @@ module Aruba
30
30
  end
31
31
 
32
32
  def cmd_path
33
- Aruba.platform.which('cmd.exe')
33
+ Aruba.platform.which("cmd.exe")
34
34
  end
35
35
  end
36
36
  end
@@ -1,4 +1,4 @@
1
- require 'aruba/platforms/unix_environment_variables'
1
+ require "aruba/platforms/unix_environment_variables"
2
2
 
3
3
  # Aruba
4
4
  module Aruba
@@ -16,7 +16,8 @@ module Aruba
16
16
  # C:>set PATH
17
17
  # C:>Path=.;.\bin;c:\rubys\ruby-2.1.6-p336\bin;
18
18
  #
19
- # @example If you access environment variables through ENV, you can access values no matter the case of the key:
19
+ # @example If you access environment variables through ENV, you can access
20
+ # values no matter the case of the key:
20
21
  # ENV["Path"] # => ".;.\bin;c:\rubys\ruby-2.1.6-p336\bin;"
21
22
  # ENV["PATH"] # => ".;.\bin;c:\rubys\ruby-2.1.6-p336\bin;"
22
23
  #
@@ -1,9 +1,9 @@
1
- require 'ffi'
1
+ require "cucumber/platform"
2
2
 
3
- require 'aruba/platforms/unix_platform'
4
- require 'aruba/platforms/windows_command_string'
5
- require 'aruba/platforms/windows_environment_variables'
6
- require 'aruba/platforms/windows_which'
3
+ require "aruba/platforms/unix_platform"
4
+ require "aruba/platforms/windows_command_string"
5
+ require "aruba/platforms/windows_environment_variables"
6
+ require "aruba/platforms/windows_which"
7
7
 
8
8
  # Aruba
9
9
  module Aruba
@@ -20,7 +20,7 @@ module Aruba
20
20
  # @private
21
21
  class WindowsPlatform < UnixPlatform
22
22
  def self.match?
23
- FFI::Platform.windows?
23
+ Cucumber::WINDOWS
24
24
  end
25
25
 
26
26
  # @see UnixPlatform#command_string
@@ -34,7 +34,7 @@ module Aruba
34
34
  end
35
35
 
36
36
  # @see UnixPlatform#which
37
- def which(program, path = ENV['PATH'])
37
+ def which(program, path = ENV["PATH"])
38
38
  WindowsWhich.new.call(program, path)
39
39
  end
40
40
 
@@ -13,7 +13,7 @@ module Aruba
13
13
  end
14
14
 
15
15
  def call(program, path)
16
- fail %(Invalid input program "#{program}" and/or path "#{path}".)
16
+ raise %(Invalid input program "#{program}" and/or path "#{path}".)
17
17
  end
18
18
  end
19
19
 
@@ -49,7 +49,7 @@ module Aruba
49
49
  file = File.join(dir, program)
50
50
  # Dir[] doesn't handle backslashes properly, so convert them. Also, if
51
51
  # the program name doesn't have an extension, try them all.
52
- file = file.tr('\\', '/')
52
+ file = file.tr('\\', "/")
53
53
 
54
54
  found = Dir[file].first
55
55
 
@@ -84,7 +84,7 @@ module Aruba
84
84
  #
85
85
  # @param [String] path
86
86
  # ENV['PATH']
87
- def call(program, path = ENV['PATH'])
87
+ def call(program, path = ENV["PATH"])
88
88
  raise ArgumentError, "ENV['PATH'] cannot be empty" if path.nil? || path.empty?
89
89
 
90
90
  program = program.to_s
@@ -96,7 +96,11 @@ module Aruba
96
96
  private
97
97
 
98
98
  def windows_executable_extentions
99
- ENV['PATHEXT'] ? format('.{%s}', ENV['PATHEXT'].tr(';', ',').tr('.', '')).downcase : '.{exe,com,bat}'
99
+ if ENV["PATHEXT"]
100
+ format(".{%s}", ENV["PATHEXT"].tr(";", ",").tr(".", "")).downcase
101
+ else
102
+ ".{exe,com,bat}"
103
+ end
100
104
  end
101
105
  end
102
106
  end
@@ -1,5 +1,5 @@
1
- require 'aruba/platform'
2
- require 'shellwords'
1
+ require "aruba/platform"
2
+ require "shellwords"
3
3
 
4
4
  # Aruba
5
5
  module Aruba
@@ -14,7 +14,7 @@ module Aruba
14
14
  attr_reader :exit_status, :environment, :working_directory, :main_class,
15
15
  :io_wait_timeout, :exit_timeout, :startup_wait_time, :stop_signal
16
16
 
17
- def initialize(cmd, exit_timeout, io_wait_timeout, working_directory,
17
+ def initialize(cmd, exit_timeout, io_wait_timeout, working_directory, # rubocop:disable Metrics/ParameterLists
18
18
  environment = Aruba.platform.environment_variables.hash_from_env,
19
19
  main_class = nil, stop_signal = nil, startup_wait_time = 0)
20
20
  @cmd = cmd
@@ -135,7 +135,7 @@ module Aruba
135
135
  def truncate(string, max_length)
136
136
  return string if string.length <= max_length
137
137
 
138
- string[0, max_length - 1] + ' ...'
138
+ "#{string[0, max_length - 1]} ..."
139
139
  end
140
140
  end
141
141
  end
@@ -1,4 +1,4 @@
1
- require 'aruba/processes/spawn_process'
1
+ require "aruba/processes/spawn_process"
2
2
 
3
3
  # Aruba
4
4
  module Aruba
@@ -41,7 +41,8 @@ module Aruba
41
41
  # @return [String]
42
42
  # A predefined string to make users aware they are using the DebugProcess
43
43
  def stdout(*)
44
- 'This is the debug launcher on STDOUT. If this output is unexpected, please check your setup.'
44
+ "This is the debug launcher on STDOUT." \
45
+ " If this output is unexpected, please check your setup."
45
46
  end
46
47
 
47
48
  # Return stderr
@@ -49,7 +50,8 @@ module Aruba
49
50
  # @return [String]
50
51
  # A predefined string to make users aware they are using the DebugProcess
51
52
  def stderr(*)
52
- 'This is the debug launcher on STDERR. If this output is unexpected, please check your setup.'
53
+ "This is the debug launcher on STDERR." \
54
+ " If this output is unexpected, please check your setup."
53
55
  end
54
56
 
55
57
  # Write to nothing
@@ -1,7 +1,7 @@
1
- require 'shellwords'
2
- require 'stringio'
3
- require 'aruba/processes/basic_process'
4
- require 'aruba/platform'
1
+ require "shellwords"
2
+ require "stringio"
3
+ require "aruba/processes/basic_process"
4
+ require "aruba/platform"
5
5
 
6
6
  # Aruba
7
7
  module Aruba
@@ -46,7 +46,7 @@ module Aruba
46
46
  # @private
47
47
  attr_reader :main_class
48
48
 
49
- def initialize(cmd, exit_timeout, io_wait_timeout, working_directory,
49
+ def initialize(cmd, exit_timeout, io_wait_timeout, working_directory, # rubocop:disable Metrics/ParameterLists
50
50
  environment = Aruba.platform.environment_variables.hash_from_env,
51
51
  main_class = nil, stop_signal = nil, startup_wait_time = 0)
52
52
  @cmd = cmd
@@ -61,14 +61,14 @@ module Aruba
61
61
 
62
62
  # Start command
63
63
  def start
64
- fail 'You need to call aruba.config.main_class = YourMainClass' unless main_class
64
+ raise "You need to call aruba.config.main_class = YourMainClass" unless main_class
65
65
 
66
66
  @started = true
67
67
 
68
68
  Dir.chdir @working_directory do
69
69
  before_run
70
70
 
71
- Aruba.platform.with_environment environment.merge('PWD' => @working_directory) do
71
+ Aruba.platform.with_environment environment.merge("PWD" => @working_directory) do
72
72
  main_class.new(@argv, @stdin, @stdout, @stderr, @kernel).execute!
73
73
  end
74
74
 
@@ -109,7 +109,9 @@ module Aruba
109
109
 
110
110
  # Close io
111
111
  def close_io(name)
112
- fail ArgumentError, 'Only stdin stdout and stderr are allowed to close' unless [:stdin, :stdout, :stderr].include? name
112
+ unless [:stdin, :stdout, :stderr].include? name
113
+ raise ArgumentError, "Only stdin stdout and stderr are allowed to close"
114
+ end
113
115
 
114
116
  get_instance_variable(name.to_sym).close
115
117
  end
@@ -1,10 +1,10 @@
1
- require 'childprocess'
2
- require 'tempfile'
3
- require 'shellwords'
1
+ require "childprocess"
2
+ require "tempfile"
3
+ require "shellwords"
4
4
 
5
- require 'aruba/errors'
6
- require 'aruba/processes/basic_process'
7
- require 'aruba/platform'
5
+ require "aruba/errors"
6
+ require "aruba/processes/basic_process"
7
+ require "aruba/platform"
8
8
 
9
9
  # Aruba
10
10
  module Aruba
@@ -48,7 +48,7 @@ module Aruba
48
48
  #
49
49
  # @param [Numeric] startup_wait_time
50
50
  # The amount of seconds to wait after Aruba has started a command.
51
- def initialize(cmd, exit_timeout, io_wait_timeout, working_directory,
51
+ def initialize(cmd, exit_timeout, io_wait_timeout, working_directory, # rubocop:disable Metrics/ParameterLists
52
52
  environment = Aruba.platform.environment_variables.hash_from_env,
53
53
  main_class = nil, stop_signal = nil, startup_wait_time = 0)
54
54
  super
@@ -63,36 +63,32 @@ module Aruba
63
63
  # @yield [SpawnProcess]
64
64
  # Run code for process which was started
65
65
  #
66
- # rubocop:disable Metrics/MethodLength
67
66
  def start
68
- # rubocop:disable Layout/LineLength
69
67
  if started?
70
- error_message = %(Command "#{commandline}" has already been started. Please `#stop` the command first and `#start` it again. Alternatively use `#restart`.\n#{caller.join("\n")})
71
- fail CommandAlreadyStartedError, error_message
68
+ error_message =
69
+ "Command \"#{commandline}\" has already been started." \
70
+ " Please `#stop` the command first and `#start` it again." \
71
+ " Alternatively use `#restart`."
72
+ raise CommandAlreadyStartedError, error_message
72
73
  end
73
74
 
74
- # rubocop:enable Layout/LineLength
75
-
76
75
  @started = true
77
76
 
78
77
  @process = ChildProcess.build(*command_string.to_a)
79
- @stdout_file = Tempfile.new('aruba-stdout-')
80
- @stderr_file = Tempfile.new('aruba-stderr-')
78
+ @stdout_file = Tempfile.new("aruba-stdout-")
79
+ @stderr_file = Tempfile.new("aruba-stderr-")
81
80
 
82
81
  @stdout_file.sync = true
83
82
  @stderr_file.sync = true
84
83
 
85
- if RUBY_VERSION >= '1.9'
86
- @stdout_file.set_encoding('ASCII-8BIT')
87
- @stderr_file.set_encoding('ASCII-8BIT')
88
- end
84
+ @stdout_file.set_encoding("ASCII-8BIT")
85
+ @stderr_file.set_encoding("ASCII-8BIT")
89
86
 
90
87
  @exit_status = nil
91
88
  @duplex = true
92
89
 
93
90
  before_run
94
91
 
95
- @process.leader = true
96
92
  @process.io.stdout = @stdout_file
97
93
  @process.io.stderr = @stderr_file
98
94
  @process.duplex = @duplex
@@ -113,7 +109,6 @@ module Aruba
113
109
 
114
110
  yield self if block_given?
115
111
  end
116
- # rubocop:enable Metrics/MethodLength
117
112
 
118
113
  # Access to stdin of process
119
114
  def stdin
@@ -236,7 +231,7 @@ module Aruba
236
231
  # The signal, i.e. 'TERM'
237
232
  def send_signal(signal)
238
233
  error_message = %(Command "#{commandline}" with PID "#{pid}" has already stopped.)
239
- fail CommandAlreadyStoppedError, error_message if @process.exited?
234
+ raise CommandAlreadyStoppedError, error_message if @process.exited?
240
235
 
241
236
  Process.kill signal, pid
242
237
  rescue Errno::ESRCH
@@ -267,13 +262,21 @@ module Aruba
267
262
  private
268
263
 
269
264
  def command_string
270
- fail LaunchError, %(Command "#{command}" not found in PATH-variable "#{environment['PATH']}".) if command_path.nil?
265
+ if command_path.nil?
266
+ raise LaunchError,
267
+ %(Command "#{command}" not found in PATH-variable "#{environment['PATH']}".)
268
+ end
271
269
 
272
270
  Aruba.platform.command_string.new(command_path, *arguments)
273
271
  end
274
272
 
275
273
  def command_path
276
- @command_path ||= (Aruba.platform.builtin_shell_commands.include?(command) ? command : Aruba.platform.which(command, environment['PATH']))
274
+ @command_path ||=
275
+ if Aruba.platform.builtin_shell_commands.include?(command)
276
+ command
277
+ else
278
+ Aruba.platform.which(command, environment["PATH"])
279
+ end
277
280
  end
278
281
 
279
282
  def wait_for_io(time_to_wait)
@@ -287,7 +290,7 @@ module Aruba
287
290
  data = file.read
288
291
  file.close
289
292
 
290
- data.force_encoding('UTF-8')
293
+ data.force_encoding("UTF-8")
291
294
  end
292
295
  end
293
296
  end