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
@@ -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
data/lib/aruba/cli.rb CHANGED
@@ -1,6 +1,6 @@
1
- require 'thor'
2
- require 'aruba/console'
3
- require 'aruba/initializer'
1
+ require "thor"
2
+ require "aruba/console"
3
+ require "aruba/initializer"
4
4
 
5
5
  # Aruba
6
6
  module Aruba
@@ -12,13 +12,16 @@ module Aruba
12
12
  true
13
13
  end
14
14
 
15
- desc 'console', "Start aruba's console"
15
+ desc "console", "Start aruba's console"
16
16
  def console
17
17
  Aruba::Console.new.start
18
18
  end
19
19
 
20
- desc 'init', 'Initialize aruba'
21
- option :test_framework, default: 'cucumber', enum: %w(cucumber rspec minitest), desc: 'Choose which test framework to use'
20
+ desc "init", "Initialize aruba"
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
data/lib/aruba/command.rb CHANGED
@@ -1,7 +1,7 @@
1
- require 'delegate'
2
- require 'aruba/processes/spawn_process'
3
- require 'aruba/processes/in_process'
4
- require 'aruba/processes/debug_process'
1
+ require "delegate"
2
+ require "aruba/processes/spawn_process"
3
+ require "aruba/processes/in_process"
4
+ require "aruba/processes/debug_process"
5
5
 
6
6
  # Aruba
7
7
  module Aruba
@@ -1,27 +1,27 @@
1
- require 'rbconfig'
1
+ require "rbconfig"
2
2
 
3
3
  # ideas taken from: http://blog.headius.com/2010/03/jruby-startup-time-tips.html
4
4
  Aruba.configure do |config|
5
5
  config.before :command do |command|
6
- next unless RUBY_PLATFORM == 'java'
6
+ next unless RUBY_PLATFORM == "java"
7
7
 
8
8
  env = command.environment
9
9
 
10
- jruby_opts = env['JRUBY_OPTS'] || ''
10
+ jruby_opts = env["JRUBY_OPTS"] || ""
11
11
 
12
12
  # disable JIT since these processes are so short lived
13
- jruby_opts = "-X-C #{jruby_opts}" unless jruby_opts.include? '-X-C'
13
+ jruby_opts = "-X-C #{jruby_opts}" unless jruby_opts.include? "-X-C"
14
14
 
15
15
  # Faster startup for jruby
16
- jruby_opts = "--dev #{jruby_opts}" unless jruby_opts.include? '--dev'
16
+ jruby_opts = "--dev #{jruby_opts}" unless jruby_opts.include? "--dev"
17
17
 
18
- env['JRUBY_OPTS'] = jruby_opts
18
+ env["JRUBY_OPTS"] = jruby_opts
19
19
 
20
- if /solaris|sunos/i.match?(RbConfig::CONFIG['host_os'])
21
- java_opts = env['JAVA_OPTS'] || ''
20
+ if /solaris|sunos/i.match?(RbConfig::CONFIG["host_os"])
21
+ java_opts = env["JAVA_OPTS"] || ""
22
22
 
23
23
  # force jRuby to use client JVM for faster startup times
24
- env['JAVA_OPTS'] = "-d32 #{java_opts}" unless java_opts.include?('-d32')
24
+ env["JAVA_OPTS"] = "-d32 #{java_opts}" unless java_opts.include?("-d32")
25
25
  end
26
26
  end
27
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
@@ -1,15 +1,15 @@
1
- require 'contracts'
1
+ require "contracts"
2
2
 
3
- require 'aruba/version'
4
- require 'aruba/basic_configuration'
5
- require 'aruba/in_config_wrapper'
6
- require 'aruba/hooks'
3
+ require "aruba/version"
4
+ require "aruba/basic_configuration"
5
+ require "aruba/in_config_wrapper"
6
+ require "aruba/hooks"
7
7
 
8
- require 'aruba/contracts/relative_path'
9
- require 'aruba/contracts/absolute_path'
10
- require 'aruba/contracts/enum'
8
+ require "aruba/contracts/relative_path"
9
+ require "aruba/contracts/absolute_path"
10
+ require "aruba/contracts/enum"
11
11
 
12
- require 'aruba/contracts/is_power_of_two'
12
+ require "aruba/contracts/is_power_of_two"
13
13
 
