aruba-win-fix 0.14.2

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 (324) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.gitignore +37 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +188 -0
  6. data/.simplecov +34 -0
  7. data/.travis.yml +47 -0
  8. data/.yardopts +8 -0
  9. data/CONTRIBUTING.md +71 -0
  10. data/Gemfile +83 -0
  11. data/History.md +579 -0
  12. data/LICENSE +20 -0
  13. data/README.md +226 -0
  14. data/Rakefile +49 -0
  15. data/TODO.md +13 -0
  16. data/appveyor.yml +32 -0
  17. data/aruba.gemspec +48 -0
  18. data/bin/aruba +7 -0
  19. data/config/.gitignore +1 -0
  20. data/cucumber.yml +26 -0
  21. data/features/.nav +72 -0
  22. data/features/api/command/find_command.feature +83 -0
  23. data/features/api/command/last_command_started.feature +50 -0
  24. data/features/api/command/last_command_stopped.feature +89 -0
  25. data/features/api/command/run.feature +414 -0
  26. data/features/api/command/run_simple.feature +242 -0
  27. data/features/api/command/send_signal.feature +53 -0
  28. data/features/api/command/stderr.feature +46 -0
  29. data/features/api/command/stdout.feature +46 -0
  30. data/features/api/command/stop.feature +131 -0
  31. data/features/api/command/stop_all_commands.feature +53 -0
  32. data/features/api/command/terminate_all_commands.feature +53 -0
  33. data/features/api/command/which.feature +37 -0
  34. data/features/api/core/expand_path.feature +88 -0
  35. data/features/api/environment/append_environment_variable.feature +128 -0
  36. data/features/api/environment/delete_environment_variable.feature +63 -0
  37. data/features/api/environment/prepend_environment_variable.feature +128 -0
  38. data/features/api/environment/set_environment_variable.feature +376 -0
  39. data/features/api/filesystem/cd.feature +184 -0
  40. data/features/api/filesystem/create_directory.feature +57 -0
  41. data/features/api/filesystem/disk_usage.feature +152 -0
  42. data/features/api/filesystem/does_exist.feature +62 -0
  43. data/features/api/filesystem/fixtures.feature +104 -0
  44. data/features/api/filesystem/is_absolute.feature +48 -0
  45. data/features/api/filesystem/is_directory.feature +53 -0
  46. data/features/api/filesystem/is_file.feature +54 -0
  47. data/features/api/filesystem/is_relative.feature +48 -0
  48. data/features/api/filesystem/move.feature +119 -0
  49. data/features/api/text/extract_text.feature +87 -0
  50. data/features/api/text/replace_variables.feature +45 -0
  51. data/features/api/text/sanitize_text.feature +228 -0
  52. data/features/api/text/unescape_text.feature +127 -0
  53. data/features/cli/console.feature +52 -0
  54. data/features/cli/init.feature +79 -0
  55. data/features/configuration/activate_announcer_on_command_failure.feature +38 -0
  56. data/features/configuration/command_runtime_environment.feature +129 -0
  57. data/features/configuration/console_history_file.feature +38 -0
  58. data/features/configuration/exit_timeout.feature +52 -0
  59. data/features/configuration/fixtures_directories.feature +38 -0
  60. data/features/configuration/fixtures_path_prefix.feature +23 -0
  61. data/features/configuration/home_directory.feature +80 -0
  62. data/features/configuration/io_timeout.feature +30 -0
  63. data/features/configuration/keep_ansi.feature +30 -0
  64. data/features/configuration/log_level.feature +38 -0
  65. data/features/configuration/physical_block_size.feature +53 -0
  66. data/features/configuration/remove_ansi_escape_sequences.feature +38 -0
  67. data/features/configuration/root_directory.feature +30 -0
  68. data/features/configuration/startup_wait_time.feature +48 -0
  69. data/features/configuration/usage.feature +159 -0
  70. data/features/configuration/working_directory.feature +33 -0
  71. data/features/development/build.feature +15 -0
  72. data/features/development/test.feature +24 -0
  73. data/features/getting_started/cleanup.feature +67 -0
  74. data/features/getting_started/install.feature +8 -0
  75. data/features/getting_started/run_commands.feature +177 -0
  76. data/features/getting_started/supported_testing_frameworks.feature +104 -0
  77. data/features/getting_started/writing_good_feature_tests.feature +38 -0
  78. data/features/hooks/after/command.feature +44 -0
  79. data/features/hooks/before/command.feature +71 -0
  80. data/features/matchers/collection/include_an_object.feature +72 -0
  81. data/features/matchers/directory/have_sub_directory.feature +110 -0
  82. data/features/matchers/file/be_a_command_found_in_path.feature +115 -0
  83. data/features/matchers/file/be_existing_executable.feature +88 -0
  84. data/features/matchers/file/be_existing_file.feature +82 -0
  85. data/features/matchers/file/have_file_content.feature +123 -0
  86. data/features/matchers/file/have_file_size.feature +107 -0
  87. data/features/matchers/path/be_an_absolute_path.feature +74 -0
  88. data/features/matchers/path/be_an_existing_path.feature +97 -0
  89. data/features/matchers/path/have_permissions.feature +118 -0
  90. data/features/matchers/timeouts.feature +48 -0
  91. data/features/platforms/jruby.feature +14 -0
  92. data/features/rspec/integration.feature +179 -0
  93. data/features/step_definitions/aruba_dev_steps.rb +56 -0
  94. data/features/step_definitions/hooks.rb +96 -0
  95. data/features/steps/command/debug.feature +92 -0
  96. data/features/steps/command/exit_statuses.feature +136 -0
  97. data/features/steps/command/in_process.feature +485 -0
  98. data/features/steps/command/interactive.feature +90 -0
  99. data/features/steps/command/output.feature +588 -0
  100. data/features/steps/command/run.feature +66 -0
  101. data/features/steps/command/send_signal.feature +104 -0
  102. data/features/steps/command/shell.feature +155 -0
  103. data/features/steps/command/stderr.feature +68 -0
  104. data/features/steps/command/stdout.feature +109 -0
  105. data/features/steps/command/stop.feature +313 -0
  106. data/features/steps/core/announce.feature +283 -0
  107. data/features/steps/environment/append_environment_variable.feature +52 -0
  108. data/features/steps/environment/home_variable.feature +62 -0
  109. data/features/steps/environment/prepend_environment_variable.feature +52 -0
  110. data/features/steps/environment/set_environment_variable.feature +49 -0
  111. data/features/steps/filesystem/append_to_file.feature +45 -0
  112. data/features/steps/filesystem/cd_to_directory.feature +33 -0
  113. data/features/steps/filesystem/check_file_content.feature +61 -0
  114. data/features/steps/filesystem/check_permissions_of_file.feature +39 -0
  115. data/features/steps/filesystem/compare_files.feature +42 -0
  116. data/features/steps/filesystem/copy.feature +45 -0
  117. data/features/steps/filesystem/create_directory.feature +57 -0
  118. data/features/steps/filesystem/create_file.feature +76 -0
  119. data/features/steps/filesystem/existence_of_directory.feature +57 -0
  120. data/features/steps/filesystem/existence_of_file.feature +43 -0
  121. data/features/steps/filesystem/file_content.feature +86 -0
  122. data/features/steps/filesystem/fixtures.feature +64 -0
  123. data/features/steps/filesystem/move.feature +45 -0
  124. data/features/steps/filesystem/non_existence_of_directory.feature +69 -0
  125. data/features/steps/filesystem/non_existence_of_file.feature +80 -0
  126. data/features/steps/filesystem/overwrite_file.feature +72 -0
  127. data/features/steps/filesystem/remove_directory.feature +38 -0
  128. data/features/steps/filesystem/remove_file.feature +38 -0
  129. data/features/steps/filesystem/use_fixture.feature +77 -0
  130. data/features/steps/overview.feature +60 -0
  131. data/features/support/aruba.rb +7 -0
  132. data/features/support/env.rb +33 -0
  133. data/features/support/jruby.rb +5 -0
  134. data/features/support/simplecov_setup.rb +8 -0
  135. data/fixtures/cli-app/.gitignore +9 -0
  136. data/fixtures/cli-app/.rspec +2 -0
  137. data/fixtures/cli-app/README.md +39 -0
  138. data/fixtures/cli-app/Rakefile +1 -0
  139. data/fixtures/cli-app/bin/cli +6 -0
  140. data/fixtures/cli-app/cli-app.gemspec +26 -0
  141. data/fixtures/cli-app/features/support/env.rb +1 -0
  142. data/fixtures/cli-app/lib/cli/app.rb +13 -0
  143. data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +15 -0
  144. data/fixtures/cli-app/lib/cli/app/version.rb +5 -0
  145. data/fixtures/cli-app/script/console +14 -0
  146. data/fixtures/cli-app/spec/spec_helper.rb +9 -0
  147. data/fixtures/cli-app/spec/support/aruba.rb +1 -0
  148. data/fixtures/copy/file.txt +1 -0
  149. data/fixtures/empty-app/.gitignore +9 -0
  150. data/fixtures/empty-app/.rspec +2 -0
  151. data/fixtures/empty-app/README.md +24 -0
  152. data/fixtures/empty-app/Rakefile +1 -0
  153. data/fixtures/empty-app/cli-app.gemspec +26 -0
  154. data/fixtures/empty-app/lib/cli/app.rb +13 -0
  155. data/fixtures/empty-app/lib/cli/app/version.rb +5 -0
  156. data/fixtures/getting-started-app/.gitignore +4 -0
  157. data/fixtures/getting-started-app/Gemfile +4 -0
  158. data/fixtures/getting-started-app/README.md +3 -0
  159. data/fixtures/getting-started-app/features/support/env.rb +1 -0
  160. data/fixtures/spawn_process/stderr.sh +3 -0
  161. data/lib/aruba.rb +1 -0
  162. data/lib/aruba/api.rb +34 -0
  163. data/lib/aruba/api/command.rb +307 -0
  164. data/lib/aruba/api/core.rb +191 -0
  165. data/lib/aruba/api/deprecated.rb +897 -0
  166. data/lib/aruba/api/environment.rb +89 -0
  167. data/lib/aruba/api/filesystem.rb +392 -0
  168. data/lib/aruba/api/rvm.rb +44 -0
  169. data/lib/aruba/api/text.rb +56 -0
  170. data/lib/aruba/aruba_path.rb +133 -0
  171. data/lib/aruba/basic_configuration.rb +240 -0
  172. data/lib/aruba/basic_configuration/option.rb +32 -0
  173. data/lib/aruba/cli.rb +26 -0
  174. data/lib/aruba/colorizer.rb +108 -0
  175. data/lib/aruba/command.rb +74 -0
  176. data/lib/aruba/config.rb +108 -0
  177. data/lib/aruba/config/jruby.rb +17 -0
  178. data/lib/aruba/config_wrapper.rb +58 -0
  179. data/lib/aruba/console.rb +70 -0
  180. data/lib/aruba/console/help.rb +35 -0
  181. data/lib/aruba/contracts/absolute_path.rb +20 -0
  182. data/lib/aruba/contracts/enum.rb +26 -0
  183. data/lib/aruba/contracts/is_power_of_two.rb +22 -0
  184. data/lib/aruba/contracts/relative_path.rb +20 -0
  185. data/lib/aruba/cucumber.rb +13 -0
  186. data/lib/aruba/cucumber/command.rb +422 -0
  187. data/lib/aruba/cucumber/core.rb +5 -0
  188. data/lib/aruba/cucumber/environment.rb +42 -0
  189. data/lib/aruba/cucumber/file.rb +201 -0
  190. data/lib/aruba/cucumber/hooks.rb +160 -0
  191. data/lib/aruba/cucumber/rvm.rb +3 -0
  192. data/lib/aruba/cucumber/testing_frameworks.rb +95 -0
  193. data/lib/aruba/errors.rb +37 -0
  194. data/lib/aruba/event_bus.rb +59 -0
  195. data/lib/aruba/event_bus/name_resolver.rb +168 -0
  196. data/lib/aruba/events.rb +39 -0
  197. data/lib/aruba/extensions/string/strip.rb +25 -0
  198. data/lib/aruba/file_size.rb +63 -0
  199. data/lib/aruba/generators/script_file.rb +46 -0
  200. data/lib/aruba/hooks.rb +56 -0
  201. data/lib/aruba/in_config_wrapper.rb +24 -0
  202. data/lib/aruba/in_process.rb +14 -0
  203. data/lib/aruba/initializer.rb +222 -0
  204. data/lib/aruba/jruby.rb +4 -0
  205. data/lib/aruba/matchers/base/base_matcher.rb +96 -0
  206. data/lib/aruba/matchers/base/object_formatter.rb +114 -0
  207. data/lib/aruba/matchers/collection.rb +1 -0
  208. data/lib/aruba/matchers/collection/all.rb +11 -0
  209. data/lib/aruba/matchers/collection/include_an_object.rb +122 -0
  210. data/lib/aruba/matchers/command.rb +1 -0
  211. data/lib/aruba/matchers/command/be_successfully_executed.rb +34 -0
  212. data/lib/aruba/matchers/command/have_exit_status.rb +38 -0
  213. data/lib/aruba/matchers/command/have_finished_in_time.rb +37 -0
  214. data/lib/aruba/matchers/command/have_output.rb +36 -0
  215. data/lib/aruba/matchers/command/have_output_on_stderr.rb +32 -0
  216. data/lib/aruba/matchers/command/have_output_on_stdout.rb +32 -0
  217. data/lib/aruba/matchers/command/have_output_size.rb +28 -0
  218. data/lib/aruba/matchers/directory.rb +1 -0
  219. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +38 -0
  220. data/lib/aruba/matchers/directory/have_sub_directory.rb +53 -0
  221. data/lib/aruba/matchers/environment.rb +1 -0
  222. data/lib/aruba/matchers/file.rb +1 -0
  223. data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +36 -0
  224. data/lib/aruba/matchers/file/be_an_existing_executable.rb +37 -0
  225. data/lib/aruba/matchers/file/be_an_existing_file.rb +38 -0
  226. data/lib/aruba/matchers/file/have_file_content.rb +62 -0
  227. data/lib/aruba/matchers/file/have_file_size.rb +47 -0
  228. data/lib/aruba/matchers/file/have_same_file_content.rb +48 -0
  229. data/lib/aruba/matchers/path.rb +1 -0
  230. data/lib/aruba/matchers/path/a_path_matching_pattern.rb +25 -0
  231. data/lib/aruba/matchers/path/be_an_absolute_path.rb +36 -0
  232. data/lib/aruba/matchers/path/be_an_existing_path.rb +37 -0
  233. data/lib/aruba/matchers/path/have_permissions.rb +64 -0
  234. data/lib/aruba/matchers/path/match_path_pattern.rb +41 -0
  235. data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +25 -0
  236. data/lib/aruba/matchers/string.rb +1 -0
  237. data/lib/aruba/matchers/string/include_output_string.rb +36 -0
  238. data/lib/aruba/matchers/string/match_output_string.rb +37 -0
  239. data/lib/aruba/matchers/string/output_string_eq.rb +35 -0
  240. data/lib/aruba/platform.rb +25 -0
  241. data/lib/aruba/platforms/announcer.rb +232 -0
  242. data/lib/aruba/platforms/aruba_file_creator.rb +35 -0
  243. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +35 -0
  244. data/lib/aruba/platforms/aruba_logger.rb +81 -0
  245. data/lib/aruba/platforms/command_monitor.rb +229 -0
  246. data/lib/aruba/platforms/determine_disk_usage.rb +28 -0
  247. data/lib/aruba/platforms/determine_file_size.rb +22 -0
  248. data/lib/aruba/platforms/disk_usage_calculator.rb +20 -0
  249. data/lib/aruba/platforms/filesystem_status.rb +68 -0
  250. data/lib/aruba/platforms/local_environment.rb +29 -0
  251. data/lib/aruba/platforms/simple_table.rb +54 -0
  252. data/lib/aruba/platforms/unix_command_string.rb +27 -0
  253. data/lib/aruba/platforms/unix_environment_variables.rb +220 -0
  254. data/lib/aruba/platforms/unix_platform.rb +276 -0
  255. data/lib/aruba/platforms/unix_which.rb +85 -0
  256. data/lib/aruba/platforms/windows_command_string.rb +31 -0
  257. data/lib/aruba/platforms/windows_environment_variables.rb +89 -0
  258. data/lib/aruba/platforms/windows_platform.rb +42 -0
  259. data/lib/aruba/platforms/windows_which.rb +106 -0
  260. data/lib/aruba/processes/basic_process.rb +143 -0
  261. data/lib/aruba/processes/debug_process.rb +69 -0
  262. data/lib/aruba/processes/in_process.rb +125 -0
  263. data/lib/aruba/processes/spawn_process.rb +278 -0
  264. data/lib/aruba/reporting.rb +126 -0
  265. data/lib/aruba/rspec.rb +107 -0
  266. data/lib/aruba/runtime.rb +96 -0
  267. data/lib/aruba/setup.rb +90 -0
  268. data/lib/aruba/spawn_process.rb +11 -0
  269. data/lib/aruba/version.rb +3 -0
  270. data/script/bootstrap +28 -0
  271. data/script/console +16 -0
  272. data/script/test +3 -0
  273. data/spec/aruba/api/environment/restore_env_spec.rb +65 -0
  274. data/spec/aruba/api/environment/set_env_spec.rb +42 -0
  275. data/spec/aruba/api/filesystem/file_size_spec.rb +28 -0
  276. data/spec/aruba/api/runtime_spec.rb +28 -0
  277. data/spec/aruba/api_spec.rb +1209 -0
  278. data/spec/aruba/aruba_path_spec.rb +103 -0
  279. data/spec/aruba/basic_configuration_spec.rb +5 -0
  280. data/spec/aruba/configuration_spec.rb +5 -0
  281. data/spec/aruba/hooks_spec.rb +17 -0
  282. data/spec/aruba/in_config_wrapper_spec.rb +25 -0
  283. data/spec/aruba/jruby_spec.rb +55 -0
  284. data/spec/aruba/matchers/command/have_output_size_spec.rb +25 -0
  285. data/spec/aruba/matchers/command_spec.rb +174 -0
  286. data/spec/aruba/matchers/directory_spec.rb +57 -0
  287. data/spec/aruba/matchers/file_spec.rb +127 -0
  288. data/spec/aruba/matchers/path_spec.rb +88 -0
  289. data/spec/aruba/platform/simple_table_spec.rb +23 -0
  290. data/spec/aruba/platform/windows_environment_variables_spec.rb +500 -0
  291. data/spec/aruba/rspec_spec.rb +15 -0
  292. data/spec/aruba/runtime_spec.rb +29 -0
  293. data/spec/aruba/spawn_process_spec.rb +60 -0
  294. data/spec/event_bus/name_resolver_spec.rb +68 -0
  295. data/spec/event_bus_spec.rb +160 -0
  296. data/spec/spec_helper.rb +23 -0
  297. data/spec/support/configs/.keep +0 -0
  298. data/spec/support/configs/aruba.rb +5 -0
  299. data/spec/support/configs/pry.rb +3 -0
  300. data/spec/support/configs/rspec.rb +15 -0
  301. data/spec/support/helpers/.keep +0 -0
  302. data/spec/support/helpers/reporting.rb +44 -0
  303. data/spec/support/matchers/.keep +0 -0
  304. data/spec/support/matchers/option.rb +35 -0
  305. data/spec/support/shared_contexts/.keep +0 -0
  306. data/spec/support/shared_contexts/aruba.rb +48 -0
  307. data/spec/support/shared_examples/.keep +0 -0
  308. data/spec/support/shared_examples/configuration.rb +116 -0
  309. data/spec/support/shared_examples/directory.rb +7 -0
  310. data/spec/support/shared_examples/file.rb +7 -0
  311. data/templates/css/console.css +24 -0
  312. data/templates/css/filesystem.css +42 -0
  313. data/templates/css/pygments-autumn.css +59 -0
  314. data/templates/files.erb +14 -0
  315. data/templates/images/LICENSE +22 -0
  316. data/templates/images/folder.png +0 -0
  317. data/templates/images/page_white.png +0 -0
  318. data/templates/images/page_white_gherkin.png +0 -0
  319. data/templates/images/page_white_ruby.png +0 -0
  320. data/templates/index.erb +20 -0
  321. data/templates/js/filesystem.js +5 -0
  322. data/templates/js/jquery-1.11.3.min.js +5 -0
  323. data/templates/main.erb +34 -0
  324. metadata +629 -0
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH << File.expand_path('../../lib', __FILE__)
4
+ require 'cli/app'
5
+
6
+ exit 0
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'cli/app/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'cli-app'
8
+ spec.version = Cli::App::VERSION
9
+ spec.authors = ['Aruba Developers']
10
+ spec.email = 'cukes@googlegroups.com'
11
+
12
+ spec.summary = 'Summary'
13
+ spec.description = 'Description'
14
+ spec.homepage = 'http://example.com'
15
+
16
+ # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
17
+ # delete this section to allow pushing this gem to any host.
18
+
19
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
+ spec.bindir = 'exe'
21
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
+ spec.require_paths = ['lib']
23
+
24
+ spec.add_development_dependency 'bundler', '~> 1.9'
25
+ spec.add_development_dependency 'rake', '~> 10.0'
26
+ end
@@ -0,0 +1 @@
1
+ require 'aruba/cucumber'
@@ -0,0 +1,13 @@
1
+ require 'cli/app/version'
2
+
3
+ if RUBY_VERSION < '1.9.3'
4
+ ::Dir.glob(::File.expand_path('../**/*.rb', __FILE__)).each { |f| require File.join(File.dirname(f), File.basename(f, '.rb')) }
5
+ else
6
+ ::Dir.glob(File.expand_path('../**/*.rb', __FILE__)).each { |f| require_relative f }
7
+ end
8
+
9
+ module Cli
10
+ module App
11
+ # Your code goes here...
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ module SimpleCov
2
+ module Formatter
3
+ class HTMLFormatter
4
+ def format(result)
5
+ Dir[File.join(File.dirname(__FILE__), "../public/*")].each do |path|
6
+ FileUtils.cp_r(path, asset_output_path)
7
+ end
8
+
9
+ File.open(File.join(output_path, "index.html"), "wb") do |file|
10
+ file.puts template("layout").result(binding)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,5 @@
1
+ module Cli
2
+ module App
3
+ VERSION = "0.1.0".freeze
4
+ end
5
+ end
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'cli/app'
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require 'irb'
14
+ IRB.start
@@ -0,0 +1,9 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+
3
+ require 'cli/app'
4
+
5
+ if RUBY_VERSION < '1.9.3'
6
+ ::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require File.join(File.dirname(f), File.basename(f, '.rb')) }
7
+ else
8
+ ::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require_relative f }
9
+ end
@@ -0,0 +1 @@
1
+ require 'aruba/rspec'
@@ -0,0 +1 @@
1
+ a
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
@@ -0,0 +1,24 @@
1
+ # Empty Cli App
2
+
3
+ This is a simple test cli app
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'cli-app'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install cli-app
20
+
21
+ ## Usage
22
+
23
+ Place files in `lib/cli/app/`. They are loaded automatically. If you need a
24
+ specific load order, use `require` in your files.
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'cli/app/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'cli-app'
8
+ spec.version = Cli::App::VERSION
9
+ spec.authors = ['Aruba Developers']
10
+ spec.email = 'cukes@googlegroups.com'
11
+
12
+ spec.summary = 'Summary'
13
+ spec.description = 'Description'
14
+ spec.homepage = 'http://example.com'
15
+
16
+ # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
17
+ # delete this section to allow pushing this gem to any host.
18
+
19
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
+ spec.bindir = 'exe'
21
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
+ spec.require_paths = ['lib']
23
+
24
+ spec.add_development_dependency 'bundler', '~> 1.9'
25
+ spec.add_development_dependency 'rake', '~> 10.0'
26
+ end
@@ -0,0 +1,13 @@
1
+ require 'cli/app/version'
2
+
3
+ if RUBY_VERSION < '1.9.3'
4
+ ::Dir.glob(::File.expand_path('../**/*.rb', __FILE__)).each { |f| require File.join(File.dirname(f), File.basename(f, '.rb')) }
5
+ else
6
+ ::Dir.glob(File.expand_path('../**/*.rb', __FILE__)).each { |f| require_relative f }
7
+ end
8
+
9
+ module Cli
10
+ module App
11
+ # Your code goes here...
12
+ end
13
+ end
@@ -0,0 +1,5 @@
1
+ module Cli
2
+ module App
3
+ VERSION = "0.1.0".freeze
4
+ end
5
+ end
@@ -0,0 +1,4 @@
1
+ /coverage/
2
+ /doc/
3
+ /pkg/
4
+ /tmp/
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'cucumber'
4
+ gem 'aruba', path: File.expand_path('../../../../', __FILE__)
@@ -0,0 +1,3 @@
1
+ # Simple Cli App
2
+
3
+ This is a simple app to get started with `aruba`.
@@ -0,0 +1 @@
1
+ require 'aruba/cucumber'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bash
2
+
3
+ echo $* >&2
@@ -0,0 +1 @@
1
+ require 'aruba/api'
@@ -0,0 +1,34 @@
1
+ require 'rspec/expectations'
2
+ require 'shellwords'
3
+
4
+ require 'aruba/version'
5
+ require 'aruba/extensions/string/strip'
6
+
7
+ require 'aruba/platform'
8
+ require 'aruba/api/core'
9
+ require 'aruba/api/command'
10
+
11
+ if Aruba::VERSION <= '1.0.0'
12
+ require 'aruba/api/deprecated'
13
+ end
14
+
15
+ require 'aruba/api/environment'
16
+ require 'aruba/api/filesystem'
17
+ require 'aruba/api/text'
18
+ require 'aruba/api/rvm'
19
+
20
+ Aruba.platform.require_matching_files('../matchers/**/*.rb', __FILE__)
21
+
22
+ # Aruba
23
+ module Aruba
24
+ # Api
25
+ module Api
26
+ include Aruba::Api::Core
27
+ include Aruba::Api::Commands
28
+ include Aruba::Api::Environment
29
+ include Aruba::Api::Filesystem
30
+ include Aruba::Api::Rvm
31
+ include Aruba::Api::Deprecated
32
+ include Aruba::Api::Text
33
+ end
34
+ end
@@ -0,0 +1,307 @@
1
+ require 'pathname'
2
+
3
+ require 'aruba/platform'
4
+ require 'aruba/command'
5
+
6
+ # require 'win32/file' if File::ALT_SEPARATOR
7
+
8
+ # Aruba
9
+ module Aruba
10
+ class << self
11
+ # @deprecated
12
+ attr_accessor :process
13
+ end
14
+
15
+ # @deprecated
16
+ # self.process = Aruba::Processes::SpawnProcess
17
+ end
18
+
19
+ # Aruba
20
+ module Aruba
21
+ # Api
22
+ module Api
23
+ # Command module
24
+ module Commands
25
+ # Resolve path for command using the PATH-environment variable
26
+ #
27
+ # @param [#to_s] program
28
+ # The name of the program which should be resolved
29
+ #
30
+ # @param [String] path
31
+ # The PATH, a string concatenated with ":", e.g. /usr/bin/:/bin on a
32
+ # UNIX-system
33
+ def which(program, path = nil)
34
+ with_environment do
35
+ # ENV is set within this block
36
+ path = ENV['PATH'] if path.nil?
37
+
38
+ Aruba.platform.which(program, path)
39
+ end
40
+ end
41
+
42
+ # Pipe data in file
43
+ #
44
+ # @param [String] file_name
45
+ # The file which should be used to pipe in data
46
+ def pipe_in_file(file_name)
47
+ file_name = expand_path(file_name)
48
+
49
+ File.open(file_name, 'r').each_line do |line|
50
+ last_command_started.write(line)
51
+ end
52
+ end
53
+
54
+ # Return all commands
55
+ #
56
+ # @return [Array]
57
+ # List of commands
58
+ def all_commands
59
+ aruba.command_monitor.registered_commands
60
+ end
61
+
62
+ # Last command started
63
+ def last_command_started
64
+ aruba.command_monitor.last_command_started
65
+ end
66
+
67
+ # Last command stopped
68
+ def last_command_stopped
69
+ aruba.command_monitor.last_command_stopped
70
+ end
71
+
72
+ # Stop all commands
73
+ #
74
+ # @yield [Command]
75
+ # If block is given use it to filter the commands which should be
76
+ # stoppend.
77
+ def stop_all_commands(&block)
78
+ cmds = if block_given?
79
+ all_commands.select(&block)
80
+ else
81
+ all_commands
82
+ end
83
+
84
+ cmds.each(&:stop)
85
+
86
+ self
87
+ end
88
+
89
+ # Terminate all commands
90
+ #
91
+ # @yield [Command]
92
+ # If block is given use it to filter the commands which should be
93
+ # terminated.
94
+ def terminate_all_commands(&block)
95
+ cmds = if block_given?
96
+ all_commands.select(&block)
97
+ else
98
+ all_commands
99
+ end
100
+
101
+ cmds.each(&:terminate)
102
+
103
+ self
104
+ end
105
+
106
+ # Find a started command
107
+ #
108
+ # @param [String, Command] commandline
109
+ # The commandline
110
+ def find_command(commandline)
111
+ aruba.command_monitor.find(commandline)
112
+ end
113
+
114
+ # Run given command and stop it if timeout is reached
115
+ #
116
+ # @param [String] cmd
117
+ # The command which should be executed
118
+ #
119
+ # @param [Hash] opts
120
+ # Options
121
+ #
122
+ # @option [Integer] exit_timeout
123
+ # If the timeout is reached the command will be killed
124
+ #
125
+ # @option [Integer] io_wait_timeout
126
+ # Wait for IO to finish
127
+ #
128
+ # @option [Integer] startup_wait_time
129
+ # Wait for a command to start
130
+ #
131
+ # @option [String] stop_signal
132
+ # Use signal to stop command
133
+ #
134
+ # @yield [SpawnProcess]
135
+ # Run block with process
136
+ #
137
+ # rubocop:disable Metrics/MethodLength
138
+ # rubocop:disable Metrics/CyclomaticComplexity
139
+ def run(*args)
140
+ fail ArgumentError, 'Please pass at least a command as first argument.' if args.size < 1
141
+
142
+ cmd = args.shift
143
+
144
+ if args.last.is_a? Hash
145
+ opts = args.pop
146
+
147
+ exit_timeout = opts[:exit_timeout].nil? ? aruba.config.exit_timeout : opts[:exit_timeout]
148
+ io_wait_timeout = opts[:io_wait_timeout].nil? ? aruba.config.io_wait_timeout : opts[:io_wait_timeout]
149
+ stop_signal = opts[:stop_signal].nil? ? aruba.config.stop_signal : opts[:stop_signal]
150
+ startup_wait_time = opts[:startup_wait_time].nil? ? aruba.config.startup_wait_time : opts[:startup_wait_time]
151
+ else
152
+ if args.size > 1
153
+ Aruba.platform.deprecated("Please pass options to `#run` as named parameters/hash and don\'t use the old style, e.g. `#run('cmd', :exit_timeout => 5)`.")
154
+ end
155
+
156
+ exit_timeout = args[0].nil? ? aruba.config.exit_timeout : args[0]
157
+ io_wait_timeout = args[1].nil? ? aruba.config.io_wait_timeout : args[1]
158
+ stop_signal = args[2].nil? ? aruba.config.stop_signal : args[2]
159
+ startup_wait_time = args[3].nil? ? aruba.config.startup_wait_time : args[3]
160
+ end
161
+
162
+ cmd = replace_variables(cmd)
163
+
164
+ @commands ||= []
165
+ @commands << cmd
166
+
167
+ environment = aruba.environment
168
+ working_directory = expand_path('.')
169
+ event_bus = aruba.event_bus
170
+
171
+ cmd = Aruba.platform.detect_ruby(cmd)
172
+
173
+ mode = if Aruba.process
174
+ # rubocop:disable Metrics/LineLength
175
+ Aruba.platform.deprecated('The use of "Aruba.process = <process>" and "Aruba.process.main_class" is deprecated. Use "Aruba.configure { |config| config.command_launcher = :in_process|:debug|:spawn }" and "Aruba.configure { |config| config.main_class = <klass> }" instead.')
176
+ # rubocop:enable Metrics/LineLength
177
+ Aruba.process
178
+ else
179
+ aruba.config.command_launcher
180
+ end
181
+
182
+ main_class = if Aruba.process.respond_to?(:main_class) && Aruba.process.main_class
183
+ # rubocop:disable Metrics/LineLength
184
+ Aruba.platform.deprecated('The use of "Aruba.process = <process>" and "Aruba.process.main_class" is deprecated. Use "Aruba.configure { |config| config.command_launcher = :in_process|:debug|:spawn }" and "Aruba.configure { |config| config.main_class = <klass> }" instead.')
185
+ # rubocop:enable Metrics/LineLength
186
+ Aruba.process.main_class
187
+ else
188
+ aruba.config.main_class
189
+ end
190
+
191
+ command = Command.new(
192
+ cmd,
193
+ :mode => mode,
194
+ :exit_timeout => exit_timeout,
195
+ :io_wait_timeout => io_wait_timeout,
196
+ :working_directory => working_directory,
197
+ :environment => environment.to_hash,
198
+ :main_class => main_class,
199
+ :stop_signal => stop_signal,
200
+ :startup_wait_time => startup_wait_time,
201
+ :event_bus => event_bus
202
+ )
203
+
204
+ if aruba.config.before? :cmd
205
+ # rubocop:disable Metrics/LineLength
206
+ Aruba.platform.deprecated('The use of "before"-hook" ":cmd" is deprecated. Use ":command" instead. Please be aware that this hook gets the command passed in not the cmdline itself. To get the commandline use "#cmd.commandline"')
207
+ # rubocop:enable Metrics/LineLength
208
+ aruba.config.before(:cmd, self, cmd)
209
+ end
210
+
211
+ aruba.config.before(:command, self, command)
212
+
213
+ command.start
214
+
215
+ aruba.announcer.announce(:stop_signal, command.pid, stop_signal) if stop_signal
216
+
217
+ aruba.config.after(:command, self, command)
218
+
219
+ block_given? ? yield(command) : command
220
+ end
221
+ # rubocop:enable Metrics/CyclomaticComplexity
222
+ # rubocop:enable Metrics/MethodLength
223
+
224
+ # Run a command with aruba
225
+ #
226
+ # Checks for error during command execution and checks the output to detect
227
+ # an timeout error.
228
+ #
229
+ # @param [String] cmd
230
+ # The command to be executed
231
+ #
232
+ # @param [Hash] options
233
+ # Options for aruba
234
+ #
235
+ # @option [TrueClass,FalseClass] fail_on_error
236
+ # Should aruba fail on error?
237
+ #
238
+ # @option [Integer] exit_timeout
239
+ # Timeout for execution
240
+ #
241
+ # @option [Integer] io_wait_timeout
242
+ # Timeout for IO - STDERR, STDOUT
243
+ #
244
+ # rubocop:disable Metrics/CyclomaticComplexity
245
+ # rubocop:disable Metrics/MethodLength
246
+ def run_simple(*args)
247
+ fail ArgumentError, 'Please pass at least a command as first argument.' if args.size < 1
248
+
249
+ cmd = args.shift
250
+
251
+ if args.last.is_a? Hash
252
+ opts = args.pop
253
+ fail_on_error = opts.delete(:fail_on_error) == true ? true : false
254
+ else
255
+ if args.size > 1
256
+ # rubocop:disable Metrics/LineLength
257
+ Aruba.platform.deprecated("Please pass options to `#run_simple` as named parameters/hash and don\'t use the old style with positional parameters, NEW: e.g. `#run_simple('cmd', :exit_timeout => 5)`.")
258
+ # rubocop:enable Metrics/LineLength
259
+ end
260
+
261
+ fail_on_error = args[0] == false ? false : true
262
+
263
+ opts = {
264
+ :exit_timeout => (args[1] || aruba.config.exit_timeout),
265
+ :io_wait_timeout => (args[2] || aruba.config.io_wait_timeout),
266
+ :stop_signal => (args[3] || aruba.config.stop_signal),
267
+ :startup_wait_time => (args[4] || aruba.config.startup_wait_time)
268
+ }
269
+ end
270
+
271
+ command = run(cmd, opts)
272
+ command.stop
273
+
274
+ if Aruba::VERSION < '1'
275
+ @last_exit_status = command.exit_status
276
+ @timed_out = command.timed_out?
277
+ end
278
+
279
+ if fail_on_error
280
+ begin
281
+ expect(command).to have_finished_in_time
282
+ expect(command).to be_successfully_executed
283
+ rescue RSpec::Expectations::ExpectationNotMetError => e
284
+ aruba.announcer.activate(aruba.config.activate_announcer_on_command_failure)
285
+ raise e
286
+ end
287
+ end
288
+ end
289
+ # rubocop:enable Metrics/CyclomaticComplexity
290
+ # rubocop:enable Metrics/MethodLength
291
+
292
+ # Provide data to command via stdin
293
+ #
294
+ # @param [String] input
295
+ # The input for the command
296
+ def type(input)
297
+ return close_input if "" == input
298
+ last_command_started.write(input << "\n")
299
+ end
300
+
301
+ # Close stdin
302
+ def close_input
303
+ last_command_started.close_io(:stdin)
304
+ end
305
+ end
306
+ end
307
+ end