aruba 1.0.0 → 1.0.1

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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +29 -8
  3. data/.rubocop_todo.yml +100 -146
  4. data/CHANGELOG.md +23 -1
  5. data/CONTRIBUTING.md +0 -8
  6. data/Gemfile +3 -1
  7. data/Rakefile +6 -4
  8. data/appveyor.yml +0 -1
  9. data/aruba.gemspec +7 -4
  10. data/fixtures/cli-app/cli-app.gemspec +3 -2
  11. data/fixtures/cli-app/spec/spec_helper.rb +2 -1
  12. data/fixtures/empty-app/cli-app.gemspec +3 -2
  13. data/lib/aruba/api/bundler.rb +1 -1
  14. data/lib/aruba/api/commands.rb +8 -11
  15. data/lib/aruba/api/core.rb +48 -33
  16. data/lib/aruba/api/environment.rb +12 -4
  17. data/lib/aruba/api/filesystem.rb +27 -23
  18. data/lib/aruba/api/text.rb +15 -3
  19. data/lib/aruba/basic_configuration.rb +5 -6
  20. data/lib/aruba/basic_configuration/option.rb +2 -2
  21. data/lib/aruba/cli.rb +4 -1
  22. data/lib/aruba/config_wrapper.rb +17 -2
  23. data/lib/aruba/configuration.rb +27 -12
  24. data/lib/aruba/console.rb +0 -2
  25. data/lib/aruba/console/help.rb +5 -2
  26. data/lib/aruba/contracts/absolute_path.rb +1 -1
  27. data/lib/aruba/contracts/is_power_of_two.rb +2 -2
  28. data/lib/aruba/contracts/relative_path.rb +1 -1
  29. data/lib/aruba/cucumber/command.rb +83 -64
  30. data/lib/aruba/cucumber/file.rb +42 -22
  31. data/lib/aruba/cucumber/hooks.rb +4 -1
  32. data/lib/aruba/cucumber/testing_frameworks.rb +14 -12
  33. data/lib/aruba/event_bus.rb +4 -2
  34. data/lib/aruba/event_bus/name_resolver.rb +9 -8
  35. data/lib/aruba/events.rb +2 -1
  36. data/lib/aruba/hooks.rb +2 -4
  37. data/lib/aruba/in_config_wrapper.rb +8 -5
  38. data/lib/aruba/initializer.rb +5 -3
  39. data/lib/aruba/matchers/base/base_matcher.rb +2 -11
  40. data/lib/aruba/matchers/base/object_formatter.rb +0 -3
  41. data/lib/aruba/matchers/collection/include_an_object.rb +4 -4
  42. data/lib/aruba/matchers/command/be_successfully_executed.rb +3 -1
  43. data/lib/aruba/matchers/command/have_exit_status.rb +3 -1
  44. data/lib/aruba/matchers/command/have_finished_in_time.rb +3 -1
  45. data/lib/aruba/matchers/command/have_output.rb +3 -1
  46. data/lib/aruba/matchers/command/have_output_on_stderr.rb +3 -1
  47. data/lib/aruba/matchers/command/have_output_on_stdout.rb +3 -1
  48. data/lib/aruba/matchers/directory/have_sub_directory.rb +8 -3
  49. data/lib/aruba/matchers/file/have_file_size.rb +4 -2
  50. data/lib/aruba/matchers/path/have_permissions.rb +4 -2
  51. data/lib/aruba/platforms/announcer.rb +18 -6
  52. data/lib/aruba/platforms/aruba_file_creator.rb +3 -1
  53. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +7 -2
  54. data/lib/aruba/platforms/command_monitor.rb +3 -3
  55. data/lib/aruba/platforms/unix_environment_variables.rb +2 -4
  56. data/lib/aruba/platforms/unix_which.rb +1 -1
  57. data/lib/aruba/platforms/windows_environment_variables.rb +2 -1
  58. data/lib/aruba/platforms/windows_which.rb +6 -2
  59. data/lib/aruba/processes/debug_process.rb +4 -2
  60. data/lib/aruba/processes/in_process.rb +4 -2
  61. data/lib/aruba/processes/spawn_process.rb +18 -10
  62. data/lib/aruba/rspec.rb +25 -15
  63. data/lib/aruba/runtime.rb +11 -4
  64. data/lib/aruba/setup.rb +23 -10
  65. data/lib/aruba/tasks/docker_helpers.rb +3 -1
  66. data/lib/aruba/version.rb +1 -1
  67. metadata +22 -8
