aruba 0.14.14 → 1.0.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 (299) hide show
  1. checksums.yaml +4 -4
  2. data/.cucumberproignore +3 -0
  3. data/.github/ISSUE_TEMPLATE.md +48 -0
  4. data/.github/PULL_REQUEST_TEMPLATE.md +41 -0
  5. data/.gitignore +1 -0
  6. data/.rspec +1 -1
  7. data/.rubocop.yml +20 -181
  8. data/.rubocop_todo.yml +262 -0
  9. data/.simplecov +7 -5
  10. data/.travis.yml +53 -28
  11. data/.yardopts +3 -0
  12. data/CHANGELOG.md +301 -2
  13. data/CONTRIBUTING.md +247 -45
  14. data/Dockerfile +67 -0
  15. data/Gemfile +5 -114
  16. data/LICENSE +1 -1
  17. data/README.md +57 -180
  18. data/Rakefile +63 -32
  19. data/appveyor.yml +8 -11
  20. data/aruba.gemspec +47 -41
  21. data/bin/console +7 -0
  22. data/bin/test +9 -0
  23. data/cucumber.yml +4 -24
  24. data/doc/dependency_decisions.yml +35 -13
  25. data/docker-compose.yml +26 -0
  26. data/{bin → exe}/aruba +1 -1
  27. data/fixtures/cli-app/Rakefile +1 -1
  28. data/fixtures/cli-app/bin/aruba-test-cli +1 -1
  29. data/fixtures/cli-app/cli-app.gemspec +1 -2
  30. data/fixtures/cli-app/features/support/aruba.rb +1 -0
  31. data/fixtures/cli-app/features/support/env.rb +1 -1
  32. data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +3 -3
  33. data/fixtures/cli-app/lib/cli/app/version.rb +1 -1
  34. data/fixtures/cli-app/lib/cli/app.rb +1 -5
  35. data/fixtures/cli-app/spec/spec_helper.rb +4 -7
  36. data/fixtures/empty-app/Rakefile +1 -1
  37. data/fixtures/empty-app/cli-app.gemspec +1 -2
  38. data/fixtures/empty-app/lib/cli/app/version.rb +1 -1
  39. data/fixtures/getting-started-app/Gemfile +1 -1
  40. data/lib/aruba/api/commands.rb +85 -143
  41. data/lib/aruba/api/core.rb +48 -41
  42. data/lib/aruba/api/environment.rb +16 -7
  43. data/lib/aruba/api/filesystem.rb +43 -30
  44. data/lib/aruba/api/text.rb +3 -9
  45. data/lib/aruba/api.rb +6 -11
  46. data/lib/aruba/aruba_path.rb +27 -89
  47. data/lib/aruba/basic_configuration.rb +4 -24
  48. data/lib/aruba/cli.rb +1 -1
  49. data/lib/aruba/command.rb +2 -0
  50. data/lib/aruba/config/jruby.rb +1 -1
  51. data/lib/aruba/config_wrapper.rb +1 -1
  52. data/lib/aruba/configuration.rb +92 -0
  53. data/lib/aruba/console/help.rb +1 -7
  54. data/lib/aruba/console.rb +5 -5
  55. data/lib/aruba/contracts/absolute_path.rb +2 -2
  56. data/lib/aruba/contracts/relative_path.rb +2 -2
  57. data/lib/aruba/cucumber/command.rb +133 -92
  58. data/lib/aruba/cucumber/environment.rb +1 -1
  59. data/lib/aruba/cucumber/file.rb +21 -23
  60. data/lib/aruba/cucumber/hooks.rb +18 -13
  61. data/lib/aruba/cucumber/testing_frameworks.rb +74 -50
  62. data/lib/aruba/cucumber.rb +0 -6
  63. data/lib/aruba/event_bus/name_resolver.rb +5 -16
  64. data/lib/aruba/hooks.rb +1 -1
  65. data/lib/aruba/in_config_wrapper.rb +5 -1
  66. data/lib/aruba/initializer.rb +36 -42
  67. data/lib/aruba/matchers/base/base_matcher.rb +2 -2
  68. data/lib/aruba/matchers/base/message_indenter.rb +19 -0
  69. data/lib/aruba/matchers/base/object_formatter.rb +2 -9
  70. data/lib/aruba/matchers/collection/include_an_object.rb +7 -9
  71. data/lib/aruba/matchers/command/be_successfully_executed.rb +6 -4
  72. data/lib/aruba/matchers/command/have_exit_status.rb +14 -4
  73. data/lib/aruba/matchers/command/have_finished_in_time.rb +3 -5
  74. data/lib/aruba/matchers/command/have_output.rb +10 -5
  75. data/lib/aruba/matchers/command/have_output_on_stderr.rb +2 -2
  76. data/lib/aruba/matchers/command/have_output_on_stdout.rb +2 -2
  77. data/lib/aruba/matchers/command/have_output_size.rb +2 -2
  78. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +5 -7
  79. data/lib/aruba/matchers/directory/have_sub_directory.rb +4 -6
  80. data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +2 -4
  81. data/lib/aruba/matchers/file/be_an_existing_executable.rb +4 -6
  82. data/lib/aruba/matchers/file/be_an_existing_file.rb +5 -7
  83. data/lib/aruba/matchers/file/have_file_content.rb +4 -4
  84. data/lib/aruba/matchers/file/have_file_size.rb +6 -8
  85. data/lib/aruba/matchers/file/have_same_file_content.rb +5 -8
  86. data/lib/aruba/matchers/path/a_path_matching_pattern.rb +2 -4
  87. data/lib/aruba/matchers/path/be_an_absolute_path.rb +3 -5
  88. data/lib/aruba/matchers/path/be_an_existing_path.rb +4 -6
  89. data/lib/aruba/matchers/path/have_permissions.rb +6 -8
  90. data/lib/aruba/matchers/string/include_output_string.rb +8 -10
  91. data/lib/aruba/matchers/string/match_output_string.rb +9 -11
  92. data/lib/aruba/matchers/string/output_string_eq.rb +8 -10
  93. data/lib/aruba/platform.rb +0 -8
  94. data/lib/aruba/platforms/announcer.rb +30 -72
  95. data/lib/aruba/platforms/aruba_file_creator.rb +2 -6
  96. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +2 -2
  97. data/lib/aruba/platforms/aruba_logger.rb +23 -7
  98. data/lib/aruba/platforms/command_monitor.rb +11 -103
  99. data/lib/aruba/platforms/determine_disk_usage.rb +56 -14
  100. data/lib/aruba/platforms/filesystem_status.rb +10 -14
  101. data/lib/aruba/platforms/local_environment.rb +2 -2
  102. data/lib/aruba/platforms/simple_table.rb +3 -11
  103. data/lib/aruba/platforms/unix_command_string.rb +7 -11
  104. data/lib/aruba/platforms/unix_environment_variables.rb +18 -27
  105. data/lib/aruba/platforms/unix_platform.rb +16 -50
  106. data/lib/aruba/platforms/unix_which.rb +2 -1
  107. data/lib/aruba/platforms/windows_command_string.rb +15 -10
  108. data/lib/aruba/platforms/windows_environment_variables.rb +43 -44
  109. data/lib/aruba/platforms/windows_platform.rb +4 -0
  110. data/lib/aruba/platforms/windows_which.rb +4 -3
  111. data/lib/aruba/processes/basic_process.rb +18 -20
  112. data/lib/aruba/processes/debug_process.rb +12 -3
  113. data/lib/aruba/processes/in_process.rb +17 -8
  114. data/lib/aruba/processes/spawn_process.rb +36 -39
  115. data/lib/aruba/rspec.rb +14 -36
  116. data/lib/aruba/runtime.rb +3 -6
  117. data/lib/aruba/setup.rb +1 -1
  118. data/lib/aruba/tasks/docker_helpers.rb +154 -0
  119. data/lib/aruba/version.rb +1 -1
  120. metadata +190 -242
  121. data/features/.nav +0 -72
  122. data/features/01_getting_started_with_aruba/cleanup_working_directory.feature +0 -57
  123. data/features/01_getting_started_with_aruba/run_commands.feature +0 -217
  124. data/features/01_getting_started_with_aruba/supported_testing_frameworks.feature +0 -88
  125. data/features/02_configure_aruba/activate_announcer_on_command_failure.feature +0 -38
  126. data/features/02_configure_aruba/basics.feature +0 -151
  127. data/features/02_configure_aruba/command_runtime_environment.feature +0 -129
  128. data/features/02_configure_aruba/console_history_file.feature +0 -38
  129. data/features/02_configure_aruba/exit_timeout.feature +0 -60
  130. data/features/02_configure_aruba/fixtures_directories.feature +0 -38
  131. data/features/02_configure_aruba/fixtures_path_prefix.feature +0 -23
  132. data/features/02_configure_aruba/home_directory.feature +0 -80
  133. data/features/02_configure_aruba/io_timeout.feature +0 -30
  134. data/features/02_configure_aruba/keep_ansi.feature +0 -30
  135. data/features/02_configure_aruba/log_level.feature +0 -38
  136. data/features/02_configure_aruba/physical_block_size.feature +0 -53
  137. data/features/02_configure_aruba/remove_ansi_escape_sequences.feature +0 -38
  138. data/features/02_configure_aruba/root_directory.feature +0 -30
  139. data/features/02_configure_aruba/startup_wait_time.feature +0 -48
  140. data/features/02_configure_aruba/working_directory.feature +0 -38
  141. data/features/03_testing_frameworks/cucumber/announce_information_for_troubleshooting.feature +0 -306
  142. data/features/03_testing_frameworks/cucumber/disable_bunder.feature +0 -18
  143. data/features/03_testing_frameworks/cucumber/steps/command/check_for_exit_statuses.feature +0 -136
  144. data/features/03_testing_frameworks/cucumber/steps/command/check_output_of_command.feature +0 -514
  145. data/features/03_testing_frameworks/cucumber/steps/command/check_stderr_of_command.feature +0 -68
  146. data/features/03_testing_frameworks/cucumber/steps/command/check_stdout_of_command.feature +0 -109
  147. data/features/03_testing_frameworks/cucumber/steps/command/debug_your_command_in_aruba.feature +0 -118
  148. data/features/03_testing_frameworks/cucumber/steps/command/run_a_command.feature +0 -66
  149. data/features/03_testing_frameworks/cucumber/steps/command/run_command_in_process.feature +0 -485
  150. data/features/03_testing_frameworks/cucumber/steps/command/run_command_interactively.feature +0 -90
  151. data/features/03_testing_frameworks/cucumber/steps/command/run_commands_which_require_a_shell.feature +0 -79
  152. data/features/03_testing_frameworks/cucumber/steps/command/send_signal_to_command.feature +0 -83
  153. data/features/03_testing_frameworks/cucumber/steps/command/stop_command.feature +0 -285
  154. data/features/03_testing_frameworks/cucumber/steps/environment/append_environment_variable.feature +0 -52
  155. data/features/03_testing_frameworks/cucumber/steps/environment/modify_home_variable_for_testing.feature +0 -62
  156. data/features/03_testing_frameworks/cucumber/steps/environment/prepend_environment_variable.feature +0 -52
  157. data/features/03_testing_frameworks/cucumber/steps/environment/set_environment_variable.feature +0 -49
  158. data/features/03_testing_frameworks/cucumber/steps/filesystem/append_to_file.feature +0 -45
  159. data/features/03_testing_frameworks/cucumber/steps/filesystem/cd_to_directory.feature +0 -33
  160. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_existence_of_directory.feature +0 -57
  161. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_existence_of_file.feature +0 -43
  162. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_file_content.feature +0 -143
  163. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_non_existence_of_directory.feature +0 -69
  164. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_non_existence_of_file.feature +0 -80
  165. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_permissions_of_file.feature +0 -39
  166. data/features/03_testing_frameworks/cucumber/steps/filesystem/compare_files.feature +0 -42
  167. data/features/03_testing_frameworks/cucumber/steps/filesystem/copy_file_or_directory.feature +0 -45
  168. data/features/03_testing_frameworks/cucumber/steps/filesystem/create_directory.feature +0 -57
  169. data/features/03_testing_frameworks/cucumber/steps/filesystem/create_file.feature +0 -76
  170. data/features/03_testing_frameworks/cucumber/steps/filesystem/move_file_or_directory.feature +0 -44
  171. data/features/03_testing_frameworks/cucumber/steps/filesystem/overwrite_file.feature +0 -72
  172. data/features/03_testing_frameworks/cucumber/steps/filesystem/remove_directory.feature +0 -38
  173. data/features/03_testing_frameworks/cucumber/steps/filesystem/remove_file.feature +0 -38
  174. data/features/03_testing_frameworks/cucumber/steps/filesystem/use_fixtures_for_setup_test.feature +0 -77
  175. data/features/03_testing_frameworks/rspec/hooks/define_after_hook_for_commands.feature +0 -43
  176. data/features/03_testing_frameworks/rspec/hooks/define_before_hook_for_commands.feature +0 -71
  177. data/features/03_testing_frameworks/rspec/setup_aruba_for_rspec.feature +0 -179
  178. data/features/04_aruba_api/command/find_a_started_command.feature +0 -83
  179. data/features/04_aruba_api/command/find_command_in_PATH.feature +0 -37
  180. data/features/04_aruba_api/command/read_stderr_of_command.feature +0 -46
  181. data/features/04_aruba_api/command/read_stdout_of_command.feature +0 -46
  182. data/features/04_aruba_api/command/run_command.feature +0 -423
  183. data/features/04_aruba_api/command/run_simple.feature +0 -254
  184. data/features/04_aruba_api/command/send_signal_to_command.feature +0 -53
  185. data/features/04_aruba_api/command/stop_all_commands.feature +0 -57
  186. data/features/04_aruba_api/command/stop_single_command.feature +0 -132
  187. data/features/04_aruba_api/command/terminate_all_commands.feature +0 -57
  188. data/features/04_aruba_api/command/use_last_command_started.feature +0 -50
  189. data/features/04_aruba_api/command/use_last_command_stopped.feature +0 -89
  190. data/features/04_aruba_api/core/expand_path.feature +0 -88
  191. data/features/04_aruba_api/environment/append_environment_variable.feature +0 -128
  192. data/features/04_aruba_api/environment/delete_environment_variable.feature +0 -63
  193. data/features/04_aruba_api/environment/prepend_environment_variable.feature +0 -128
  194. data/features/04_aruba_api/environment/set_environment_variable.feature +0 -376
  195. data/features/04_aruba_api/filesystem/cd_to_directory.feature +0 -184
  196. data/features/04_aruba_api/filesystem/check_existence_file_or_directory.feature +0 -62
  197. data/features/04_aruba_api/filesystem/check_if_path_is_absolute.feature +0 -48
  198. data/features/04_aruba_api/filesystem/check_if_path_is_directory.feature +0 -53
  199. data/features/04_aruba_api/filesystem/check_if_path_is_file.feature +0 -54
  200. data/features/04_aruba_api/filesystem/check_if_path_is_relative.feature +0 -48
  201. data/features/04_aruba_api/filesystem/create_directory.feature +0 -57
  202. data/features/04_aruba_api/filesystem/move_file_or_directory.feature +0 -119
  203. data/features/04_aruba_api/filesystem/report_disk_usage.feature +0 -152
  204. data/features/04_aruba_api/filesystem/use_fixtures.feature +0 -104
  205. data/features/04_aruba_api/text/extract_text.feature +0 -87
  206. data/features/04_aruba_api/text/replace_variables.feature +0 -45
  207. data/features/04_aruba_api/text/sanitize_text.feature +0 -228
  208. data/features/04_aruba_api/text/unescape_text.feature +0 -127
  209. data/features/05_use_rspec_matchers/command/check_timeouts.feature +0 -48
  210. data/features/05_use_rspec_matchers/directory/have_sub_directory.feature +0 -110
  211. data/features/05_use_rspec_matchers/file/be_a_command_found_in_path.feature +0 -115
  212. data/features/05_use_rspec_matchers/file/be_existing_executable.feature +0 -88
  213. data/features/05_use_rspec_matchers/file/be_existing_file.feature +0 -82
  214. data/features/05_use_rspec_matchers/file/have_file_content.feature +0 -123
  215. data/features/05_use_rspec_matchers/file/have_file_size.feature +0 -107
  216. data/features/05_use_rspec_matchers/path/be_an_absolute_path.feature +0 -74
  217. data/features/05_use_rspec_matchers/path/be_an_existing_path.feature +0 -97
  218. data/features/05_use_rspec_matchers/path/have_permissions.feature +0 -118
  219. data/features/06_use_aruba_cli/initialize_project_with_aruba.feature +0 -79
  220. data/features/06_use_aruba_cli/open_console.feature +0 -55
  221. data/features/08_other/improve_performance_if_using_jruby.feature +0 -37
  222. data/features/step_definitions/hooks.rb +0 -146
  223. data/features/support/aruba.rb +0 -7
  224. data/features/support/env.rb +0 -33
  225. data/features/support/simplecov_setup.rb +0 -11
  226. data/fixtures/spawn_process/stderr.sh +0 -3
  227. data/lib/aruba/api/deprecated.rb +0 -1155
  228. data/lib/aruba/config.rb +0 -107
  229. data/lib/aruba/cucumber/core.rb +0 -5
  230. data/lib/aruba/cucumber/deprecated.rb +0 -93
  231. data/lib/aruba/cucumber/rvm.rb +0 -3
  232. data/lib/aruba/in_process.rb +0 -16
  233. data/lib/aruba/jruby.rb +0 -4
  234. data/lib/aruba/matchers/deprecated/file.rb +0 -17
  235. data/lib/aruba/matchers/deprecated.rb +0 -1
  236. data/lib/aruba/matchers/path/match_path_pattern.rb +0 -41
  237. data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +0 -25
  238. data/lib/aruba/platforms/disk_usage_calculator.rb +0 -20
  239. data/lib/aruba/reporting.rb +0 -126
  240. data/lib/aruba/spawn_process.rb +0 -14
  241. data/script/bootstrap +0 -24
  242. data/script/console +0 -16
  243. data/script/test +0 -3
  244. data/spec/aruba/api/bundler_spec.rb +0 -15
  245. data/spec/aruba/api/commands_spec.rb +0 -30
  246. data/spec/aruba/api/core_spec.rb +0 -184
  247. data/spec/aruba/api/deprecated_spec.rb +0 -421
  248. data/spec/aruba/api/filesystem_spec.rb +0 -746
  249. data/spec/aruba/api/runtime_spec.rb +0 -28
  250. data/spec/aruba/api_spec.rb +0 -73
  251. data/spec/aruba/aruba_path_spec.rb +0 -103
  252. data/spec/aruba/basic_configuration_spec.rb +0 -5
  253. data/spec/aruba/configuration_spec.rb +0 -5
  254. data/spec/aruba/hooks_spec.rb +0 -17
  255. data/spec/aruba/in_config_wrapper_spec.rb +0 -25
  256. data/spec/aruba/jruby_spec.rb +0 -73
  257. data/spec/aruba/matchers/command/have_output_size_spec.rb +0 -25
  258. data/spec/aruba/matchers/command_spec.rb +0 -174
  259. data/spec/aruba/matchers/deprecated_spec.rb +0 -120
  260. data/spec/aruba/matchers/directory_spec.rb +0 -57
  261. data/spec/aruba/matchers/file_spec.rb +0 -208
  262. data/spec/aruba/matchers/path_spec.rb +0 -58
  263. data/spec/aruba/platform/simple_table_spec.rb +0 -23
  264. data/spec/aruba/platform/windows_environment_variables_spec.rb +0 -500
  265. data/spec/aruba/platforms/unix_command_string_spec.rb +0 -17
  266. data/spec/aruba/platforms/windows_command_string_spec.rb +0 -22
  267. data/spec/aruba/processes/spawn_process_spec.rb +0 -112
  268. data/spec/aruba/rspec_spec.rb +0 -15
  269. data/spec/aruba/runtime_spec.rb +0 -29
  270. data/spec/event_bus/name_resolver_spec.rb +0 -68
  271. data/spec/event_bus_spec.rb +0 -158
  272. data/spec/spec_helper.rb +0 -22
  273. data/spec/support/configs/.keep +0 -0
  274. data/spec/support/configs/aruba.rb +0 -5
  275. data/spec/support/configs/pry.rb +0 -3
  276. data/spec/support/configs/rspec.rb +0 -15
  277. data/spec/support/helpers/.keep +0 -0
  278. data/spec/support/helpers/reporting.rb +0 -44
  279. data/spec/support/matchers/.keep +0 -0
  280. data/spec/support/matchers/option.rb +0 -35
  281. data/spec/support/shared_contexts/.keep +0 -0
  282. data/spec/support/shared_contexts/aruba.rb +0 -49
  283. data/spec/support/shared_examples/.keep +0 -0
  284. data/spec/support/shared_examples/configuration.rb +0 -116
  285. data/spec/support/shared_examples/directory.rb +0 -7
  286. data/spec/support/shared_examples/file.rb +0 -7
  287. data/templates/css/console.css +0 -24
  288. data/templates/css/filesystem.css +0 -42
  289. data/templates/css/pygments-autumn.css +0 -59
  290. data/templates/files.erb +0 -14
  291. data/templates/images/LICENSE +0 -22
  292. data/templates/images/folder.png +0 -0
  293. data/templates/images/page_white.png +0 -0
  294. data/templates/images/page_white_gherkin.png +0 -0
  295. data/templates/images/page_white_ruby.png +0 -0
  296. data/templates/index.erb +0 -20
  297. data/templates/js/filesystem.js +0 -5
  298. data/templates/js/jquery-1.11.3.min.js +0 -5
  299. data/templates/main.erb +0 -34
