eac_tools 0.117.5 → 0.118.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.
- checksums.yaml +4 -4
- data/Gemfile.lock +34 -39
- data/lib/eac_tools/version.rb +1 -1
- data/sub/eac_ruby_base0/.gitrepo +7 -0
- data/sub/eac_ruby_base0/eac_ruby_base0.gemspec +22 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/application.rb +79 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/application_xdg.rb +32 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/error_presenter.rb +53 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/jobs_runner.rb +28 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/patches/class/jobs_runner.rb +7 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/rspec/setup.rb +12 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner/contexts.rb +47 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner/prepend.rb +33 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner.rb +30 -0
- data/sub/eac_ruby_base0/lib/eac_ruby_base0/version.rb +5 -0
- data/sub/{eac_cli/lib/eac_cli.rb → eac_ruby_base0/lib/eac_ruby_base0.rb} +3 -1
- data/sub/{eac_cli → eac_ruby_base0}/spec/spec_helper.rb +1 -1
- metadata +20 -392
- data/sub/eac_cli/.gitrepo +0 -7
- data/sub/eac_cli/eac_cli.gemspec +0 -25
- data/sub/eac_cli/lib/eac_cli/config/entry/options.rb +0 -55
- data/sub/eac_cli/lib/eac_cli/config/entry/undefined.rb +0 -26
- data/sub/eac_cli/lib/eac_cli/config/entry.rb +0 -55
- data/sub/eac_cli/lib/eac_cli/config.rb +0 -13
- data/sub/eac_cli/lib/eac_cli/default_runner.rb +0 -12
- data/sub/eac_cli/lib/eac_cli/definition/alternative.rb +0 -101
- data/sub/eac_cli/lib/eac_cli/definition/argument_option.rb +0 -19
- data/sub/eac_cli/lib/eac_cli/definition/boolean_option.rb +0 -25
- data/sub/eac_cli/lib/eac_cli/definition/error.rb +0 -8
- data/sub/eac_cli/lib/eac_cli/definition/option/initialize_args_parser.rb +0 -48
- data/sub/eac_cli/lib/eac_cli/definition/option.rb +0 -68
- data/sub/eac_cli/lib/eac_cli/definition/option_or_positional.rb +0 -41
- data/sub/eac_cli/lib/eac_cli/definition/positional.rb +0 -50
- data/sub/eac_cli/lib/eac_cli/definition.rb +0 -102
- data/sub/eac_cli/lib/eac_cli/enum.rb +0 -44
- data/sub/eac_cli/lib/eac_cli/old_configs/entry_reader.rb +0 -76
- data/sub/eac_cli/lib/eac_cli/old_configs/password_entry_reader.rb +0 -14
- data/sub/eac_cli/lib/eac_cli/old_configs/read_entry_options.rb +0 -42
- data/sub/eac_cli/lib/eac_cli/old_configs/store_passwords_entry_reader.rb +0 -23
- data/sub/eac_cli/lib/eac_cli/old_configs.rb +0 -30
- data/sub/eac_cli/lib/eac_cli/parser/alternative/any_options.rb +0 -17
- data/sub/eac_cli/lib/eac_cli/parser/alternative/argv.rb +0 -19
- data/sub/eac_cli/lib/eac_cli/parser/alternative/double_dash.rb +0 -24
- data/sub/eac_cli/lib/eac_cli/parser/alternative/long_options.rb +0 -37
- data/sub/eac_cli/lib/eac_cli/parser/alternative/option_argument.rb +0 -29
- data/sub/eac_cli/lib/eac_cli/parser/alternative/options.rb +0 -29
- data/sub/eac_cli/lib/eac_cli/parser/alternative/positionals.rb +0 -30
- data/sub/eac_cli/lib/eac_cli/parser/alternative/short_options.rb +0 -54
- data/sub/eac_cli/lib/eac_cli/parser/alternative.rb +0 -99
- data/sub/eac_cli/lib/eac_cli/parser/collector.rb +0 -52
- data/sub/eac_cli/lib/eac_cli/parser/error.rb +0 -13
- data/sub/eac_cli/lib/eac_cli/parser.rb +0 -31
- data/sub/eac_cli/lib/eac_cli/patches/object/runner_with.rb +0 -23
- data/sub/eac_cli/lib/eac_cli/rspec/setup.rb +0 -41
- data/sub/eac_cli/lib/eac_cli/runner/after_class_methods.rb +0 -34
- data/sub/eac_cli/lib/eac_cli/runner/class_runner.rb +0 -32
- data/sub/eac_cli/lib/eac_cli/runner/context.rb +0 -57
- data/sub/eac_cli/lib/eac_cli/runner/context_responders/base.rb +0 -22
- data/sub/eac_cli/lib/eac_cli/runner/context_responders/parent.rb +0 -24
- data/sub/eac_cli/lib/eac_cli/runner/context_responders/runner.rb +0 -17
- data/sub/eac_cli/lib/eac_cli/runner/context_responders/runner_missing_method.rb +0 -29
- data/sub/eac_cli/lib/eac_cli/runner/context_responders/set.rb +0 -41
- data/sub/eac_cli/lib/eac_cli/runner/exit.rb +0 -14
- data/sub/eac_cli/lib/eac_cli/runner/for_context.rb +0 -35
- data/sub/eac_cli/lib/eac_cli/runner/instance_methods.rb +0 -45
- data/sub/eac_cli/lib/eac_cli/runner.rb +0 -46
- data/sub/eac_cli/lib/eac_cli/runner_with/confirmation/input_result.rb +0 -60
- data/sub/eac_cli/lib/eac_cli/runner_with/confirmation.rb +0 -63
- data/sub/eac_cli/lib/eac_cli/runner_with/help/builder/alternative.rb +0 -61
- data/sub/eac_cli/lib/eac_cli/runner_with/help/builder.rb +0 -79
- data/sub/eac_cli/lib/eac_cli/runner_with/help/layout.rb +0 -38
- data/sub/eac_cli/lib/eac_cli/runner_with/help.rb +0 -50
- data/sub/eac_cli/lib/eac_cli/runner_with/input.rb +0 -36
- data/sub/eac_cli/lib/eac_cli/runner_with/output/clipboard_writer.rb +0 -15
- data/sub/eac_cli/lib/eac_cli/runner_with/output.rb +0 -52
- data/sub/eac_cli/lib/eac_cli/runner_with/output_item/asciidoc_formatter/section.rb +0 -31
- data/sub/eac_cli/lib/eac_cli/runner_with/output_item/asciidoc_formatter.rb +0 -50
- data/sub/eac_cli/lib/eac_cli/runner_with/output_item/base_formatter.rb +0 -12
- data/sub/eac_cli/lib/eac_cli/runner_with/output_item/csv_formatter.rb +0 -21
- data/sub/eac_cli/lib/eac_cli/runner_with/output_item/yaml_formatter.rb +0 -16
- data/sub/eac_cli/lib/eac_cli/runner_with/output_item.rb +0 -45
- data/sub/eac_cli/lib/eac_cli/runner_with/output_list/base_formatter.rb +0 -44
- data/sub/eac_cli/lib/eac_cli/runner_with/output_list/csv_formatter.rb +0 -24
- data/sub/eac_cli/lib/eac_cli/runner_with/output_list/tty_formatter.rb +0 -34
- data/sub/eac_cli/lib/eac_cli/runner_with/output_list/yaml_formatter.rb +0 -21
- data/sub/eac_cli/lib/eac_cli/runner_with/output_list.rb +0 -37
- data/sub/eac_cli/lib/eac_cli/runner_with/subcommands/definition_concern.rb +0 -10
- data/sub/eac_cli/lib/eac_cli/runner_with/subcommands.rb +0 -122
- data/sub/eac_cli/lib/eac_cli/runner_with_set/from_gems_registry.rb +0 -23
- data/sub/eac_cli/lib/eac_cli/runner_with_set.rb +0 -49
- data/sub/eac_cli/lib/eac_cli/speaker/constants.rb +0 -11
- data/sub/eac_cli/lib/eac_cli/speaker/input_blocked.rb +0 -14
- data/sub/eac_cli/lib/eac_cli/speaker/input_requested.rb +0 -8
- data/sub/eac_cli/lib/eac_cli/speaker/list.rb +0 -83
- data/sub/eac_cli/lib/eac_cli/speaker/options.rb +0 -42
- data/sub/eac_cli/lib/eac_cli/speaker/request_from_list.rb +0 -40
- data/sub/eac_cli/lib/eac_cli/speaker.rb +0 -114
- data/sub/eac_cli/lib/eac_cli/version.rb +0 -5
- data/sub/eac_cli/spec/lib/eac_cli/definition/alternative_spec.rb +0 -16
- data/sub/eac_cli/spec/lib/eac_cli/old_configs_spec.rb +0 -12
- data/sub/eac_cli/spec/lib/eac_cli/parser/alternative/subcommands_spec.rb +0 -55
- data/sub/eac_cli/spec/lib/eac_cli/parser/alternative_spec.rb +0 -86
- data/sub/eac_cli/spec/lib/eac_cli/runner/for_context_spec.rb +0 -77
- data/sub/eac_cli/spec/lib/eac_cli/runner_spec.rb +0 -127
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/confirmation/input_result_spec.rb +0 -32
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/confirmation_spec.rb +0 -40
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/help/layout_spec.rb +0 -19
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/help_spec.rb +0 -46
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/output_item/asciidoc_formatter_spec.rb +0 -26
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/output_item/asciidoc_formatter_spec_files/gb_1.source.yaml +0 -16
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/output_item/asciidoc_formatter_spec_files/gb_1.target.adoc +0 -22
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/output_list_spec.rb +0 -55
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/output_spec.rb +0 -78
- data/sub/eac_cli/spec/lib/eac_cli/runner_with/subcommands_spec.rb +0 -95
- data/sub/eac_cli/spec/lib/eac_cli/speaker_spec.rb +0 -34
- data/sub/eac_ruby_utils/.avm.yaml +0 -3
- data/sub/eac_ruby_utils/.gitignore +0 -4
- data/sub/eac_ruby_utils/.gitrepo +0 -7
- data/sub/eac_ruby_utils/.rspec +0 -1
- data/sub/eac_ruby_utils/.rubocop.yml +0 -3
- data/sub/eac_ruby_utils/.yardopts +0 -1
- data/sub/eac_ruby_utils/Gemfile +0 -8
- data/sub/eac_ruby_utils/MIT-LICENCE +0 -16
- data/sub/eac_ruby_utils/README.rdoc +0 -3
- data/sub/eac_ruby_utils/eac_ruby_utils.gemspec +0 -27
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_abstract.rb +0 -100
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/array_accessor.rb +0 -25
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/base_accessor.rb +0 -57
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/boolean_accessor.rb +0 -16
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb +0 -20
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/common_accessor.rb +0 -30
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/enumerable_accessor.rb +0 -52
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/hash_accessor.rb +0 -57
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/instance_methods.rb +0 -21
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/set_accessor.rb +0 -25
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable.rb +0 -16
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_instance_method.rb +0 -34
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/arguments_consumer.rb +0 -80
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/bit.rb +0 -47
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/bit_array.rb +0 -81
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/blank_not_blank.rb +0 -19
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/boolean.rb +0 -31
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/by_reference.rb +0 -23
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/byte.rb +0 -106
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/byte_array.rb +0 -36
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_concern/class_setup.rb +0 -53
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_concern/module_setup.rb +0 -42
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_concern.rb +0 -20
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_accessors.rb +0 -36
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb +0 -39
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/instance_initialize.rb +0 -64
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/super_args.rb +0 -55
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor.rb +0 -95
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/compact.rb +0 -32
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/compare_by.rb +0 -28
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/context.rb +0 -33
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/contextualizable.rb +0 -19
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/core_ext.rb +0 -6
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/custom_format.rb +0 -51
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/enum.rb +0 -102
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/enumerables_methods.rb +0 -42
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/append_command_options.rb +0 -38
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/concat.rb +0 -41
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/debugging.rb +0 -19
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/execution.rb +0 -52
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command/extra_options.rb +0 -28
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_command.rb +0 -45
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_env.rb +0 -28
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/envvars.rb +0 -27
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/extra_options.rb +0 -23
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command.rb +0 -67
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/composite_command.rb +0 -45
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/executable.rb +0 -93
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/execution_error.rb +0 -8
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/execution_result.rb +0 -45
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/file.rb +0 -22
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/local_env.rb +0 -17
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/process.rb +0 -27
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/spawn.rb +0 -32
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/dasho_options.rb +0 -51
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/identity_file.rb +0 -26
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/quiet.rb +0 -25
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env/terminal.rb +0 -36
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/ssh_env.rb +0 -74
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs.rb +0 -23
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/clearable_directory.rb +0 -57
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/extname.rb +0 -35
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/temp/directory.rb +0 -16
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/temp/file.rb +0 -34
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs/temp.rb +0 -52
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/fs.rb +0 -11
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/gems_registry/gem/dependencies.rb +0 -33
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/gems_registry/gem/paths_to_require.rb +0 -55
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/gems_registry/gem.rb +0 -50
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/gems_registry.rb +0 -34
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb +0 -29
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/class_methods.rb +0 -14
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/instance_methods.rb +0 -30
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/integer_list.rb +0 -23
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/item.rb +0 -48
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/list.rb +0 -129
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/lists.rb +0 -51
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/string_list.rb +0 -19
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable/symbol_list.rb +0 -19
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/listable.rb +0 -17
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/local_time_zone.rb +0 -48
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_all_gems.rb +0 -4
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/from_gem.rb +0 -47
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales/module_i18n_translate.rb +0 -74
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/locales.rb +0 -9
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/method_class.rb +0 -30
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/base.rb +0 -34
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/hash.rb +0 -20
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable/set.rb +0 -19
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable.rb +0 -9
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/objects_table.rb +0 -41
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/options_consumer.rb +0 -62
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patch_module.rb +0 -21
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/addressable/uri/query_value.rb +0 -37
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/addressable/uri.rb +0 -4
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/addressable.rb +0 -4
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/abstract.rb +0 -9
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/common_constructor.rb +0 -9
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/method_class.rb +0 -9
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/self_included_modules.rb +0 -7
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/settings_provider.rb +0 -10
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class/static_method_class.rb +0 -9
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/class.rb +0 -4
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerable/boolean_combinations.rb +0 -45
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerable.rb +0 -4
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerator/current.rb +0 -9
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerator/stopped.rb +0 -14
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/enumerator.rb +0 -4
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash/if_key.rb +0 -12
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash/options_consumer.rb +0 -10
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash/sym_keys_hash.rb +0 -10
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash/to_struct.rb +0 -10
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/hash.rb +0 -5
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/integer/rjust_zero.rb +0 -13
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/integer.rb +0 -4
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/kernel/ibr.rb +0 -10
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/kernel/nyi.rb +0 -10
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/kernel.rb +0 -4
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/abstract_methods.rb +0 -10
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/acts_as_abstract.rb +0 -15
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/acts_as_immutable.rb +0 -10
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/acts_as_instance_method.rb +0 -10
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/common_concern.rb +0 -9
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/compare_by.rb +0 -9
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/context.rb +0 -11
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/enable_memoized.rb +0 -10
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/i18n_translate.rb +0 -9
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/immutable.rb +0 -11
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/listable.rb +0 -10
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/module_parent.rb +0 -5
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/patch_self.rb +0 -9
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/require_sub.rb +0 -9
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/simple_cache.rb +0 -10
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module/speaker.rb +0 -9
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/module.rb +0 -4
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/asserts.rb +0 -25
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/call_if_proc.rb +0 -11
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/compact.rb +0 -20
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/debug.rb +0 -55
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/i18n_translate.rb +0 -11
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/if_nil.rb +0 -17
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/if_present.rb +0 -19
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/if_respond.rb +0 -22
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/recursive_build.rb +0 -12
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_bool.rb +0 -12
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_pathname.rb +0 -15
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_sym_by_eac.rb +0 -11
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_uri.rb +0 -15
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object.rb +0 -5
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/assert_parent.rb +0 -12
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/basename_noext.rb +0 -9
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/basename_sub.rb +0 -13
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/child_of.rb +0 -16
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/if_exist.rb +0 -10
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/mkpath_s.rb +0 -12
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/parent_n.rb +0 -11
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/readlink_r.rb +0 -11
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname/reqdir_glob.rb +0 -13
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/pathname.rb +0 -4
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp/if_match.rb +0 -16
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp/to_parser.rb +0 -10
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp.rb +0 -4
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/string/delimited.rb +0 -16
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/string/inflector.rb +0 -11
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/string.rb +0 -4
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/time/required_zone.rb +0 -11
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/time.rb +0 -4
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches.rb +0 -4
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/recursive_builder.rb +0 -51
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/regexp_parser.rb +0 -39
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub/base.rb +0 -93
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub/sub_file.rb +0 -64
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/require_sub.rb +0 -11
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/root_module_setup/ignore.rb +0 -57
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/root_module_setup.rb +0 -108
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/default_setup.rb +0 -23
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup/conditionals.rb +0 -17
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup/setup_manager.rb +0 -17
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup.rb +0 -27
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/setup_manager.rb +0 -49
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec/stub_speaker.rb +0 -39
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/rspec.rb +0 -9
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby/command.rb +0 -32
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby/on_clean_environment.rb +0 -71
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby/on_replace_objects/replace_instance_method.rb +0 -36
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby/on_replace_objects.rb +0 -52
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/ruby.rb +0 -9
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider/setting_value.rb +0 -79
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb +0 -50
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/simple_cache.rb +0 -77
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/speaker/receiver.rb +0 -64
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/speaker/sender.rb +0 -37
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/speaker.rb +0 -16
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/static_method_class.rb +0 -12
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/string_delimited.rb +0 -70
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/struct.rb +0 -63
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/unimplemented_method_error.rb +0 -6
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +0 -5
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/wildcards.rb +0 -26
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/yaml.rb +0 -107
- data/sub/eac_ruby_utils/lib/eac_ruby_utils.rb +0 -15
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_abstract_spec.rb +0 -91
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/array_accessor_spec.rb +0 -41
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/common_accessor_spec.rb +0 -55
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/hash_accessor_spec.rb +0 -40
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/acts_as_immutable/set_accessor_spec.rb +0 -41
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/arguments_consumer_spec.rb +0 -15
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/bit_array_spec.rb +0 -20
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/blank_not_blank_spec.rb +0 -14
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/byte_spec.rb +0 -52
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/common_concern_spec.rb +0 -63
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/common_constructor_spec.rb +0 -149
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/compact_spec.rb +0 -19
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/compare_by_spec.rb +0 -37
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/custom_format_spec.rb +0 -58
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb +0 -42
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enumerables_methods_spec.rb +0 -48
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command/base_example.rb +0 -95
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command/local_env_spec.rb +0 -9
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command/ssh_env_spec.rb +0 -16
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/executable_spec.rb +0 -34
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/ssh_env_spec.rb +0 -23
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/extname_spec.rb +0 -16
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/temp/directory_spec.rb +0 -10
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/temp_spec.rb +0 -50
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/gems_registry_spec.rb +0 -14
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/inflector_spec.rb +0 -14
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/listable_spec.rb +0 -223
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/local_time_zone_spec.rb +0 -15
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/method_class_spec.rb +0 -45
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/module_ancestors_variable/hash_spec.rb +0 -55
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/module_ancestors_variable/set_spec.rb +0 -55
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/options_consumer_spec.rb +0 -78
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/addressable/uri/query_value_spec.rb +0 -23
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/abstract_spec.rb +0 -23
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/acts_as_abstract_spec.rb +0 -11
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/method_class_spec.rb +0 -17
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/self_included_modules_spec.rb +0 -28
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/class/static_method_class_spec.rb +0 -17
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/enumerable/boolean_combinations_spec.rb +0 -37
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/enumerator/current_spec.rb +0 -24
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/enumerator/stopped_spec.rb +0 -30
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/hash/if_key_spec.rb +0 -21
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/hash/options_consumer_spec.rb +0 -15
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/hash/sym_keys_hash_spec.rb +0 -11
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/integer/rjust_zero_spec.rb +0 -18
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/compare_by_spec.rb +0 -35
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/listable_spec.rb +0 -13
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/simple_cache_spec.rb +0 -13
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/speaker_spec.rb +0 -13
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/call_if_proc_spec.rb +0 -9
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/compact_spec.rb +0 -18
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/if_present_spec.rb +0 -11
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/recursive_build_spec.rb +0 -60
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/template_spec_files/path/my_stub_with_template +0 -1
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/assert_parent_spec.rb +0 -19
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/basename_noext_spec.rb +0 -24
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/basename_sub_spec.rb +0 -15
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/child_of_spec.rb +0 -24
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/parent_n_spec.rb +0 -31
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/string/delimited_spec.rb +0 -32
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/recursive_builder_spec.rb +0 -63
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/require_sub/base_spec/stubbed_module_a.rb +0 -6
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/require_sub/base_spec/stubbed_not_module.rb +0 -6
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/require_sub/base_spec.rb +0 -17
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/rspec/setup/setup_manager_spec.rb +0 -14
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/ruby/on_clean_environment_spec.rb +0 -29
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/ruby/on_replace_objects_spec.rb +0 -63
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/settings_provider_spec.rb +0 -62
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/simple_cache_spec.rb +0 -127
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/static_method_class_spec.rb +0 -43
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/struct_spec.rb +0 -55
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/wildcards_spec.rb +0 -25
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/yaml_spec.rb +0 -73
- data/sub/eac_ruby_utils/spec/locales/pt-BR.yml +0 -58
- data/sub/eac_ruby_utils/spec/meta/rubocop_check_spec.rb +0 -3
- data/sub/eac_ruby_utils/spec/spec_helper.rb +0 -11
- /data/sub/{eac_cli → eac_ruby_base0}/.gitignore +0 -0
- /data/sub/{eac_cli → eac_ruby_base0}/.rspec +0 -0
- /data/sub/{eac_cli → eac_ruby_base0}/.rubocop.yml +0 -0
- /data/sub/{eac_cli → eac_ruby_base0}/Gemfile +0 -0
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module EacRubyUtils
|
|
4
|
-
module Envs
|
|
5
|
-
class Spawn
|
|
6
|
-
attr_reader :command, :pid
|
|
7
|
-
|
|
8
|
-
def initialize(command)
|
|
9
|
-
@command = command
|
|
10
|
-
@pid = ::Process.spawn(command)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def kill(signal)
|
|
14
|
-
::Process.kill(signal, pid)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def kill_at_end(&block)
|
|
18
|
-
block.call(self)
|
|
19
|
-
ensure
|
|
20
|
-
kill('KILL')
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def to_h
|
|
24
|
-
{ command: command, pid: pid }
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def wait
|
|
28
|
-
::Process.wait pid
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'eac_ruby_utils/patches/module/common_concern'
|
|
4
|
-
require 'eac_ruby_utils/patches/module/simple_cache'
|
|
5
|
-
|
|
6
|
-
module EacRubyUtils
|
|
7
|
-
module Envs
|
|
8
|
-
class SshEnv < ::EacRubyUtils::Envs::BaseEnv
|
|
9
|
-
module DashoOptions
|
|
10
|
-
common_concern
|
|
11
|
-
|
|
12
|
-
module ClassMethods
|
|
13
|
-
def add_nodasho_option(name)
|
|
14
|
-
return if nodasho_options.include?(name)
|
|
15
|
-
|
|
16
|
-
nodasho_options << name
|
|
17
|
-
const_set("#{name.underscore}_option".upcase, name)
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def nodasho_options
|
|
21
|
-
@nodasho_options ||= []
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
module InstanceMethods
|
|
26
|
-
def ssh_command_line_dasho_args
|
|
27
|
-
r = []
|
|
28
|
-
uri.query_values&.each do |k, v|
|
|
29
|
-
r += ['-o', "#{k}=#{v}"] unless nodasho_options.include?(k)
|
|
30
|
-
end
|
|
31
|
-
r
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def ssh_command_line_nodasho_args
|
|
35
|
-
nodasho_options.flat_map do |option_name|
|
|
36
|
-
uri_query_value(option_name).if_present([]) do |option_value|
|
|
37
|
-
send("ssh_command_line_#{option_name.underscore}_args", option_value)
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
delegate :nodasho_options, to: :class
|
|
43
|
-
|
|
44
|
-
def uri_query_value(name)
|
|
45
|
-
uri.query_values.if_present { |v| v[name] }
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'active_support/concern'
|
|
4
|
-
require 'eac_ruby_utils/envs/ssh_env/dasho_options'
|
|
5
|
-
require 'eac_ruby_utils/listable'
|
|
6
|
-
require 'eac_ruby_utils/patches/object/if_present'
|
|
7
|
-
|
|
8
|
-
module EacRubyUtils
|
|
9
|
-
module Envs
|
|
10
|
-
class SshEnv < ::EacRubyUtils::Envs::BaseEnv
|
|
11
|
-
module IdentityFile
|
|
12
|
-
extend ::ActiveSupport::Concern
|
|
13
|
-
|
|
14
|
-
included do
|
|
15
|
-
include ::EacRubyUtils::Envs::SshEnv::DashoOptions
|
|
16
|
-
|
|
17
|
-
add_nodasho_option('IdentityFile')
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def ssh_command_line_identity_file_args(value)
|
|
21
|
-
['-i', value]
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'active_support/concern'
|
|
4
|
-
require 'eac_ruby_utils/boolean'
|
|
5
|
-
require 'eac_ruby_utils/envs/ssh_env/dasho_options'
|
|
6
|
-
|
|
7
|
-
module EacRubyUtils
|
|
8
|
-
module Envs
|
|
9
|
-
class SshEnv < ::EacRubyUtils::Envs::BaseEnv
|
|
10
|
-
module Quiet
|
|
11
|
-
extend ::ActiveSupport::Concern
|
|
12
|
-
|
|
13
|
-
included do
|
|
14
|
-
include ::EacRubyUtils::Envs::SshEnv::DashoOptions
|
|
15
|
-
|
|
16
|
-
add_nodasho_option('Quiet')
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def ssh_command_line_quiet_args(value)
|
|
20
|
-
::EacRubyUtils::Boolean.parse(value) ? ['-q'] : []
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'active_support/concern'
|
|
4
|
-
require 'eac_ruby_utils/envs/ssh_env/dasho_options'
|
|
5
|
-
require 'eac_ruby_utils/listable'
|
|
6
|
-
require 'eac_ruby_utils/patches/object/if_present'
|
|
7
|
-
|
|
8
|
-
module EacRubyUtils
|
|
9
|
-
module Envs
|
|
10
|
-
class SshEnv < ::EacRubyUtils::Envs::BaseEnv
|
|
11
|
-
module Terminal
|
|
12
|
-
extend ::ActiveSupport::Concern
|
|
13
|
-
|
|
14
|
-
included do
|
|
15
|
-
include ::EacRubyUtils::Envs::SshEnv::DashoOptions
|
|
16
|
-
|
|
17
|
-
add_nodasho_option('Terminal')
|
|
18
|
-
include ::EacRubyUtils::Listable
|
|
19
|
-
|
|
20
|
-
lists.add_string :terminal_option, :auto, :disable, :enable, :force
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def ssh_command_line_terminal_args(value)
|
|
24
|
-
self.class.lists.terminal_option.value_validate!(value)
|
|
25
|
-
case value
|
|
26
|
-
when TERMINAL_OPTION_AUTO then ENV['TERM'].present? ? %w[-t] : []
|
|
27
|
-
when TERMINAL_OPTION_DISABLE then ['-T']
|
|
28
|
-
when TERMINAL_OPTION_ENABLE then ['-t']
|
|
29
|
-
when TERMINAL_OPTION_FORCE then ['-tt']
|
|
30
|
-
else raise "Invalid conditional branch: #{value}"
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'addressable'
|
|
4
|
-
require 'eac_ruby_utils/envs/base_env'
|
|
5
|
-
require 'eac_ruby_utils/patches/object/if_present'
|
|
6
|
-
require 'eac_ruby_utils/patches/module/require_sub'
|
|
7
|
-
require 'net/ssh'
|
|
8
|
-
require 'shellwords'
|
|
9
|
-
|
|
10
|
-
module EacRubyUtils
|
|
11
|
-
module Envs
|
|
12
|
-
class SshEnv < ::EacRubyUtils::Envs::BaseEnv
|
|
13
|
-
require_sub __FILE__, include_modules: true
|
|
14
|
-
|
|
15
|
-
USER_PATTERN = /[a-z_][a-z0-9_-]*/
|
|
16
|
-
HOSTNAME_PATTERN = /[^@]+/
|
|
17
|
-
USER_HOSTNAME_PATTERN = /\A(?:(#{USER_PATTERN})@)?(#{HOSTNAME_PATTERN})\z/
|
|
18
|
-
|
|
19
|
-
class << self
|
|
20
|
-
def parse_uri(uri)
|
|
21
|
-
uri_by_url(uri) || uri_by_user_hostname(uri) || raise("URI has no SSH scheme: #{uri}")
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
private
|
|
25
|
-
|
|
26
|
-
def uri_by_url(url)
|
|
27
|
-
r = ::Addressable::URI.parse(url)
|
|
28
|
-
r.scheme == 'ssh' && r.host.present? ? r : nil
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def uri_by_user_hostname(user_hostname)
|
|
32
|
-
m = USER_HOSTNAME_PATTERN.match(user_hostname)
|
|
33
|
-
m ? ::Addressable::URI.new(scheme: 'ssh', host: m[2], user: m[1]) : nil
|
|
34
|
-
rescue Addressable::URI::InvalidURIError
|
|
35
|
-
nil
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
attr_reader :uri
|
|
40
|
-
|
|
41
|
-
def initialize(uri)
|
|
42
|
-
super()
|
|
43
|
-
@uri = self.class.parse_uri(uri).freeze
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
delegate :to_s, to: :uri
|
|
47
|
-
|
|
48
|
-
def command_line(line)
|
|
49
|
-
"#{ssh_command_line} #{Shellwords.escape(line)}"
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
private
|
|
53
|
-
|
|
54
|
-
def ssh_command_line
|
|
55
|
-
(%w[ssh] +
|
|
56
|
-
%w[nodasho dasho port].flat_map { |m| send("ssh_command_line_#{m}_args") } +
|
|
57
|
-
[user_hostname_uri])
|
|
58
|
-
.map { |a| Shellwords.escape(a) }.join(' ')
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def ssh_command_line_port_args
|
|
62
|
-
uri.port.if_present([]) do |v|
|
|
63
|
-
['-p', v]
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def user_hostname_uri
|
|
68
|
-
r = uri.host
|
|
69
|
-
r = "#{uri.user}@#{r}" if uri.user.present?
|
|
70
|
-
r
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'eac_ruby_utils/envs/base_env'
|
|
4
|
-
require 'eac_ruby_utils/envs/command'
|
|
5
|
-
require 'eac_ruby_utils/envs/file'
|
|
6
|
-
require 'eac_ruby_utils/envs/local_env'
|
|
7
|
-
require 'eac_ruby_utils/envs/process'
|
|
8
|
-
require 'eac_ruby_utils/envs/ssh_env'
|
|
9
|
-
require 'eac_ruby_utils/envs/executable'
|
|
10
|
-
|
|
11
|
-
module EacRubyUtils
|
|
12
|
-
module Envs
|
|
13
|
-
class << self
|
|
14
|
-
def local
|
|
15
|
-
@local ||= ::EacRubyUtils::Envs::LocalEnv.new
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def ssh(user_hostname)
|
|
19
|
-
::EacRubyUtils::Envs::SshEnv.new(user_hostname)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'fileutils'
|
|
4
|
-
require 'pathname'
|
|
5
|
-
|
|
6
|
-
module EacRubyUtils
|
|
7
|
-
module Fs
|
|
8
|
-
class ClearableDirectory < ::Pathname
|
|
9
|
-
CLEARABLE_BASENAME = '.clearable_directory'
|
|
10
|
-
|
|
11
|
-
def clear
|
|
12
|
-
validate_clearable
|
|
13
|
-
directory? ? clear_directory : clear_no_directory
|
|
14
|
-
mkpath
|
|
15
|
-
::FileUtils.touch(clearable_note_file.to_path)
|
|
16
|
-
self
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def clearable?
|
|
20
|
-
clearable_negate_message ? true : false
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def clearable_negate_message
|
|
24
|
-
return if !exist? || empty?
|
|
25
|
-
return "Path \"#{self}\" exists, is not empty and is not a directory" unless directory?
|
|
26
|
-
return if clearable_note_file.exist?
|
|
27
|
-
|
|
28
|
-
"Directory \"#{self}\" is not empty and does not have a #{CLEARABLE_BASENAME} file"
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def clearable_note_file
|
|
32
|
-
join(CLEARABLE_BASENAME)
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def validate_clearable
|
|
36
|
-
message = clearable_negate_message
|
|
37
|
-
raise message if message
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
private
|
|
41
|
-
|
|
42
|
-
def clear_directory
|
|
43
|
-
children.each do |child|
|
|
44
|
-
if child.directory?
|
|
45
|
-
child.rmtree
|
|
46
|
-
elsif child.file?
|
|
47
|
-
child.unlink
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def clear_no_directory
|
|
53
|
-
::FileUtils.rm_rf(to_path)
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'eac_ruby_utils/patches/module/common_concern'
|
|
4
|
-
|
|
5
|
-
module EacRubyUtils
|
|
6
|
-
module Fs
|
|
7
|
-
module Extname
|
|
8
|
-
common_concern
|
|
9
|
-
class_methods do
|
|
10
|
-
# A [File.extname] which find multiple extensions (Ex.: .tar.gz).
|
|
11
|
-
def extname(path, limit = -1)
|
|
12
|
-
recursive_extension(::File.basename(path), limit)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
# Shortcut to +extname(2)+.
|
|
16
|
-
def extname2(path)
|
|
17
|
-
extname(path, 2)
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
private
|
|
21
|
-
|
|
22
|
-
def recursive_extension(basename, limit)
|
|
23
|
-
return '' if limit.zero?
|
|
24
|
-
|
|
25
|
-
m = /\A(.+)(\.[a-z][a-z0-9]*)\z/i.match(basename)
|
|
26
|
-
if m
|
|
27
|
-
"#{recursive_extension(m[1], limit - 1)}#{m[2]}"
|
|
28
|
-
else
|
|
29
|
-
''
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'eac_ruby_utils/fs/temp/file'
|
|
4
|
-
|
|
5
|
-
module EacRubyUtils
|
|
6
|
-
module Fs
|
|
7
|
-
module Temp
|
|
8
|
-
class Directory < ::EacRubyUtils::Fs::Temp::File
|
|
9
|
-
def initialize(*tempfile_args)
|
|
10
|
-
super
|
|
11
|
-
mkpath
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'pathname'
|
|
4
|
-
require 'tempfile'
|
|
5
|
-
|
|
6
|
-
module EacRubyUtils
|
|
7
|
-
module Fs
|
|
8
|
-
module Temp
|
|
9
|
-
class File < Pathname
|
|
10
|
-
# Temporary file
|
|
11
|
-
def initialize(*tempfile_args)
|
|
12
|
-
file = Tempfile.new(*tempfile_args)
|
|
13
|
-
path = file.path
|
|
14
|
-
file.close
|
|
15
|
-
file.unlink
|
|
16
|
-
super(path)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def remove
|
|
20
|
-
if directory?
|
|
21
|
-
rmtree
|
|
22
|
-
elsif file?
|
|
23
|
-
unlink
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def remove!
|
|
28
|
-
remove
|
|
29
|
-
raise "Tried to remove \"#{self}\", but it yet exists" if exist?
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'eac_ruby_utils/require_sub'
|
|
4
|
-
require 'pathname'
|
|
5
|
-
require 'tempfile'
|
|
6
|
-
|
|
7
|
-
module EacRubyUtils
|
|
8
|
-
module Fs
|
|
9
|
-
# Utilities for temporary files.
|
|
10
|
-
module Temp
|
|
11
|
-
class << self
|
|
12
|
-
::EacRubyUtils.require_sub __FILE__
|
|
13
|
-
|
|
14
|
-
# Shortcut to +EacRubyUtils::Fs::Temp::Directory.new(*tempfile_args)+.
|
|
15
|
-
#
|
|
16
|
-
# @return [Pathname]
|
|
17
|
-
def directory(*tempfile_args)
|
|
18
|
-
::EacRubyUtils::Fs::Temp::Directory.new(*tempfile_args)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
# Shortcut to +EacRubyUtils::Fs::Temp::File.new(*tempfile_args)+.
|
|
22
|
-
#
|
|
23
|
-
# @return [Pathname]
|
|
24
|
-
def file(*tempfile_args)
|
|
25
|
-
::EacRubyUtils::Fs::Temp::File.new(*tempfile_args)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
# Run a block while a temporary directory pathname is provided. The directory is deleted
|
|
29
|
-
# when the block is finished.
|
|
30
|
-
def on_directory(*tempfile_args)
|
|
31
|
-
temp_dir = directory(*tempfile_args)
|
|
32
|
-
begin
|
|
33
|
-
yield(temp_dir)
|
|
34
|
-
ensure
|
|
35
|
-
temp_dir.remove
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# Run a block while a temporary file pathname is providade. The file is deleted when block
|
|
40
|
-
# is finished.
|
|
41
|
-
def on_file(*tempfile_args)
|
|
42
|
-
temp_file = file(*tempfile_args)
|
|
43
|
-
begin
|
|
44
|
-
yield(temp_file)
|
|
45
|
-
ensure
|
|
46
|
-
temp_file.remove
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'eac_ruby_utils/recursive_builder'
|
|
4
|
-
require 'memoized'
|
|
5
|
-
|
|
6
|
-
module EacRubyUtils
|
|
7
|
-
class GemsRegistry
|
|
8
|
-
class Gem
|
|
9
|
-
module Dependencies
|
|
10
|
-
include ::Memoized
|
|
11
|
-
|
|
12
|
-
def depend_on(gem) # rubocop:disable Naming/PredicateMethod
|
|
13
|
-
dependencies.lazy.map(&:name).include?(gem.gemspec.name)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
memoize def dependencies
|
|
17
|
-
::EacRubyUtils::RecursiveBuilder
|
|
18
|
-
.new(gemspec) { |item| gem_item_dependencies(item) }
|
|
19
|
-
.result
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
private
|
|
23
|
-
|
|
24
|
-
# @return [Array<Gem::Dependency>]
|
|
25
|
-
def gem_item_dependencies(item)
|
|
26
|
-
::Gem::Specification.find_by_name(item.name).dependencies.select(&:runtime?)
|
|
27
|
-
rescue ::Gem::MissingSpecError
|
|
28
|
-
[]
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'active_support/core_ext/string/inflections'
|
|
4
|
-
require 'eac_ruby_utils/recursive_builder'
|
|
5
|
-
require 'memoized'
|
|
6
|
-
|
|
7
|
-
module EacRubyUtils
|
|
8
|
-
class GemsRegistry
|
|
9
|
-
class Gem
|
|
10
|
-
module PathsToRequire
|
|
11
|
-
ROOT_MODULE_REQUIRE_PATTERNS = %w[EacRubyUtils::RootModuleSetup Zeitwerk].freeze
|
|
12
|
-
|
|
13
|
-
# @return [Enumerable<Pathname>]
|
|
14
|
-
def absolute_require_paths(lib_relative_path)
|
|
15
|
-
gemspec.require_paths.lazy.map do |e|
|
|
16
|
-
::Pathname.new(e).expand_path(gemspec.gem_dir)
|
|
17
|
-
.join("#{lib_relative_path}.rb")
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
# @return [String]
|
|
22
|
-
def path_to_require
|
|
23
|
-
require_root_module? ? root_module_path_to_require : direct_path_to_require
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
# @return [String]
|
|
27
|
-
def to_s
|
|
28
|
-
"#{self.class.name}[#{gemspec.name}]"
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
protected
|
|
32
|
-
|
|
33
|
-
# @return [String]
|
|
34
|
-
def direct_path_to_require
|
|
35
|
-
"#{root_module_path_to_require}/#{registry.module_suffix.underscore}"
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
# @return [Boolean]
|
|
39
|
-
def require_root_module?
|
|
40
|
-
absolute_require_paths(root_module_path_to_require).find do |e|
|
|
41
|
-
next false unless e.file?
|
|
42
|
-
|
|
43
|
-
content = e.read
|
|
44
|
-
ROOT_MODULE_REQUIRE_PATTERNS.any? { |e| content.include?(e) } # rubocop:disable Style/ArrayIntersect
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
# @return [String]
|
|
49
|
-
def root_module_path_to_require
|
|
50
|
-
gemspec.name.gsub('-', '/')
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'active_support/core_ext/string/inflections'
|
|
4
|
-
require 'eac_ruby_utils/gems_registry/gem/dependencies'
|
|
5
|
-
require 'eac_ruby_utils/gems_registry/gem/paths_to_require'
|
|
6
|
-
require 'memoized'
|
|
7
|
-
|
|
8
|
-
module EacRubyUtils
|
|
9
|
-
class GemsRegistry
|
|
10
|
-
class Gem
|
|
11
|
-
include ::Comparable
|
|
12
|
-
include ::EacRubyUtils::GemsRegistry::Gem::Dependencies
|
|
13
|
-
include ::EacRubyUtils::GemsRegistry::Gem::PathsToRequire
|
|
14
|
-
include ::Memoized
|
|
15
|
-
|
|
16
|
-
attr_reader :registry, :gemspec
|
|
17
|
-
|
|
18
|
-
def initialize(registry, gemspec)
|
|
19
|
-
@registry = registry
|
|
20
|
-
@gemspec = gemspec
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def <=>(other)
|
|
24
|
-
sd = depend_on(other)
|
|
25
|
-
od = other.depend_on(self)
|
|
26
|
-
return 1 if sd && !od
|
|
27
|
-
return -1 if od && !sd
|
|
28
|
-
|
|
29
|
-
gemspec.name <=> other.gemspec.name
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def found?
|
|
33
|
-
registered_module.is_a?(::Module)
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
# @return [Module, nil]
|
|
37
|
-
def registered_module
|
|
38
|
-
begin
|
|
39
|
-
require path_to_require
|
|
40
|
-
rescue ::LoadError # rubocop:disable Lint/SuppressedException
|
|
41
|
-
end
|
|
42
|
-
begin
|
|
43
|
-
direct_path_to_require.camelize.constantize
|
|
44
|
-
rescue ::LoadError, ::NameError
|
|
45
|
-
nil
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'rubygems'
|
|
4
|
-
require 'eac_ruby_utils/gems_registry/gem'
|
|
5
|
-
|
|
6
|
-
module EacRubyUtils
|
|
7
|
-
# Search in each gem for a class determined by registry and run the method "register" on each
|
|
8
|
-
# found.
|
|
9
|
-
#
|
|
10
|
-
# Example:
|
|
11
|
-
# * The module suffix is `TheClass`;
|
|
12
|
-
# * A gem with name "my-lib" is being analyzed
|
|
13
|
-
# * If a require for "my/lib/the_class" is succesful the class/module `My::Lib::TheClass` will
|
|
14
|
-
# be collected.
|
|
15
|
-
class GemsRegistry
|
|
16
|
-
attr_reader :module_suffix
|
|
17
|
-
|
|
18
|
-
def initialize(module_suffix)
|
|
19
|
-
@module_suffix = module_suffix
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# @return [Array<EacRubyUtils::GemsRegistry::Gem>]
|
|
23
|
-
def registered
|
|
24
|
-
@registered ||= all_gems.select(&:found?).sort
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
private
|
|
28
|
-
|
|
29
|
-
# @return [Array<EacRubyUtils::GemsRegistry::Gem>]
|
|
30
|
-
def all_gems
|
|
31
|
-
::Gem::Specification.map { |gemspec| ::EacRubyUtils::GemsRegistry::Gem.new(self, gemspec) }
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'active_support/inflector'
|
|
4
|
-
|
|
5
|
-
module EacRubyUtils
|
|
6
|
-
class Inflector
|
|
7
|
-
class << self
|
|
8
|
-
VARIABLE_NAME_PATTERN = /[_a-z][_a-z0-9]*/i
|
|
9
|
-
|
|
10
|
-
# Convert a string to a variable format: first character as a lowercase letter or underscore
|
|
11
|
-
# and other as a lowercase letter, underscore or numbers.
|
|
12
|
-
# @param string [String] The source string.
|
|
13
|
-
# @param validate [Boolean] Affect the outcome when the result builded is not in a valid
|
|
14
|
-
# variable format. If `true`, it raises a {ArgumentError}. If `false`, return `nil`.
|
|
15
|
-
# @return [String, nil]
|
|
16
|
-
# @raise [ArgumentError]
|
|
17
|
-
def variableize(string, validate = true) # rubocop:disable Style/OptionalBooleanParameter
|
|
18
|
-
r = ::ActiveSupport::Inflector.transliterate(string).gsub(/[^_a-z0-9]/i, '_')
|
|
19
|
-
.gsub(/_+/, '_').gsub(/_\z/, '').gsub(/\A_/, '').downcase
|
|
20
|
-
m = VARIABLE_NAME_PATTERN.match(r)
|
|
21
|
-
return r if m
|
|
22
|
-
return nil unless validate
|
|
23
|
-
|
|
24
|
-
raise ::ArgumentError, "Invalid variable name \"#{r}\" was generated " \
|
|
25
|
-
"from string \"#{string}\""
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|