eac_tools 0.105.0 → 0.105.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +35 -30
- data/lib/eac_tools/version.rb +1 -1
- data/sub/avm-tools/README.textile +28 -0
- data/sub/avm-tools/avm-tools.gemspec +25 -0
- data/sub/avm-tools/exe/avm +6 -0
- data/sub/avm-tools/lib/avm/tools/core_ext.rb +1 -0
- data/sub/avm-tools/lib/avm/tools/rspec/helpers/runner.rb +19 -0
- data/sub/avm-tools/lib/avm/tools/rspec/setup.rb +21 -0
- data/sub/avm-tools/lib/avm/tools/runner/application/info.rb +34 -0
- data/sub/avm-tools/lib/avm/tools/runner/application.rb +23 -0
- data/sub/avm-tools/lib/avm/tools/runner/application_stereotypes/list.rb +29 -0
- data/sub/avm-tools/lib/avm/tools/runner/application_stereotypes.rb +14 -0
- data/sub/avm-tools/lib/avm/tools/runner/applications/list.rb +29 -0
- data/sub/avm-tools/lib/avm/tools/runner/applications.rb +14 -0
- data/sub/avm-tools/lib/avm/tools/runner/config/load_path.rb +48 -0
- data/sub/avm-tools/lib/avm/tools/runner/config.rb +15 -0
- data/sub/avm-tools/lib/avm/tools/runner/files/format.rb +46 -0
- data/sub/avm-tools/lib/avm/tools/runner/files/rotate.rb +28 -0
- data/sub/avm-tools/lib/avm/tools/runner/files.rb +15 -0
- data/sub/avm-tools/lib/avm/tools/runner/instance/data/clear.rb +15 -0
- data/sub/avm-tools/lib/avm/tools/runner/instance/data/dump.rb +17 -0
- data/sub/avm-tools/lib/avm/tools/runner/instance/data/load.rb +22 -0
- data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit/clear.rb +17 -0
- data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit/dump.rb +17 -0
- data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit/load.rb +22 -0
- data/sub/avm-tools/lib/avm/tools/runner/instance/data/unit.rb +41 -0
- data/sub/avm-tools/lib/avm/tools/runner/instance/data.rb +24 -0
- data/sub/avm-tools/lib/avm/tools/runner/instance/entry.rb +41 -0
- data/sub/avm-tools/lib/avm/tools/runner/instance/info.rb +35 -0
- data/sub/avm-tools/lib/avm/tools/runner/instance/system.rb +63 -0
- data/sub/avm-tools/lib/avm/tools/runner/instance.rb +11 -0
- data/sub/avm-tools/lib/avm/tools/runner/launcher/instances.rb +34 -0
- data/sub/avm-tools/lib/avm/tools/runner/launcher/projects.rb +37 -0
- data/sub/avm-tools/lib/avm/tools/runner/launcher/publish.rb +51 -0
- data/sub/avm-tools/lib/avm/tools/runner/launcher.rb +15 -0
- data/sub/avm-tools/lib/avm/tools/runner/launcher_stereotypes/list.rb +38 -0
- data/sub/avm-tools/lib/avm/tools/runner/launcher_stereotypes.rb +14 -0
- data/sub/avm-tools/lib/avm/tools/runner/self/docker.rb +12 -0
- data/sub/avm-tools/lib/avm/tools/runner/self/registry.rb +22 -0
- data/sub/avm-tools/lib/avm/tools/runner/self.rb +19 -0
- data/sub/avm-tools/lib/avm/tools/runner/source/auto_commit.rb +67 -0
- data/sub/avm-tools/lib/avm/tools/runner/source/info.rb +53 -0
- data/sub/avm-tools/lib/avm/tools/runner/source/issue/complete.rb +85 -0
- data/sub/avm-tools/lib/avm/tools/runner/source/issue/deliver.rb +32 -0
- data/sub/avm-tools/lib/avm/tools/runner/source/issue.rb +17 -0
- data/sub/avm-tools/lib/avm/tools/runner/source/sub/remove.rb +20 -0
- data/sub/avm-tools/lib/avm/tools/runner/source/sub.rb +27 -0
- data/sub/avm-tools/lib/avm/tools/runner/source/subs.rb +70 -0
- data/sub/avm-tools/lib/avm/tools/runner/source/test.rb +90 -0
- data/sub/avm-tools/lib/avm/tools/runner/source/update.rb +20 -0
- data/sub/avm-tools/lib/avm/tools/runner/source/version_bump.rb +78 -0
- data/sub/avm-tools/lib/avm/tools/runner/source.rb +15 -0
- data/sub/avm-tools/lib/avm/tools/runner/source_generate.rb +10 -0
- data/sub/avm-tools/lib/avm/tools/runner.rb +20 -0
- data/sub/avm-tools/lib/avm/tools/runner_with/include_exclude.rb +20 -0
- data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_clear.rb +19 -0
- data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_dump.rb +55 -0
- data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_load.rb +64 -0
- data/sub/avm-tools/lib/avm/tools/runner_with/instance_data_performer.rb +37 -0
- data/sub/avm-tools/lib/avm/tools/runner_with.rb +9 -0
- data/sub/avm-tools/lib/avm/tools/self.rb +19 -0
- data/sub/{avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0 → avm-tools/lib/avm/tools}/version.rb +2 -2
- data/sub/avm-tools/lib/avm/tools.rb +16 -0
- data/sub/avm-tools/spec/lib/avm/tools/runner/files/rotate_spec.rb +71 -0
- data/sub/avm-tools/spec/lib/avm/tools/runner/launcher_stereotypes/list_spec.rb +15 -0
- data/sub/avm-tools/spec/lib/avm/tools/runner/source/issue/complete_spec.rb +47 -0
- data/sub/avm-tools/spec/lib/avm/tools/runner_spec.rb +12 -0
- data/sub/{avm-eac_asciidoctor_base0 → avm-tools}/spec/spec_helper.rb +3 -3
- data/sub/eac_cli/Gemfile +8 -0
- data/sub/eac_cli/eac_cli.gemspec +23 -0
- data/sub/eac_cli/lib/eac_cli/config/entry/options.rb +55 -0
- data/sub/eac_cli/lib/eac_cli/config/entry/undefined.rb +26 -0
- data/sub/eac_cli/lib/eac_cli/config/entry.rb +55 -0
- data/sub/eac_cli/lib/eac_cli/config.rb +15 -0
- data/sub/eac_cli/lib/eac_cli/core_ext.rb +3 -0
- data/sub/eac_cli/lib/eac_cli/default_runner.rb +12 -0
- data/sub/eac_cli/lib/eac_cli/definition/alternative.rb +101 -0
- data/sub/eac_cli/lib/eac_cli/definition/argument_option.rb +19 -0
- data/sub/eac_cli/lib/eac_cli/definition/boolean_option.rb +25 -0
- data/sub/eac_cli/lib/eac_cli/definition/error.rb +8 -0
- data/sub/eac_cli/lib/eac_cli/definition/option/initialize_args_parser.rb +48 -0
- data/sub/eac_cli/lib/eac_cli/definition/option.rb +70 -0
- data/sub/eac_cli/lib/eac_cli/definition/option_or_positional.rb +41 -0
- data/sub/eac_cli/lib/eac_cli/definition/positional.rb +50 -0
- data/sub/eac_cli/lib/eac_cli/definition.rb +104 -0
- data/sub/eac_cli/lib/eac_cli/enum.rb +44 -0
- data/sub/eac_cli/lib/eac_cli/old_configs/entry_reader.rb +76 -0
- data/sub/eac_cli/lib/eac_cli/old_configs/password_entry_reader.rb +14 -0
- data/sub/eac_cli/lib/eac_cli/old_configs/read_entry_options.rb +42 -0
- data/sub/eac_cli/lib/eac_cli/old_configs/store_passwords_entry_reader.rb +23 -0
- data/sub/eac_cli/lib/eac_cli/old_configs.rb +31 -0
- data/sub/eac_cli/lib/eac_cli/parser/alternative/any_options.rb +17 -0
- data/sub/eac_cli/lib/eac_cli/parser/alternative/argv.rb +19 -0
- data/sub/eac_cli/lib/eac_cli/parser/alternative/double_dash.rb +24 -0
- data/sub/eac_cli/lib/eac_cli/parser/alternative/long_options.rb +37 -0
- data/sub/eac_cli/lib/eac_cli/parser/alternative/option_argument.rb +29 -0
- data/sub/eac_cli/lib/eac_cli/parser/alternative/options.rb +29 -0
- data/sub/eac_cli/lib/eac_cli/parser/alternative/positionals.rb +30 -0
- data/sub/eac_cli/lib/eac_cli/parser/alternative/short_options.rb +54 -0
- data/sub/eac_cli/lib/eac_cli/parser/alternative.rb +99 -0
- data/sub/eac_cli/lib/eac_cli/parser/collector.rb +52 -0
- data/sub/eac_cli/lib/eac_cli/parser/error.rb +13 -0
- data/sub/eac_cli/lib/eac_cli/parser.rb +32 -0
- data/sub/eac_cli/lib/eac_cli/patches/object/runner_with.rb +22 -0
- data/sub/eac_cli/lib/eac_cli/patches/object.rb +5 -0
- data/sub/eac_cli/lib/eac_cli/patches.rb +3 -0
- data/sub/eac_cli/lib/eac_cli/rspec/setup.rb +41 -0
- data/sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb +34 -0
- data/sub/eac_cli/lib/eac_cli/runner/class_runner.rb +32 -0
- data/sub/eac_cli/lib/eac_cli/runner/context.rb +57 -0
- data/sub/eac_cli/lib/eac_cli/runner/context_responders/base.rb +22 -0
- data/sub/eac_cli/lib/eac_cli/runner/context_responders/parent.rb +24 -0
- data/sub/eac_cli/lib/eac_cli/runner/context_responders/runner.rb +17 -0
- data/sub/eac_cli/lib/eac_cli/runner/context_responders/runner_missing_method.rb +29 -0
- data/sub/eac_cli/lib/eac_cli/runner/context_responders/set.rb +41 -0
- data/sub/eac_cli/lib/eac_cli/runner/exit.rb +14 -0
- data/sub/eac_cli/lib/eac_cli/runner/for_context.rb +35 -0
- data/sub/eac_cli/lib/eac_cli/runner/instance_methods.rb +45 -0
- data/sub/eac_cli/lib/eac_cli/runner.rb +47 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/confirmation/input_result.rb +60 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/confirmation.rb +65 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/help/builder/alternative.rb +61 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/help/builder.rb +79 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/help/layout.rb +38 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/help.rb +51 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/input.rb +32 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/output.rb +54 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/output_item/asciidoc_formatter.rb +70 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/output_item/base_formatter.rb +12 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/output_item/csv_formatter.rb +21 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/output_item/yaml_formatter.rb +16 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/output_item.rb +47 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/output_list/base_formatter.rb +44 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/output_list/csv_formatter.rb +24 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/output_list/tty_formatter.rb +34 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/output_list/yaml_formatter.rb +21 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/output_list.rb +39 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/subcommands/definition_concern.rb +10 -0
- data/sub/eac_cli/lib/eac_cli/runner_with/subcommands.rb +124 -0
- data/sub/eac_cli/lib/eac_cli/runner_with.rb +7 -0
- data/sub/eac_cli/lib/eac_cli/runner_with_set/from_gems_registry.rb +14 -0
- data/sub/eac_cli/lib/eac_cli/runner_with_set.rb +48 -0
- data/sub/eac_cli/lib/eac_cli/speaker/constants.rb +11 -0
- data/sub/eac_cli/lib/eac_cli/speaker/input_blocked.rb +14 -0
- data/sub/eac_cli/lib/eac_cli/speaker/input_requested.rb +8 -0
- data/sub/eac_cli/lib/eac_cli/speaker/list.rb +84 -0
- data/sub/eac_cli/lib/eac_cli/speaker/options.rb +42 -0
- data/sub/eac_cli/lib/eac_cli/speaker/request_from_list.rb +40 -0
- data/sub/eac_cli/lib/eac_cli/speaker.rb +114 -0
- data/sub/eac_cli/lib/eac_cli/version.rb +5 -0
- data/sub/eac_cli/lib/eac_cli.rb +14 -0
- data/sub/eac_cli/spec/lib/eac_cli/definition/alternative_spec.rb +18 -0
- data/sub/eac_cli/spec/lib/eac_cli/old_configs_spec.rb +14 -0
- data/sub/eac_cli/spec/lib/eac_cli/parser/alternative/subcommands_spec.rb +58 -0
- data/sub/eac_cli/spec/lib/eac_cli/parser/alternative_spec.rb +89 -0
- data/sub/eac_cli/spec/lib/eac_cli/runner/for_context_spec.rb +79 -0
- data/sub/eac_cli/spec/lib/eac_cli/runner_spec.rb +129 -0
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/confirmation/input_result_spec.rb +36 -0
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/confirmation_spec.rb +42 -0
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/help/layout_spec.rb +21 -0
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/help_spec.rb +51 -0
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/output_list_spec.rb +57 -0
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/output_spec.rb +81 -0
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/subcommands_spec.rb +99 -0
- data/sub/eac_cli/spec/lib/eac_cli/speaker_spec.rb +36 -0
- data/sub/eac_cli/spec/rubocop_spec.rb +3 -0
- data/sub/eac_cli/spec/spec_helper.rb +4 -0
- metadata +185 -82
- data/sub/avm-eac_asciidoctor_base0/avm-eac_asciidoctor_base0.gemspec +0 -24
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/documents_owner.rb +0 -30
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/file_formats/base/file_resource_name.rb +0 -37
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/file_formats/base.rb +0 -17
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/apache_host.rb +0 -19
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/apache_path.rb +0 -12
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/base.rb +0 -33
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/body_target.rb +0 -37
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/header_lines.rb +0 -92
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/media.rb +0 -28
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb +0 -64
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document.rb +0 -101
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/theme.rb +0 -41
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build.rb +0 -61
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/deploy.rb +0 -28
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/base.rb +0 -21
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb +0 -55
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/child_docs/document_builder.rb +0 -63
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/child_docs.rb +0 -35
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/default_body.rb +0 -21
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/todo.rb +0 -21
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros.rb +0 -13
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances.rb +0 -11
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/logging/catcher.rb +0 -47
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/logging/error.rb +0 -18
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/logging.rb +0 -11
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/source_generators/base.rb +0 -28
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/source_generators.rb +0 -11
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/base/instance_to_build.rb +0 -45
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/base/theme.rb +0 -46
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/base.rb +0 -49
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/document/media.rb +0 -28
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/document/title.rb +0 -31
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/document.rb +0 -56
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/build.rb +0 -58
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/document/build.rb +0 -51
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/document.rb +0 -30
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/documents.rb +0 -28
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners/ignore_errors_option.rb +0 -45
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/runners.rb +0 -13
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources.rb +0 -11
- data/sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0.rb +0 -9
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/file_formats/base_spec.rb +0 -13
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build/document_spec.rb +0 -81
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build/document_spec_files/pre_processed_root_body.adoc +0 -25
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec.rb +0 -22
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/_media/a_media_file +0 -1
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc1/_media/a_media_file +0 -1
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc1/body.adoc +0 -11
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc1/title +0 -1
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/body.adoc +0 -11
- 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 +0 -1
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/doc2_1/body.adoc +0 -11
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/doc2_1/title +0 -1
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.source/content/doc2/title +0 -1
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/_media/a_media_file +0 -1
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/_theme/main.css +0 -1
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc1/_media/a_media_file +0 -1
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc1/index.html +0 -1
- 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 +0 -1
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc2/doc2_1/index.html +0 -1
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/doc2/index.html +0 -1
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/instances/build_spec_files/first.target/index.html +0 -1
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec.rb +0 -8
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/content/body.adoc +0 -11
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/content/title +0 -1
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/source_generators/base_spec_files/no_options/theme/main.css +0 -1
- data/sub/avm-eac_asciidoctor_base0/spec/lib/avm/eac_asciidoctor_base0/sources/base_spec.rb +0 -16
- data/sub/avm-eac_asciidoctor_base0/spec/spec_helper/eac_asciidoctor_base0_stubs.rb +0 -55
- data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/content/body.adoc +0 -11
- data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/content/title +0 -1
- data/sub/avm-eac_asciidoctor_base0/template/avm/eac_asciidoctor_base0/source_generators/base/theme/main.css +0 -1
- /data/sub/{avm-eac_asciidoctor_base0 → avm-tools}/Gemfile +0 -0
- /data/sub/{avm-eac_asciidoctor_base0 → avm-tools}/spec/rubocop_spec.rb +0 -0
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Avm
|
4
|
+
module Tools
|
5
|
+
module Self
|
6
|
+
::EacRubyUtils.require_sub(__FILE__)
|
7
|
+
|
8
|
+
class << self
|
9
|
+
def application
|
10
|
+
@application ||= ::EacRubyBase0::Application.new(root.to_path)
|
11
|
+
end
|
12
|
+
|
13
|
+
def root
|
14
|
+
::Pathname.new('../../..').expand_path(__dir__)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils'
|
4
|
+
EacRubyUtils::RootModuleSetup.perform __FILE__ do
|
5
|
+
ignore 'core_ext'
|
6
|
+
end
|
7
|
+
|
8
|
+
module Avm
|
9
|
+
module Tools
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
require 'avm'
|
14
|
+
require 'eac_ruby_base0'
|
15
|
+
|
16
|
+
require 'avm/tools/core_ext'
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'tmpdir'
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
class StubClock
|
7
|
+
attr_reader :current
|
8
|
+
|
9
|
+
def initialize(year, month, day)
|
10
|
+
@current = ::Time.new(year, month, day)
|
11
|
+
end
|
12
|
+
|
13
|
+
def tick
|
14
|
+
@current += 1.day
|
15
|
+
@current
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
RSpec.describe Avm::Tools::Runner::Files::Rotate do
|
20
|
+
let(:workdir) { Dir.mktmpdir }
|
21
|
+
let(:source_basename) { 'myfile.tar.gz' }
|
22
|
+
let(:source_path) { File.join(workdir, source_basename) }
|
23
|
+
|
24
|
+
before do
|
25
|
+
FileUtils.touch(source_path)
|
26
|
+
end
|
27
|
+
|
28
|
+
it { expect(File.exist?(source_path)).to be(true) }
|
29
|
+
|
30
|
+
context 'when run' do
|
31
|
+
let(:files_with_prefix) { Dir["#{workdir}/myfile_*.tar.gz"] }
|
32
|
+
|
33
|
+
before do
|
34
|
+
Avm::Tools::Runner.run(argv: ['files', 'rotate', source_path])
|
35
|
+
end
|
36
|
+
|
37
|
+
it { expect(File.exist?(source_path)).to be(false) }
|
38
|
+
it { expect(files_with_prefix.count).to eq(1) }
|
39
|
+
end
|
40
|
+
|
41
|
+
describe 'space limit' do
|
42
|
+
let(:tempdir) { Dir.mktmpdir }
|
43
|
+
let(:clock) { StubClock.new(2000, 1, 1) }
|
44
|
+
|
45
|
+
it 'limit space used by rotated files' do # rubocop:disable RSpec/NoExpectationExample
|
46
|
+
file1 = create_and_rotate_stub_file([], [])
|
47
|
+
file2 = create_and_rotate_stub_file([file1], [])
|
48
|
+
file3 = create_and_rotate_stub_file([file2], [file1])
|
49
|
+
create_and_rotate_stub_file([file3], [file1, file2])
|
50
|
+
end
|
51
|
+
|
52
|
+
def create_and_rotate_stub_file(expect_exist, expect_not_exist)
|
53
|
+
rotate_runner = described_class.create(argv: [create_stub_file, '--space-limit=32'])
|
54
|
+
rotate_runner.run
|
55
|
+
test_files(rotate_runner.rotate, expect_exist, expect_not_exist)
|
56
|
+
rotate_runner.rotate.target_path
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_files(rotate, expect_exist, expect_not_exist)
|
60
|
+
(expect_exist + [rotate.target_path]).each { |path| expect(File).to exist(path) }
|
61
|
+
expect_not_exist.each { |path| expect(File).not_to exist(path) }
|
62
|
+
end
|
63
|
+
|
64
|
+
def create_stub_file
|
65
|
+
stub_path = File.join(tempdir, 'stub.ext')
|
66
|
+
File.write(stub_path, 'A' * 16)
|
67
|
+
FileUtils.touch(stub_path, mtime: clock.tick)
|
68
|
+
stub_path
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe Avm::Tools::Runner::LauncherStereotypes::List do
|
4
|
+
def avm_tools_runner_args_prefix
|
5
|
+
%w[launcher-stereotypes list]
|
6
|
+
end
|
7
|
+
|
8
|
+
it do
|
9
|
+
expect { avm_tools_runner_run }.not_to raise_error
|
10
|
+
end
|
11
|
+
|
12
|
+
it do
|
13
|
+
expect { avm_tools_runner_run('--deprecated') }.not_to raise_error
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'tmpdir'
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
RSpec.describe Avm::Tools::Runner::Source::Issue::Complete, :git do
|
7
|
+
let(:remote_name) { 'origin' }
|
8
|
+
let(:issue_ref) { 'issue_123' }
|
9
|
+
let(:remote_repos) { stubbed_git_local_repo(true) }
|
10
|
+
let(:local_repos) { stubbed_git_local_repo }
|
11
|
+
let(:eac_local_repos) { Avm::Git::Launcher::Base.new(local_repos.root_path.to_path) }
|
12
|
+
|
13
|
+
context 'when branch is pushed' do
|
14
|
+
before do
|
15
|
+
eac_local_repos.assert_remote_url(remote_name, remote_repos.root_path.to_path)
|
16
|
+
local_repos.command('checkout', '-b', issue_ref).execute!
|
17
|
+
local_repos.file('myfile1.txt').touch
|
18
|
+
local_repos.file(Avm::Sources::Base::Configuration::CONFIGURATION_FILENAMES.first).touch
|
19
|
+
local_repos.command('add', '.').execute!
|
20
|
+
local_repos.command('commit', '-m', 'myfile1.txt').execute!
|
21
|
+
local_repos.command('push', 'origin', issue_ref).execute!
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'remote repos has a issue branch' do
|
25
|
+
expect(eac_local_repos.remote_hashs(remote_name)).to include("refs/heads/#{issue_ref}")
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'remote repos does not have a issue tag' do
|
29
|
+
expect(eac_local_repos.remote_hashs(remote_name)).not_to include("refs/tags/#{issue_ref}")
|
30
|
+
end
|
31
|
+
|
32
|
+
context 'when "git issue complete" is called' do
|
33
|
+
before do
|
34
|
+
Avm::Tools::Runner.run(argv: ['source', '-C', eac_local_repos] +
|
35
|
+
%w[issue complete --yes])
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'remote repos does not have a issue branch' do
|
39
|
+
expect(eac_local_repos.remote_hashs(remote_name)).not_to include("refs/heads/#{issue_ref}")
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'remote repos has a issue tag' do
|
43
|
+
expect(eac_local_repos.remote_hashs(remote_name)).to include("refs/tags/#{issue_ref}")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe Avm::Tools::Runner do
|
4
|
+
let(:argv) { %w[--version] }
|
5
|
+
let(:instance) { described_class.create(argv: argv) }
|
6
|
+
|
7
|
+
it 'runs' do
|
8
|
+
expect { instance.run }.to(
|
9
|
+
output("#{Avm::Tools::VERSION}\n").to_stdout_from_any_process
|
10
|
+
)
|
11
|
+
end
|
12
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'avm/
|
3
|
+
require 'avm/tools'
|
4
|
+
require 'avm/git'
|
5
|
+
require 'avm/git/scms/provider'
|
4
6
|
require 'eac_ruby_gem_support'
|
5
7
|
EacRubyUtils::Rspec.default_setup_create(File.expand_path('..', __dir__))
|
6
|
-
.stub_avm_contexts
|
7
|
-
EacRubyUtils.require_sub __FILE__
|
data/sub/eac_cli/Gemfile
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
$LOAD_PATH.push File.expand_path('lib', __dir__)
|
4
|
+
|
5
|
+
require 'eac_cli/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |s|
|
8
|
+
s.name = 'eac_cli'
|
9
|
+
s.version = EacCli::VERSION
|
10
|
+
s.authors = ['Esquilo Azul Company']
|
11
|
+
s.summary = 'Utilities to build CLI applications with Ruby.'
|
12
|
+
|
13
|
+
s.files = Dir['{lib}/**/*', 'Gemfile']
|
14
|
+
|
15
|
+
s.required_ruby_version = '>= 2.7.0'
|
16
|
+
|
17
|
+
s.add_dependency 'colorize', '~> 0.8', '>= 0.8.1'
|
18
|
+
s.add_dependency 'eac_config', '~> 0.15'
|
19
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.128', '>= 0.128.4'
|
20
|
+
s.add_dependency 'tty-table', '~> 0.12'
|
21
|
+
|
22
|
+
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.12'
|
23
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EacCli
|
4
|
+
class Config < ::SimpleDelegator
|
5
|
+
class Entry < ::EacConfig::NodeEntry
|
6
|
+
class Options
|
7
|
+
enable_simple_cache
|
8
|
+
enable_listable
|
9
|
+
|
10
|
+
lists.add_symbol :type, :undefined
|
11
|
+
|
12
|
+
DEFAULT_VALUES = {
|
13
|
+
before_input: nil, bool: false, list: false, noecho: false, noenv: false, noinput: false,
|
14
|
+
required: true, store: true, type: TYPE_UNDEFINED, validator: nil
|
15
|
+
}.freeze
|
16
|
+
|
17
|
+
lists.add_symbol :option, *DEFAULT_VALUES.keys
|
18
|
+
|
19
|
+
common_constructor :options do
|
20
|
+
self.options = self.class.lists.option.hash_keys_validate!(options)
|
21
|
+
end
|
22
|
+
|
23
|
+
delegate :to_h, to: :options
|
24
|
+
|
25
|
+
def [](key)
|
26
|
+
values.fetch(key.to_sym)
|
27
|
+
end
|
28
|
+
|
29
|
+
def request_input_options
|
30
|
+
values.slice(:bool, :list, :noecho)
|
31
|
+
end
|
32
|
+
|
33
|
+
DEFAULT_VALUES.each do |attr, default_value|
|
34
|
+
define_method(attr.to_s + ([true, false].include?(default_value) ? '?' : '')) do
|
35
|
+
self[attr]
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def values_uncached
|
42
|
+
consumer = options.to_options_consumer
|
43
|
+
r = {}
|
44
|
+
DEFAULT_VALUES.each do |key, default_value|
|
45
|
+
value = consumer.consume(key)
|
46
|
+
value = default_value if value.nil?
|
47
|
+
r[key] = value
|
48
|
+
end
|
49
|
+
consumer.validate
|
50
|
+
r
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EacCli
|
4
|
+
class Config < ::SimpleDelegator
|
5
|
+
class Entry < ::EacConfig::NodeEntry
|
6
|
+
module Undefined
|
7
|
+
private
|
8
|
+
|
9
|
+
def undefined_value
|
10
|
+
loop do
|
11
|
+
entry_value = undefined_value_no_loop
|
12
|
+
next unless options[:validator].if_present(true) { |v| v.call(entry_value) }
|
13
|
+
|
14
|
+
return entry_value
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def undefined_value_no_loop
|
19
|
+
input("Value for entry \"#{path}\"", options.request_input_options)
|
20
|
+
rescue ::EacCli::Speaker::InputRequested
|
21
|
+
raise ::EacConfig::Entry::NotFoundError, self
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EacCli
|
4
|
+
class Config < ::SimpleDelegator
|
5
|
+
class Entry < ::EacConfig::NodeEntry
|
6
|
+
require_sub __FILE__, include_modules: true
|
7
|
+
enable_listable
|
8
|
+
enable_simple_cache
|
9
|
+
enable_speaker
|
10
|
+
|
11
|
+
common_constructor :root_node, :path, :options, super_args: -> { [root_node, path] } do
|
12
|
+
self.options = ::EacCli::Config::Entry::Options.new(options)
|
13
|
+
end
|
14
|
+
|
15
|
+
# @return [EacCli::Config]
|
16
|
+
def config
|
17
|
+
root_node
|
18
|
+
end
|
19
|
+
|
20
|
+
# @return [Object, nil]
|
21
|
+
def value
|
22
|
+
sub_entry.found? ? sub_value_to_return : nil
|
23
|
+
end
|
24
|
+
|
25
|
+
def value!
|
26
|
+
return sub_value_to_return if sub_entry.found?
|
27
|
+
return nil unless options.required?
|
28
|
+
|
29
|
+
input_value
|
30
|
+
end
|
31
|
+
|
32
|
+
def secret_value
|
33
|
+
self.class.new(config, path, options.to_h.merge(noecho: true).to_h).value
|
34
|
+
end
|
35
|
+
|
36
|
+
delegate :found?, :value=, to: :sub_entry
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def sub_value_to_return
|
41
|
+
sub_entry.value.presence || ::EacRubyUtils::BlankNotBlank.instance
|
42
|
+
end
|
43
|
+
|
44
|
+
def sub_entry_uncached
|
45
|
+
config.sub.entry(path)
|
46
|
+
end
|
47
|
+
|
48
|
+
def input_value_uncached
|
49
|
+
r = send("#{options.type}_value")
|
50
|
+
sub_entry.value = r if options.store?
|
51
|
+
r
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EacCli
|
4
|
+
class Definition
|
5
|
+
class Alternative
|
6
|
+
ANY_OPTION_DESCRIPTION = 'ANY_OPTION'
|
7
|
+
ANY_OPTION_LONG = '__'
|
8
|
+
ANY_OPTION_SHORT = '_'
|
9
|
+
SUBCOMMAND_NAME_ARG = :subcommand
|
10
|
+
SUBCOMMAND_ARGS_ARG = :subcommand_args
|
11
|
+
|
12
|
+
# @return [Boolean]
|
13
|
+
def any_opt
|
14
|
+
@any_opt = true
|
15
|
+
end
|
16
|
+
|
17
|
+
# @return [Boolean]
|
18
|
+
def any_option?
|
19
|
+
@any_opt ? true : false
|
20
|
+
end
|
21
|
+
|
22
|
+
# @return [EacCli::Definition::BooleanOption]
|
23
|
+
def any_options_option
|
24
|
+
@any_options_option ||= ::EacCli::Definition::BooleanOption.new(
|
25
|
+
ANY_OPTION_SHORT, ANY_OPTION_LONG, ANY_OPTION_DESCRIPTION,
|
26
|
+
optional: true, repeat: true, usage: false
|
27
|
+
)
|
28
|
+
end
|
29
|
+
|
30
|
+
def arg_opt(*args)
|
31
|
+
options_set << ::EacCli::Definition::ArgumentOption.from_args(args)
|
32
|
+
end
|
33
|
+
|
34
|
+
def bool_opt(*args)
|
35
|
+
options_set << ::EacCli::Definition::BooleanOption.from_args(args)
|
36
|
+
end
|
37
|
+
|
38
|
+
def options
|
39
|
+
options_set.to_a
|
40
|
+
end
|
41
|
+
|
42
|
+
def options_argument?
|
43
|
+
@options_argument ? true : false
|
44
|
+
end
|
45
|
+
|
46
|
+
def options_argument(enable)
|
47
|
+
@options_argument = enable
|
48
|
+
|
49
|
+
self
|
50
|
+
end
|
51
|
+
|
52
|
+
def pos_arg(name, arg_options = {})
|
53
|
+
new_pos_arg = ::EacCli::Definition::Positional.new(name, arg_options)
|
54
|
+
check_positional_blocked(new_pos_arg)
|
55
|
+
pos_set << new_pos_arg
|
56
|
+
end
|
57
|
+
|
58
|
+
def positional
|
59
|
+
pos_set.to_a
|
60
|
+
end
|
61
|
+
|
62
|
+
def positional_arguments_blocked_reason(new_pos_arg)
|
63
|
+
last = pos_set.last
|
64
|
+
return nil unless last
|
65
|
+
return 'there are subcommands' if subcommands?
|
66
|
+
return 'last argument repeats' if last.repeat?
|
67
|
+
return 'new argument is required and last is optional' if
|
68
|
+
last.optional? && new_pos_arg.if_present(&:required?)
|
69
|
+
|
70
|
+
nil
|
71
|
+
end
|
72
|
+
|
73
|
+
def subcommands
|
74
|
+
pos_arg(SUBCOMMAND_NAME_ARG, subcommand: true)
|
75
|
+
pos_set << ::EacCli::Definition::Positional.new(SUBCOMMAND_ARGS_ARG,
|
76
|
+
optional: true, repeat: true)
|
77
|
+
end
|
78
|
+
|
79
|
+
def subcommands?
|
80
|
+
pos_set.any?(&:subcommand?)
|
81
|
+
end
|
82
|
+
|
83
|
+
private
|
84
|
+
|
85
|
+
def check_positional_blocked(new_pos_arg)
|
86
|
+
positional_arguments_blocked_reason(new_pos_arg).if_present do |v|
|
87
|
+
raise ::EacCli::Definition::Error, "Positional arguments are blocked: #{v} " \
|
88
|
+
"(New argument: #{new_pos_arg})"
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def pos_set
|
93
|
+
@pos_set ||= []
|
94
|
+
end
|
95
|
+
|
96
|
+
def options_set
|
97
|
+
@options_set ||= []
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EacCli
|
4
|
+
class Definition
|
5
|
+
class ArgumentOption < ::EacCli::Definition::Option
|
6
|
+
def argument?
|
7
|
+
true
|
8
|
+
end
|
9
|
+
|
10
|
+
def build_value(new_value, previous_value)
|
11
|
+
repeat? ? previous_value + [new_value] : new_value
|
12
|
+
end
|
13
|
+
|
14
|
+
def default_default_value
|
15
|
+
repeat? ? [] : nil
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EacCli
|
4
|
+
class Definition
|
5
|
+
class BooleanOption < ::EacCli::Definition::Option
|
6
|
+
def argument?
|
7
|
+
false
|
8
|
+
end
|
9
|
+
|
10
|
+
def build_value(_new_value, previous_value)
|
11
|
+
repeat? ? previous_value + 1 : true
|
12
|
+
end
|
13
|
+
|
14
|
+
def default_value
|
15
|
+
return super unless default_value?
|
16
|
+
|
17
|
+
raise("Unallowed default value for boolean options (Option: #{self})")
|
18
|
+
end
|
19
|
+
|
20
|
+
def default_default_value
|
21
|
+
repeat? ? 0 : false
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EacCli
|
4
|
+
class Definition
|
5
|
+
class Option
|
6
|
+
class InitializeArgsParser
|
7
|
+
PROPERTIES = %i[short long description options].freeze
|
8
|
+
attr_reader(*PROPERTIES)
|
9
|
+
|
10
|
+
def initialize(args)
|
11
|
+
self.options = args.extract_options!.freeze
|
12
|
+
args.each { |arg| absorb_arg(arg) }
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_writer(*PROPERTIES)
|
18
|
+
|
19
|
+
def absorb_arg(arg)
|
20
|
+
arg_ext = ArgumentParser.new(arg)
|
21
|
+
send("#{arg_ext.type}=", arg_ext.value)
|
22
|
+
end
|
23
|
+
|
24
|
+
class ArgumentParser
|
25
|
+
TYPES = %i[short long description].freeze
|
26
|
+
common_constructor :value
|
27
|
+
|
28
|
+
def type
|
29
|
+
TYPES.find { |type| send("#{type}?") } ||
|
30
|
+
raise(::EacCli::Definition::Error, "Unknown type for \"#{value}\"")
|
31
|
+
end
|
32
|
+
|
33
|
+
def short?
|
34
|
+
value.start_with?('-') && !long?
|
35
|
+
end
|
36
|
+
|
37
|
+
def long?
|
38
|
+
value.start_with?('--')
|
39
|
+
end
|
40
|
+
|
41
|
+
def description?
|
42
|
+
!short? || !long?
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|