@@ -18,13 +18,7 @@ module Aruba
18
18
 
19
19
  # List available methods in aruba
20
20
  def aruba_methods
21
- ms = if RUBY_VERSION < '1.9'
22
- # rubocop:disable Style/EachWithObject
23
- (Aruba::Api.instance_methods - Module.instance_methods).inject([]) { |a, e| a << format("* %s", e); a }.sort
24
- # rubocop:enable Style/EachWithObject
25
- else
26
- (Aruba::Api.instance_methods - Module.instance_methods).each_with_object([]) { |e, a| a << format("* %s", e) }.sort
27
- end
21
+ ms = (Aruba::Api.instance_methods - Module.instance_methods).each_with_object([]) { |e, a| a << format('* %s', e) }.sort
28
22
 
29
23
  puts "Available Methods:\n" + ms.join("\n")
30
24
 
data/lib/aruba/console.rb CHANGED
@@ -20,10 +20,10 @@ module Aruba
20
20
 
21
21
  IRB.conf[:PROMPT] = {}
22
22
  IRB.conf[:PROMPT][:ARUBA] = {
23
- :PROMPT_I => '%N:%03n:%i> ',
24
- :PROMPT_S => '%N:%03n:%i%l ',
25
- :PROMPT_C => '%N:%03n:%i* ',
26
- :RETURN => "# => %s\n"
23
+ PROMPT_I: '%N:%03n:%i> ',
24
+ PROMPT_S: '%N:%03n:%i%l ',
25
+ PROMPT_C: '%N:%03n:%i* ',
26
+ RETURN: "# => %s\n"
27
27
  }
