eac_ruby_utils 0.49.0 → 0.52.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/lib/eac_ruby_utils/abstract_methods.rb +59 -0
- data/lib/eac_ruby_utils/console/configs.rb +7 -107
- data/lib/eac_ruby_utils/console/configs/entry_reader.rb +81 -0
- data/lib/eac_ruby_utils/console/configs/password_entry_reader.rb +18 -0
- data/lib/eac_ruby_utils/console/configs/read_entry_options.rb +46 -0
- data/lib/eac_ruby_utils/console/configs/store_passwords_entry_reader.rb +27 -0
- data/lib/eac_ruby_utils/patches/enumerator.rb +4 -0
- data/lib/eac_ruby_utils/patches/enumerator/current.rb +9 -0
- data/lib/eac_ruby_utils/patches/enumerator/stopped.rb +14 -0
- data/lib/eac_ruby_utils/patches/object/debug.rb +17 -0
- data/lib/eac_ruby_utils/version.rb +1 -1
- data/lib/eac_ruby_utils/yaml.rb +3 -2
- metadata +11 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: d1cd6f8891c93e7a6a866a11fa705c3ce0609b5b0d6b5e5468d73a46ed135121
         | 
| 4 | 
            +
              data.tar.gz: 49a544fac4a944b2c58ad8cbd0f06eeec6a3e9e5e1df4a66872bdd34bf79c1ef
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 00e8db1cb8da1ed4b54aee6e704820b8962b22e5f9bdb0321354db5ed044cd1799024775c8704765a25d302d2cce776de2511e511665b5d55d00150c3e897271
         | 
| 7 | 
            +
              data.tar.gz: 8da830a3af85dc78d88b919645522cdec79e52c61086517b35bb9a64a14e5f9d4bc2af067f9cef31153268e1b1522b7adbad3e0507d04a62fcd2255e9f090d2f
         | 
| @@ -0,0 +1,59 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'eac_ruby_utils/patches/module/common_concern'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module EacRubyUtils
         | 
| 6 | 
            +
              # Support to abstract methods.
         | 
| 7 | 
            +
              #
         | 
| 8 | 
            +
              # Usage:
         | 
| 9 | 
            +
              #
         | 
| 10 | 
            +
              #   require 'eac_ruby_utils/abstract_methods'
         | 
| 11 | 
            +
              #
         | 
| 12 | 
            +
              #   class BaseClass
         | 
| 13 | 
            +
              #     include EacRubyUtils::AbstractMethods
         | 
| 14 | 
            +
              #
         | 
| 15 | 
            +
              #     abstract_methods :mymethod
         | 
| 16 | 
            +
              #   end
         | 
| 17 | 
            +
              #
         | 
| 18 | 
            +
              #   BaseClass.new.mymethod # raise "Abstract method: mymethod"
         | 
| 19 | 
            +
              #
         | 
| 20 | 
            +
              #   class SubClass
         | 
| 21 | 
            +
              #     def mymethod
         | 
| 22 | 
            +
              #       "Implemented"
         | 
| 23 | 
            +
              #     end
         | 
| 24 | 
            +
              #   end
         | 
| 25 | 
            +
              #
         | 
| 26 | 
            +
              #   SubClass.new.mymethod # return "Implemented"
         | 
| 27 | 
            +
              module AbstractMethods
         | 
| 28 | 
            +
                common_concern
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                module ClassMethods
         | 
| 31 | 
            +
                  def abstract_methods(*methods_names)
         | 
| 32 | 
            +
                    @abstract_methods ||= Set.new
         | 
| 33 | 
            +
                    @abstract_methods += methods_names.map(&:to_sym)
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                    @abstract_methods.to_enum
         | 
| 36 | 
            +
                  end
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                module InstanceMethods
         | 
| 40 | 
            +
                  def respond_to_missing?(method_name, include_private = false)
         | 
| 41 | 
            +
                    super || abstract_method?(method_name)
         | 
