eac_tools 0.103.1 → 0.105.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 (221) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +28 -34
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm-eac_asciidoctor_base0/avm-eac_asciidoctor_base0.gemspec +24 -0
  5. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/documents_owner.rb +30 -0
  6. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/file_formats/base/file_resource_name.rb +37 -0
  7. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/file_formats/base.rb +17 -0
  8. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/apache_host.rb +19 -0
  9. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/apache_path.rb +12 -0
  10. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/base.rb +33 -0
  11. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/body_target.rb +37 -0
  12. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/header_lines.rb +92 -0
  13. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/media.rb +28 -0
  14. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb +64 -0
  15. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document.rb +101 -0
  16. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/theme.rb +41 -0
  17. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build.rb +61 -0
  18. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/deploy.rb +28 -0
  19. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/base.rb +21 -0
  20. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb +55 -0
  21. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/child_docs/document_builder.rb +63 -0
  22. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/child_docs.rb +35 -0
  23. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/default_body.rb +21 -0
  24. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/todo.rb +21 -0
  25. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros.rb +13 -0
  26. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances.rb +11 -0
  27. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/logging/catcher.rb +47 -0
  28. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/logging/error.rb +18 -0
  29. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/logging.rb +11 -0
  30. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/source_generators/base.rb +28 -0
  31. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/source_generators.rb +11 -0
  32. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/base/instance_to_build.rb +45 -0
  33. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/base/theme.rb +46 -0
  34. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/base.rb +49 -0
  35. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/document/media.rb +28 -0
  36. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/document/title.rb +31 -0
  37. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/document.rb +56 -0
  38. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/build.rb +58 -0
  39. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/document/build.rb +51 -0
  40. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/document.rb +30 -0
  41. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/documents.rb +28 -0
  42. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/ignore_errors_option.rb +45 -0
  43. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners.rb +13 -0
  44. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources.rb +11 -0
  45. data/sub/{avm-eac_redmine_base0/lib/avm/eac_redmine_base0 → avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0}/version.rb +2 -2
  46. data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0.rb +9 -0
  47. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/file_formats/base_spec.rb +13 -0
  48. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build/document_spec.rb +81 -0
  49. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build/document_spec_files/pre_processed_root_body.adoc +25 -0
  50. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec.rb +22 -0
  51. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/_media/a_media_file +1 -0
  52. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc1/_media/a_media_file +1 -0
  53. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc1/body.adoc +11 -0
  54. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc1/title +1 -0
  55. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/body.adoc +11 -0
  56. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/doc2_1/_media/a_media_file +1 -0
  57. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/doc2_1/body.adoc +11 -0
  58. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/doc2_1/title +1 -0
  59. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/title +1 -0
  60. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/_media/a_media_file +1 -0
  61. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/_theme/main.css +1 -0
  62. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc1/_media/a_media_file +1 -0
  63. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc1/index.html +1 -0
  64. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc2/doc2_1/_media/a_media_file +1 -0
  65. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc2/doc2_1/index.html +1 -0
  66. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc2/index.html +1 -0
  67. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/index.html +1 -0
  68. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec.rb +8 -0
  69. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/content/body.adoc +11 -0
  70. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/content/title +1 -0
  71. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/theme/main.css +1 -0
  72. data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/sources/base_spec.rb +16 -0
  73. data/sub/avm-eac_asciidoctor_base0/spec/spec_helper/eac_asciidoctor_base0_stubs.rb +55 -0
  74. data/sub/{avm-eac_redmine_base0 → avm-eac_asciidoctor_base0}/spec/spec_helper.rb +3 -2
  75. data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/content/body.adoc +11 -0
  76. data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/content/title +1 -0
  77. data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/theme/main.css +1 -0
  78. metadata +84 -165
  79. data/sub/avm-eac_redmine_base0/avm-eac_redmine_base0.gemspec +0 -26
  80. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/apache_host.rb +0 -10
  81. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/database.rb +0 -27
  82. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/files.rb +0 -18
  83. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/gitolite.rb +0 -52
  84. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/install.rb +0 -43
  85. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/nodejs.rb +0 -19
  86. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/web.rb +0 -17
  87. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base.rb +0 -53
  88. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/deploy.rb +0 -16
  89. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/docker_image.rb +0 -110
  90. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/entity_base.rb +0 -31
  91. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/project.rb +0 -21
  92. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/root.rb +0 -17
  93. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/wiki_page.rb +0 -50
  94. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api.rb +0 -10
  95. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/docker.rb +0 -15
  96. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/read.rb +0 -25
  97. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/write.rb +0 -68
  98. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page.rb +0 -26
  99. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project.rb +0 -22
  100. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project_rename.rb +0 -53
  101. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/base.rb +0 -32
  102. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/core_update.rb +0 -125
  103. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/core_update.rb +0 -61
  104. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/docker.rb +0 -16
  105. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0.rb +0 -16
  106. data/sub/avm-eac_redmine_base0/locale/en.yml +0 -6
  107. data/sub/avm-eac_redmine_base0/locale/pt-BR.yml +0 -6
  108. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec.rb +0 -22
  109. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec_files/apache_host_spec_no_ssl_content.conf +0 -11
  110. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec.rb +0 -26
  111. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec_files/config.yml +0 -10
  112. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/install.sh.template +0 -45
  113. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/secrets.yml +0 -8
  114. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/Dockerfile.template +0 -37
  115. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_host_dockerfile +0 -8
  116. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_http_virtualhost.conf.template +0 -10
  117. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_https_virtualhost.conf.template +0 -16
  118. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_path_dockerfile +0 -5
  119. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/start.sh.template +0 -52
  120. data/sub/eac_cli/Gemfile +0 -8
  121. data/sub/eac_cli/eac_cli.gemspec +0 -23
  122. data/sub/eac_cli/lib/eac_cli/config/entry/options.rb +0 -55
  123. data/sub/eac_cli/lib/eac_cli/config/entry/undefined.rb +0 -26
  124. data/sub/eac_cli/lib/eac_cli/config/entry.rb +0 -55
  125. data/sub/eac_cli/lib/eac_cli/config.rb +0 -15
  126. data/sub/eac_cli/lib/eac_cli/core_ext.rb +0 -4
  127. data/sub/eac_cli/lib/eac_cli/default_runner.rb +0 -12
  128. data/sub/eac_cli/lib/eac_cli/definition/alternative.rb +0 -101
  129. data/sub/eac_cli/lib/eac_cli/definition/argument_option.rb +0 -19
  130. data/sub/eac_cli/lib/eac_cli/definition/boolean_option.rb +0 -25
  131. data/sub/eac_cli/lib/eac_cli/definition/error.rb +0 -8
  132. data/sub/eac_cli/lib/eac_cli/definition/option/initialize_args_parser.rb +0 -48
  133. data/sub/eac_cli/lib/eac_cli/definition/option.rb +0 -70
  134. data/sub/eac_cli/lib/eac_cli/definition/option_or_positional.rb +0 -41
  135. data/sub/eac_cli/lib/eac_cli/definition/positional.rb +0 -50
  136. data/sub/eac_cli/lib/eac_cli/definition.rb +0 -104
  137. data/sub/eac_cli/lib/eac_cli/enum.rb +0 -42
  138. data/sub/eac_cli/lib/eac_cli/old_configs/entry_reader.rb +0 -76
  139. data/sub/eac_cli/lib/eac_cli/old_configs/password_entry_reader.rb +0 -14
  140. data/sub/eac_cli/lib/eac_cli/old_configs/read_entry_options.rb +0 -42
  141. data/sub/eac_cli/lib/eac_cli/old_configs/store_passwords_entry_reader.rb +0 -23
  142. data/sub/eac_cli/lib/eac_cli/old_configs.rb +0 -31
  143. data/sub/eac_cli/lib/eac_cli/parser/alternative/any_options.rb +0 -17
  144. data/sub/eac_cli/lib/eac_cli/parser/alternative/argv.rb +0 -19
  145. data/sub/eac_cli/lib/eac_cli/parser/alternative/double_dash.rb +0 -24
  146. data/sub/eac_cli/lib/eac_cli/parser/alternative/long_options.rb +0 -37
  147. data/sub/eac_cli/lib/eac_cli/parser/alternative/option_argument.rb +0 -29
  148. data/sub/eac_cli/lib/eac_cli/parser/alternative/options.rb +0 -29
  149. data/sub/eac_cli/lib/eac_cli/parser/alternative/positionals.rb +0 -30
  150. data/sub/eac_cli/lib/eac_cli/parser/alternative/short_options.rb +0 -54
  151. data/sub/eac_cli/lib/eac_cli/parser/alternative.rb +0 -99
  152. data/sub/eac_cli/lib/eac_cli/parser/collector.rb +0 -52
  153. data/sub/eac_cli/lib/eac_cli/parser/error.rb +0 -13
  154. data/sub/eac_cli/lib/eac_cli/parser.rb +0 -32
  155. data/sub/eac_cli/lib/eac_cli/patches/object/runner_with.rb +0 -22
  156. data/sub/eac_cli/lib/eac_cli/patches/object.rb +0 -5
  157. data/sub/eac_cli/lib/eac_cli/patches.rb +0 -3
  158. data/sub/eac_cli/lib/eac_cli/rspec/setup.rb +0 -41
  159. data/sub/eac_cli/lib/eac_cli/rspec.rb +0 -7
  160. data/sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb +0 -34
  161. data/sub/eac_cli/lib/eac_cli/runner/class_runner.rb +0 -32
  162. data/sub/eac_cli/lib/eac_cli/runner/context.rb +0 -57
  163. data/sub/eac_cli/lib/eac_cli/runner/context_responders/base.rb +0 -22
  164. data/sub/eac_cli/lib/eac_cli/runner/context_responders/parent.rb +0 -24
  165. data/sub/eac_cli/lib/eac_cli/runner/context_responders/runner.rb +0 -17
  166. data/sub/eac_cli/lib/eac_cli/runner/context_responders/runner_missing_method.rb +0 -29
  167. data/sub/eac_cli/lib/eac_cli/runner/context_responders/set.rb +0 -41
  168. data/sub/eac_cli/lib/eac_cli/runner/context_responders.rb +0 -9
  169. data/sub/eac_cli/lib/eac_cli/runner/exit.rb +0 -14
  170. data/sub/eac_cli/lib/eac_cli/runner/for_context.rb +0 -35
  171. data/sub/eac_cli/lib/eac_cli/runner/instance_methods.rb +0 -45
  172. data/sub/eac_cli/lib/eac_cli/runner.rb +0 -47
  173. data/sub/eac_cli/lib/eac_cli/runner_with/confirmation/input_result.rb +0 -60
  174. data/sub/eac_cli/lib/eac_cli/runner_with/confirmation.rb +0 -65
  175. data/sub/eac_cli/lib/eac_cli/runner_with/help/builder/alternative.rb +0 -61
  176. data/sub/eac_cli/lib/eac_cli/runner_with/help/builder.rb +0 -79
  177. data/sub/eac_cli/lib/eac_cli/runner_with/help/layout.rb +0 -38
  178. data/sub/eac_cli/lib/eac_cli/runner_with/help.rb +0 -51
  179. data/sub/eac_cli/lib/eac_cli/runner_with/input.rb +0 -32
  180. data/sub/eac_cli/lib/eac_cli/runner_with/output.rb +0 -54
  181. data/sub/eac_cli/lib/eac_cli/runner_with/output_item/asciidoc_formatter.rb +0 -70
  182. data/sub/eac_cli/lib/eac_cli/runner_with/output_item/base_formatter.rb +0 -12
  183. data/sub/eac_cli/lib/eac_cli/runner_with/output_item/csv_formatter.rb +0 -21
  184. data/sub/eac_cli/lib/eac_cli/runner_with/output_item/yaml_formatter.rb +0 -16
  185. data/sub/eac_cli/lib/eac_cli/runner_with/output_item.rb +0 -47
  186. data/sub/eac_cli/lib/eac_cli/runner_with/output_list/base_formatter.rb +0 -44
  187. data/sub/eac_cli/lib/eac_cli/runner_with/output_list/csv_formatter.rb +0 -24
  188. data/sub/eac_cli/lib/eac_cli/runner_with/output_list/tty_formatter.rb +0 -34
  189. data/sub/eac_cli/lib/eac_cli/runner_with/output_list/yaml_formatter.rb +0 -21
  190. data/sub/eac_cli/lib/eac_cli/runner_with/output_list.rb +0 -39
  191. data/sub/eac_cli/lib/eac_cli/runner_with/subcommands/definition_concern.rb +0 -10
  192. data/sub/eac_cli/lib/eac_cli/runner_with/subcommands.rb +0 -124
  193. data/sub/eac_cli/lib/eac_cli/runner_with.rb +0 -7
  194. data/sub/eac_cli/lib/eac_cli/runner_with_set.rb +0 -54
  195. data/sub/eac_cli/lib/eac_cli/speaker/constants.rb +0 -11
  196. data/sub/eac_cli/lib/eac_cli/speaker/input_blocked.rb +0 -14
  197. data/sub/eac_cli/lib/eac_cli/speaker/input_requested.rb +0 -8
  198. data/sub/eac_cli/lib/eac_cli/speaker/list.rb +0 -84
  199. data/sub/eac_cli/lib/eac_cli/speaker/options.rb +0 -42
  200. data/sub/eac_cli/lib/eac_cli/speaker/request_from_list.rb +0 -40
  201. data/sub/eac_cli/lib/eac_cli/speaker.rb +0 -114
  202. data/sub/eac_cli/lib/eac_cli/version.rb +0 -5
  203. data/sub/eac_cli/lib/eac_cli.rb +0 -14
  204. data/sub/eac_cli/spec/lib/eac_cli/definition/alternative_spec.rb +0 -18
  205. data/sub/eac_cli/spec/lib/eac_cli/old_configs_spec.rb +0 -14
  206. data/sub/eac_cli/spec/lib/eac_cli/parser/alternative/subcommands_spec.rb +0 -58
  207. data/sub/eac_cli/spec/lib/eac_cli/parser/alternative_spec.rb +0 -89
  208. data/sub/eac_cli/spec/lib/eac_cli/runner/for_context_spec.rb +0 -79
  209. data/sub/eac_cli/spec/lib/eac_cli/runner_spec.rb +0 -129
  210. data/sub/eac_cli/spec/lib/eac_cli/runner_with/confirmation/input_result_spec.rb +0 -36
  211. data/sub/eac_cli/spec/lib/eac_cli/runner_with/confirmation_spec.rb +0 -42
  212. data/sub/eac_cli/spec/lib/eac_cli/runner_with/help/layout_spec.rb +0 -21
  213. data/sub/eac_cli/spec/lib/eac_cli/runner_with/help_spec.rb +0 -51
  214. data/sub/eac_cli/spec/lib/eac_cli/runner_with/output_list_spec.rb +0 -57
  215. data/sub/eac_cli/spec/lib/eac_cli/runner_with/output_spec.rb +0 -81
  216. data/sub/eac_cli/spec/lib/eac_cli/runner_with/subcommands_spec.rb +0 -99
  217. data/sub/eac_cli/spec/lib/eac_cli/speaker_spec.rb +0 -36
  218. data/sub/eac_cli/spec/rubocop_spec.rb +0 -3
  219. data/sub/eac_cli/spec/spec_helper.rb +0 -4
  220. /data/sub/{avm-eac_redmine_base0 → avm-eac_asciidoctor_base0}/Gemfile +0 -0
  221. /data/sub/{avm-eac_redmine_base0 → avm-eac_asciidoctor_base0}/spec/rubocop_spec.rb +0 -0