@@ -14,7 +14,14 @@ module Aruba
14
14
  # @param [#to_s] text
15
15
  # Input
16
16
  def unescape_text(text)
17
- text.gsub('\n', "\n").gsub('\"', '"').gsub('\e', "\e").gsub('\033', "\e").gsub('\016', "\016").gsub('\017', "\017").gsub('\t', "\t")
17
+ text
18
+ .gsub('\n', "\n")
19
+ .gsub('\"', '"')
20
+ .gsub('\e', "\e")
21
+ .gsub('\033', "\e")
22
+ .gsub('\016', "\016")
23
+ .gsub('\017', "\017")
24
+ .gsub('\t', "\t")
18
25
  end
19
26
 
20
27
  # Remove ansi characters from text
@@ -22,7 +29,10 @@ module Aruba
22
29
  # @param [#to_s] text
23
30
  # Input
24
31
  def extract_text(text)
25
- text.gsub(/(?:\e|\033)\[\d+(?>(;\d+)*)m/, '').gsub(/\\\[|\\\]/, '').gsub(/\007|\016|\017/, '')
32
+ text
33
+ .gsub(/(?:\e|\033)\[\d+(?>(;\d+)*)m/, '')
34
+ .gsub(/\\\[|\\\]/, '')
35
+ .gsub(/\007|\016|\017/, '')
26
36
  end
27
37
 
28
38
  # Unescape special characters and remove ANSI characters
@@ -41,7 +51,9 @@ module Aruba
41
51
  # @param [#to_s] text
42
52
  # The text to parse
43
53
  def replace_variables(text)
44
- text = text.gsub(/<pid-last-command-started>/, last_command_started.pid.to_s) if text.include? '<pid-last-command-started>'
54
+ if text.include? '<pid-last-command-started>'
55
+ text = text.gsub(/<pid-last-command-started>/, last_command_started.pid.to_s)
56
+ end
45
57
 
46
58
  text
47
59
  end
@@ -32,8 +32,8 @@ module Aruba
32
32
  contract = opts[:contract]
33
33
  default = opts[:default]
34
34
 
35
- fail ArgumentError, 'Either use block or default value' if block_given? && default
36
- fail ArgumentError, 'contract-options is required' if contract.nil?
35
+ raise ArgumentError, 'Either use block or default value' if block_given? && default
36
+ raise ArgumentError, 'contract-options is required' if contract.nil?
37
37
 
38
38
  Contract contract
39
39
  add_option(name, block_given? ? yield(InConfigWrapper.new(known_options)) : default)
@@ -61,9 +61,8 @@ module Aruba
61
61
  contract = opts[:contract]
62
62
  default = opts[:default]
63
63
 
64
- fail ArgumentError, 'Either use block or default value' if block_given? && default
65
- # fail ArgumentError, 'Either use block or default value' if !block_given? && default.nil? && default.to_s.empty?
66
- fail ArgumentError, 'contract-options is required' if contract.nil?
64
+ raise ArgumentError, 'Either use block or default value' if block_given? && default
65
+ raise ArgumentError, 'contract-options is required' if contract.nil?
67
66
 
68
67
  # Add writer
69
68
  add_option(name, block_given? ? yield(InConfigWrapper.new(known_options)) : default)
@@ -210,7 +209,7 @@ module Aruba
210
209
  end
211
210
 
212
211
  def find_option(name)
213
- fail NotImplementedError, %(Unknown option "#{name}") unless option? name
212
+ raise NotImplementedError, %(Unknown option "#{name}") unless option? name
214
213
 
215
214
  local_options[name]
216
215
  end
@@ -15,8 +15,8 @@ module Aruba
15
15
  name = opts[:name]
16
16
  value = opts[:value]
17
17
 
18
- fail ArgumentError, '"name" is required' unless opts.key? :name
19
- fail ArgumentError, '"value" is required' unless opts.key? :value
18
+ raise ArgumentError, '"name" is required' unless opts.key? :name
19
+ raise ArgumentError, '"value" is required' unless opts.key? :value
20
20
 
21
21
  @name = name
22
22
  @value = value
@@ -18,7 +18,10 @@ module Aruba
18
18
  end
19
19
 
20
20
  desc 'init', 'Initialize aruba'
21
- option :test_framework, default: 'cucumber', enum: %w(cucumber rspec minitest), desc: 'Choose which test framework to use'
21
+ option :test_framework,
22
+ default: 'cucumber',
23
+ enum: %w(cucumber rspec minitest),
24
+ desc: 'Choose which test framework to use'
22
25
  def init
23
26
  Aruba::Initializer.new.call(options[:test_framework])
24
27
  end
@@ -30,9 +30,11 @@ module Aruba
30
30
  # If one method ends with "=", e.g. ":option1=", then notify the event
31
31
  # queue, that the user changes the value of "option1"
32
32
  def method_missing(name, *args, &block)
33
- event_bus.notify Events::ChangedConfiguration.new(changed: { name: name.to_s.gsub(/=$/, ''), value: args.first }) if name.to_s.end_with? '='
33
+ notify(name, args) if name.to_s.end_with?('=')
34
34
 
35
- config.send(name, *args, &block)
35
+ return config.send(name, *args, &block) if config.respond_to? name
36
+
37
+ super
36
38
  end
37
39
 
38
40
  # Pass on respond_to?-calls
@@ -54,5 +56,18 @@ module Aruba
54
56
  def respond_to?(m)
55
57
  config.respond_to? m
56
58
  end
59
+
60
+ private
61
+
62
+ def notify(name, args)
63
+ event_bus.notify(
64
+ Events::ChangedConfiguration.new(
65
+ changed: {
66
+ name: name.to_s.gsub(/=$/, ''),
67
+ value: args.first
68
+ }
69
+ )
70
+ )
71
+ end
57
72
  end
58
73
  end
@@ -20,7 +20,8 @@ module Aruba
20
20
  option_reader :root_directory, contract: { None => String }, default: Dir.getwd
21
21
 
22
22
  option_accessor :working_directory,
23
- contract: { Aruba::Contracts::RelativePath => Aruba::Contracts::RelativePath },
23
+ contract: { Aruba::Contracts::RelativePath =>
24
+ Aruba::Contracts::RelativePath },
24
25
  default: 'tmp/aruba'
25
26
 
26
27
  option_reader :fixtures_path_prefix, contract: { None => String }, default: '%'
@@ -36,34 +37,48 @@ module Aruba
36
37
  option_accessor :command_runtime_environment, contract: { Hash => Hash }, default: {}
37
38
  option_accessor :command_search_paths,
38
39
  contract: { ArrayOf[String] => ArrayOf[String] } do |config|
39
- [File.join(config.root_directory.value, 'bin'), File.join(config.root_directory.value, 'exe')]
40
+ [File.join(config.root_directory.value, 'bin'),
41
+ File.join(config.root_directory.value, 'exe')]
40
42
  end
41
43
  option_accessor :remove_ansi_escape_sequences, contract: { Bool => Bool }, default: true
42
44
  option_accessor :command_launcher,
43
- contract: { Aruba::Contracts::Enum[:in_process, :spawn, :debug] => Aruba::Contracts::Enum[:in_process, :spawn, :debug] },
45
+ contract: {
46
+ Aruba::Contracts::Enum[:in_process, :spawn, :debug] =>
47
+ Aruba::Contracts::Enum[:in_process, :spawn, :debug]
48
+ },
44
49
  default: :spawn
45
50
  option_accessor :main_class, contract: { Class => Maybe[Class] }, default: nil
46
51
 
47
52
  option_accessor :home_directory,
48
- contract: { Or[Aruba::Contracts::AbsolutePath, Aruba::Contracts::RelativePath] =>
49
- Or[Aruba::Contracts::AbsolutePath, Aruba::Contracts::RelativePath] } do |config|
50
- File.join(config.root_directory.value, config.working_directory.value)
51
- end
53
+ contract: {
54
+ Or[Aruba::Contracts::AbsolutePath, Aruba::Contracts::RelativePath] =>
55
+ Or[Aruba::Contracts::AbsolutePath, Aruba::Contracts::RelativePath]
56
+ } do |config|
57
+ File.join(config.root_directory.value, config.working_directory.value)
58
+ end
52
59
 
53
60
  option_accessor :log_level,
54
- contract: { Aruba::Contracts::Enum[:fatal, :warn, :debug, :info, :error, :unknown, :silent] =>
55
- Aruba::Contracts::Enum[:fatal, :warn, :debug, :info, :error, :unknown, :silent] },
61
+ contract: {
62
+ Aruba::Contracts::Enum[:fatal, :warn, :debug, :info,
63
+ :error, :unknown, :silent] =>
64
+ Aruba::Contracts::Enum[:fatal, :warn, :debug, :info,
65
+ :error, :unknown, :silent]
66
+ },
56
67
  default: :info
57
68
 
58
69
  # TODO: deprecate this value and replace with "filesystem allocation unit"
59
70
  # equal to 4096 by default. "filesystem allocation unit" would represent
60
71
  # the actual MINIMUM space taken in bytes by a 1-byte file
61
72
  option_accessor :physical_block_size,
62
- contract: { Aruba::Contracts::IsPowerOfTwo => Aruba::Contracts::IsPowerOfTwo },
73
+ contract: { Aruba::Contracts::IsPowerOfTwo =>
74
+ Aruba::Contracts::IsPowerOfTwo },
63
75
  default: 512
64
- option_accessor :console_history_file, contract: { String => String }, default: '~/.aruba_history'
76
+ option_accessor :console_history_file, contract: { String => String },
77
+ default: '~/.aruba_history'
65
78
 
66
- option_accessor :activate_announcer_on_command_failure, contract: { ArrayOf[Symbol] => ArrayOf[Symbol] }, default: []
79
+ option_accessor :activate_announcer_on_command_failure,
80
+ contract: { ArrayOf[Symbol] => ArrayOf[Symbol] },
81
+ default: []
67
82
  option_accessor :allow_absolute_paths, contract: { Bool => Bool }, default: false
68
83
  end
69
84
  end
@@ -9,7 +9,6 @@ module Aruba
9
9
  class Console
10
10
  # Start the aruba console
11
11
  #
12
- # rubocop:disable Metrics/MethodLength
13
12
  def start
14
13
  # Start IRB with current context:
15
14
  # http://stackoverflow.com/questions/4189818/how-to-run-irb-start-in-context-of-current-class
@@ -63,6 +62,5 @@ module Aruba
63
62
  IRB.irb_at_exit
64
63
  end
65
64
  end
66
- # rubocop:enable Metrics/MethodLength
67
65
  end
68
66
  end
@@ -10,7 +10,8 @@ module Aruba
10
10
  def aruba_help
11
11
  puts 'Aruba Version: ' + Aruba::VERSION
12
12
  puts 'Issue Tracker: ' + 'https://github.com/cucumber/aruba/issues'
13
- puts "Documentation:\n" + %w(http://www.rubydoc.info/gems/aruba).map { |d| format('* %s', d) }.join("\n")
13
+ puts 'Documentation:'
14
+ puts '* http://www.rubydoc.info/gems/aruba'
14
15
  puts
15
16
 
16
17
  nil
@@ -18,7 +19,9 @@ module Aruba
18
19
 
19
20
  # List available methods in aruba
20
21
  def aruba_methods
21
- ms = (Aruba::Api.instance_methods - Module.instance_methods).each_with_object([]) { |e, a| a << format('* %s', e) }.sort
22
+ ms = (Aruba::Api.instance_methods - Module.instance_methods)
23
+ .each_with_object([]) { |e, a| a << format('* %s', e) }
24
+ .sort
22
25
 
23
26
  puts "Available Methods:\n" + ms.join("\n")
24
27
 
@@ -12,7 +12,7 @@ module Aruba
12
12
  # The value to be checked
13
13
  def self.valid?(value)
14
14
  Aruba.platform.absolute_path? value
15
- rescue
15
+ rescue StandardError
16
16
  false
17
17
  end
18
18
  end
@@ -13,8 +13,8 @@ module Aruba
13
13
  def self.valid?(value)
14
14
  # explanation for algorithm can be found here:
15
15
  # http://www.exploringbinary.com/ten-ways-to-check-if-an-integer-is-a-power-of-two-in-c/
16
- value != 0 && (value & (value - 1)) == 0 ? true : false
17
- rescue
16
+ value.positive? && (value & (value - 1)).zero?
17
+ rescue StandardError
18
18
  false
19
19
  end
20
20
  end
@@ -12,7 +12,7 @@ module Aruba
12
12
  # The path to be checked
13
13
  def self.valid?(value)
14
14
  Aruba.platform.relative_path? value
15
- rescue
15
+ rescue StandardError
16
16
  false
17
17
  end
18
18
  end
@@ -12,7 +12,8 @@ When(/^I successfully run `(.*?)`(?: for up to ([\d.]+) seconds)?$/) do |cmd, se
12
12
  run_command_and_stop(cmd, fail_on_error: true, exit_timeout: secs && secs.to_f)
13
13
  end
14
14
 
15
- When(/^I run the following (?:commands|script)(?: (?:with|in) `([^`]+)`)?:$/) do |shell, commands|
15
+ When(/^I run the following (?:commands|script)(?: (?:with|in) `([^`]+)`)?:$/) \
16
+ do |shell, commands|
16
17
  full_path = expand_path('bin/myscript')
17
18
 
18
19
  Aruba.platform.mkdir(expand_path('bin'))
@@ -61,7 +62,8 @@ When(/^I (terminate|stop) the command (?:"([^"]*)"|(?:started last))$/) do |sign
61
62
  end
62
63
  end
63
64
 
64
- When(/^I stop the command(?: started last)? if (output|stdout|stderr) contains:$/) do |channel, expected|
65
+ When(/^I stop the command(?: started last)? if (output|stdout|stderr) contains:$/) \
66
+ do |channel, expected|
65
67
  begin
66
68
  Timeout.timeout(aruba.config.exit_timeout) do
67
69
  loop do
@@ -119,7 +121,8 @@ Then(/^the output should be (\d+) bytes long$/) do |size|
119
121
  end
120
122
 
121
123
  ## the stderr should contain "hello"
122
- Then(/^(?:the )?(output|stderr|stdout) should( not)? contain( exactly)? "([^"]*)"$/) do |channel, negated, exactly, expected|
124
+ Then(/^(?:the )?(output|stderr|stdout) should( not)? contain( exactly)? "([^"]*)"$/) \
125
+ do |channel, negated, exactly, expected|
123
126
  combined_output = send("all_#{channel}")
124
127
 
125
128
  output_string_matcher = if exactly
@@ -136,14 +139,13 @@ Then(/^(?:the )?(output|stderr|stdout) should( not)? contain( exactly)? "([^"]*)
136
139
  end