| 42 | 
            +
                  end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                  def method_missing(method_name, *arguments, &block)
         | 
| 45 | 
            +
                    raise_abstract_method(method_name) if abstract_method?(method_name)
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                    super
         | 
| 48 | 
            +
                  end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                  def abstract_method?(method_name)
         | 
| 51 | 
            +
                    self.class.abstract_methods.include?(method_name.to_sym)
         | 
| 52 | 
            +
                  end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                  def raise_abstract_method(method_name)
         | 
| 55 | 
            +
                    raise ::NoMethodError, "Abstract method \"#{method_name}\" hit in \"#{self}\""
         | 
| 56 | 
            +
                  end
         | 
| 57 | 
            +
                end
         | 
| 58 | 
            +
              end
         | 
| 59 | 
            +
            end
         | 
| @@ -1,31 +1,20 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 | 
            -
            require 'eac_ruby_utils/common_constructor'
         | 
| 4 3 | 
             
            require 'eac_ruby_utils/configs'
         | 
| 5 | 
            -
            require 'eac_ruby_utils/ | 
| 6 | 
            -
            require 'eac_ruby_utils/options_consumer'
         | 
| 7 | 
            -
            require 'eac_ruby_utils/patches/object/asserts'
         | 
| 8 | 
            -
            require 'eac_ruby_utils/simple_cache'
         | 
| 4 | 
            +
            require 'eac_ruby_utils/core_ext'
         | 
| 9 5 |  | 
| 10 6 | 
             
            module EacRubyUtils
         | 
| 11 7 | 
             
              module Console
         | 
| 12 8 | 
             
                class Configs
         | 
| 13 | 
            -
                   | 
| 9 | 
            +
                  require_sub __FILE__
         | 
| 10 | 
            +
                  enable_console_speaker
         | 
| 14 11 |  | 
| 15 12 | 
             
                  class << self
         | 
| 16 13 | 
             
                    def entry_key_to_envvar_name(entry_key)
         | 
| 17 | 
            -
                       | 
| 18 | 
            -
                               entry_key
         | 
| 19 | 
            -
                             else
         | 
| 20 | 
            -
                               ::EacRubyUtils::PathsHash.parse_entry_key(entry_key)
         | 
| 21 | 
            -
                             end
         | 
| 22 | 
            -
                      path.join('_').gsub(/[^a-z0-9_]/i, '').gsub(/\A_+/, '').gsub(/_+\z/, '')
         | 
| 23 | 
            -
                          .gsub(/_{2,}/, '_').upcase
         | 
| 14 | 
            +
                      ::EacRubyUtils::Console::Configs::EntryReader.entry_key_to_envvar_name(entry_key)
         | 
| 24 15 | 
             
                    end
         | 
| 25 16 | 
             
                  end
         | 
| 26 17 |  | 
| 27 | 
            -
                  STORE_PASSWORDS_KEY = 'core.store_passwords'
         | 
| 28 | 
            -
             | 
| 29 18 | 
             
                  attr_reader :configs
         | 
| 30 19 |  | 
| 31 20 | 
             
                  def initialize(configs_key, options = {})
         | 
| @@ -34,104 +23,15 @@ module EacRubyUtils | |
| 34 23 | 
             
                  end
         | 
| 35 24 |  | 
| 36 25 | 
             
                  def read_password(entry_key, options = {})
         | 
| 37 | 
            -
                     | 
| 38 | 
            -
                    if store_passwords?
         | 
| 39 | 
            -
                      read_entry(entry_key, options)
         | 
| 40 | 
            -
                    else
         | 
| 41 | 
            -
                      looped_entry_value_from_input(entry_key, options)
         | 
| 42 | 
            -
                    end
         | 
| 26 | 
            +
                    ::EacRubyUtils::Console::Configs::PasswordEntryReader.new(self, entry_key, options).read
         | 
| 43 27 | 
             
                  end
         | 