@@ -1,114 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacCli
4
- class Speaker
5
- require_sub __FILE__, include_modules: true
6
- include ::EacRubyUtils::Speaker::Receiver
7
-
8
- common_constructor :options, default: [{}] do
9
- self.options = self.class.lists.option.hash_keys_validate!(options)
10
- end
11
-
12
- def puts(string = '')
13
- string.to_s.each_line do |line|
14
- err_out.puts(err_line_prefix.to_s + line)
15
- end
16
- end
17
-
18
- def out(string = '')
19
- out_out.write(string.to_s)
20
- end
21
-
22
- def error(string)
23
- puts "ERROR: #{string}".white.on_red
24
- end
25
-
26
- def title(string)
27
- string = string.to_s
28
- puts(('-' * (8 + string.length)).green)
29
- puts("--- #{string} ---".green)
30
- puts(('-' * (8 + string.length)).green)
31
- puts
32
- end
33
-
34
- def info(string)
35
- puts string.to_s.white
36
- end
37
-
38
- def infom(string)
39
- puts string.to_s.light_yellow
40
- end
41
-
42
- def warn(string)
43
- puts string.to_s.yellow
44
- end
45
-
46
- # Options:
47
- # +bool+ ([Boolean], default: +false+): requires a answer "yes" or "no".
48
- # +list+ ([Hash] or [Array], default: +nil+): requires a answer from a list.
49
- # +noecho+ ([Boolean], default: +false+): does not output answer.
50
- def input(question, options = {})
51
- bool, list, noecho, ignore_case =
52
- options.to_options_consumer.consume_all(:bool, :list, :noecho, :ignore_case)
53
- if list
54
- request_from_list(question, list, noecho, ignore_case)
55
- elsif bool
56
- request_from_bool(question, noecho)
57
- else
58
- request_string(question, noecho)
59
- end
60
- end
61
-
62
- def infov(*args)
63
- r = []
64
- args.each_with_index do |v, i|
65
- if i.even?
66
- r << "#{v}: ".cyan
67
- else
68
- r.last << v.to_s
69
- end
70
- end
71
- puts r.join(', ')
72
- end
73
-
74
- def success(string)
75
- puts string.to_s.green
76
- end
77
-
78
- private
79
-
80
- def list_value(list, input)
81
- values = list_values(list)
82
- return input, true unless values
83
-
84
- [input, false] unless values.include?(input)
85
- end
86
-
87
- def list_values(list)
88
- if list.is_a?(::Hash)
89
- list.keys.map(&:to_s)
90
- elsif list.is_a?(::Array)
91
- list.map(&:to_s)
92
- end
93
- end
94
-
95
- def request_from_bool(question, noecho)
96
- request_from_list(question, { yes: true, y: true, no: false, n: false }, noecho, true)
97
- end
98
-
99
- def request_string(question, noecho)
100
- err_out.write "#{question}: ".yellow
101
- noecho ? request_string_noecho : request_string_echo
102
- end
103
-
104
- def request_string_noecho
105
- r = in_in.noecho(&:gets).chomp.strip
106
- err_out.write("\n")
107
- r
108
- end
109
-
110
- def request_string_echo
111
- in_in.gets.chomp.strip
112
- end
113
- end
114
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacCli
4
- VERSION = '0.44.1'
5
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils'
4
- EacRubyUtils::RootModuleSetup.perform __FILE__ do
5
- ignore 'core_ext'
6
- ignore 'patches'
7
- end
8
-
9
- module EacCli
10
- end
11
-
12
- require 'eac_config'
13
- require 'colorize'
14
- require 'eac_cli/core_ext'
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/definition/alternative'
4
-
5
- RSpec.describe EacCli::Definition::Alternative do
6
- let(:instance) { described_class.new }
7
-
8
- it { expect { instance.arg_opt '-a', '--opt2', 'A argument option' }.not_to raise_error }
9
- it { expect { instance.bool_opt '-b', '--opt1', 'A boolean option' }.not_to raise_error }
10
- it { expect { instance.bool_opt '-b', '--no-description' }.not_to raise_error }
11
- it { expect { instance.bool_opt '--opt1', 'A option without short' }.not_to raise_error }
12
- it { expect { instance.bool_opt '-b', 'A option without long' }.not_to raise_error }
13
- it { expect { instance.bool_opt 'A option without selectors' }.to raise_error(StandardError) }
14
- it { expect { instance.options_argument(true) }.not_to raise_error }
15
- it { expect { instance.pos_arg :pos1 }.not_to raise_error }
16
- it { expect { instance.pos_arg :pos2, optional: true, repeat: true }.not_to raise_error }
17
- it { expect { instance.subcommands }.not_to raise_error }
18
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/old_configs'
4
-
5
- RSpec.describe EacCli::OldConfigs do
6
- describe '#entry_key_to_envvar_name' do
7
- {
8
- 'a.entry.value' => 'A_ENTRY_VALUE',
9
- 'appli-cation_0.var_one' => 'APPLICATION_0_VAR_ONE'
10
- }.each do |input, expected_result|
11
- it { expect(described_class.entry_key_to_envvar_name(input)).to eq(expected_result) }
12
- end
13
- end
14
- end
@@ -1,58 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/definition/alternative'
4
- require 'eac_cli/parser/alternative'
5
-
6
- RSpec.describe EacCli::Parser::Alternative, '#subcommands' do
7
- let(:instance) { described_class.new(alternative, argv) }
8
- let(:actual_parsed) { instance.parsed.to_h.symbolize_keys }
9
- let(:alternative) do
10
- r = EacCli::Definition::Alternative.new
11
- r.bool_opt '-b', '--opt1', 'A boolean option'
12
- r.arg_opt '-a', '--opt2', 'A argument option'
13
- r.subcommands
14
- r
15
- end
16
-
17
- context 'with all values' do
18
- let(:argv) { %w[--opt1 --opt2 OPT2 CMD CMD_ARG_1 --CMD_ARG_2] }
19
- let(:parsed_expected) do
20
- {
21
- opt1: true, opt2: 'OPT2',
22
- EacCli::Definition::Alternative::SUBCOMMAND_NAME_ARG => 'CMD',
23
- EacCli::Definition::Alternative::SUBCOMMAND_ARGS_ARG => %w[CMD_ARG_1 --CMD_ARG_2]
24
- }
25
- end
26
-
27
- it { expect(instance.error).to be_blank }
28
- it { expect(actual_parsed).to eq(parsed_expected) }
29
- end
30
-
31
- context 'with only required values' do
32
- let(:argv) { %w[CMD] }
33
- let(:parsed_expected) do
34
- {
35
- opt1: false, opt2: nil,
36
- EacCli::Definition::Alternative::SUBCOMMAND_NAME_ARG => 'CMD',
37
- EacCli::Definition::Alternative::SUBCOMMAND_ARGS_ARG => []
38
- }
39
- end
40
-
41
- it { expect(instance.error).to be_blank }
42
- it { expect(actual_parsed).to eq(parsed_expected) }
43
- end
44
-
45
- context 'without required values' do
46
- let(:argv) { %w[--opt1] }
47
- let(:parsed_expected) do
48
- {
49
- opt1: true, opt2: nil,
50
- EacCli::Definition::Alternative::SUBCOMMAND_NAME_ARG => nil,
51
- EacCli::Definition::Alternative::SUBCOMMAND_ARGS_ARG => []
52
- }
53
- end
54
-
55
- it { expect(instance.error).to be_present }
56
- it { expect(actual_parsed).to eq(parsed_expected) }
57
- end
58
- end
@@ -1,89 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/definition/alternative'
4
- require 'eac_cli/parser/alternative'
5
-
6
- RSpec.describe EacCli::Parser::Alternative do
7
- let(:instance) { described_class.new(alternative, argv) }
8
- let(:actual_parsed) { instance.parsed.to_h.symbolize_keys }
9
-
10
- context 'without subcommands' do
11
- let(:alternative) do
12
- r = EacCli::Definition::Alternative.new
13
- r.bool_opt '-b', '--opt1', 'A boolean option'
14
- r.arg_opt '-a', '--opt2', 'A argument option'
15
- r.bool_opt '-c', '--opt3', 'A required boolean option', required: true
16
- r.pos_arg :pos1
17
- r.pos_arg :pos2, optional: true, repeat: true
18
- r
19
- end
20
-
21
- context 'with all values' do
22
- let(:argv) { %w[--opt1 --opt2 OPT2 --opt3 POS1 POS2_1 POS2_2] }
23
- let(:parsed_expected) do
24
- {
25
- opt1: true, opt2: 'OPT2', opt3: true, pos1: 'POS1', pos2: %w[POS2_1 POS2_2]
26
- }
27
- end
28
-
29
- it { expect(instance.error).to be_blank }
30
- it { expect(actual_parsed).to eq(parsed_expected) }
31
- end
32
-
33
- context 'with only required values' do
34
- let(:argv) { %w[--opt3 POS1] }
35
- let(:parsed_expected) { { opt1: false, opt2: nil, opt3: true, pos1: 'POS1', pos2: [] } }
36
-
37
- it { expect(instance.error).to be_blank }
38
- it { expect(actual_parsed).to eq(parsed_expected) }
39
- end
40
-
41
- context 'with double dash' do
42
- let(:argv) { %w[--opt3 POS1 -- --opt1 --] }
43
- let(:parsed_expected) do
44
- { opt1: false, opt2: nil, opt3: true, pos1: 'POS1', pos2: %w[--opt1 --] }
45
- end
46
-
47
- it { expect(instance.error).to be_blank }
48
- it { expect(actual_parsed).to eq(parsed_expected) }
49
- end
50
-
51
- context 'without required positional' do
52
- let(:argv) { %w[--opt1 --opt3] }
53
- let(:parsed_expected) { { opt1: true, opt2: nil, opt3: true, pos1: nil, pos2: [] } }
54
-
55
- it { expect(instance.error).to be_present }
56
- it { expect(actual_parsed).to eq(parsed_expected) }
57
- end
58
-
59
- context 'without required option' do
60
- let(:argv) { %w[--opt1 POS1] }
61
- let(:parsed_expected) { { opt1: true, opt2: nil, opt3: false, pos1: 'POS1', pos2: [] } }
62
-
63
- it { expect(instance.error).to be_present }
64
- it { expect(actual_parsed).to eq(parsed_expected) }
65
- end
66
-
67
- context 'without any required option or positional' do
68
- let(:argv) { %w[] }
69
- let(:parsed_expected) { { opt1: false, opt2: nil, opt3: false, pos1: nil, pos2: [] } }
70
-
71
- it { expect(instance.error).to be_present }
72
- it { expect(actual_parsed).to eq(parsed_expected) }
73
- end
74
-
75
- context 'with excedent positional' do
76
- let(:alternative) do
77
- r = EacCli::Definition::Alternative.new
78
- r.pos_arg :pos1
79
- r
80
- end
81
-
82
- let(:argv) { %w[POS1 POS2] }
83
- let(:parsed_expected) { { pos1: 'POS1' } }
84
-
85
- it { expect(instance.error).to be_present }
86
- it { expect(actual_parsed).to eq(parsed_expected) }
87
- end
88
- end
89
- end
@@ -1,79 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/runner'
4
-
5
- RSpec.describe EacCli::Runner, '#for_context' do
6
- let(:parent_runner_class) do
7
- example = self
8
- Class.new do
9
- include example.described_class
10
-
11
- def self.name
12
- 'ParentRunnerClass'
13
- end
14
-
15
- for_context :method_for_context
16
-
17
- def run; end
18
-
19
- def method_for_context; end
20
-
21
- def method_not_for_context; end
22
- end
23
- end
24
-
25
- let(:child_runner_class1) do # rubocop:disable RSpec/IndexedLet
26
- example = self
27
- Class.new do
28
- include example.described_class
29
-
30
- def self.name
31
- 'ChildRunnerClass1'
32
- end
33
-
34
- def run
35
- method_for_context
36
- runner_context.call(:method_for_context)
37
- runner_context.call(:method_not_for_context)
38
- end
39
- end
40
- end
41
-
42
- let(:child_runner_class2) do # rubocop:disable RSpec/IndexedLet
43
- example = self
44
- Class.new do
45
- include example.described_class
46
-
47
- def self.name
48
- 'ChildRunnerClass2'
49
- end
50
-
51
- def run
52
- method_not_for_context
53
- end
54
- end
55
- end
56
-
57
- let(:parent_runner) { parent_runner_class.create }
58
- let(:context_args) { [{ argv: [], parent: parent_runner }] }
59
- let(:child_runner) { child_runner_class.create(*context_args) }
60
-
61
- it { expect(parent_runner.for_context?(:method_for_context)).to be(true) }
62
- it { expect(parent_runner.for_context?(:method_not_for_context)).to be(false) }
63
-
64
- context 'when method is for context' do
65
- let(:child_runner_class) { child_runner_class1 }
66
-
67
- it do
68
- expect { child_runner.run }.not_to raise_error
69
- end
70
- end
71
-
72
- context 'when method is not for context' do
73
- let(:child_runner_class) { child_runner_class2 }
74
-
75
- it do
76
- expect { child_runner.run }.to raise_error(NameError)
77
- end
78
- end
79
- end
@@ -1,129 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/runner'
4
-
5
- RSpec.describe EacCli::Runner do
6
- let(:runner_class) do
7
- the_module = described_class
8
- Class.new do
9
- include the_module
10
-
11
- runner_definition do
12
- arg_opt '-o', '--opt1', 'A arg option.'
13
- bool_opt '-p', '--opt2', 'A boolean option'
14
- arg_opt '-q', '--opt4', 'A repeatable argument option.', repeat: true
15
- bool_opt '-r', '--opt5', 'A repeatable boolean option', repeat: true
16
- arg_opt '-s', '--opt6', 'A argument option with default value', default: 'DEFAULT'
17
- pos_arg :pos1
18
- pos_arg :pos2, repeat: true, optional: true
19
- alt do
20
- bool_opt '-a', '--opt3', 'A boolean option in a alternative.', required: true
21
- end
22
- end
23
-
24
- def run; end
25
- end
26
- end
27
-
28
- let(:instance) { runner_class.create(argv) }
29
- let(:parsed_actual) { instance.parsed.to_h.symbolize_keys }
30
-
31
- context 'when all args are supplied' do
32
- let(:argv) { %w[--opt1 aaa --opt2 bbb ccc ddd --opt6 6] }
33
- let(:parsed_expected) do
34
- { opt1: 'aaa', opt2: true, opt3: false, opt4: [], opt5: 0, opt6: '6', pos1: 'bbb',
35
- pos2: %w[ccc ddd] }
36
- end
37
-
38
- it { expect(parsed_actual).to eq(parsed_expected) }
39
- it { expect(instance.parsed.opt1).to eq('aaa') }
40
- it { expect(instance.parsed.opt2?).to be(true) }
41
- it { expect(instance.parsed.pos1).to eq('bbb') }
42
- it { expect(instance.parsed.pos2).to eq(%w[ccc ddd]) }
43
- end
44
-
45
- context 'with long option and argument in same position' do
46
- let(:argv) { %w[--opt1=aaa pos1] }
47
-
48
- it { expect(instance.parsed.opt1).to eq('aaa') }
49
- end
50
-
51
- context 'with valid grouped short options' do
52
- let(:argv) { %w[-po aaa pos1] }
53
-
54
- it { expect(instance.parsed.opt1).to eq('aaa') }
55
- it { expect(instance.parsed.opt2?).to be(true) }
56
- end
57
-
58
- context 'with invalid grouped short options' do
59
- let(:argv) { %w[-op aaa pos1] }
60
-
61
- it do
62
- expect { instance.parsed }.to raise_error(EacCli::Parser::Error)
63
- end
64
- end
65
-
66
- context 'when only required args are supplied' do
67
- let(:argv) { %w[bbb] }
68
- let(:parsed_expected) do
69
- { opt1: nil, opt2: false, opt3: false, opt4: [], opt5: 0, opt6: 'DEFAULT', pos1: 'bbb',
70
- pos2: [] }
71
- end
72
-
73
- it { expect(parsed_actual).to eq(parsed_expected) }
74
- it { expect(instance.parsed.opt1).to be_nil }
75
- it { expect(instance.parsed.opt2?).to be(false) }
76
- it { expect(instance.parsed.pos1).to eq('bbb') }
77
- it { expect(instance.parsed.pos2).to eq([]) }
78
- end
79
-
80
- context 'when required args are not supplied' do
81
- let(:argv) { %w[] }
82
-
83
- it do
84
- expect { instance.parsed }.to raise_error(EacCli::Parser::Error)
85
- end
86
- end
87
-
88
- context 'when alternative args are supplied' do
89
- let(:argv) { %w[--opt3] }
90
- let(:parsed_expected) do
91
- { opt1: nil, opt2: false, opt3: true, opt4: [], opt5: 0, opt6: 'DEFAULT', pos1: nil,
92
- pos2: [] }
93
- end
94
-
95
- it { expect(parsed_actual).to eq(parsed_expected) }
96
- it { expect(instance.parsed.opt3?).to be(true) }
97
- end
98
-
99
- context 'when repeated options are supplied' do
100
- let(:argv) { %w[--opt5 -rrr --opt4=A -q B --opt4 C AAA] }
101
- let(:parsed_expected) do
102
- { opt1: nil, opt2: false, opt3: false, opt4: %w[A B C], opt5: 4, opt6: 'DEFAULT', pos1: 'AAA',
103
- pos2: [] }
104
- end
105
-
106
- it { expect(parsed_actual).to eq(parsed_expected) }
107
- end
108
-
109
- context 'when extra args are not supplied' do
110
- let(:runner_class) do
111
- the_module = described_class
112
- Class.new do
113
- include the_module
114
-
115
- runner_definition do
116
- pos_arg :pos1
117
- end
118
-
119
- def run; end
120
- end
121
- end
122
-
123
- let(:argv) { %w[aaa bbb] }
124
-
125
- it do
126
- expect { instance.parsed }.to raise_error(EacCli::Parser::Error)
127
- end
128
- end
129
- end
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/runner_with/confirmation/input_result'
4
- require 'eac_cli/speaker'
5
- require 'eac_ruby_utils'
6
-
7
- RSpec.describe EacCli::RunnerWith::Confirmation::InputResult do
8
- let(:speaker) { EacCli::Speaker.new }
9
-
10
- around do |example|
11
- EacRubyUtils::Speaker.context.on(speaker) { example.run }
12
- end
13
-
14
- before do
15
- allow(speaker).to receive(:warn) { |message| raise(message.to_s) }
16
- end
17
-
18
- [
19
- ['n', false, false],
20
- ['N', false, true],
21
- ['y', true, false],
22
- ['Y', true, true]
23
- ].each do |test_values|
24
- user_input, confirm, for_all = test_values
25
- context "when user input is \"#{user_input}\"" do
26
- let(:instance) { described_class.by_message('A message') }
27
-
28
- before do
29
- allow(speaker).to receive(:request_string).and_return(user_input)
30
- end
31
-
32
- it { expect(instance.confirm?).to eq(confirm) }
33
- it { expect(instance.for_all?).to eq(for_all) }
34
- end
35
- end
36
- end
@@ -1,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/runner_with/confirmation'
4
-
5
- RSpec.describe EacCli::RunnerWith::Confirmation do
6
- let(:runner) do
7
- the_module = described_class
8
- Class.new do
9
- include the_module
10
-
11
- runner_definition do
12
- desc 'A stub runner.'
13
- end
14
-
15
- def run
16
- if confirm?
17
- Kernel.puts 'Accepted'
18
- else
19
- Kernel.puts 'Denied'
20
- end
21
- end
22
- end
23
- end
24
-
25
- let(:instance) { runner.create(argv: runner_argv) }
26
-
27
- context 'without --no option' do
28
- let(:runner_argv) { %w[--no] }
29
-
30
- it do
31
- expect { instance.run }.to output("Denied\n").to_stdout_from_any_process
32
- end
33
- end
34
-
35
- context 'without --yes option' do
36
- let(:runner_argv) { %w[--yes] }
37
-
38
- it do
39
- expect { instance.run }.to output("Accepted\n").to_stdout_from_any_process
40
- end
41
- end
42
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/runner_with/help/layout'
4
-
5
- RSpec.describe EacCli::RunnerWith::Help::Layout do
6
- describe '#list_section' do
7
- {
8
- ['Options', ['Option A', 'Option B']] => <<~TEXT
9
- Options:
10
- Option A
11
- Option B
12
- TEXT
13
- }.each do |source, expected|
14
- context "when source is #{source}" do
15
- it do
16
- expect(described_class.list_section(*source)).to eq(expected)
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,51 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/runner_with/help'
4
- require 'eac_ruby_utils'
5
-
6
- RSpec.describe EacCli::RunnerWith::Help do
7
- let(:runner) do
8
- the_module = described_class
9
- Class.new do
10
- include the_module
11
-
12
- runner_definition do
13
- desc 'A stub runner.'
14
- pos_arg :a_argument
15
- end
16
-
17
- def run
18
- puts 'Runner run'
19
- end
20
- end
21
- end
22
-
23
- [
24
- ['--help'],
25
- ['trash-pos-arg-before', '--help', 'trash-pos-arg-after', '--any-option', '-XYZ',
26
- 'other-trash-arg']
27
- ].each do |runner_argv|
28
- context "when runner ARGV is #{runner_argv}" do
29
- let(:instance) { runner.create(argv: runner_argv) }
30
- let(:expected_output_source) do
31
- <<~OUTPUT
32
- A stub runner.
33
-
34
- Usage:
35
- __PROGRAM__ [options] <a_argument>
36
- __PROGRAM__ --help
37
-
38
- Options:
39
- -h --help Show help.
40
- OUTPUT
41
- end
42
- let(:expected_output) do
43
- expected_output_source.gsub('__PROGRAM__', instance.program_name)
44
- end
45
-
46
- it 'show help text' do
47
- expect { instance.run_run }.to output(expected_output).to_stdout_from_any_process
48
- end
49
- end
50
- end
51
- end