14
14
  # Aruba
15
15
  module Aruba
@@ -17,54 +17,59 @@ module Aruba
17
17
  #
18
18
  # This defines the configuration options of aruba
19
19
  class Configuration < BasicConfiguration
20
- option_reader :root_directory, contract: { None => String }, default: Dir.getwd
20
+ option_reader :root_directory, type: String, default: Dir.getwd
21
21
 
22
22
  option_accessor :working_directory,
23
- contract: { Aruba::Contracts::RelativePath => Aruba::Contracts::RelativePath },
24
- default: 'tmp/aruba'
23
+ type: Aruba::Contracts::RelativePath,
24
+ default: "tmp/aruba"
25
25
 
26
- option_reader :fixtures_path_prefix, contract: { None => String }, default: '%'
26
+ option_reader :fixtures_path_prefix, type: String, default: "%"
27
27
 
28
- option_accessor :exit_timeout, contract: { Num => Num }, default: 15
29
- option_accessor :stop_signal, contract: { Maybe[String] => Maybe[String] }, default: nil
30
- option_accessor :io_wait_timeout, contract: { Num => Num }, default: 0.1
31
- option_accessor :startup_wait_time, contract: { Num => Num }, default: 0
28
+ option_accessor :exit_timeout, type: Num, default: 15
29
+ option_accessor :stop_signal, type: Maybe[String], default: nil
30
+ option_accessor :io_wait_timeout, type: Num, default: 0.1
31
+ option_accessor :startup_wait_time, type: Num, default: 0
32
32
  option_accessor :fixtures_directories,
33
- contract: { Array => ArrayOf[String] },
33
+ type: ArrayOf[String],
34
34
  default: %w(features/fixtures spec/fixtures test/fixtures fixtures)
35
35
 
36
- option_accessor :command_runtime_environment, contract: { Hash => Hash }, default: {}
36
+ option_accessor :command_runtime_environment, type: Hash, default: {}
37
37
  option_accessor :command_search_paths,
38
- contract: { ArrayOf[String] => ArrayOf[String] } do |config|
39
- [File.join(config.root_directory.value, 'bin'), File.join(config.root_directory.value, 'exe')]
38
+ type: ArrayOf[String] do |config|
39
+ [File.join(config.root_directory.value, "bin"),
40
+ File.join(config.root_directory.value, "exe")]
40
41
  end
41
- option_accessor :remove_ansi_escape_sequences, contract: { Bool => Bool }, default: true
42
+ option_accessor :remove_ansi_escape_sequences, type: Bool, default: true
42
43
  option_accessor :command_launcher,
43
- contract: { Aruba::Contracts::Enum[:in_process, :spawn, :debug] => Aruba::Contracts::Enum[:in_process, :spawn, :debug] },
44
+ type: Aruba::Contracts::Enum[:in_process, :spawn, :debug],
44
45
  default: :spawn
45
- option_accessor :main_class, contract: { Class => Maybe[Class] }, default: nil
46
+ option_accessor :main_class, type: Maybe[Class], default: nil
46
47
 
47
48
  option_accessor :home_directory,
48
- contract: { Or[Aruba::Contracts::AbsolutePath, Aruba::Contracts::RelativePath] =>
49
- Or[Aruba::Contracts::AbsolutePath, Aruba::Contracts::RelativePath] } do |config|
49
+ type: Or[Aruba::Contracts::AbsolutePath,
50
+ Aruba::Contracts::RelativePath] do |config|
50
51
  File.join(config.root_directory.value, config.working_directory.value)
51
52
  end
52
53
 
53
54
  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] },
55
+ type:
56
+ Aruba::Contracts::Enum[:fatal, :warn, :debug, :info,
57
+ :error, :unknown, :silent],
56
58
  default: :info
57
59
 
58
60
  # TODO: deprecate this value and replace with "filesystem allocation unit"
59
61
  # equal to 4096 by default. "filesystem allocation unit" would represent
60
62
  # the actual MINIMUM space taken in bytes by a 1-byte file
61
63
  option_accessor :physical_block_size,
62
- contract: { Aruba::Contracts::IsPowerOfTwo => Aruba::Contracts::IsPowerOfTwo },
64
+ type: Aruba::Contracts::IsPowerOfTwo,
63
65
  default: 512
