simple_option_parser 0.6 → 0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e958ca43fa05b22e290364dfb8ba6c515a84c8c7a9cc318a9334d1ce38180c5b
4
- data.tar.gz: 1abf96ef64afe6b0d281da20cc5d4b72977cfdbc8833e1ca9536060b1f5453f2
3
+ metadata.gz: e770c9fea7d4e51cfb75e8604d4a4ab833766d1cf71ed0cdca45baff70d302f7
4
+ data.tar.gz: 3d0a6988fe4d43e8ed7b8ddb7de0b6d0fe60b87cb6526352d763f333e7bee42f
5
5
  SHA512:
6
- metadata.gz: 036ac773cc7cf90f61d8635766939feeef8c39206fd5f560ffd52e3eec61587a15332ef464571273a492c19f1f45eb7bf0ddff2ddecdb432b6aada0382edf14d
7
- data.tar.gz: 6c26e4b1a709e85fe3c8fdec989debbe649ca1a1966f0aefd71d218d6cbf12666a7ac6da2cf3703c4caafe2271ea2c041a8440b8e3982564606b9772d578eb9a
6
+ metadata.gz: 76faa2caa6a40edde2bdf26a56a72c2c97d7be42d0b15717ec9e716b4464190f1aa33f691d5c3e8208f8b5d7fcb607eadccca840d78653aa7f787efff9e7ed05
7
+ data.tar.gz: a679d33ab4801048c4ada587d5a68cd26cf9f5c64231ff12fa9086b7e8049194625fd33e19616044e102c9fdb9df6c9c4c919b8e3b9eaec554373b50e8e8aa07
@@ -13,15 +13,21 @@ class SimpleOptionParser
13
13
  end
14
14
 
15
15
  def parse(argv)
16
- options = @defaults.dup
16
+ options = {}
17
17
  while argv.first =~ %r{^--([\w\-]+)(?:=(.*))?$}
18
18
  key, value = $1, $2
19
19
  key = key.gsub('-', '_').to_sym
20
- value = true if value.nil?
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.6'
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.4'
17
+ s.add_dependency 'hashstruct', '~> 1.5'
18
18
 
19
- s.add_development_dependency 'minitest', '~> 5.19'
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.0'
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.6'
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-07-31 00:00:00.000000000 Z
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.4'
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.4'
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.19'
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.19'
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.0'
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.0'
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.4.17
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.