eac_cli 0.37.0 → 0.38.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 +2 -2
- data/lib/eac_cli/config.rb +0 -4
- data/lib/eac_cli/core_ext.rb +1 -1
- data/lib/eac_cli/definition/alternative.rb +24 -3
- data/lib/eac_cli/definition.rb +1 -1
- data/lib/eac_cli/old_configs/store_passwords_entry_reader.rb +1 -1
- data/lib/eac_cli/parser/alternative/any_options.rb +19 -0
- data/lib/eac_cli/parser/alternative/long_options.rb +1 -1
- data/lib/eac_cli/parser/alternative/short_options.rb +1 -3
- data/lib/eac_cli/parser/alternative.rb +0 -9
- data/lib/eac_cli/parser.rb +1 -1
- data/lib/eac_cli/patches/object.rb +1 -1
- data/lib/eac_cli/patches.rb +1 -1
- data/lib/eac_cli/runner/class_runner.rb +1 -1
- data/lib/eac_cli/runner/context_responders/set.rb +2 -2
- data/lib/eac_cli/runner/exit.rb +2 -1
- data/lib/eac_cli/runner/instance_methods.rb +1 -1
- data/lib/eac_cli/runner_with/help/builder/alternative.rb +1 -1
- data/lib/eac_cli/runner_with/help/builder.rb +2 -2
- data/lib/eac_cli/runner_with/help.rb +1 -0
- data/lib/eac_cli/runner_with/subcommands.rb +1 -1
- data/lib/eac_cli/runner_with_set.rb +1 -1
- data/lib/eac_cli/speaker/list.rb +4 -4
- data/lib/eac_cli/speaker/options.rb +3 -3
- data/lib/eac_cli/speaker.rb +2 -1
- data/lib/eac_cli/version.rb +1 -1
- metadata +8 -7
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: c8e016c3cb10caefe2fcc4f81d73dbdf76cff97a0e11ecb49f4b8378be238b7a
         | 
| 4 | 
            +
              data.tar.gz: 676cf803931311818d97ea9a5421e360e16a36495e93a2cf90a938afdb526562
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9902444b9eb020f42bf0b33c2c7afe5c8dae6651ad7ae2f6a0b57a563424715eed55058ca48f4b50d572a1284a62d0c4e0246ecbb0b15f907c10b12254a6f7b3
         | 
| 7 | 
            +
              data.tar.gz: d62d638adea120b7dd203cafff53646a40ef011659bb952216e130d49988d06ceb151f85caf5832301092448c95ef46ffe82223ba550f6a9c6bb2b298bf21e3e
         | 
    
        data/Gemfile
    CHANGED
    
    | @@ -4,5 +4,5 @@ source 'https://rubygems.org' | |
| 4 4 |  | 
| 5 5 | 
             
            gemspec
         | 
| 6 6 |  | 
| 7 | 
            -
            local_gemfile =  | 
| 8 | 
            -
            eval_gemfile local_gemfile if  | 
| 7 | 
            +
            local_gemfile = File.join(File.dirname(__FILE__), 'Gemfile.local')
         | 
| 8 | 
            +
            eval_gemfile local_gemfile if File.exist?(local_gemfile)
         | 
    
        data/lib/eac_cli/config.rb
    CHANGED
    
    
    
        data/lib/eac_cli/core_ext.rb
    CHANGED
    
    
| @@ -7,9 +7,30 @@ require 'eac_cli/definition/positional_argument' | |
| 7 7 | 
             
            module EacCli
         | 
| 8 8 | 
             
              class Definition
         | 
| 9 9 | 
             
                class Alternative
         | 
| 10 | 
            +
                  ANY_OPTION_DESCRIPTION = 'ANY_OPTION'
         | 
| 11 | 
            +
                  ANY_OPTION_LONG = '__'
         | 
| 12 | 
            +
                  ANY_OPTION_SHORT = '_'
         | 
| 10 13 | 
             
                  SUBCOMMAND_NAME_ARG = :subcommand
         | 
| 11 14 | 
             
                  SUBCOMMAND_ARGS_ARG = :subcommand_args
         | 
| 12 15 |  | 
| 16 | 
            +
                  # @return [Boolean]
         | 