| 44 28 |  | 
| 45 29 | 
             
                  def read_entry(entry_key, options = {})
         | 
| 46 | 
            -
                     | 
| 47 | 
            -
                    unless options[:noenv]
         | 
| 48 | 
            -
                      envvar_value = envvar_read_entry(entry_key)
         | 
| 49 | 
            -
                      return envvar_value if envvar_value.present?
         | 
| 50 | 
            -
                    end
         | 
| 51 | 
            -
                    stored_value = configs.read_entry(entry_key)
         | 
| 52 | 
            -
                    return stored_value if stored_value
         | 
| 53 | 
            -
                    return read_entry_from_console(entry_key, options) unless options[:noinput]
         | 
| 54 | 
            -
             | 
| 55 | 
            -
                    raise "No value found for entry \"#{entry_key}\"" if options[:required]
         | 
| 30 | 
            +
                    ::EacRubyUtils::Console::Configs::EntryReader.new(self, entry_key, options).read
         | 
| 56 31 | 
             
                  end
         | 
| 57 32 |  | 
| 58 33 | 
             
                  def store_passwords?
         | 
| 59 | 
            -
                     | 
| 60 | 
            -
                      STORE_PASSWORDS_KEY,
         | 
| 61 | 
            -
                      before_input: -> { store_password_banner },
         | 
| 62 | 
            -
                      validator: ->(entry_value) { %w[yes no].include?(entry_value) }
         | 
| 63 | 
            -
                    ) == 'yes'
         | 
| 64 | 
            -
                  end
         | 
| 65 | 
            -
             | 
| 66 | 
            -
                  protected
         | 
| 67 | 
            -
             | 
| 68 | 
            -
                  def envvar_read_entry(entry_key)
         | 
| 69 | 
            -
                    env_entry_key = self.class.entry_key_to_envvar_name(entry_key)
         | 
| 70 | 
            -
                    return nil unless ENV.key?(env_entry_key)
         | 
| 71 | 
            -
             | 
| 72 | 
            -
                    ENV.fetch(env_entry_key).if_present(::EacRubyUtils::BlankNotBlank.instance)
         | 
| 73 | 
            -
                  end
         | 
| 74 | 
            -
             | 
| 75 | 
            -
                  def read_entry_from_console(entry_key, options)
         | 
| 76 | 
            -
                    options[:before_input].call if options[:before_input].present?
         | 
| 77 | 
            -
                    entry_value = looped_entry_value_from_input(entry_key, options)
         | 
| 78 | 
            -
                    configs.write_entry(entry_key, entry_value)
         | 
| 79 | 
            -
                    entry_value
         | 
| 80 | 
            -
                  end
         | 
| 81 | 
            -
             | 
| 82 | 
            -
                  def store_password_banner
         | 
| 83 | 
            -
                    infom 'Do you wanna to store passwords?'
         | 
| 84 | 
            -
                    infom "Warning: the passwords will be store in clear text in \"#{configs.storage_path}\""
         | 
| 85 | 
            -
                    infom 'Enter "yes" or "no"'
         | 
| 86 | 
            -
                  end
         | 
| 87 | 
            -
             | 
| 88 | 
            -
                  def looped_entry_value_from_input(entry_key, options)
         | 
| 89 | 
            -
                    loop do
         | 
| 90 | 
            -
                      entry_value = entry_value_from_input(entry_key, options)
         | 
| 91 | 
            -
                      next if entry_value.blank?
         | 
| 92 | 
            -
                      next if options[:validator] && !options[:validator].call(entry_value)
         | 
| 93 | 
            -
             | 
| 94 | 
            -
                      return entry_value
         | 
| 95 | 
            -
                    end
         | 
| 96 | 
            -
                  end
         | 
| 97 | 
            -
             | 
| 98 | 
            -
                  def entry_value_from_input(entry_key, options)
         | 
| 99 | 
            -
                    entry_value = request_input("Value for entry \"#{entry_key}\"",
         | 
| 100 | 
            -
                                                options.request_input_options)
         | 
