lab42_rgxargs 0.1.6 → 0.1.11

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: 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