137
140
 
138
141
  ## the stderr from "echo -n 'Hello'" should contain "hello"
139
- Then(/^(?:the )?(output|stderr|stdout) from "([^"]*)" should( not)? contain( exactly)? "([^"]*)"$/) do |channel, cmd, negated, exactly, expected|
140
- matcher = case channel.to_sym
141
- when :output
142
- :have_output
143
- when :stderr
144
- :have_output_on_stderr
145
- when :stdout
146
- :have_output_on_stdout
142
+ Then(
143
+ /^(?:the )?(output|stderr|stdout) from "([^"]*)" should contain( exactly)? "([^"]*)"$/
144
+ ) do |channel, cmd, exactly, expected|
145
+ matcher = case channel
146
+ when 'output'; then :have_output
147
+ when 'stderr'; then :have_output_on_stderr
148
+ when 'stdout'; then :have_output_on_stdout
147
149
  end
148
150
 
149
151
  command = aruba.command_monitor.find(Aruba.platform.detect_ruby(cmd))
@@ -154,15 +156,33 @@ Then(/^(?:the )?(output|stderr|stdout) from "([^"]*)" should( not)? contain( exa
154
156
  :an_output_string_including
155
157
  end
156
158
 
157
- if negated
158
- expect(command).not_to send(matcher, send(output_string_matcher, expected))
159
- else
160
- expect(command).to send(matcher, send(output_string_matcher, expected))
161
- end
159
+ expect(command).to send(matcher, send(output_string_matcher, expected))
160
+ end
161
+
162
+ ## the stderr from "echo -n 'Hello'" should not contain "hello"
163
+ Then(
164
+ /^(?:the )?(output|stderr|stdout) from "([^"]*)" should not contain( exactly)? "([^"]*)"$/
165
+ ) do |channel, cmd, exactly, expected|
166
+ matcher = case channel
167
+ when 'output'; then :have_output
168
+ when 'stderr'; then :have_output_on_stderr
169
+ when 'stdout'; then :have_output_on_stdout
170
+ end
171
+
172
+ command = aruba.command_monitor.find(Aruba.platform.detect_ruby(cmd))
173
+
174
+ output_string_matcher = if exactly
175
+ :an_output_string_being_eq
176
+ else
177
+ :an_output_string_including
178
+ end
179
+
180
+ expect(command).not_to send(matcher, send(output_string_matcher, expected))
162
181
  end
163
182
 
164
183
  ## the stderr should not contain exactly:
165
- Then(/^(?:the )?(output|stderr|stdout) should not contain( exactly)?:$/) do |channel, exactly, expected|
184
+ Then(/^(?:the )?(output|stderr|stdout) should not contain( exactly)?:$/) \
185
+ do |channel, exactly, expected|
166
186
  combined_output = send("all_#{channel}")
167
187
 
168
188
  output_string_matcher = if exactly
@@ -175,7 +195,8 @@ Then(/^(?:the )?(output|stderr|stdout) should not contain( exactly)?:$/) do |cha
175
195
  end
176
196
 
177
197
  ## the stderr should contain exactly:
178
- Then(/^(?:the )?(output|stderr|stdout) should contain( exactly)?:$/) do |channel, exactly, expected|
198
+ Then(/^(?:the )?(output|stderr|stdout) should contain( exactly)?:$/) \
199
+ do |channel, exactly, expected|
179
200
  combined_output = send("all_#{channel}")
180
201
 
181
202
  output_string_matcher = if exactly
@@ -188,14 +209,12 @@ Then(/^(?:the )?(output|stderr|stdout) should contain( exactly)?:$/) do |channel
188
209
  end
189
210
 
190
211
  ## the stderr from "echo -n 'Hello'" should not contain exactly:
191
- Then(/^(?:the )?(output|stderr|stdout) from "([^"]*)" should not contain( exactly)?:$/) do |channel, cmd, exactly, expected|
192
- matcher = case channel.to_sym
193
- when :output
194
- :have_output
195
- when :stderr
196
- :have_output_on_stderr
197
- when :stdout
198
- :have_output_on_stdout
212
+ Then(/^(?:the )?(output|stderr|stdout) from "([^"]*)" should not contain( exactly)?:$/) \
213
+ do |channel, cmd, exactly, expected|
214
+ matcher = case channel
215
+ when 'output'; then :have_output
216
+ when 'stderr'; then :have_output_on_stderr
217
+ when 'stdout'; then :have_output_on_stdout
199
218
  end
