simple_option_parser 0.6 → 0.7
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/simple_option_parser.rb +9 -3
- data/simple_option_parser.gemspec +4 -4
- data/test/test.rb +9 -0
- metadata +9 -9
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: e770c9fea7d4e51cfb75e8604d4a4ab833766d1cf71ed0cdca45baff70d302f7
         | 
| 4 | 
            +
              data.tar.gz: 3d0a6988fe4d43e8ed7b8ddb7de0b6d0fe60b87cb6526352d763f333e7bee42f
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 76faa2caa6a40edde2bdf26a56a72c2c97d7be42d0b15717ec9e716b4464190f1aa33f691d5c3e8208f8b5d7fcb607eadccca840d78653aa7f787efff9e7ed05
         | 
| 7 | 
            +
              data.tar.gz: a679d33ab4801048c4ada587d5a68cd26cf9f5c64231ff12fa9086b7e8049194625fd33e19616044e102c9fdb9df6c9c4c919b8e3b9eaec554373b50e8e8aa07
         | 
    
        data/lib/simple_option_parser.rb
    CHANGED
    
    | @@ -13,15 +13,21 @@ class SimpleOptionParser | |
| 13 13 | 
             
              end
         | 
| 14 14 |  | 
| 15 15 | 
             
              def parse(argv)
         | 
| 16 | 
            -
                options =  | 
| 16 | 
            +
                options = {}
         | 
| 17 17 | 
             
                while argv.first =~ %r{^--([\w\-]+)(?:=(.*))?$}
         | 
| 18 18 | 
             
                  key, value = $1, $2
         | 
| 19 19 | 
             
                  key = key.gsub('-', '_').to_sym
         | 
| 20 | 
            -
                  value =  | 
| 20 | 
            +
                  value = if value.nil?
         | 
| 21 | 
            +
                    true
         | 
| 22 | 
            +
                  elsif options.has_key?(key)
         | 
| 23 | 
            +
                    [options[key], value].flatten
         | 
| 24 | 
            +
                  else
         | 
| 25 | 
            +
                    value
         | 
| 26 | 
            +
                  end
         | 
| 21 27 | 
             
                  options[key] = value
         | 
| 22 28 | 
             
                  argv.shift
         | 
| 23 29 | 
             
                end
         | 
| 24 | 
            -
                HashStruct.new(options)
         | 
| 30 | 
            +
                HashStruct.new(@defaults.merge(options))
         | 
| 25 31 | 
             
              end
         | 
| 26 32 |  | 
| 27 33 | 
             
            end
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            Gem::Specification.new do |s|
         | 
| 2 2 | 
             
              s.name          = 'simple_option_parser'
         | 
| 3 | 
            -
              s.version       = '0. | 
| 3 | 
            +
              s.version       = '0.7'
         | 
| 4 4 | 
             
              s.summary       = 'A very simple option parser for ARGV.'
         | 
| 5 5 | 
             
              s.author        = 'John Labovitz'
         | 
| 6 6 | 
             
              s.email         = 'johnl@johnlabovitz.com'
         | 
| @@ -14,9 +14,9 @@ Gem::Specification.new do |s| | |
| 14 14 | 
             
              s.executables   = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
         | 
| 15 15 | 
             
              s.require_path  = 'lib'
         | 
| 16 16 |  | 
| 17 | 
            -
              s.add_dependency 'hashstruct', '~> 1. | 
| 17 | 
            +
              s.add_dependency 'hashstruct', '~> 1.5'
         | 
| 18 18 |  | 
| 19 | 
            -
              s.add_development_dependency 'minitest', '~> 5. | 
| 19 | 
            +
              s.add_development_dependency 'minitest', '~> 5.20'
         | 
| 20 20 | 
             
              s.add_development_dependency 'minitest-power_assert', '~> 0.3'
         | 
| 21 | 
            -
              s.add_development_dependency 'rake', '~> 13. | 
| 21 | 
            +
              s.add_development_dependency 'rake', '~> 13.1'
         | 
| 22 22 | 
             
            end
         | 
    
        data/test/test.rb
    CHANGED
    
    | @@ -49,6 +49,15 @@ class SimpleOptionParser | |
| 49 49 | 
             
                  }
         | 
| 50 50 | 
             
                end
         | 
| 51 51 |  | 
| 52 | 
            +
                def test_multiple
         | 
| 53 | 
            +
                  op = SimpleOptionParser.new
         | 
| 54 | 
            +
                  argv = %w{--foo --bar=a --bar=b --zot=c}
         | 
| 55 | 
            +
                  options = op.parse(argv)
         | 
| 56 | 
            +
                  assert {
         | 
| 57 | 
            +
                    options == { foo: true, bar: ['a', 'b'], zot: 'c' }
         | 
| 58 | 
            +
                  }
         | 
| 59 | 
            +
                end
         | 
| 60 | 
            +
             | 
| 52 61 | 
             
              end
         | 
| 53 62 |  | 
| 54 63 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: simple_option_parser
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: '0. | 
| 4 | 
            +
              version: '0.7'
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - John Labovitz
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2023- | 
| 11 | 
            +
            date: 2023-12-26 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: hashstruct
         | 
| @@ -16,28 +16,28 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: '1. | 
| 19 | 
            +
                    version: '1.5'
         | 
| 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: '1. | 
| 26 | 
            +
                    version: '1.5'
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: minitest
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 31 | 
             
                - - "~>"
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version: '5. | 
| 33 | 
            +
                    version: '5.20'
         | 
| 34 34 | 
             
              type: :development
         | 
| 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: '5. | 
| 40 | 
            +
                    version: '5.20'
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 42 | 
             
              name: minitest-power_assert
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -58,14 +58,14 @@ dependencies: | |
| 58 58 | 
             
                requirements:
         | 
| 59 59 | 
             
                - - "~>"
         | 
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            -
                    version: '13. | 
| 61 | 
            +
                    version: '13.1'
         | 
| 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: '13. | 
| 68 | 
            +
                    version: '13.1'
         | 
| 69 69 | 
             
            description: "\n    A very simple option parser for ARGV.\n  "
         | 
| 70 70 | 
             
            email: johnl@johnlabovitz.com
         | 
| 71 71 | 
             
            executables: []
         | 
| @@ -99,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 99 99 | 
             
                - !ruby/object:Gem::Version
         | 
| 100 100 | 
             
                  version: '0'
         | 
| 101 101 | 
             
            requirements: []
         | 
| 102 | 
            -
            rubygems_version: 3. | 
| 102 | 
            +
            rubygems_version: 3.5.3
         | 
| 103 103 | 
             
            signing_key:
         | 
| 104 104 | 
             
            specification_version: 4
         | 
| 105 105 | 
             
            summary: A very simple option parser for ARGV.
         |