64
- option_accessor :console_history_file, contract: { String => String }, default: '~/.aruba_history'
66
+ option_accessor :console_history_file, type: String,
67
+ default: "~/.aruba_history"
65
68
 
66
- option_accessor :activate_announcer_on_command_failure, contract: { ArrayOf[Symbol] => ArrayOf[Symbol] }, default: []
67
- option_accessor :allow_absolute_paths, contract: { Bool => Bool }, default: false
69
+ option_accessor :activate_announcer_on_command_failure,
70
+ type: ArrayOf[Symbol],
71
+ default: []
72
+ option_accessor :allow_absolute_paths, type: Bool, default: false
68
73
  end
69
74
  end
70
75
 
data/lib/aruba/console.rb CHANGED
@@ -1,7 +1,7 @@
1
- require 'irb'
1
+ require "irb"
2
2
 
3
- require 'aruba/api'
4
- require 'aruba/console/help'
3
+ require "aruba/api"
4
+ require "aruba/console/help"
5
5
 
6
6
  # Aruba
7
7
  module Aruba
@@ -9,28 +9,27 @@ 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
16
15
  ARGV.clear
17
16
  IRB.setup nil
18
17
 
19
- IRB.conf[:IRB_NAME] = 'aruba'
18
+ IRB.conf[:IRB_NAME] = "aruba"
20
19
 
21
20
  IRB.conf[:PROMPT] = {}
22
21
  IRB.conf[:PROMPT][:ARUBA] = {
23
- PROMPT_I: '%N:%03n:%i> ',
24
- PROMPT_S: '%N:%03n:%i%l ',
25
- PROMPT_C: '%N:%03n:%i* ',
22
+ PROMPT_I: "%N:%03n:%i> ",
23
+ PROMPT_S: "%N:%03n:%i%l ",
24
+ PROMPT_C: "%N:%03n:%i* ",
26
25
  RETURN: "# => %s\n"
27
26
  }
28
27
  IRB.conf[:PROMPT_MODE] = :ARUBA
29
28
 
30
29
  IRB.conf[:RC] = false
31
30
 
32
- require 'irb/completion'
33
- require 'irb/ext/save-history'
31
+ require "irb/completion"
32
+ require "irb/ext/save-history"
34
33
  IRB.conf[:READLINE] = true
35
34
  IRB.conf[:SAVE_HISTORY] = 1000
36
35
  IRB.conf[:HISTORY_FILE] = Aruba.config.console_history_file
@@ -44,14 +43,14 @@ module Aruba
44
43
  end
45
44
 
46
45
  def inspect
47
- 'nil'
46
+ "nil"
48
47
  end
49
48
  end
50
49
 
51
50
  irb = IRB::Irb.new(IRB::WorkSpace.new(context.new))
52
51
  IRB.conf[:MAIN_CONTEXT] = irb.context
53
52
 
54
- trap('SIGINT') do
53
+ trap("SIGINT") do
55
54
  irb.signal_handle
56
55
  end
57
56
 
@@ -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
@@ -1,4 +1,4 @@
1
- require 'aruba/api'
1
+ require "aruba/api"
2
2
 
3
3
  # Aruba
4
4
  module Aruba
@@ -8,9 +8,10 @@ module Aruba
8
8
  module Help
9
9
  # Output help information
10
10
  def aruba_help
11
- puts 'Aruba Version: ' + Aruba::VERSION
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")
11
+ puts "Aruba Version: #{Aruba::VERSION}"
12
+ puts "Issue Tracker: https://github.com/cucumber/aruba/issues"
13
+ puts "Documentation:"
14
+ puts "* http://www.rubydoc.info/gems/aruba"
14
15
  puts
15
16
 
16
17
  nil
@@ -18,9 +19,11 @@ 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
- puts "Available Methods:\n" + ms.join("\n")
26
+ puts "Available Methods:\n#{ms.join("\n")}"
24
27
 
25
28
  nil
26
29
  end
@@ -1,4 +1,4 @@
1
- require 'aruba/platform'
1
+ require "aruba/platform"
2
2
 
3
3
  # Aruba
4
4
  module Aruba
@@ -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
@@ -1,4 +1,4 @@
1
- require 'contracts'
1
+ require "contracts"
2
2
 
3
3
  # Aruba
4
4
  module Aruba