200
219
 
201
220
  command = aruba.command_monitor.find(Aruba.platform.detect_ruby(cmd))
@@ -210,14 +229,12 @@ Then(/^(?:the )?(output|stderr|stdout) from "([^"]*)" should not contain( exactl
210
229
  end
211
230
 
212
231
  ## the stderr from "echo -n 'Hello'" should contain exactly:
213
- Then(/^(?:the )?(output|stderr|stdout) from "([^"]*)" should contain( exactly)?:$/) do |channel, cmd, exactly, expected|
214
- matcher = case channel.to_sym
215
- when :output
216
- :have_output
217
- when :stderr
218
- :have_output_on_stderr
219
- when :stdout
220
- :have_output_on_stdout
232
+ Then(/^(?:the )?(output|stderr|stdout) from "([^"]*)" should contain( exactly)?:$/) \
233
+ do |channel, cmd, exactly, expected|
234
+ matcher = case channel
235
+ when 'output'; then :have_output
236
+ when 'stderr'; then :have_output_on_stderr
237
+ when 'stdout'; then :have_output_on_stdout
221
238
  end
222
239
 
223
240
  command = aruba.command_monitor.find(Aruba.platform.detect_ruby(cmd))
@@ -235,34 +252,38 @@ end
235
252
  # you don't need regex, use "the output should contain" instead since
