lab42_rgxargs 0.1.6 → 0.1.11

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: 6c2b779615c5996b97aaa6fbb336adaecaba2119168d9cd6e28665bca4f26587
4
- data.tar.gz: d1f125fb9a12342f54c3f6748d0a93c3782fc46d0abefd0330324a1ebe3aee3a
3
+ metadata.gz: ca14ba075655f11152e54ca1f077ccf458ae6b7ef833c623e6ed3d0f965f85ff
4
+ data.tar.gz: 39a9961deed3864e5a9c08e2222de1e0aba559a5266cbcf4975667d9057700be
5
5
  SHA512:
6
- metadata.gz: dab565b74468cc86dfdedcc162343fc9b85eae244d908a0422b78ef68c5cae65c49e1eb0acf8463bc0a492a645f89441c2f71438e7671eac4534aca89b19bbdf
7
- data.tar.gz: 7bb8d96d57afeb88a720c6500dcefda5b2f8fc24e877112c0930e6062e0918b5fa304aa3816e757a1885e51567ed24c3cfec238b73d30678d6e99fe7be4b8410
6
+ metadata.gz: 2db1a82994ad767dd2448cbab0a5d42020187870918eff982ddd8a66066976e36a1ecd650ae3eae4c1f18c5c403b170240364c00d8732f7db631b92e9efb785e
7
+ data.tar.gz: 4d06c452ea7638e194ea9e50e704675748e08dbfb5ec96df9a3227cdc377f9151aeee542c345701fab6028458ec9d25c2a93b1cd5b30c188904640203222df89
@@ -1,6 +1,7 @@
1
1
  require 'forwardable'
2
2
  require 'ostruct'
3
3
  require 'lab42/enumerable'
4
+ require 'set'
4
5
  module Lab42
5
6
 
6
7
  class Rgxargs
@@ -20,10 +21,12 @@ module Lab42
20
21
  attr_reader :allowed, :args, :conversions, :defaults, :defined_rules, :errors, :options, :required, :syntaxes
21
22
 
22
23
 
23
- def add_conversion(param, conversion, required=nil, &block)
24
+ def add_conversion(param, conversion=nil, required=nil, &block)
24
25
  case conversion
25
26
  when Symbol
26
27
  _add_symbolic_conversion(param, conversion, required)
28
+ when NilClass
29
+ _add_simple_conversion(param, block)
27
30
  else
28
31
  _add_proc_conversion(param, conversion, block, required)
29
32
  end
@@ -53,6 +56,14 @@ module Lab42
53
56
  end
54
57
 
55
58
 
59
+ def allows name, matcher=nil, &converter
60
+ add_conversion(name, matcher, &converter)
61
+ end
62
+
63
+ def needs name, matcher=nil, &converter
64
+ add_conversion(name, matcher, :required, &converter)
65
+ end
66
+
56
67
  private
57
68
 
58
69
  def initialize &blk
@@ -62,11 +73,11 @@ module Lab42
62
73
  @defaults = {}
63
74
  @defined_rules = []
64
75
  @errors = []
65
- @required = Set.new
76
+ @required = ::Set.new
66
77
  @syntaxes = []
67
78
 
68
79
  instance_exec(&blk) if blk
69
- @options = OpenStruct.new(defaults)
80
+ @options = ::OpenStruct.new(defaults)
70
81
  end
71
82
 
72
83
  def _convert(value, name:)
@@ -95,6 +106,12 @@ module Lab42
95
106
  end
96
107
  end
97
108
 
109
+ def _add_simple_conversion(param, block)
110
+ Array(param).each do |para|
111
+ conversions[para] = block
112
+ end
113
+ end
114
+
98
115
  def _add_symbolic_conversion(param, conversion, required)
99
116
  Array(param).each do |para|
100
117
  @required.add para if required == :required
@@ -0,0 +1,5 @@
1
+ module Lab42
2
+ class Rgxargs
3
+ VERSION = "0.1.11"
4
+ end
5
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lab42_rgxargs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Dober
@@ -81,6 +81,7 @@ files:
81
81
  - lib/lab42/rgxargs/predefined_matchers.rb
82
82
  - lib/lab42/rgxargs/syntax.rb
83
83
  - lib/lab42/rgxargs/syntax_definer.rb
84
+ - lib/lab42/rgxargs/version.rb
84
85
  homepage: https://github.com/robertdober/lab42_rgxargs
85
86
  licenses:
86
87
  - Apache-2.0