28
28
  IRB.conf[:PROMPT_MODE] = :ARUBA
29
29
 
@@ -51,7 +51,7 @@ module Aruba
51
51
  irb = IRB::Irb.new(IRB::WorkSpace.new(context.new))
52
52
  IRB.conf[:MAIN_CONTEXT] = irb.context
53
53
 
54
- trap("SIGINT") do
54
+ trap('SIGINT') do
55
55
  irb.signal_handle
56
56
  end
57
57
 
@@ -1,4 +1,4 @@
1
- require 'aruba/aruba_path'
1
+ require 'aruba/platform'
2
2
 
3
3
  # Aruba
4
4
  module Aruba
@@ -11,7 +11,7 @@ module Aruba
11
11
  # @param [Object] value
12
12
  # The value to be checked
13
13
  def self.valid?(value)
14
- ArubaPath.new(value).absolute?
14
+ Aruba.platform.absolute_path? value
15
15
  rescue
16
16
  false
17
17
  end
@@ -1,4 +1,4 @@
1
- require 'aruba/aruba_path'
1
+ require 'aruba/platform'
2
2
 
3
3
  # Aruba
4
4
  module Aruba
@@ -11,7 +11,7 @@ module Aruba
11
11
  # @param [String] value
12
12
  # The path to be checked