236
253
  # that way, you don't have to escape regex characters that
237
254
  # appear naturally in the output
238
- Then(/^the output should( not)? match \/([^\/]*)\/$/) do |negated, expected|
255
+ Then(%r{^the output should( not)? match /([^/]*)/$}) do |negated, expected|
239
256
  if negated
240
- expect(all_commands).not_to include_an_object have_output an_output_string_matching(expected)
257
+ expect(all_commands)
258
+ .not_to include_an_object have_output an_output_string_matching(expected)
241
259
  else
242
- expect(all_commands).to include_an_object have_output an_output_string_matching(expected)
260
+ expect(all_commands)
261
+ .to include_an_object have_output an_output_string_matching(expected)
243
262
  end
244
263
  end
245
264
 
246
265
  Then(/^the output should( not)? match %r<([^>]*)>$/) do |negated, expected|
247
266
  if negated
248
- expect(all_commands).not_to include_an_object have_output an_output_string_matching(expected)
267
+ expect(all_commands)
268
+ .not_to include_an_object have_output an_output_string_matching(expected)
249
269
  else
250
- expect(all_commands).to include_an_object have_output an_output_string_matching(expected)
270
+ expect(all_commands)
271
+ .to include_an_object have_output an_output_string_matching(expected)
251
272
  end