| 17 | 
            +
                  def any_opt
         | 
| 18 | 
            +
                    @any_opt = true
         | 
| 19 | 
            +
                  end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                  # @return [Boolean]
         | 
| 22 | 
            +
                  def any_option?
         | 
| 23 | 
            +
                    @any_opt ? true : false
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  # @return [EacCli::Definition::BooleanOption]
         | 
| 27 | 
            +
                  def any_options_option
         | 
| 28 | 
            +
                    @any_options_option ||= ::EacCli::Definition::BooleanOption.new(
         | 
| 29 | 
            +
                      ANY_OPTION_SHORT, ANY_OPTION_LONG, ANY_OPTION_DESCRIPTION,
         | 
| 30 | 
            +
                      optional: true, repeat: true, usage: false
         | 
| 31 | 
            +
                    )
         | 
| 32 | 
            +
                  end
         | 
| 33 | 
            +
             | 
| 13 34 | 
             
                  def arg_opt(*args)
         | 
| 14 35 | 
             
                    options_set << ::EacCli::Definition::ArgumentOption.from_args(args)
         | 
| 15 36 | 
             
                  end
         | 
| @@ -48,7 +69,7 @@ module EacCli | |
| 48 69 | 
             
                    return 'there are subcommands' if subcommands?
         | 
| 49 70 | 
             
                    return 'last argument repeats' if last.repeat?
         | 
| 50 71 | 
             
                    return 'new argument is required and last is optional' if
         | 
| 51 | 
            -
             | 
| 72 | 
            +
                    last.optional? && new_pos_arg.if_present(&:required?)
         | 
| 52 73 |  | 
| 53 74 | 
             
                    nil
         | 
| 54 75 | 
             
                  end
         | 
| @@ -67,8 +88,8 @@ module EacCli | |
| 67 88 |  | 
| 68 89 | 
             
                  def check_positional_blocked(new_pos_arg)
         | 
| 69 90 | 
             
                    positional_arguments_blocked_reason(new_pos_arg).if_present do |v|
         | 
| 70 | 
            -
                      raise ::EacCli::Definition::Error, "Positional arguments are blocked: #{v}" \
         | 
| 71 | 
            -
             | 
| 91 | 
            +
                      raise ::EacCli::Definition::Error, "Positional arguments are blocked: #{v} " \
         | 
| 92 | 
            +
                                                         "(New argument: #{new_pos_arg})"
         | 
| 72 93 | 
             
                    end
         | 
| 73 94 | 
             
                  end
         | 
| 74 95 |  | 
    
        data/lib/eac_cli/definition.rb
    CHANGED
    
    
| @@ -17,7 +17,7 @@ module EacCli | |
| 17 17 | 
             
                  def banner
         | 
| 18 18 | 
             
                    infom 'Do you wanna to store passwords?'
         | 
| 19 19 | 
             
                    infom 'Warning: the passwords will be store in clear text in ' \
         | 
| 20 | 
            -
             | 
| 20 | 
            +
                          "\"#{console_configs.configs.storage_path}\""
         | 
| 21 21 | 
             
                    infom 'Enter "yes" or "no"'
         | 
| 22 22 | 
             
                  end
         | 
| 23 23 | 
             
                end
         | 
| @@ -0,0 +1,19 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'eac_ruby_utils/core_ext'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module EacCli
         | 
| 6 | 
            +
              class Parser
         | 
| 7 | 
            +
                class Alternative
         | 
| 8 | 
            +
                  module AnyOptions
         | 
| 9 | 
            +
                    delegate :any_option?, to: :alternative
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                    # @return [EacCli::Definition::BooleanOption] if #any_option? is true.
         | 
| 12 | 
            +
                    # @raise [EacCli::Parser::Error] if #any_option? is false.
         | 
| 13 | 
            +
                    def any_option_collect_option
         | 
| 14 | 
            +
                      any_option? ? alternative.any_options_option : raise_argv_current_invalid_option
         | 
| 15 | 
            +
                    end
         | 
| 16 | 
            +
                  end
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
            end
         | 