| 101 | 
            -
                    warn('Entered value is blank') if entry_value.blank?
         | 
| 102 | 
            -
                    entry_value
         | 
| 103 | 
            -
                  end
         | 
| 104 | 
            -
             | 
| 105 | 
            -
                  class ReadEntryOptions
         | 
| 106 | 
            -
                    include ::EacRubyUtils::SimpleCache
         | 
| 107 | 
            -
                    ::EacRubyUtils::CommonConstructor.new(:options).setup_class(self)
         | 
| 108 | 
            -
             | 
| 109 | 
            -
                    DEFAULT_VALUES = {
         | 
| 110 | 
            -
                      before_input: nil, bool: false, list: false, noecho: false, noenv: false, noinput: false,
         | 
| 111 | 
            -
                      required: true, validator: nil
         | 
| 112 | 
            -
                    }.freeze
         | 
| 113 | 
            -
             | 
| 114 | 
            -
                    def [](key)
         | 
| 115 | 
            -
                      values.fetch(key.to_sym)
         | 
| 116 | 
            -
                    end
         | 
| 117 | 
            -
             | 
| 118 | 
            -
                    def request_input_options
         | 
| 119 | 
            -
                      values.slice(:bool, :list, :noecho)
         | 
| 120 | 
            -
                    end
         | 
| 121 | 
            -
             | 
| 122 | 
            -
                    private
         | 
| 123 | 
            -
             | 
| 124 | 
            -
                    def values_uncached
         | 
| 125 | 
            -
                      consumer = ::EacRubyUtils::OptionsConsumer.new(options)
         | 
| 126 | 
            -
                      r = {}
         | 
| 127 | 
            -
                      DEFAULT_VALUES.each do |key, default_value|
         | 
| 128 | 
            -
                        value = consumer.consume(key)
         | 
| 129 | 
            -
                        value = default_value if value.nil?
         | 
| 130 | 
            -
                        r[key] = value
         | 
| 131 | 
            -
                      end
         | 
| 132 | 
            -
                      consumer.validate
         | 
| 133 | 
            -
                      r
         | 
| 134 | 
            -
                    end
         | 
| 34 | 
            +
                    ::EacRubyUtils::Console::Configs::StorePasswordsEntryReader.new(self) == 'yes'
         | 
| 135 35 | 
             
                  end
         | 
| 136 36 | 
             
                end
         | 
| 137 37 | 
             
              end
         | 
| @@ -0,0 +1,81 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'eac_ruby_utils/console/configs/read_entry_options'
         | 
| 4 | 
            +
            require 'eac_ruby_utils/core_ext'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            module EacRubyUtils
         | 
| 7 | 
            +
              module Console
         | 
| 8 | 
            +
                class Configs
         | 
| 9 | 
            +
                  class EntryReader
         | 
| 10 | 
            +
                    enable_console_speaker
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                    class << self
         | 
| 13 | 
            +
                      def entry_key_to_envvar_name(entry_key)
         | 
| 14 | 
            +
                        path = if entry_key.is_a?(::Array)
         | 
| 15 | 
            +
                                 entry_key
         | 
| 16 | 
            +
                               else
         | 
| 17 | 
            +
                                 ::EacRubyUtils::PathsHash.parse_entry_key(entry_key)
         | 
| 18 | 
            +
                               end
         | 
| 19 | 
            +
                        path.join('_').gsub(/[^a-z0-9_]/i, '').gsub(/\A_+/, '').gsub(/_+\z/, '')
         | 
| 20 | 
            +
                            .gsub(/_{2,}/, '_').upcase
         | 
| 21 | 
            +
                      end
         | 
| 22 | 
            +
                    end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                    common_constructor :console_configs, :entry_key, :options do
         | 
| 25 | 
            +
                      self.options = ::EacRubyUtils::Console::Configs::ReadEntryOptions.new(options)
         | 
