params-registry 0.1.4 → 0.1.5
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/params/registry/instance.rb +11 -5
- data/lib/params/registry/version.rb +1 -1
- data/lib/params/registry.rb +13 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a042bd9fe8e18875fbe751867cf08830d8e23e965c0b4c9053e1948a474fe6da
|
|
4
|
+
data.tar.gz: 37c92f7e5de26e422eda6441696c17319009edf0a57eeac813f118b8d7055c7b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3e0c5afa52cc9fde678195fdc48e52c470ca7061d70f478216937a8485b38c5f071904992b53370ce8fba63cbbe397041cbf1c852f476b99edd548f756cad25d
|
|
7
|
+
data.tar.gz: 39e52f72ecf4f60f7834d9f406a5cb98f2d9e161ea5bfe01d34fb3ae821dbb454f4813286056e772457b4a9f1caae75d12681d98220db8c945ba858652c5996e
|
|
@@ -63,15 +63,21 @@ class Params::Registry::Instance
|
|
|
63
63
|
# resembles the output of `URI.decode_www_form`.
|
|
64
64
|
#
|
|
65
65
|
def initialize registry, struct, defaults: false, force: false
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
if registry.is_a? Params::Registry::Group
|
|
67
|
+
@group = registry
|
|
68
|
+
@registry = registry.registry
|
|
69
|
+
else
|
|
70
|
+
@group = nil
|
|
71
|
+
@registry = registry
|
|
72
|
+
end
|
|
73
|
+
|
|
68
74
|
@content = {}
|
|
69
75
|
@extra = {}
|
|
70
76
|
|
|
71
77
|
# canonicalize the keys of the struct
|
|
72
|
-
struct = struct.reduce({}) do |hash, pair|
|
|
78
|
+
struct = Types::Input[struct].reduce({}) do |hash, pair|
|
|
73
79
|
key, value = pair
|
|
74
|
-
if t = registry
|
|
80
|
+
if t = registry[@group][key]
|
|
75
81
|
hash[t.id] = value
|
|
76
82
|
else
|
|
77
83
|
extra[key] = value
|
|
@@ -92,7 +98,7 @@ class Params::Registry::Instance
|
|
|
92
98
|
# warn complements.class
|
|
93
99
|
|
|
94
100
|
# now we get the ranked templates and pass them through
|
|
95
|
-
registry.
|
|
101
|
+
registry[@group].ranked.each do |templates|
|
|
96
102
|
# give me the intersection of templates
|
|
97
103
|
templates.values.each do |t|
|
|
98
104
|
|
data/lib/params/registry.rb
CHANGED
|
@@ -89,7 +89,7 @@ class Params::Registry
|
|
|
89
89
|
template = registry.template_class.new registry, id, **spec
|
|
90
90
|
end
|
|
91
91
|
|
|
92
|
-
#
|
|
92
|
+
# make sure we aren't calling ourselves
|
|
93
93
|
registry.templates[id] = template unless registry.templates.equal? self
|
|
94
94
|
|
|
95
95
|
# okay now actually assign
|
|
@@ -209,6 +209,18 @@ class Params::Registry
|
|
|
209
209
|
"#<#{self.class}: #{id} {#{keys.join ', '}}>"
|
|
210
210
|
end
|
|
211
211
|
|
|
212
|
+
# Process the parameters and return a {Params::Registry::Instance}.
|
|
213
|
+
#
|
|
214
|
+
# @param params
|
|
215
|
+
# [String, URI, Hash{#to_sym => Array}, Array<Array<(#to_sym, Object)>>]
|
|
216
|
+
# the parameter set, in a dizzying variety of inputs.
|
|
217
|
+
#
|
|
218
|
+
# @return [Params::Registry::Instance] the instance.
|
|
219
|
+
#
|
|
220
|
+
def process params
|
|
221
|
+
registry.instance_class.new self, Types::Input[params]
|
|
222
|
+
end
|
|
223
|
+
|
|
212
224
|
end
|
|
213
225
|
|
|
214
226
|
private
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: params-registry
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Dorian Taylor
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-02-
|
|
11
|
+
date: 2024-02-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: dry-types
|