| @@ -33,9 +33,7 @@ module EacCli | |
| 33 33 | 
             
                    # @return [EacCli::Definition::BaseOption] The option collected.
         | 
| 34 34 | 
             
                    def short_option_collect_char(char)
         | 
| 35 35 | 
             
                      option = find_short_option(char)
         | 
| 36 | 
            -
                       | 
| 37 | 
            -
             | 
| 38 | 
            -
                      option_collect_option(option)
         | 
| 36 | 
            +
                      option ? option_collect_option(option) : any_option_collect_option
         | 
| 39 37 | 
             
                    end
         | 
| 40 38 |  | 
| 41 39 | 
             
                    def short_without_prefix(short)
         | 
| @@ -62,15 +62,6 @@ module EacCli | |
| 62 62 | 
             
                    argv_enum.next
         | 
| 63 63 | 
             
                  end
         | 
| 64 64 |  | 
| 65 | 
            -
                  def collect_option_argv_value
         | 
| 66 | 
            -
                    alternative.options.each do |option|
         | 
| 67 | 
            -
                    end
         | 
| 68 | 
            -
             | 
| 69 | 
            -
                    raise ::EacCli::Parser::Error.new(
         | 
| 70 | 
            -
                      alternative, argv, "Invalid option: #{argv_enum.current}"
         | 
| 71 | 
            -
                    )
         | 
| 72 | 
            -
                  end
         | 
| 73 | 
            -
             | 
| 74 65 | 
             
                  def raise_error(message)
         | 
| 75 66 | 
             
                    raise ::EacCli::Parser::Error.new(alternative, argv, message)
         | 
| 76 67 | 
             
                  end
         | 
    
        data/lib/eac_cli/parser.rb
    CHANGED
    
    | @@ -12,7 +12,7 @@ module EacCli | |
| 12 12 |  | 
| 13 13 | 
             
                def parsed_uncached
         | 
| 14 14 | 
             
                  raise 'Definition has no alternatives' if alternatives.empty?
         | 
| 15 | 
            -
                  raise first_error unless alternatives. | 
| 15 | 
            +
                  raise first_error unless alternatives.any?(&:success?)
         | 
| 16 16 |  | 
| 17 17 | 
             
                  alternatives_parsed(true).merge(alternatives_parsed(false))
         | 
| 18 18 | 
             
                end
         | 
    
        data/lib/eac_cli/patches.rb
    CHANGED
    
    
| @@ -29,7 +29,7 @@ module EacCli | |
| 29 29 |  | 
| 30 30 | 
             
                  def run_parser_error(runner_instance, error)
         | 
| 31 31 | 
             
                    $stderr.write("#{runner_instance.program_name}: #{error}\n")
         | 
| 32 | 
            -
                    ::Kernel.exit(PARSER_ERROR_EXIT_CODE)
         | 
| 32 | 
            +
                    ::Kernel.exit(PARSER_ERROR_EXIT_CODE) # rubocop:disable Rails/Exit
         | 
| 33 33 | 
             
                  end
         | 
| 34 34 | 
             
                end
         | 
| 35 35 | 
             
              end
         | 
| @@ -18,9 +18,9 @@ module EacCli | |
| 18 18 | 
             
                      responders_instances.any?(&:callable?)
         | 
| 19 19 | 
             
                    end
         | 
