cli_miami 1.0.5.pre → 1.0.9.pre
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/i18n/en.yml +7 -1
- data/lib/cli_miami/ask.rb +16 -3
- data/lib/cli_miami/error.rb +6 -6
- data/lib/cli_miami/say.rb +7 -7
- data/lib/cli_miami/validation.rb +13 -14
- data/lib/cli_miami/version.rb +3 -0
- data/lib/cli_miami.rb +18 -14
- data/spec/lib/cli_miami/ask_spec.rb +6 -0
- metadata +87 -50
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: e74cf731743ec201c0c4bac48b2b60644cd74b33
         | 
| 4 | 
            +
              data.tar.gz: 5967a1bbf6ebcd77701f4cb05f2a1e4f13954b40
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 51b5d2c06581417dd46bf6dfdc14b40bf0090d601df88e40f43e6f5675fb5ec5fb546db8cbb1345f37ee06bc7e8e9cfbe53748b85b57a8df6eb1a44110aa9064
         | 
| 7 | 
            +
              data.tar.gz: bfe0b344630ccb19f973aa73b8eeb53bd1deb1c2fd0ff2d7e660cadaea40e612a0ea3c11fac50ec6a9d12caaf69b4573c794a4af4a4b6ff122c0a0ba12a59607
         | 
    
        data/i18n/en.yml
    CHANGED
    
    
    
        data/lib/cli_miami/ask.rb
    CHANGED
    
    | @@ -45,7 +45,7 @@ private | |
| 45 45 | 
             
              def request_type options
         | 
| 46 46 | 
             
                send("request_#{options[:type]}", options)
         | 
| 47 47 | 
             
              rescue
         | 