@@ -1,4 +1,4 @@
1
- require 'aruba/aruba_path'
1
+ require "aruba/aruba_path"
2
2
 
3
3
  # Aruba
4
4
  module Aruba
@@ -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
@@ -1,4 +1,4 @@
1
- require 'aruba/platform'
1
+ require "aruba/platform"
2
2
 
3
3
  # Aruba
4
4
  module Aruba
@@ -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
@@ -1,8 +1,8 @@
1
- require 'aruba/version'
1
+ require "aruba/version"
2
2
 
3
- require 'aruba/api'
4
- require 'aruba/cucumber/hooks'
5
- require 'aruba/cucumber/command'
6
- require 'aruba/cucumber/environment'
7
- require 'aruba/cucumber/file'
8
- require 'aruba/cucumber/testing_frameworks'
3
+ require "aruba/api"
4
+ require "aruba/cucumber/hooks"
5
+ require "aruba/cucumber/command"
6
+ require "aruba/cucumber/environment"
7
+ require "aruba/cucumber/file"
8
+ require "aruba/cucumber/testing_frameworks"
@@ -1,4 +1,4 @@
1
- require 'aruba/generators/script_file'
1
+ require "aruba/generators/script_file"
2
2
 
3
3
  When(/^I run `([^`]*)`$/) do |cmd|
4
4
  cmd = sanitize_text(cmd)
@@ -12,10 +12,11 @@ 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|
16
- full_path = expand_path('bin/myscript')
15
+ When(/^I run the following (?:commands|script)(?: (?:with|in) `([^`]+)`)?:$/) \
16
+ do |shell, commands|
17
+ full_path = expand_path("bin/myscript")
17
18
 
18
- Aruba.platform.mkdir(expand_path('bin'))
19
+ Aruba.platform.mkdir(expand_path("bin"))
19
20
  shell ||= Aruba.platform.default_shell
20
21
 
21
22
  Aruba::ScriptFile.new(interpreter: shell, content: commands, path: full_path).call
@@ -54,14 +55,15 @@ When(/^I (terminate|stop) the command (?:"([^"]*)"|(?:started last))$/) do |sign
54
55
  last_command_started
55
56
  end
56
57
 
57
- if signal == 'terminate'
58
+ if signal == "terminate"
58
59
  cmd.terminate
59
60
  else
60
61
  cmd.stop
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
@@ -86,30 +88,22 @@ end
86
88
 
87
89
  When(/^I wait for (?:output|stdout) to contain:$/) do |expected|
88
90
  Timeout.timeout(aruba.config.exit_timeout) do
89
- loop do
90
- begin
91
- expect(last_command_started).to have_output an_output_string_including(expected)
92
- rescue ExpectationError
93
- sleep 0.1
94
- retry
95
- end
96
-
97
- break
91
+ begin
92
+ expect(last_command_started).to have_output an_output_string_including(expected)
93
+ rescue ExpectationError
94
+ sleep 0.1
95
+ retry
98
96
  end
99
97
  end
100
98
  end
101
99
 
102
100
  When(/^I wait for (?:output|stdout) to contain "([^"]*)"$/) do |expected|
103
101
  Timeout.timeout(aruba.config.exit_timeout) do
104
- loop do
105
- begin
106
- expect(last_command_started).to have_output an_output_string_including(expected)
107
- rescue ExpectationError
108
- sleep 0.1
109
- retry
110
- end
111
-
112
- break
102
+ begin
103
+ expect(last_command_started).to have_output an_output_string_including(expected)
104
+ rescue ExpectationError
105
+ sleep 0.1
106
+ retry
113
107
  end
114
108
  end
115
109
  end
@@ -119,7 +113,8 @@ Then(/^the output should be (\d+) bytes long$/) do |size|
119
113
  end
120
114
 
121
115
  ## the stderr should contain "hello"
122
- Then(/^(?:the )?(output|stderr|stdout) should( not)? contain( exactly)? "([^"]*)"$/) do |channel, negated, exactly, expected|
116
+ Then(/^(?:the )?(output|stderr|stdout) should( not)? contain( exactly)? "([^"]*)"$/) \
117
+ do |channel, negated, exactly, expected|
123
118
  combined_output = send("all_#{channel}")
124
119
 
125
120
  output_string_matcher = if exactly