| 20 20 |  | 
| 21 | 
            -
                    def call( | 
| 21 | 
            +
                    def call(...)
         | 
| 22 22 | 
             
                      caller = responder_to_call
         | 
| 23 | 
            -
                      return caller.call( | 
| 23 | 
            +
                      return caller.call(...) if caller
         | 
| 24 24 |  | 
| 25 25 | 
             
                      raise ::NameError, "No method \"#{method_name}\" found in #{runner} or in its ancestors"
         | 
| 26 26 | 
             
                    end
         | 
    
        data/lib/eac_cli/runner/exit.rb
    CHANGED
    
    
| @@ -26,7 +26,7 @@ module EacCli | |
| 26 26 |  | 
| 27 27 | 
             
                      def option_usage_full(option)
         | 
| 28 28 | 
             
                        if option.long.present?
         | 
| 29 | 
            -
                          [option.short, option_long(option)]. | 
| 29 | 
            +
                          [option.short, option_long(option)].compact_blank.join(word_separator)
         | 
| 30 30 | 
             
                        else
         | 
| 31 31 | 
             
                          option_short(option)
         | 
| 32 32 | 
             
                        end
         | 
| @@ -53,7 +53,7 @@ module EacCli | |
| 53 53 | 
             
                    def option_definition(option)
         | 
| 54 54 | 
             
                      [self.class.option_usage_full(option), option.description,
         | 
| 55 55 | 
             
                       option.default_value? ? "[Default: \"#{option.default_value}\"]" : nil]
         | 
| 56 | 
            -
                        . | 
| 56 | 
            +
                        .compact_blank.join(OPTION_DESCRIPTION_SEPARATOR)
         | 
| 57 57 | 
             
                    end
         | 
| 58 58 |  | 
| 59 59 | 
             
                    # @return [String]
         | 
| @@ -105,7 +105,7 @@ module EacCli | |
| 105 105 | 
             
                    raise(::EacCli::Parser::Error.new(
         | 
| 106 106 | 
             
                            self.class.runner_definition, runner_context.argv,
         | 
| 107 107 | 
             
                            "Subcommand \"#{subcommand_name}\" not found " \
         | 
| 108 | 
            -
             | 
| 108 | 
            +
                            "(Available: #{available_subcommands_to_s})"
         | 
| 109 109 | 
             
                          ))
         | 
| 110 110 | 
             
                  end
         | 
| 111 111 |  | 
    
        data/lib/eac_cli/speaker/list.rb
    CHANGED
    
    | @@ -17,11 +17,11 @@ module EacCli | |
| 17 17 | 
             
                    private
         | 
| 18 18 |  | 
| 19 19 | 
             
                    def hash_to_values(list)
         | 
| 20 | 
            -
                      list.map { |key, value| ::OpenStruct.new(key: key, label: key, value: value) }
         | 
| 20 | 
            +
                      list.map { |key, value| ::OpenStruct.new(key: key, label: key, value: value) } # rubocop:disable Style/OpenStructUse
         | 
| 21 21 | 
             
                    end
         | 
| 22 22 |  | 
| 23 23 | 
             
                    def array_to_values(list)
         | 
| 24 | 
            -
                      list.map { |value| ::OpenStruct.new(key: value, label: value, value: value) }
         | 
| 24 | 
            +
                      list.map { |value| ::OpenStruct.new(key: value, label: value, value: value) }  # rubocop:disable Style/OpenStructUse
         | 
| 25 25 | 
             
                    end
         | 
| 26 26 | 
             
                  end
         | 
| 27 27 |  | 
| @@ -29,7 +29,7 @@ module EacCli | |
| 29 29 |  | 
| 30 30 | 
             
                  def initialize(values)
         | 
| 31 31 | 
             
                    @values = values.map do |v|
         | 
| 32 | 
            -
                      ::OpenStruct.new(key: to_key(v.key), label: to_label(v.label), value: v.value)
         | 
| 32 | 
            +
                      ::OpenStruct.new(key: to_key(v.key), label: to_label(v.label), value: v.value)  # rubocop:disable Style/OpenStructUse
         | 
| 33 33 | 
             
                    end
         | 
| 34 34 | 
             
                  end
         | 
| 35 35 |  | 
| @@ -51,7 +51,7 @@ module EacCli | |
| 51 51 |  | 
| 52 52 | 
             
                  def build_value(value)
         | 
| 53 53 | 
             
                    key = to_key(value)
         | 
| 54 | 
            -
                    values.each do |v| | 
| 54 | 
            +
                    values.each do |v|
         | 
| 55 55 | 
             
                      return v.value if v.key == key
         | 
| 56 56 | 
             
                    end
         | 
| 57 57 | 
             
                    raise "Value not found: \"#{value}\" (#{values})"
         | 
| @@ -11,15 +11,15 @@ module EacCli | |
| 11 11 | 
             
                  end
         | 
| 12 12 |  | 
| 13 13 | 
             
                  def err_out
         | 
| 14 | 
            -
                    option(OPTION_ERR_OUT,  | 
| 14 | 
            +
                    option(OPTION_ERR_OUT, $stderr)
         | 
| 15 15 | 
             
                  end
         | 
| 16 16 |  | 
| 17 17 | 
             
                  def out_out
         | 
| 18 | 
            -
                    option(OPTION_OUT_OUT,  | 
| 18 | 
            +
                    option(OPTION_OUT_OUT, $stdout)
         | 
| 19 19 | 
             
                  end
         | 
| 20 20 |  | 
| 21 21 | 
             
                  def in_in
         | 
| 22 | 
            -
                    option(OPTION_IN_IN,  | 
| 22 | 
            +
                    option(OPTION_IN_IN, $stdin)
         | 
| 23 23 | 
             
                  end
         | 
| 24 24 |  | 
| 25 25 | 
             
                  def err_line_prefix
         | 
    
        data/lib/eac_cli/speaker.rb
    CHANGED
    
    
    
        data/lib/eac_cli/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: eac_cli
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.38.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Esquilo Azul Company
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2023- | 
| 11 | 
            +
            date: 2023-10-14 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: colorize
         | 
| @@ -53,7 +53,7 @@ dependencies: | |
| 53 53 | 
             
                    version: '0.119'
         | 
| 54 54 | 
             
                - - ">="
         | 
| 55 55 | 
             
                  - !ruby/object:Gem::Version
         | 
| 56 | 
            -
                    version: 0.119. | 
| 56 | 
            +
                    version: 0.119.2
         | 
| 57 57 | 
             
              type: :runtime
         | 
| 58 58 | 
             
              prerelease: false
         | 
| 59 59 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -63,21 +63,21 @@ dependencies: | |
| 63 63 | 
             
                    version: '0.119'
         | 
| 64 64 | 
             
                - - ">="
         | 
| 65 65 | 
             
                  - !ruby/object:Gem::Version
         | 
| 66 | 
            -
                    version: 0.119. | 
| 66 | 
            +
                    version: 0.119.2
         | 
| 67 67 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 68 68 | 
             
              name: eac_ruby_gem_support
         | 
| 69 69 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 70 70 | 
             
                requirements:
         | 
| 71 71 | 
             
                - - "~>"
         | 
| 72 72 | 
             
                  - !ruby/object:Gem::Version
         | 
| 73 | 
            -
                    version: 0. | 
| 73 | 
            +
                    version: 0.8.1
         | 
| 74 74 | 
             
              type: :development
         | 
| 75 75 | 
             
              prerelease: false
         | 
| 76 76 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 77 77 | 
             
                requirements:
         | 
| 78 78 | 
             
                - - "~>"
         | 
| 79 79 | 
             
                  - !ruby/object:Gem::Version
         | 
| 80 | 
            -
                    version: 0. | 
| 80 | 
            +
                    version: 0.8.1
         | 
| 81 81 | 
             
            description: 
         | 
| 82 82 | 
             
            email: 
         | 
| 83 83 | 
             
            executables: []
         | 
| @@ -109,6 +109,7 @@ files: | |
| 109 109 | 
             
            - lib/eac_cli/old_configs/store_passwords_entry_reader.rb
         | 
| 110 110 | 
             
            - lib/eac_cli/parser.rb
         | 
| 111 111 | 
             
            - lib/eac_cli/parser/alternative.rb
         | 
| 112 | 
            +
            - lib/eac_cli/parser/alternative/any_options.rb
         | 
| 112 113 | 
             
            - lib/eac_cli/parser/alternative/argv.rb
         | 
| 113 114 | 
             
            - lib/eac_cli/parser/alternative/double_dash.rb
         | 
| 114 115 | 
             
            - lib/eac_cli/parser/alternative/long_options.rb
         | 
| @@ -173,7 +174,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 173 174 | 
             
              requirements:
         | 
| 174 175 | 
             
              - - ">="
         | 
| 175 176 | 
             
                - !ruby/object:Gem::Version
         | 
| 176 | 
            -
                  version:  | 
| 177 | 
            +
                  version: 2.7.0
         | 
| 177 178 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 178 179 | 
             
              requirements:
         | 
| 179 180 | 
             
              - - ">="
         |