252
273
  end
253
274
 
254
275
  Then(/^the output should( not)? match:$/) do |negated, expected|
255
276
  if negated
256
- expect(all_commands).not_to include_an_object have_output an_output_string_matching(expected)
277
+ expect(all_commands)
278
+ .not_to include_an_object have_output an_output_string_matching(expected)
257
279
  else
258
- expect(all_commands).to include_an_object have_output an_output_string_matching(expected)
280
+ expect(all_commands)
281
+ .to include_an_object have_output an_output_string_matching(expected)
259
282
  end
260
283
  end
261
284
 
262
285
  Then(/^the exit status should( not)? be (\d+)$/) do |negated, exit_status|
263
- if last_command_stopped.nil?
264
- last_command_started.stop
265
- end
286
+ last_command_started.stop if last_command_stopped.nil?
266
287
 
267
288
  if negated
268
289
  expect(last_command_stopped).not_to have_exit_status exit_status.to_i
@@ -368,35 +389,32 @@ Then(/^it should (pass|fail) (?:with regexp?|matching):$/) do |pass_fail, expect
368
389
  end
369
390
 
370
391
  Then(/^(?:the )?(output|stderr|stdout) should not contain anything$/) do |channel|
371
- matcher = case channel.to_sym
372
- when :output
373
- :have_output
374
- when :stderr
375
- :have_output_on_stderr
376
- when :stdout
377
- :have_output_on_stdout
392
+ matcher = case channel
393
+ when 'output'; then :have_output
394
+ when 'stderr'; then :have_output_on_stderr
395
+ when 'stdout'; then :have_output_on_stdout
378
396
  end