@@ -136,14 +131,13 @@ Then(/^(?:the )?(output|stderr|stdout) should( not)? contain( exactly)? "([^"]*)
136
131
  end
137
132
 
138
133
  ## 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
134
+ Then(
135
+ /^(?:the )?(output|stderr|stdout) from "([^"]*)" should contain( exactly)? "([^"]*)"$/
136
+ ) do |channel, cmd, exactly, expected|
137
+ matcher = case channel
138
+ when "output"; then :have_output
139
+ when "stderr"; then :have_output_on_stderr
140
+ when "stdout"; then :have_output_on_stdout
147
141
  end
148
142
 
149
143
  command = aruba.command_monitor.find(Aruba.platform.detect_ruby(cmd))
@@ -154,15 +148,33 @@ Then(/^(?:the )?(output|stderr|stdout) from "([^"]*)" should( not)? contain( exa
154
148
  :an_output_string_including
155
149
  end
156
150
 
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
151
+ expect(command).to send(matcher, send(output_string_matcher, expected))
152
+ end
153
+
154
+ ## the stderr from "echo -n 'Hello'" should not contain "hello"
155
+ Then(
156
+ /^(?:the )?(output|stderr|stdout) from "([^"]*)" should not contain( exactly)? "([^"]*)"$/
157
+ ) do |channel, cmd, exactly, expected|
158
+ matcher = case channel
159
+ when "output"; then :have_output
160
+ when "stderr"; then :have_output_on_stderr
161
+ when "stdout"; then :have_output_on_stdout
162
+ end
163
+
164
+ command = aruba.command_monitor.find(Aruba.platform.detect_ruby(cmd))
165
+
166
+ output_string_matcher = if exactly
167
+ :an_output_string_being_eq
168
+ else
169
+ :an_output_string_including
170
+ end
171
+
172
+ expect(command).not_to send(matcher, send(output_string_matcher, expected))
162
173
  end
163
174
 
164
175
  ## the stderr should not contain exactly:
165
- Then(/^(?:the )?(output|stderr|stdout) should not contain( exactly)?:$/) do |channel, exactly, expected|
176
+ Then(/^(?:the )?(output|stderr|stdout) should not contain( exactly)?:$/) \
177
+ do |channel, exactly, expected|
166
178
  combined_output = send("all_#{channel}")
167
179
 
168
180
  output_string_matcher = if exactly
@@ -175,7 +187,8 @@ Then(/^(?:the )?(output|stderr|stdout) should not contain( exactly)?:$/) do |cha
175
187
  end
176
188
 
177
189
  ## the stderr should contain exactly:
178
- Then(/^(?:the )?(output|stderr|stdout) should contain( exactly)?:$/) do |channel, exactly, expected|
190
+ Then(/^(?:the )?(output|stderr|stdout) should contain( exactly)?:$/) \
191
+ do |channel, exactly, expected|
179
192
  combined_output = send("all_#{channel}")
180
193
 
181
194
  output_string_matcher = if exactly
@@ -188,14 +201,12 @@ Then(/^(?:the )?(output|stderr|stdout) should contain( exactly)?:$/) do |channel
188
201
  end
189
202
 
190
203
  ## 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
204
+ Then(/^(?:the )?(output|stderr|stdout) from "([^"]*)" should not contain( exactly)?:$/) \
205
+ do |channel, cmd, exactly, expected|
206
+ matcher = case channel
207
+ when "output"; then :have_output
208
+ when "stderr"; then :have_output_on_stderr
209
+ when "stdout"; then :have_output_on_stdout
199
210
  end
200
211
 
201
212
  command = aruba.command_monitor.find(Aruba.platform.detect_ruby(cmd))
@@ -210,14 +221,12 @@ Then(/^(?:the )?(output|stderr|stdout) from "([^"]*)" should not contain( exactl
210
221
  end
211
222
 
212
223
  ## 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
224
+ Then(/^(?:the )?(output|stderr|stdout) from "([^"]*)" should contain( exactly)?:$/) \
225
+ do |channel, cmd, exactly, expected|
226
+ matcher = case channel
227
+ when "output"; then :have_output
228
+ when "stderr"; then :have_output_on_stderr
229
+ when "stdout"; then :have_output_on_stdout
221
230
  end
222
231
 
223
232
  command = aruba.command_monitor.find(Aruba.platform.detect_ruby(cmd))