| 26 | 
            +
                    end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                    def read
         | 
| 29 | 
            +
                      %w[envvars storage console].each do |suffix|
         | 
| 30 | 
            +
                        value = send("read_from_#{suffix}")
         | 
| 31 | 
            +
                        return value if value.present?
         | 
| 32 | 
            +
                      end
         | 
| 33 | 
            +
                      return nil unless options[:required]
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                      raise "No value found for entry \"#{entry_key}\""
         | 
| 36 | 
            +
                    end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                    def read_from_storage
         | 
| 39 | 
            +
                      console_configs.configs.read_entry(entry_key)
         | 
| 40 | 
            +
                    end
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                    def read_from_envvars
         | 
| 43 | 
            +
                      return if options[:noenv]
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                      env_entry_key = self.class.entry_key_to_envvar_name(entry_key)
         | 
| 46 | 
            +
                      return unless ENV.key?(env_entry_key)
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                      ENV.fetch(env_entry_key).if_present(::EacRubyUtils::BlankNotBlank.instance)
         | 
| 49 | 
            +
                    end
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                    def read_from_console
         | 
| 52 | 
            +
                      return if options[:noinput]
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                      options[:before_input].if_present(&:call)
         | 
| 55 | 
            +
                      entry_value = looped_entry_value_from_input
         | 
| 56 | 
            +
                      console_configs.configs.write_entry(entry_key, entry_value) if options[:store]
         | 
| 57 | 
            +
                      entry_value
         | 
| 58 | 
            +
                    end
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                    private
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                    def looped_entry_value_from_input
         | 
| 63 | 
            +
                      loop do
         | 
| 64 | 
            +
                        entry_value = entry_value_from_input(entry_key, options)
         | 
| 65 | 
            +
                        next if entry_value.blank?
         | 
| 66 | 
            +
                        next if options[:validator] && !options[:validator].call(entry_value)
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                        return entry_value
         | 
| 69 | 
            +
                      end
         | 
| 70 | 
            +
                    end
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                    def entry_value_from_input(entry_key, options)
         | 
| 73 | 
            +
                      entry_value = request_input("Value for entry \"#{entry_key}\"",
         | 
| 74 | 
            +
                                                  options.request_input_options)
         | 
| 75 | 
            +
                      warn('Entered value is blank') if entry_value.blank?
         | 
| 76 | 
            +
                      entry_value
         | 
| 77 | 
            +
                    end
         | 
| 78 | 
            +
                  end
         | 
| 79 | 
            +
                end
         | 
| 80 | 
            +
              end
         | 
| 81 | 
            +
            end
         | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'eac_ruby_utils/console/configs/entry_reader'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module EacRubyUtils
         | 
| 6 | 
            +
              module Console
         | 
| 7 | 
            +
                class Configs
         | 
| 8 | 
            +
                  class PasswordEntryReader < ::EacRubyUtils::Console::Configs::EntryReader
         | 
| 9 | 
            +
                    ENTRY_KEY = 'core.store_passwords'
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                    def initialize(console_configs, entry_key, options = {})
         | 
| 12 | 
            +
                      super(console_configs, entry_key, options.merge(noecho: true,
         | 
| 13 | 
            +
                                                                      store: console_configs.store_passwords?))
         | 
| 14 | 
            +
                    end
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
            end
         | 
| @@ -0,0 +1,46 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'eac_ruby_utils/core_ext'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module EacRubyUtils
         | 
| 6 | 
            +
              module Console
         | 
| 7 | 
            +
                class Configs
         | 
| 8 | 
            +
                  class ReadEntryOptions
         | 
| 9 | 
            +
                    enable_simple_cache
         | 
| 10 | 
            +
                    common_constructor :options do
         | 
| 11 | 
            +
                      self.options = options.to_h.symbolize_keys
         | 
| 12 | 
            +
                                            .assert_valid_keys(DEFAULT_VALUES.keys).freeze
         | 