| 48 | 
            -
                CliMiami::S.ay I18n.t('cli_miami.errors.type', options.merge(preset: :cli_miami_fail) | 
| 48 | 
            +
                CliMiami::S.ay I18n.t('cli_miami.errors.type', type: options[:type]), options.merge(preset: :cli_miami_fail)
         | 
| 49 49 | 
             
              end
         | 
| 50 50 |  | 
| 51 51 | 
             
              # for most types, a simple validation check is all that is needed
         | 
| @@ -130,7 +130,9 @@ private | |
| 130 130 | 
             
                  # display options
         | 
| 131 131 | 
             
                  CliMiami::S.ay
         | 
| 132 132 | 
             
                  CliMiami::S.ay I18n.t('cli_miami.core.multiple_choice.prompt'), :cli_miami_instruction
         | 
| 133 | 
            -
                  options[:choices].each_with_index do |li, i|
         | 
| 133 | 
            +
                  options[:choices].to_a.each_with_index do |li, i|
         | 
| 134 | 
            +
                    li = li[1] if li.is_a? Array
         | 
| 135 | 
            +
             | 
| 134 136 | 
             
                    # show already selected choices with a different color
         | 
| 135 137 | 
             
                    choice_text = "#{(i + 1).to_s.rjust(3)}: #{li}"
         | 
| 136 138 | 
             
                    choice_text_color = selected_choice_indexes.include?(i) ? :black : :cyan
         | 
| @@ -159,11 +161,22 @@ private | |
| 159 161 | 
             
                    end
         | 
| 160 162 | 
             
                  end
         | 
| 161 163 |  | 
| 164 | 
            +
                  # get selected choice values
         | 
| 165 | 
            +
                  selected_choices = selected_choice_indexes.map do |i|
         | 
| 166 | 
            +
                    options[:choices].to_a[i]
         | 
| 167 | 
            +
                  end
         | 
| 168 | 
            +
             | 
| 169 | 
            +
                  # convert associate array back to hash
         | 
| 170 | 
            +
                  if options[:choices].is_a? Hash
         | 
| 171 | 
            +
                    selected_choices = Hash[*selected_choices.flatten]
         | 
| 172 | 
            +
                  end
         | 
| 173 | 
            +
             | 
| 174 | 
            +
                  # show user their selected choices
         | 
| 162 175 | 
             
                  # update user
         | 
| 163 176 | 
             
                  CliMiami::S.ay
         | 
| 164 177 | 
             
                  CliMiami::S.ay I18n.t('cli_miami.core.multiple_choice.selected_choices'), :cli_miami_instruction_sub
         | 
| 165 | 
            -
                  selected_choices = selected_choice_indexes.map{ |i| options[:choices][i] }
         | 
| 166 178 | 
             
                  selected_choices.each do |sc|
         | 
| 179 | 
            +
                    sc = sc[1] if sc.is_a? Array
         | 
| 167 180 | 
             
                    CliMiami::S.ay "• #{sc}", preset: :cli_miami_update, indent: 3
         | 
| 168 181 | 
             
                  end
         | 
| 169 182 | 
             
                end
         | 
    
        data/lib/cli_miami/error.rb
    CHANGED
    
    | @@ -107,13 +107,13 @@ private | |
| 107 107 | 
             
                i18n_string = keys.flatten.compact.each(&:to_s).join('.')
         | 
| 108 108 |  | 
| 109 109 | 
             
                # check if value exists, and translate it
         | 
| 110 | 
            -
                 | 
| 111 | 
            -
                  # format description for i18n messages
         | 
| 112 | 
            -
                  if options[:description]
         | 
| 113 | 
            -
                    options[:description] = ' (' << options[:description] << ')'
         | 
| 114 | 
            -
                  end
         | 
| 110 | 
            +
                return unless I18n.exists? i18n_string
         | 
| 115 111 |  | 
| 116 | 
            -
             | 
| 112 | 
            +
                # format description for i18n messages
         | 
| 113 | 
            +
                if options[:description]
         | 
| 114 | 
            +
                  options[:description] = ' (' << options[:description] << ')'
         | 
| 117 115 | 
             
                end
         | 
| 116 | 
            +
             | 
| 117 | 
            +
                I18n.t i18n_string, options
         | 
| 118 118 | 
             
              end
         | 
| 119 119 | 
             
            end
         | 
    
        data/lib/cli_miami/say.rb
    CHANGED
    
    | @@ -67,13 +67,13 @@ private | |
| 67 67 |  | 
| 68 68 | 
             
              # Set foreground color
         | 
| 69 69 | 
             
              def modify_text_color!
         | 
| 70 | 
            -
                 | 
| 71 | 
            -
             | 
| 72 | 
            -
             | 
| 73 | 
            -
             | 
| 74 | 
            -
                   | 
| 75 | 
            -
             | 
| 76 | 
            -
                   | 
| 70 | 
            +
                return unless @options[:color]
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                # if bright style is passed, use the bright color variation
         | 
| 73 | 
            +
                @text = if @options[:style].delete :bright
         | 
| 74 | 
            +
                  @text.send "bright_#{@options[:color]}"
         | 
| 75 | 
            +
                else
         | 
| 76 | 
            +
                  @text.send @options[:color]
         | 
| 77 77 | 
             
                end
         | 
| 78 78 | 
             
              end
         | 
| 79 79 |  | 
    
        data/lib/cli_miami/validation.rb
    CHANGED
    
    | @@ -111,14 +111,14 @@ private | |
| 111 111 | 
             
              # validate the value is within the min and max values
         | 
| 112 112 | 
             
              #
         | 
| 113 113 | 
             
              def validate_length value, length, options
         | 
| 114 | 
            -
                 | 
| 115 | 
            -
                  options[:value_length] = length
         | 
| 114 | 
            +
                return if (options[:min]..options[:max]).cover? length
         | 
| 116 115 |  | 
| 117 | 
            -
             | 
| 118 | 
            -
                  value = I18n.t('cli_miami.core.empty') if value.respond_to?(:empty?) && value.empty?
         | 
| 116 | 
            +
                options[:value_length] = length
         | 
| 119 117 |  | 
| 120 | 
            -
             | 
| 121 | 
            -
                 | 
| 118 | 
            +
                # replace empty values with i18n `empty` string
         | 
| 119 | 
            +
                value = I18n.t('cli_miami.core.empty') if value.respond_to?(:empty?) && value.empty?
         | 
| 120 | 
            +
             | 
| 121 | 
            +
                raise CliMiami::Error.new(value, options, :length).message
         | 
| 122 122 | 
             
              end
         | 
| 123 123 |  | 
| 124 124 | 
             
              # validate that the value passes a regular expression
         | 
| @@ -153,7 +153,7 @@ private | |
| 153 153 | 
             
                validate_length float, float, options
         | 
| 154 154 | 
             
              end
         | 
| 155 155 |  | 
| 156 | 
            -
              # rubocop:disable Metrics/AbcSize | 
| 156 | 
            +
              # rubocop:disable Metrics/AbcSize
         | 
| 157 157 | 
             
              def validate_hash hash, options
         | 
| 158 158 | 
             
                hash.deep_symbolize_keys!
         | 
| 159 159 |  | 
| @@ -162,18 +162,17 @@ private | |
| 162 162 | 
             
                # return if no value options are set
         | 
| 163 163 | 
             
                value_options = options[:value_options]
         | 
| 164 164 | 
             
                return unless value_options
         | 
| 165 | 
            +
                return unless value_options[:keys]
         | 
| 165 166 |  | 
| 166 167 | 
             
                # validate required keys are set
         | 
| 167 | 
            -
                 | 
| 168 | 
            -
             | 
| 169 | 
            -
                  value_options[:missing_values] = missing_keys.to_a.to_sentence
         | 
| 168 | 
            +
                missing_keys = Set.new(value_options[:keys].map(&:to_sym)) - Set.new(hash.keys)
         | 
| 169 | 
            +
                value_options[:missing_values] = missing_keys.to_a.to_sentence
         | 
| 170 170 |  | 
| 171 | 
            -
             | 
| 172 | 
            -
             | 
| 173 | 
            -
                  end
         | 
| 171 | 
            +
                unless missing_keys.empty?
         | 
| 172 | 
            +
                  raise CliMiami::Error.new(hash, options, :keys).message
         | 
| 174 173 | 
             
                end
         | 
| 175 174 | 
             
              end
         | 
| 176 | 
            -
              # rubocop:enable Metrics/AbcSize | 
| 175 | 
            +
              # rubocop:enable Metrics/AbcSize
         | 
| 177 176 |  | 
| 178 177 | 
             
              def validate_multiple_choice selections, options
         | 
| 179 178 | 
             
                validate_length selections, selections.length, options
         | 
    
        data/lib/cli_miami.rb
    CHANGED
    
    | @@ -24,26 +24,25 @@ class String | |
| 24 24 | 
             
                method_string = method.to_s.dup
         | 
| 25 25 |  | 
| 26 26 | 
             
                if method_string.slice! 'cli_miami_'
         | 
| 27 | 
            -
                   | 
| 27 | 
            +
                  method_symbol = method_string.to_sym
         | 
| 28 | 
            +
                  preset = CliMiami.presets[method_symbol] || {}
         | 
| 28 29 | 
             
                  options = preset.merge args[0] || {}
         | 
| 30 | 
            +
             | 
| 29 31 | 
             
                  CliMiami::S.ay self, options
         | 
| 30 32 | 
             
                else
         | 
| 31 33 | 
             
                  super
         | 
| 32 34 | 
             
                end
         | 
| 33 35 | 
             
              end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
              def respond_to_missing? method, _args
         | 
| 38 | 
            +
                method =~ /^cli_miami_/ || super
         | 
| 39 | 
            +
              end
         | 
| 34 40 | 
             
            end
         | 
| 35 41 |  | 
| 36 42 | 
             
            # i18n
         | 
| 37 43 | 
             
            #
         | 
| 38 | 
            -
            # load yml locales included in the cli miami gem
         | 
| 39 | 
            -
            #   [PATH TO GEMS]/cli_miami/i18n/en.yml
         | 
| 40 44 | 
             
            I18n.load_path += Dir["#{File.dirname(__FILE__)}/../i18n/*.yml"]
         | 
| 41 | 
            -
             | 
| 42 | 
            -
            #   ./i18n.yml
         | 
| 43 | 
            -
            I18n.load_path += Dir['./i18n.yml']
         | 
| 44 | 
            -
            # load locales in the folder `i18n` in the current directory
         | 
| 45 | 
            -
            #   ./i18n/en.yml
         | 
| 46 | 
            -
            I18n.load_path += Dir['./i18n/*.yml']
         | 
| 45 | 
            +
            I18n.reload!
         | 
| 47 46 |  | 
| 48 47 | 
             
            # readline
         | 
| 49 48 | 
             
            #
         | 
| @@ -61,11 +60,6 @@ class FalseClass; include Boolean; end | |
| 61 60 | 
             
            # create Cli Miami namespace and load library
         | 
| 62 61 | 
             
            #
         | 
| 63 62 | 
             
            module CliMiami
         | 
| 64 | 
            -
              require 'cli_miami/ask'
         | 
| 65 | 
            -
              require 'cli_miami/error'
         | 
| 66 | 
            -
              require 'cli_miami/say'
         | 
| 67 | 
            -
              require 'cli_miami/validation'
         | 
| 68 | 
            -
             | 
| 69 63 | 
             
              BOOLEAN_TRUE_VALUES = %w(true t yes y).freeze
         | 
| 70 64 | 
             
              BOOLEAN_FALSE_VALUES = %w(false f no n).freeze
         | 
| 71 65 |  | 
| @@ -202,4 +196,14 @@ module CliMiami | |
| 202 196 | 
             
                options
         | 
| 203 197 | 
             
              end
         | 
| 204 198 | 
             
              # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
         | 
| 199 | 
            +
             | 
| 200 | 
            +
              def self.version
         | 
| 201 | 
            +
                CliMiami::VERSION
         | 
| 202 | 
            +
              end
         | 
| 205 203 | 
             
            end
         | 
| 204 | 
            +
             | 
| 205 | 
            +
            require 'cli_miami/ask'
         | 
| 206 | 
            +
            require 'cli_miami/error'
         | 
| 207 | 
            +
            require 'cli_miami/say'
         | 
| 208 | 
            +
            require 'cli_miami/validation'
         | 
| 209 | 
            +
            require 'cli_miami/version'
         | 
| @@ -55,6 +55,12 @@ describe CliMiami::A do | |
| 55 55 | 
             
              end
         | 
| 56 56 |  | 
| 57 57 | 
             
              describe 'MULTIPLE_CHOICE' do
         | 
| 58 | 
            +
                it 'should allow a hash of choices' do
         | 
| 59 | 
            +
                  allow($stdin).to receive(:gets).and_return '2', '1', ''
         | 
| 60 | 
            +
                  ask = CliMiami::A.sk @q, type: :multiple_choice, choices: { one: 'option 1', two: 'option 2', three: 'option 3' }
         | 
| 61 | 
            +
                  expect(ask.value).to eq(two: 'option 2', one: 'option 1')
         | 
| 62 | 
            +
                end
         | 
| 63 | 
            +
             | 
| 58 64 | 
             
                it 'should allow a user to remove selections' do
         | 
| 59 65 | 
             
                  allow($stdin).to receive(:gets).and_return '1', '2', '1', ''
         | 
| 60 66 | 
             
                  ask = CliMiami::A.sk @q, type: :multiple_choice, choices: ['option 1', 'option 2', 'option 3']
         | 
    
        metadata
    CHANGED
    
    | @@ -1,175 +1,211 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: cli_miami
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0. | 
| 4 | 
            +
              version: 1.0.9.pre
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ryan Brewster
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016- | 
| 11 | 
            +
            date: 2016-10-07 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activesupport
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - -  | 
| 17 | 
            +
                - - '='
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version:  | 
| 19 | 
            +
                    version: 4.2.7.1
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 | 
            -
                - -  | 
| 24 | 
            +
                - - '='
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version:  | 
| 26 | 
            +
                    version: 4.2.7.1
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: i18n
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 | 
            -
                - -  | 
| 31 | 
            +
                - - '>='
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version: '0 | 
| 33 | 
            +
                    version: '0'
         | 
| 34 34 | 
             
              type: :runtime
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 | 
            -
                - -  | 
| 38 | 
            +
                - - '>='
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version: '0 | 
| 40 | 
            +
                    version: '0'
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 42 | 
             
              name: term-ansicolor
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 | 
            -
                - -  | 
| 45 | 
            +
                - - '>='
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version: ' | 
| 47 | 
            +
                    version: '0'
         | 
| 48 48 | 
             
              type: :runtime
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 | 
            -
                - -  | 
| 52 | 
            +
                - - '>='
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version: ' | 
| 54 | 
            +
                    version: '0'
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: coveralls
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 58 | 
             
                requirements:
         | 
| 59 | 
            -
                - -  | 
| 59 | 
            +
                - - '>='
         | 
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            -
                    version: '0 | 
| 61 | 
            +
                    version: '0'
         | 
| 62 62 | 
             
              type: :development
         | 
| 63 63 | 
             
              prerelease: false
         | 
| 64 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 65 | 
             
                requirements:
         | 
| 66 | 
            -
                - -  | 
| 66 | 
            +
                - - '>='
         | 
| 67 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            -
                    version: '0 | 
| 68 | 
            +
                    version: '0'
         | 
| 69 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 70 | 
             
              name: guard
         | 
| 71 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 72 | 
             
                requirements:
         | 
| 73 | 
            -
                - -  | 
| 73 | 
            +
                - - '>='
         | 
| 74 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            -
                    version: ' | 
| 75 | 
            +
                    version: '0'
         | 
| 76 76 | 
             
              type: :development
         | 
| 77 77 | 
             
              prerelease: false
         | 
| 78 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 79 | 
             
                requirements:
         | 
| 80 | 
            -
                - -  | 
| 80 | 
            +
                - - '>='
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            -
                    version: ' | 
| 82 | 
            +
                    version: '0'
         | 
| 83 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 84 84 | 
             
              name: guard-bundler
         | 
| 85 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 86 | 
             
                requirements:
         | 
| 87 | 
            -
                - -  | 
| 87 | 
            +
                - - '>='
         | 
| 88 88 | 
             
                  - !ruby/object:Gem::Version
         | 
| 89 | 
            -
                    version: ' | 
| 89 | 
            +
                    version: '0'
         | 
| 90 90 | 
             
              type: :development
         | 
| 91 91 | 
             
              prerelease: false
         | 
| 92 92 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 93 | 
             
                requirements:
         | 
| 94 | 
            -
                - -  | 
| 94 | 
            +
                - - '>='
         | 
| 95 95 | 
             
                  - !ruby/object:Gem::Version
         | 
| 96 | 
            -
                    version: ' | 
| 96 | 
            +
                    version: '0'
         | 
| 97 97 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 98 98 | 
             
              name: guard-rubocop
         | 
| 99 99 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 100 | 
             
                requirements:
         | 
| 101 | 
            -
                - -  | 
| 101 | 
            +
                - - '>='
         | 
| 102 102 | 
             
                  - !ruby/object:Gem::Version
         | 
| 103 | 
            -
                    version: ' | 
| 103 | 
            +
                    version: '0'
         | 
| 104 104 | 
             
              type: :development
         | 
| 105 105 | 
             
              prerelease: false
         | 
| 106 106 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 107 | 
             
                requirements:
         | 
| 108 | 
            -
                - -  | 
| 108 | 
            +
                - - '>='
         | 
| 109 109 | 
             
                  - !ruby/object:Gem::Version
         | 
| 110 | 
            -
                    version: ' | 
| 110 | 
            +
                    version: '0'
         | 
| 111 111 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 112 112 | 
             
              name: guard-rspec
         | 
| 113 113 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 114 114 | 
             
                requirements:
         | 
| 115 | 
            -
                - -  | 
| 115 | 
            +
                - - '>='
         | 
| 116 116 | 
             
                  - !ruby/object:Gem::Version
         | 
| 117 | 
            -
                    version: ' | 
| 117 | 
            +
                    version: '0'
         | 
| 118 118 | 
             
              type: :development
         | 
| 119 119 | 
             
              prerelease: false
         | 
| 120 120 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 121 | 
             
                requirements:
         | 
| 122 | 
            -
                - -  | 
| 122 | 
            +
                - - '>='
         | 
| 123 123 | 
             
                  - !ruby/object:Gem::Version
         | 
| 124 | 
            -
                    version: ' | 
| 124 | 
            +
                    version: '0'
         | 
| 125 125 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 126 126 | 
             
              name: listen
         | 
| 127 127 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 128 128 | 
             
                requirements:
         | 
| 129 | 
            -
                - -  | 
| 129 | 
            +
                - - '='
         | 
| 130 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 131 | 
            +
                    version: 3.0.8
         | 
| 132 | 
            +
              type: :development
         | 
| 133 | 
            +
              prerelease: false
         | 
| 134 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 135 | 
            +
                requirements:
         | 
| 136 | 
            +
                - - '='
         | 
| 130 137 | 
             
                  - !ruby/object:Gem::Version
         | 
| 131 | 
            -
                    version: 3.0. | 
| 138 | 
            +
                    version: 3.0.8
         | 
| 139 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 140 | 
            +
              name: rspec
         | 
| 141 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 142 | 
            +
                requirements:
         | 
| 132 143 | 
             
                - - '>='
         | 
| 133 144 | 
             
                  - !ruby/object:Gem::Version
         | 
| 134 | 
            -
                    version:  | 
| 145 | 
            +
                    version: '0'
         | 
| 135 146 | 
             
              type: :development
         | 
| 136 147 | 
             
              prerelease: false
         | 
| 137 148 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 138 149 | 
             
                requirements:
         | 
| 139 | 
            -
                - - ~>
         | 
| 140 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 141 | 
            -
                    version: 3.0.7
         | 
| 142 150 | 
             
                - - '>='
         | 
| 143 151 | 
             
                  - !ruby/object:Gem::Version
         | 
| 144 | 
            -
                    version:  | 
| 152 | 
            +
                    version: '0'
         | 
| 145 153 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 146 | 
            -
              name:  | 
| 154 | 
            +
              name: ruby_dep
         | 
| 147 155 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 148 156 | 
             
                requirements:
         | 
| 149 | 
            -
                - -  | 
| 157 | 
            +
                - - '='
         | 
| 150 158 | 
             
                  - !ruby/object:Gem::Version
         | 
| 151 | 
            -
                    version:  | 
| 159 | 
            +
                    version: 1.3.1
         | 
| 152 160 | 
             
              type: :development
         | 
| 153 161 | 
             
              prerelease: false
         | 
| 154 162 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 155 163 | 
             
                requirements:
         | 
| 156 | 
            -
                - -  | 
| 164 | 
            +
                - - '='
         | 
| 157 165 | 
             
                  - !ruby/object:Gem::Version
         | 
| 158 | 
            -
                    version:  | 
| 166 | 
            +
                    version: 1.3.1
         | 
| 167 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 168 | 
            +
              name: terminal-notifier
         | 
| 169 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 170 | 
            +
                requirements:
         | 
| 171 | 
            +
                - - '>='
         | 
| 172 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 173 | 
            +
                    version: '0'
         | 
| 174 | 
            +
              type: :development
         | 
| 175 | 
            +
              prerelease: false
         | 
| 176 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 177 | 
            +
                requirements:
         | 
| 178 | 
            +
                - - '>='
         | 
| 179 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 180 | 
            +
                    version: '0'
         | 
| 159 181 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 160 182 | 
             
              name: terminal-notifier-guard
         | 
| 161 183 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 162 184 | 
             
                requirements:
         | 
| 163 | 
            -
                - -  | 
| 185 | 
            +
                - - '>='
         | 
| 186 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 187 | 
            +
                    version: '0'
         | 
| 188 | 
            +
              type: :development
         | 
| 189 | 
            +
              prerelease: false
         | 
| 190 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 191 | 
            +
                requirements:
         | 
| 192 | 
            +
                - - '>='
         | 
| 193 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 194 | 
            +
                    version: '0'
         | 
| 195 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 196 | 
            +
              name: yard
         | 
| 197 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 198 | 
            +
                requirements:
         | 
| 199 | 
            +
                - - '>='
         | 
| 164 200 | 
             
                  - !ruby/object:Gem::Version
         | 
| 165 | 
            -
                    version: ' | 
| 201 | 
            +
                    version: '0'
         | 
| 166 202 | 
             
              type: :development
         | 
| 167 203 | 
             
              prerelease: false
         | 
| 168 204 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 169 205 | 
             
                requirements:
         | 
| 170 | 
            -
                - -  | 
| 206 | 
            +
                - - '>='
         | 
| 171 207 | 
             
                  - !ruby/object:Gem::Version
         | 
| 172 | 
            -
                    version: ' | 
| 208 | 
            +
                    version: '0'
         | 
| 173 209 | 
             
            description: 
         | 
| 174 210 | 
             
            email: brewster1134@gmail.com
         | 
| 175 211 | 
             
            executables: []
         | 
| @@ -184,6 +220,7 @@ files: | |
| 184 220 | 
             
            - lib/cli_miami/global.rb
         | 
| 185 221 | 
             
            - lib/cli_miami/say.rb
         | 
| 186 222 | 
             
            - lib/cli_miami/validation.rb
         | 
| 223 | 
            +
            - lib/cli_miami/version.rb
         | 
| 187 224 | 
             
            - spec/fixtures/i18n.yml
         | 
| 188 225 | 
             
            - spec/lib/cli_miami/ask_spec.rb
         | 
| 189 226 | 
             
            - spec/lib/cli_miami/error_spec.rb
         |