13
13
  def self.valid?(value)
14
- ArubaPath.new(value).relative?
14
+ Aruba.platform.relative_path? value
15
15
  rescue
16
16
  false
17
17
  end
@@ -1,34 +1,29 @@
1
- if Aruba::VERSION < '1.0.0'
2
- require 'aruba/cucumber/core'
3
- end
4
1
  require 'aruba/generators/script_file'
5
2
 
6
3
  When(/^I run `([^`]*)`$/) do |cmd|
7
4
  cmd = sanitize_text(cmd)
8
- run_command_and_stop(cmd, :fail_on_error => false)
5
+ run_command_and_stop(cmd, fail_on_error: false)
9
6
  end
10
7
 
11
8
  ## I successfully run `echo -n "Hello"`
12
9
  ## I successfully run `sleep 29` for up to 30 seconds
13
10
  When(/^I successfully run `(.*?)`(?: for up to ([\d.]+) seconds)?$/) do |cmd, secs|
14
11
  cmd = sanitize_text(cmd)
15
- run_command_and_stop(cmd, :fail_on_error => true, :exit_timeout => secs && secs.to_f)
12
+ run_command_and_stop(cmd, fail_on_error: true, exit_timeout: secs && secs.to_f)
16
13
  end
17
14
 
18
15
  When(/^I run the following (?:commands|script)(?: (?:with|in) `([^`]+)`)?:$/) do |shell, commands|