379
397
 
380
398
  expect(all_commands).to include_an_object send(matcher, be_nil.or(be_empty))
381
399
  end
382
400
 
383
- Then(/^(?:the )?(output|stdout|stderr) should( not)? contain all of these lines:$/) do |channel, negated, table|
401
+ Then(/^(?:the )?(output|stdout|stderr) should( not)? contain all of these lines:$/) \
402
+ do |channel, negated, table|
384
403
  table.raw.flatten.each do |expected|
385
- case channel.to_sym
386
- when :output
387
- :have_output
388
- when :stderr
389
- :have_output_on_stderr
390
- when :stdout
391
- :have_output_on_stdout
392
- end
404
+ _matcher = case channel
405
+ when 'output'; then :have_output
406
+ when 'stderr'; then :have_output_on_stderr
407
+ when 'stdout'; then :have_output_on_stdout
408
+ end
393
409
 
394
410
  # TODO: This isn't actually using the above. It's hardcoded to use have_output only
395
411
 
396
412
  if negated
397
- expect(all_commands).not_to include_an_object have_output an_output_string_including(expected)
413
+ expect(all_commands)
414
+ .not_to include_an_object have_output an_output_string_including(expected)
398
415
  else
399
- expect(all_commands).to include_an_object have_output an_output_string_including(expected)
416
+ expect(all_commands)
417
+ .to include_an_object have_output an_output_string_including(expected)
400
418
  end
401
419
  end
402
420
  end
@@ -417,10 +435,11 @@ Given(/^I wait ([\d.]+) seconds? for (?:a|the) command to start up$/) do |second
417
435
  aruba.config.startup_wait_time = seconds.to_f
418
436
  end
419
437
 
420
- When(/^I send the signal "([^"]*)" to the command (?:"([^"]*)"|(?:started last))$/) do |signal, command|
438
+ When(/^I send the signal "([^"]*)" to the command (?:"([^"]*)"|(?:started last))$/) \
439
+ do |signal, command|
421
440
  if command
422
441
  cmd = all_commands.find { |c| c.commandline == command }
423
- fail ArgumentError, %(No command "#{command}" found) if cmd.nil?
442
+ raise ArgumentError, %(No command "#{command}" found) if cmd.nil?
424
443
 
425
444
  cmd.send_signal signal
426
445
  else