| 13 | 
            +
                    end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                    DEFAULT_VALUES = {
         | 
| 16 | 
            +
                      before_input: nil, bool: false, list: false, noecho: false, noenv: false, noinput: false,
         | 
| 17 | 
            +
                      required: true, store: true, validator: nil
         | 
| 18 | 
            +
                    }.freeze
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                    delegate :to_h, to: :options
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                    def [](key)
         | 
| 23 | 
            +
                      values.fetch(key.to_sym)
         | 
| 24 | 
            +
                    end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                    def request_input_options
         | 
| 27 | 
            +
                      values.slice(:bool, :list, :noecho)
         | 
| 28 | 
            +
                    end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                    private
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                    def values_uncached
         | 
| 33 | 
            +
                      consumer = options.to_options_consumer
         | 
| 34 | 
            +
                      r = {}
         | 
| 35 | 
            +
                      DEFAULT_VALUES.each do |key, default_value|
         | 
| 36 | 
            +
                        value = consumer.consume(key)
         | 
| 37 | 
            +
                        value = default_value if value.nil?
         | 
| 38 | 
            +
                        r[key] = value
         | 
| 39 | 
            +
                      end
         | 
| 40 | 
            +
                      consumer.validate
         | 
| 41 | 
            +
                      r
         | 
| 42 | 
            +
                    end
         | 
| 43 | 
            +
                  end
         | 
| 44 | 
            +
                end
         | 
| 45 | 
            +
              end
         | 
| 46 | 
            +
            end
         | 
| @@ -0,0 +1,27 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'eac_ruby_utils/console/configs/entry_reader'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module EacRubyUtils
         | 
| 6 | 
            +
              module Console
         | 
| 7 | 
            +
                class Configs
         | 
| 8 | 
            +
                  class StorePasswordsEntryReader < ::EacRubyUtils::Console::Configs::EntryReader
         | 
| 9 | 
            +
                    ENTRY_KEY = 'core.store_passwords'
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                    def initialize(console_configs)
         | 
| 12 | 
            +
                      super(console_configs, ENTRY_KEY,
         | 
| 13 | 
            +
                        before_input: -> { banner },
         | 
| 14 | 
            +
                        validator: ->(entry_value) { %w[yes no].include?(entry_value) }
         | 
| 15 | 
            +
                      )
         | 
| 16 | 
            +
                    end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                    def banner
         | 
| 19 | 
            +
                      infom 'Do you wanna to store passwords?'
         | 
| 20 | 
            +
                      infom 'Warning: the passwords will be store in clear text in ' \
         | 
| 21 | 
            +
                        "\"#{console_configs.configs.storage_path}\""
         | 
| 22 | 
            +
                      infom 'Enter "yes" or "no"'
         | 
| 23 | 
            +
                    end
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
            end
         | 
    
        data/lib/eac_ruby_utils/yaml.rb
    CHANGED
    
    | @@ -1,13 +1,14 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 | 
            +
            require 'date'
         | 
| 3 4 | 
             
            require 'yaml'
         | 
| 4 5 |  | 
| 5 6 | 
             
            module EacRubyUtils
         | 
| 6 7 | 
             
              # A safe YAML loader/dumper with common types included.
         | 
| 7 8 | 
             
              class Yaml
         | 
| 8 9 | 
             
                class << self
         | 
| 9 | 
            -
                  DEFAULT_PERMITTED_CLASSES = [::Array, ::Date, ::FalseClass, ::Hash, ::NilClass, | 
| 10 | 
            -
                                               ::String, ::Symbol, ::Time, ::TrueClass].freeze
         | 
| 10 | 
            +
                  DEFAULT_PERMITTED_CLASSES = [::Array, ::Date, ::DateTime, ::FalseClass, ::Hash, ::NilClass,
         | 
| 11 | 
            +
                                               ::Numeric, ::String, ::Symbol, ::Time, ::TrueClass].freeze
         | 