19
- prepend_environment_variable('PATH', expand_path('bin') + File::PATH_SEPARATOR)
16
+ full_path = expand_path('bin/myscript')
20
17
 
21
18
  Aruba.platform.mkdir(expand_path('bin'))
22
19
  shell ||= Aruba.platform.default_shell
23
20
 
24
- Aruba::ScriptFile.new(:interpreter => shell, :content => commands,
25
- :path => expand_path('bin/myscript')).call
26
- step 'I run `myscript`'
21
+ Aruba::ScriptFile.new(interpreter: shell, content: commands, path: full_path).call
22
+ run_command_and_stop(Shellwords.escape(full_path), fail_on_error: false)
27
23
  end
28
24
 
29
25
  When(/^I run `([^`]*)` interactively$/) do |cmd|
30
- cmd = sanitize_text(cmd)
31
- @interactive = run_command(cmd)
26
+ run_command(sanitize_text(cmd))
32
27
  end
33
28
 
34
29
  # Merge interactive and background after refactoring with event queue
@@ -51,39 +46,26 @@ When(/^I pipe in (?:a|the) file(?: named)? "([^"]*)"$/) do |file|
51
46
  end
52
47
 
53
48
  When(/^I (terminate|stop) the command (?:"([^"]*)"|(?:started last))$/) do |signal, command|
54
- if command
55
- cmd = all_commands.find { |c| c.commandline == command }
56
- fail ArgumentError, %(No command "#{command}" found) if cmd.nil?
49
+ monitor = aruba.command_monitor
57
50
 
58
- if signal == 'terminate'
59
- # last_command_started.terminate
60
- process_monitor.terminate_process!(process_monitor.get_process(command))
61
- else
62
- # last_command_started.stop
63
- process_monitor.stop_process(process_monitor.get_process(command))
64
- end
51
+ cmd = if command
52
+ monitor.find(command)
53
+ else
54
+ last_command_started
55
+ end
56
+
57
+ if signal == 'terminate'
58
+ cmd.terminate
65
59
  else
66
- if signal == 'terminate'
67
- # last_command_started.terminate
68
- process_monitor.terminate_process!(last_command_started)
69
- else
70
- # last_command_started.stop
71
- process_monitor.stop_process(last_command_started)
72
- end
60
+ cmd.stop
73
61
  end
74
62
  end
75
63
 
76
64
  When(/^I stop the command(?: started last)? if (output|stdout|stderr) contains:$/) do |channel, expected|
77
- fail %(Invalid output channel "#{channel}" chosen. Please choose one of "output, stdout or stderr") unless %w(output stdout stderr).include? channel
78
-
79
65
  begin
80
66
  Timeout.timeout(aruba.config.exit_timeout) do
81
67
  loop do
82
- output = if RUBY_VERSION < '1.9.3'
83
- last_command_started.send channel.to_sym, :wait_for_io => 0
84
- else
85
- last_command_started.public_send channel.to_sym, :wait_for_io => 0
86
- end
68
+ output = last_command_started.public_send channel.to_sym, wait_for_io: 0
87
69
 
88
70
  output = sanitize_text(output)
89
71
  expected = sanitize_text(expected)
@@ -97,7 +79,7 @@ When(/^I stop the command(?: started last)? if (output|stdout|stderr) contains:$
97
79
  sleep 0.1
98
80
  end
99
81
  end
100
- rescue ChildProcess::TimeoutError, TimeoutError
82
+ rescue ChildProcess::TimeoutError, Timeout::Error
101
83
  last_command_started.terminate
102
84
  end
103
85
  end
@@ -136,15 +118,9 @@ Then(/^the output should be (\d+) bytes long$/) do |size|
136
118
  expect(last_command_started.output).to have_output_size size.to_i
137
119
  end
138
120
 
121
+ ## the stderr should contain "hello"
139
122
  Then(/^(?:the )?(output|stderr|stdout) should( not)? contain( exactly)? "([^"]*)"$/) do |channel, negated, exactly, expected|
140
- combined_output = case channel.to_sym
141
- when :output
142
- all_output
143
- when :stderr
144
- all_stderr
145
- when :stdout
146
- all_stdout
147
- end
123
+ combined_output = send("all_#{channel}")
148
124
 
149
125
  output_string_matcher = if exactly
150
126
  :an_output_string_being_eq
@@ -159,6 +135,7 @@ Then(/^(?:the )?(output|stderr|stdout) should( not)? contain( exactly)? "([^"]*)
159
135
  end
160
136
  end
161
137
 
138
+ ## the stderr from "echo -n 'Hello'" should contain "hello"
162
139
  Then(/^(?:the )?(output|stderr|stdout) from "([^"]*)" should( not)? contain( exactly)? "([^"]*)"$/) do |channel, cmd, negated, exactly, expected|
163
140
  matcher = case channel.to_sym
164
141
  when :output
@@ -184,15 +161,9 @@ Then(/^(?:the )?(output|stderr|stdout) from "([^"]*)" should( not)? contain( exa
184
161
  end
185
162
  end
186
163
 
187
- Then(/^(?:the )?(output|stderr|stdout) should( not)? contain( exactly)?:$/) do |channel, negated, exactly, expected|
188
- combined_output = case channel.to_sym
189
- when :output
190
- all_output
191
- when :stderr
192
- all_stderr
193
- when :stdout
194
- all_stdout
195
- end
164
+ ## the stderr should not contain exactly:
165
+ Then(/^(?:the )?(output|stderr|stdout) should not contain( exactly)?:$/) do |channel, exactly, expected|
166
+ combined_output = send("all_#{channel}")
196
167
 
197
168
  output_string_matcher = if exactly
198
169
  :an_output_string_being_eq
@@ -200,14 +171,24 @@ Then(/^(?:the )?(output|stderr|stdout) should( not)? contain( exactly)?:$/) do |
200
171
  :an_output_string_including
201
172
  end
202
173
 
203
- if negated
204
- expect(combined_output).not_to send(output_string_matcher, expected)
205
- else
206
- expect(combined_output).to send(output_string_matcher, expected)
207
- end
174
+ expect(combined_output).not_to send(output_string_matcher, expected)
175
+ end
176
+
177
+ ## the stderr should contain exactly:
178
+ Then(/^(?:the )?(output|stderr|stdout) should contain( exactly)?:$/) do |channel, exactly, expected|
179
+ combined_output = send("all_#{channel}")
180
+
181
+ output_string_matcher = if exactly
182
+ :an_output_string_being_eq
183
+ else
184
+ :an_output_string_including
185
+ end
186
+
187
+ expect(combined_output).to send(output_string_matcher, expected)
208
188
  end
209
189
 
210
- Then(/^(?:the )?(output|stderr|stdout) from "([^"]*)" should( not)? contain( exactly)?:$/) do |channel, cmd, negated, exactly, expected|
190
+ ## 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|
211
192
  matcher = case channel.to_sym
212
193
  when :output
213
194
  :have_output
@@ -225,11 +206,29 @@ Then(/^(?:the )?(output|stderr|stdout) from "([^"]*)" should( not)? contain( exa
225
206
  :an_output_string_including
226
207
  end
227
208
 
228
- if negated
229
- expect(command).not_to send(matcher, send(output_string_matcher, expected))
230
- else
231
- expect(command).to send(matcher, send(output_string_matcher, expected))
232
- end
209
+ expect(command).not_to send(matcher, send(output_string_matcher, expected))
210
+ end
211
+
212
+ ## 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
221
+ end
222
+
223
+ command = aruba.command_monitor.find(Aruba.platform.detect_ruby(cmd))
224
+
225
+ output_string_matcher = if exactly
226
+ :an_output_string_being_eq
227
+ else
228
+ :an_output_string_including
229
+ end
230
+
231
+ expect(command).to send(matcher, send(output_string_matcher, expected))
233
232
  end
234
233
 
235
234
  # "the output should match" allows regex in the partial_output, if
@@ -261,6 +260,10 @@ Then(/^the output should( not)? match:$/) do |negated, expected|
261
260
  end
262
261
 
263
262
  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
266
+
264
267
  if negated
265
268
  expect(last_command_stopped).not_to have_exit_status exit_status.to_i
266
269
  else
@@ -268,60 +271,100 @@ Then(/^the exit status should( not)? be (\d+)$/) do |negated, exit_status|
268
271
  end
269
272
  end
270
273
 
271
- Then(/^it should( not)? (pass|fail) with "(.*?)"$/) do |negated, pass_fail, expected|
274
+ Then(/^it should not (pass|fail) with "(.*?)"$/) do |pass_fail, expected|
275
+ last_command_started.stop
276
+
272
277
  if pass_fail == 'pass'
273
278
  expect(last_command_stopped).to be_successfully_executed
274
279
  else
275
280
  expect(last_command_stopped).not_to be_successfully_executed
276
281
  end
277
282
 
278
- if negated
279
- expect(last_command_stopped).not_to have_output an_output_string_including(expected)
283
+ expect(last_command_stopped).not_to have_output an_output_string_including(expected)
284
+ end
285
+
286
+ Then(/^it should (pass|fail) with "(.*?)"$/) do |pass_fail, expected|
287
+ last_command_started.stop
288
+
289
+ if pass_fail == 'pass'
290
+ expect(last_command_stopped).to be_successfully_executed
280
291
  else
281
- expect(last_command_stopped).to have_output an_output_string_including(expected)
292
+ expect(last_command_stopped).not_to be_successfully_executed
282
293
  end
294
+
295
+ expect(last_command_stopped).to have_output an_output_string_including(expected)
283
296
  end
284
297
 
285
- Then(/^it should( not)? (pass|fail) with:$/) do |negated, pass_fail, expected|
298
+ Then(/^it should not (pass|fail) with:$/) do |pass_fail, expected|
299
+ last_command_started.stop
300
+
286
301
  if pass_fail == 'pass'
287
302
  expect(last_command_stopped).to be_successfully_executed
288
303
  else
289
304
  expect(last_command_stopped).not_to be_successfully_executed
290
305
  end
291
306
 
292
- if negated
293
- expect(last_command_stopped).not_to have_output an_output_string_including(expected)
307
+ expect(last_command_stopped).not_to have_output an_output_string_including(expected)
308
+ end
309
+
310
+ Then(/^it should (pass|fail) with:$/) do |pass_fail, expected|
311
+ last_command_started.stop
312
+
313
+ if pass_fail == 'pass'
314
+ expect(last_command_stopped).to be_successfully_executed
294
315
  else
295
- expect(last_command_stopped).to have_output an_output_string_including(expected)
316
+ expect(last_command_stopped).not_to be_successfully_executed
296
317
  end
318
+
319
+ expect(last_command_stopped).to have_output an_output_string_including(expected)
297
320
  end
298
321
 
299
- Then(/^it should( not)? (pass|fail) with exactly:$/) do |negated, pass_fail, expected|
322
+ Then(/^it should not (pass|fail) with exactly:$/) do |pass_fail, expected|
323
+ last_command_started.stop
324
+
300
325
  if pass_fail == 'pass'
301
326
  expect(last_command_stopped).to be_successfully_executed
302
327
  else
303
328
  expect(last_command_stopped).not_to be_successfully_executed
304
329
  end
305
330
 
306
- if negated
307
- expect(last_command_stopped).not_to have_output an_output_string_eq(expected)
331
+ expect(last_command_stopped).not_to have_output an_output_string_eq(expected)
332
+ end
333
+
334
+ Then(/^it should (pass|fail) with exactly:$/) do |pass_fail, expected|
335
+ last_command_started.stop
336
+
337
+ if pass_fail == 'pass'
338
+ expect(last_command_stopped).to be_successfully_executed
308
339
  else
309
- expect(last_command_stopped).to have_output an_output_string_being_eq(expected)
340
+ expect(last_command_stopped).not_to be_successfully_executed
310
341
  end
342
+
343
+ expect(last_command_stopped).to have_output an_output_string_being_eq(expected)
311
344
  end
312
345
 
313
- Then(/^it should( not)? (pass|fail) (?:with regexp?|matching):$/) do |negated, pass_fail, expected|
346
+ Then(/^it should not (pass|fail) (?:with regexp?|matching):$/) do |pass_fail, expected|
347
+ last_command_started.stop
348
+
314
349
  if pass_fail == 'pass'
315
350
  expect(last_command_stopped).to be_successfully_executed
316
351
  else
317
352
  expect(last_command_stopped).not_to be_successfully_executed
318
353
  end
319
354
 
320
- if negated
321
- expect(last_command_stopped).not_to have_output an_output_string_matching(expected)
355
+ expect(last_command_stopped).not_to have_output an_output_string_matching(expected)
356
+ end
357
+
358
+ Then(/^it should (pass|fail) (?:with regexp?|matching):$/) do |pass_fail, expected|
359
+ last_command_started.stop
360
+
361
+ if pass_fail == 'pass'
362
+ expect(last_command_stopped).to be_successfully_executed
322
363
  else
323
- expect(last_command_stopped).to have_output an_output_string_matching(expected)
364
+ expect(last_command_stopped).not_to be_successfully_executed
324
365
  end
366
+
367
+ expect(last_command_stopped).to have_output an_output_string_matching(expected)
325
368
  end
326
369
 
327
370
  Then(/^(?:the )?(output|stderr|stdout) should not contain anything$/) do |channel|
@@ -332,8 +375,6 @@ Then(/^(?:the )?(output|stderr|stdout) should not contain anything$/) do |channe
332
375
  :have_output_on_stderr
333
376
  when :stdout
334
377
  :have_output_on_stdout
335
- else
336
- fail ArgumentError, %(Invalid channel "#{channel}" chosen. Only "output", "stdout" and "stderr" are supported.)
337
378
  end
338
379
 
339
380
  expect(all_commands).to include_an_object send(matcher, be_nil.or(be_empty))
@@ -341,16 +382,16 @@ end
341
382
 
342
383
  Then(/^(?:the )?(output|stdout|stderr) should( not)? contain all of these lines:$/) do |channel, negated, table|
343
384
  table.raw.flatten.each do |expected|
344
- matcher = case channel.to_sym
345
- when :output
346
- :have_output
347
- when :stderr
348
- :have_output_on_stderr
349
- when :stdout
350
- :have_output_on_stdout
351
- else
352
- fail ArgumentError, %(Invalid channel "#{channel}" chosen. Only "output", "stdout" and "stderr" are supported.)
353
- end
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
393
+
394
+ # TODO: This isn't actually using the above. It's hardcoded to use have_output only
354
395
 
355
396
  if negated
356
397
  expect(all_commands).not_to include_an_object have_output an_output_string_including(expected)
@@ -1,4 +1,4 @@
1
- Given(/^a mocked home directory$/)do
1
+ Given(/^a mocked home directory$/) do
2
2
  set_environment_variable 'HOME', expand_path('.')
3
3
  end
4
4
 
@@ -3,11 +3,11 @@ Given(/^I use (?:a|the) fixture(?: named)? "([^"]*)"$/) do |name|
3
3
  cd name
4
4
  end
5
5
 
6
- Given(/^I copy (?:a|the) (file|directory)(?: (?:named|from))? "([^"]*)" to "([^"]*)"$/) do |file_or_directory, source, destination|
6
+ Given(/^I copy (?:a|the) (?:file|directory)(?: (?:named|from))? "([^"]*)" to "([^"]*)"$/) do |source, destination|
7
7
  copy source, destination
8
8
  end
9
9
 
10
- Given(/^I move (?:a|the) (file|directory)(?: (?:named|from))? "([^"]*)" to "([^"]*)"$/) do |file_or_directory, source, destination|
10
+ Given(/^I move (?:a|the) (?:file|directory)(?: (?:named|from))? "([^"]*)" to "([^"]*)"$/) do |source, destination|
11
11
  move source, destination
12
12
  end
13
13
 
@@ -42,11 +42,11 @@ Given(/^(?:a|the) (\d+) byte file(?: named)? "([^"]*)"$/) do |file_size, file_na
42
42
  end
43
43
 
44
44
  Given(/^(?:an|the) empty file(?: named)? "([^"]*)"$/) do |file_name|
45
- write_file(file_name, "")
45
+ write_file(file_name, '')
46
46
  end
47
47
 
48
48
  Given(/^(?:an|the) empty file(?: named)? "([^"]*)" with mode "([^"]*)"$/) do |file_name, file_mode|
49
- write_file(file_name, "")
49
+ write_file(file_name, '')
50
50
  chmod(file_mode, file_name)
51
51
  end
52
52
 
@@ -67,11 +67,11 @@ When(/^I append to "([^"]*)" with "([^"]*)"$/) do |file_name, file_content|
67
67
  end
68
68
 
69
69
  When(/^I remove (?:a|the) (?:file|directory)(?: named)? "([^"]*)"( with full force)?$/) do |name, force_remove|
70
- remove(name, :force => force_remove.nil? ? false : true)
70
+ remove(name, force: force_remove.nil? ? false : true)
71
71
  end
72
72
 
73
73
  Given(/^(?:a|the) (?:file|directory)(?: named)? "([^"]*)" does not exist$/) do |name|
74
- remove(name, :force => true)
74
+ remove(name, force: true)
75
75
  end
76
76
 
77
77
  When(/^I cd to "([^"]*)"$/) do |dir|
@@ -79,7 +79,7 @@ When(/^I cd to "([^"]*)"$/) do |dir|
79
79
  end
80
80
 
81
81
  Then(/^the following files should (not )?exist:$/) do |negated, files|
82
- files = files.rows.flatten
82
+ files = files.raw.flatten
83
83
 
84
84
  if negated
85
85
  expect(files).not_to include an_existing_file
@@ -88,21 +88,19 @@ Then(/^the following files should (not )?exist:$/) do |negated, files|
88
88
  end
89
89
  end
90
90
 
91
- Then(/^(?:a|the) (file|directory)(?: named)? "([^"]*)" should (not )?exist(?: anymore)?$/) do |directory_or_file, path, expect_match|
92
- if directory_or_file == 'file'
93
- if expect_match
94
- expect(path).not_to be_an_existing_file
95
- else
96
- expect(path).to be_an_existing_file
97
- end
98
- elsif directory_or_file == 'directory'
99
- if expect_match
100
- expect(path).not_to be_an_existing_directory
101
- else
102
- expect(path).to be_an_existing_directory
103
- end
91
+ Then(/^(?:a|the) file(?: named)? "([^"]*)" should (not )?exist(?: anymore)?$/) do |path, expect_match|
92
+ if expect_match
93
+ expect(path).not_to be_an_existing_file
94
+ else
95
+ expect(path).to be_an_existing_file
96
+ end
97
+ end
98
+
99
+ Then(/^(?:a|the) directory(?: named)? "([^"]*)" should (not )?exist(?: anymore)?$/) do |path, expect_match|
100
+ if expect_match
101
+ expect(path).not_to be_an_existing_directory
104
102
  else
105
- fail ArgumentError, %("#{directory_or_file}" can only be "directory" or "file".)
103
+ expect(path).to be_an_existing_directory
106
104
  end
107
105
  end
108
106
 
@@ -156,7 +154,7 @@ Then(/^(?:a|the) file(?: named)? "([^"]*)" should (not )?contain exactly:$/) do
156
154
  end
157
155
  end
158
156
 
159
- Then(/^(?:a|the) file(?: named)? "([^"]*)" should (not )?match %r<([^\/]*)>$/) do |file, negated, content|
157
+ Then(/^(?:a|the) file(?: named)? "([^"]*)" should (not )?match %r<([^>]*)>$/) do |file, negated, content|
160
158
  if negated
161
159
  expect(file).not_to have_file_content file_content_matching(content)
162
160
  else
@@ -180,7 +178,7 @@ Then(/^(?:a|the) file(?: named)? "([^"]*)" should (not )?be equal to file "([^"]
180
178
  end
181
179
  end
182
180
 
183
- Then(/^the (?:file|directory)(?: named)? "([^"]*)" should( not)? have permissions "([^"]*)"$/) do |path, negated, permissions|
181
+ Then(/^(?:a|the) (?:file|directory)(?: named)? "([^"]*)" should( not)? have permissions "([^"]*)"$/) do |path, negated, permissions|
184
182
  if negated
185
183
  expect(path).not_to have_permissions(permissions)
186
184
  else
@@ -3,10 +3,8 @@ require 'aruba/api'
3
3
  require 'aruba/platform'
4
4
  World(Aruba::Api)
5
5
 
6
- if Aruba::VERSION >= '1.0.0'
7
- Around do |_, block|
8
- Aruba.platform.with_environment(&block)
9
- end
6
+ Around do |_, block|
7
+ with_environment(&block)
10
8
  end
11
9
 
12
10
  Before do
@@ -97,17 +95,8 @@ Before('@announce') do
97
95
  aruba.announcer.activate :command_filesystem_status
98
96
  end
99
97
 
100
- Before('@debug') do
101
- aruba.config.command_launcher = :debug
102
- end
103
-
104
- # After('@debug') do
105
- # aruba.config.command_launcher = :spawn
106
- # end
107
-
108
98
  Before('@keep-ansi-escape-sequences') do
109
99
  aruba.config.remove_ansi_escape_sequences = false
110
- aruba.config.keep_ansi = true
111
100
  end
112
101
 
113
102
  Before '@mocked-home-directory' do
@@ -117,3 +106,19 @@ end
117
106
  Before('@disable-bundler') do
118
107
  unset_bundler_env_vars
119
108
  end
109
+
110
+ Before('@debug') do
111
+ aruba.config.command_launcher = :debug
112
+ end
113
+
114
+ Before('@command-launcher-spawn') do
115
+ aruba.config.command_launcher = :spawn
116
+ end
117
+
118
+ Before('@command-launcher-in-process') do
119
+ aruba.config.command_launcher = :in_process
120
+ end
121
+
122
+ Before('@command-launcher-debug') do
123
+ aruba.config.command_launcher = :debug
124
+ end