l43_opt_parser 0.3.0 → 0.3.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e144f1cebe465e80a8e104c546ecb0024b9ec0b2dc74dec99e0acf1970b11254
4
- data.tar.gz: 180b81f733118b0aa427acd802a16d0f32968eb8f64740fd75439a34ed991f62
3
+ metadata.gz: 56566e37e53f4f9a56960641c73054c2441aa13a74397f62b563eca89470b529
4
+ data.tar.gz: efa2e5d8a9cca077cc28073d52c123545ff173fb55cc2e59ecf5c843734ad445
5
5
  SHA512:
6
- metadata.gz: 2347bc5fa8dbe0ae1b51beaa02e53328ca8381888ea17193746c27132c7d17497844c1c5b43fb225ffcbbc9e276c9812675eaf28b181a6296336e88513e8a56a
7
- data.tar.gz: 5f3815d126de479d238852bba576610fc1319ec8ef5a9f0618039d3753c156f630385679c0ba33196f78b8de805ba6f8a3c17a7597e0b46389d0767d67ac0b84
6
+ metadata.gz: 86e1ccc819b3764a84365b93655e08dc7361c88acef54f5f5dcd0ab19a4b7ae50da1253d30e116cf68515503d74649cdb77284ecd6ad8abd602c3bec7ec1916e
7
+ data.tar.gz: ef7bd636ae7810d746f4f108f3140ad707132a4b80a3583e697174d2153a35a0ec3b8067601bf8c06cf5e568ee317b622d21b9813b17cf06485dd5e36e64d3a1
@@ -28,7 +28,11 @@ module L43
28
28
  multiple: false,
29
29
  set: nil,
30
30
  short: nil,
31
- value: nil
31
+ value: nil do |values|
32
+ if Array === values.set
33
+ {set: Set.new(values.set)}
34
+ end
35
+ end
32
36
 
33
37
  def check_value(value, keywords)
34
38
  if keywords.has_key?(real_name) && !multiple
@@ -51,6 +55,7 @@ module L43
51
55
  "bad value for keyword #{name}: #{value} (not in set: #{set.keys.inspect})"
52
56
  end
53
57
  end
58
+
54
59
  end
55
60
  end
56
61
  end
@@ -10,6 +10,7 @@ module L43
10
10
  def defaults = @__defaults__ ||= {}
11
11
  def errors = @__errors__ ||= []
12
12
  def flags = @__flags__ ||= {}
13
+ def given_kwds = @__given_kwds__ ||= Set.new
13
14
  def hooks = @__hooks__ ||= []
14
15
  def keywords = @__keywords__ ||= {}
15
16
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  module L43
4
4
  class OptParser
5
- VERSION = '0.3.0'
5
+ VERSION = '0.3.1'
6
6
  end
7
7
  end
8
8
  # SPDX-License-Identifier: AGPL-3.0-or-later
@@ -100,13 +100,13 @@ module L43
100
100
  @arguments = arguments
101
101
  parse_arguments
102
102
 
103
- return Result.error(errors) unless errors.empty?
103
+ return Result.error(errors.uniq) unless errors.empty?
104
104
  if constrained
105
105
  mo = make_open_object
106
106
  kwds = mo.new(**defaults.merge(keywords_values))
107
107
  post_checks!(kwds)
108
108
  kwds = run_hooks(kwds)
109
- result = OpenStruct.new(kwds_name => kwds, args:, errors: errors.uniq).freeze
109
+ result = OpenStruct.new(kwds_name => kwds, args:, given_kwds:).freeze
110
110
  Result.ok(result)
111
111
  else
112
112
  Result.ok(OpenStruct.new(args:, errors:, kwds: OpenStruct.new(**keywords_values)).freeze)
@@ -167,6 +167,7 @@ module L43
167
167
  end
168
168
 
169
169
  def assign_value(keyword, value)
170
+ given_kwds << keyword.real_name
170
171
  if keyword.multiple
171
172
  keywords_values[keyword.real_name] << value
172
173
  else
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: l43_opt_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Dober
@@ -29,14 +29,14 @@ dependencies:
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: 0.2.1
32
+ version: 0.3.0
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 0.2.1
39
+ version: 0.3.0
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: l43_core
42
42
  requirement: !ruby/object:Gem::Requirement
@@ -57,14 +57,14 @@ dependencies:
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: 0.2.9
60
+ version: 0.3.0
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 0.2.9
67
+ version: 0.3.0
68
68
  description: |
69
69
  A highly customizable option parser, allowing for different
70
70
  option syntax and returning custom classes' instances depending on
@@ -100,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
100
  - !ruby/object:Gem::Version
101
101
  version: '0'
102
102
  requirements: []
103
- rubygems_version: 4.0.6
103
+ rubygems_version: 4.0.10
104
104
  specification_version: 4
105
105
  summary: Extract Specs from Markdown
106
106
  test_files: []