| 11 12 |  | 
| 12 13 | 
             
                  def dump(object)
         | 
| 13 14 | 
             
                    ::YAML.dump(sanitize(object))
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: eac_ruby_utils
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.52.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: 2020- | 
| 11 | 
            +
            date: 2020-11-28 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activesupport
         | 
| @@ -108,6 +108,7 @@ extra_rdoc_files: [] | |
| 108 108 | 
             
            files:
         | 
| 109 109 | 
             
            - README.rdoc
         | 
| 110 110 | 
             
            - lib/eac_ruby_utils.rb
         | 
| 111 | 
            +
            - lib/eac_ruby_utils/abstract_methods.rb
         | 
| 111 112 | 
             
            - lib/eac_ruby_utils/arguments_consumer.rb
         | 
| 112 113 | 
             
            - lib/eac_ruby_utils/blank_not_blank.rb
         | 
| 113 114 | 
             
            - lib/eac_ruby_utils/boolean.rb
         | 
| @@ -119,6 +120,10 @@ files: | |
| 119 120 | 
             
            - lib/eac_ruby_utils/configs/file.rb
         | 
| 120 121 | 
             
            - lib/eac_ruby_utils/console.rb
         | 
| 121 122 | 
             
            - lib/eac_ruby_utils/console/configs.rb
         | 
| 123 | 
            +
            - lib/eac_ruby_utils/console/configs/entry_reader.rb
         | 
| 124 | 
            +
            - lib/eac_ruby_utils/console/configs/password_entry_reader.rb
         | 
| 125 | 
            +
            - lib/eac_ruby_utils/console/configs/read_entry_options.rb
         | 
| 126 | 
            +
            - lib/eac_ruby_utils/console/configs/store_passwords_entry_reader.rb
         | 
| 122 127 | 
             
            - lib/eac_ruby_utils/console/docopt_runner.rb
         | 
| 123 128 | 
             
            - lib/eac_ruby_utils/console/docopt_runner/_class_methods.rb
         | 
| 124 129 | 
             
            - lib/eac_ruby_utils/console/docopt_runner/_doc.rb
         | 
| @@ -182,6 +187,9 @@ files: | |
| 182 187 | 
             
            - lib/eac_ruby_utils/patches/class/common_constructor.rb
         | 
| 183 188 | 
             
            - lib/eac_ruby_utils/patches/enumerable.rb
         | 
| 184 189 | 
             
            - lib/eac_ruby_utils/patches/enumerable/boolean_combinations.rb
         | 
| 190 | 
            +
            - lib/eac_ruby_utils/patches/enumerator.rb
         | 
| 191 | 
            +
            - lib/eac_ruby_utils/patches/enumerator/current.rb
         | 
| 192 | 
            +
            - lib/eac_ruby_utils/patches/enumerator/stopped.rb
         | 
| 185 193 | 
             
            - lib/eac_ruby_utils/patches/hash.rb
         | 
| 186 194 | 
             
            - lib/eac_ruby_utils/patches/hash/options_consumer.rb
         | 
| 187 195 | 
             
            - lib/eac_ruby_utils/patches/hash/sym_keys_hash.rb
         | 
| @@ -195,6 +203,7 @@ files: | |
| 195 203 | 
             
            - lib/eac_ruby_utils/patches/module/simple_cache.rb
         | 
| 196 204 | 
             
            - lib/eac_ruby_utils/patches/object.rb
         | 
| 197 205 | 
             
            - lib/eac_ruby_utils/patches/object/asserts.rb
         | 
| 206 | 
            +
            - lib/eac_ruby_utils/patches/object/debug.rb
         | 
| 198 207 | 
             
            - lib/eac_ruby_utils/patches/object/if_present.rb
         | 
| 199 208 | 
             
            - lib/eac_ruby_utils/patches/object/if_respond.rb
         | 
| 200 209 | 
             
            - lib/eac_ruby_utils/patches/object/template.rb
         |