@@ -235,34 +244,38 @@ end
235
244
  # you don't need regex, use "the output should contain" instead since
236
245
  # that way, you don't have to escape regex characters that
237
246
  # appear naturally in the output
238
- Then(/^the output should( not)? match \/([^\/]*)\/$/) do |negated, expected|
247
+ Then(%r{^the output should( not)? match /([^/]*)/$}) do |negated, expected|
239
248
  if negated
240
- expect(all_commands).not_to include_an_object have_output an_output_string_matching(expected)
249
+ expect(all_commands)
250
+ .not_to include_an_object have_output an_output_string_matching(expected)
241
251
  else
242
- expect(all_commands).to include_an_object have_output an_output_string_matching(expected)
252
+ expect(all_commands)
253
+ .to include_an_object have_output an_output_string_matching(expected)
243
254
  end
244
255
  end
245
256
 
246
257
  Then(/^the output should( not)? match %r<([^>]*)>$/) do |negated, expected|
247
258
  if negated
248
- expect(all_commands).not_to include_an_object have_output an_output_string_matching(expected)
259
+ expect(all_commands)
260
+ .not_to include_an_object have_output an_output_string_matching(expected)
249
261
  else
250
- expect(all_commands).to include_an_object have_output an_output_string_matching(expected)
262
+ expect(all_commands)
263
+ .to include_an_object have_output an_output_string_matching(expected)
251
264
  end
252
265
  end
253
266
 
254
267
  Then(/^the output should( not)? match:$/) do |negated, expected|
255
268
  if negated
256
- expect(all_commands).not_to include_an_object have_output an_output_string_matching(expected)
269
+ expect(all_commands)
270
+ .not_to include_an_object have_output an_output_string_matching(expected)
257
271
  else
258
- expect(all_commands).to include_an_object have_output an_output_string_matching(expected)
272
+ expect(all_commands)
273
+ .to include_an_object have_output an_output_string_matching(expected)
259
274
  end
260
275
  end
261
276
 
262
277
  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
278
+ last_command_started.stop if last_command_stopped.nil?
266
279
 
267
280
  if negated
268
281
  expect(last_command_stopped).not_to have_exit_status exit_status.to_i
@@ -274,7 +287,7 @@ end
274
287
  Then(/^it should not (pass|fail) with "(.*?)"$/) do |pass_fail, expected|
275
288
  last_command_started.stop
276
289
 
277
- if pass_fail == 'pass'
290
+ if pass_fail == "pass"
278
291
  expect(last_command_stopped).to be_successfully_executed
279
292
  else
280
293
  expect(last_command_stopped).not_to be_successfully_executed
@@ -286,7 +299,7 @@ end
286
299
  Then(/^it should (pass|fail) with "(.*?)"$/) do |pass_fail, expected|
287
300
  last_command_started.stop
288
301
 
289
- if pass_fail == 'pass'
302
+ if pass_fail == "pass"
290
303
  expect(last_command_stopped).to be_successfully_executed
291
304
  else
292
305
  expect(last_command_stopped).not_to be_successfully_executed
@@ -298,7 +311,7 @@ end
298
311
  Then(/^it should not (pass|fail) with:$/) do |pass_fail, expected|
299
312
  last_command_started.stop
300
313
 
301
- if pass_fail == 'pass'
314
+ if pass_fail == "pass"
302
315
  expect(last_command_stopped).to be_successfully_executed
303
316
  else
304
317
  expect(last_command_stopped).not_to be_successfully_executed
@@ -310,7 +323,7 @@ end
310
323
  Then(/^it should (pass|fail) with:$/) do |pass_fail, expected|
311
324
  last_command_started.stop
312
325
 
313
- if pass_fail == 'pass'
326
+ if pass_fail == "pass"
314
327
  expect(last_command_stopped).to be_successfully_executed
315
328
  else
316
329
  expect(last_command_stopped).not_to be_successfully_executed
@@ -322,7 +335,7 @@ end
322
335
  Then(/^it should not (pass|fail) with exactly:$/) do |pass_fail, expected|
323
336
  last_command_started.stop
324
337
 
325
- if pass_fail == 'pass'
338
+ if pass_fail == "pass"
326
339
  expect(last_command_stopped).to be_successfully_executed
327
340
  else
328
341
  expect(last_command_stopped).not_to be_successfully_executed
@@ -334,7 +347,7 @@ end
334
347
  Then(/^it should (pass|fail) with exactly:$/) do |pass_fail, expected|
335
348
  last_command_started.stop
336
349
 
337
- if pass_fail == 'pass'
350
+ if pass_fail == "pass"
338
351
  expect(last_command_stopped).to be_successfully_executed
339
352
  else
340
353
  expect(last_command_stopped).not_to be_successfully_executed
@@ -346,7 +359,7 @@ end
346
359
  Then(/^it should not (pass|fail) (?:with regexp?|matching):$/) do |pass_fail, expected|
347
360
  last_command_started.stop
348
361
 
349
- if pass_fail == 'pass'
362
+ if pass_fail == "pass"
350
363
  expect(last_command_stopped).to be_successfully_executed
351
364
  else
352
365
  expect(last_command_stopped).not_to be_successfully_executed
@@ -358,7 +371,7 @@ end
358
371
  Then(/^it should (pass|fail) (?:with regexp?|matching):$/) do |pass_fail, expected|
359
372
  last_command_started.stop
360
373
 
361
- if pass_fail == 'pass'
374
+ if pass_fail == "pass"
362
375
  expect(last_command_stopped).to be_successfully_executed
363
376
  else
364
377
  expect(last_command_stopped).not_to be_successfully_executed
@@ -368,35 +381,32 @@ Then(/^it should (pass|fail) (?:with regexp?|matching):$/) do |pass_fail, expect
368
381
  end
369
382
 
370
383
  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
384
+ matcher = case channel
385
+ when "output"; then :have_output
386
+ when "stderr"; then :have_output_on_stderr
387
+ when "stdout"; then :have_output_on_stdout
378
388
  end
379
389
 
380
390
  expect(all_commands).to include_an_object send(matcher, be_nil.or(be_empty))
381
391
  end
382
392
 
383
- Then(/^(?:the )?(output|stdout|stderr) should( not)? contain all of these lines:$/) do |channel, negated, table|
393
+ Then(/^(?:the )?(output|stdout|stderr) should( not)? contain all of these lines:$/) \
394
+ do |channel, negated, table|
384
395
  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
396
+ _matcher = case channel
397
+ when "output"; then :have_output
398
+ when "stderr"; then :have_output_on_stderr
399
+ when "stdout"; then :have_output_on_stdout
400
+ end
393
401
 
394
402
  # TODO: This isn't actually using the above. It's hardcoded to use have_output only
395
403
 
396
404
  if negated
397
- expect(all_commands).not_to include_an_object have_output an_output_string_including(expected)
405
+ expect(all_commands)
406
+ .not_to include_an_object have_output an_output_string_including(expected)
398
407
  else
399
- expect(all_commands).to include_an_object have_output an_output_string_including(expected)
408
+ expect(all_commands)
409
+ .to include_an_object have_output an_output_string_including(expected)
400
410
  end
401
411
  end
402
412
  end
@@ -417,10 +427,11 @@ Given(/^I wait ([\d.]+) seconds? for (?:a|the) command to start up$/) do |second
417
427
  aruba.config.startup_wait_time = seconds.to_f
418
428
  end
419
429
 
420
- When(/^I send the signal "([^"]*)" to the command (?:"([^"]*)"|(?:started last))$/) do |signal, command|
430
+ When(/^I send the signal "([^"]*)" to the command (?:"([^"]*)"|(?:started last))$/) \
431
+ do |signal, command|
421
432
  if command
422
433
  cmd = all_commands.find { |c| c.commandline == command }
423
- fail ArgumentError, %(No command "#{command}" found) if cmd.nil?
434
+ raise ArgumentError, %(No command "#{command}" found) if cmd.nil?
424
435
 
425
436
  cmd.send_signal signal
426
437
  else
@@ -429,5 +440,5 @@ When(/^I send the signal "([^"]*)" to the command (?:"([^"]*)"|(?:started last))
429
440
  end
430
441
 
431
442
  Given(/^I look for executables in "(.*)" within the current directory$/) do |directory|
432
- prepend_environment_variable 'PATH', expand_path(directory) + File::PATH_SEPARATOR
443
+ prepend_environment_variable "PATH", expand_path(directory) + File::PATH_SEPARATOR
433
444
  end