params-registry 0.1.6 → 0.1.7
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 -7
- data/lib/params/registry/types.rb +13 -3
- data/lib/params/registry/version.rb +1 -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: a176c219561e992201c81af4cfa87b348fd408a5d52121ae9483004fdf073af3
|
4
|
+
data.tar.gz: 3d532a4041860f3c09df1c5802e3e4dc27931cd98e13b1a5355f9251a7c73f83
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52eda8b9e02f1f82dd908a07d5c2f4f1179ec2a401dff5562b582f55bdc4989d11ae5956664784fc1dfcd58ccaa5d6899aa0d651794021f408e9c0e84c65c188
|
7
|
+
data.tar.gz: bf940c462597a0c43123e72f795e17f7778ff7ec2b73c7b9bcaea5c2e09b3a7472767342a12d4d155321c1033cf291571a0d91158745c6bae09af7f33f49ec4e
|
@@ -64,8 +64,8 @@ class Params::Registry::Instance
|
|
64
64
|
#
|
65
65
|
def initialize registry, struct, defaults: false, force: false
|
66
66
|
if registry.is_a? Params::Registry::Group
|
67
|
-
@group = registry
|
68
|
-
@registry = registry.registry
|
67
|
+
@group = registry.id
|
68
|
+
@registry = registry = registry.registry
|
69
69
|
else
|
70
70
|
@group = nil
|
71
71
|
@registry = registry
|
@@ -74,13 +74,17 @@ class Params::Registry::Instance
|
|
74
74
|
@content = {}
|
75
75
|
@extra = {}
|
76
76
|
|
77
|
+
warn "wtf lol #{@registry[@group].inspect}"
|
78
|
+
|
77
79
|
# canonicalize the keys of the struct
|
78
80
|
struct = Types::Input[struct].reduce({}) do |hash, pair|
|
79
81
|
key, value = pair
|
80
|
-
if t = registry[@group][key]
|
82
|
+
if t = @registry[@group][key]
|
83
|
+
warn "yep #{key.inspect}"
|
81
84
|
hash[t.id] = value
|
82
85
|
else
|
83
|
-
|
86
|
+
warn "nope #{key.inspect}"
|
87
|
+
@extra[key] = value
|
84
88
|
end
|
85
89
|
|
86
90
|
hash
|
@@ -90,15 +94,15 @@ class Params::Registry::Instance
|
|
90
94
|
del = Set[] # mark for deletion
|
91
95
|
|
92
96
|
# grab the complements now
|
93
|
-
complements = @content[registry.complement.id] =
|
94
|
-
registry.complement.process(*struct.fetch(registry.complement.id, []))
|
97
|
+
complements = @content[@registry.complement.id] =
|
98
|
+
@registry.complement.process(*struct.fetch(@registry.complement.id, []))
|
95
99
|
|
96
100
|
# warn registry.templates.ranked.inspect
|
97
101
|
|
98
102
|
# warn complements.class
|
99
103
|
|
100
104
|
# now we get the ranked templates and pass them through
|
101
|
-
registry[@group].ranked.each do |templates|
|
105
|
+
@registry[@group].ranked.each do |templates|
|
102
106
|
# give me the intersection of templates
|
103
107
|
templates.values.each do |t|
|
104
108
|
|
@@ -102,6 +102,15 @@ module Params::Registry::Types
|
|
102
102
|
s.to_s.upcase.to_sym
|
103
103
|
end
|
104
104
|
|
105
|
+
# This one is symbol-*ish*
|
106
|
+
Symbolish = self.Constructor(::Object) do |x|
|
107
|
+
if [::String, ::Symbol].any? { |c| x.is_a? c }
|
108
|
+
Symbol[x]
|
109
|
+
else
|
110
|
+
x
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
105
114
|
# @!group Dates & Times
|
106
115
|
|
107
116
|
# Ye olde {::Date}
|
@@ -151,15 +160,16 @@ module Params::Registry::Types
|
|
151
160
|
input = ::URI.decode_www_form input if input.is_a? ::String
|
152
161
|
|
153
162
|
case input
|
154
|
-
when ::Hash then Hash.map(
|
163
|
+
when ::Hash then Hash.map(Symbolish, Array.of(String))[input]
|
155
164
|
when ::Array
|
156
165
|
input.reduce({}) do |out, pair|
|
157
166
|
k, *v = Strict::Array.constrained(min_size: 2)[pair]
|
158
|
-
(out[k
|
167
|
+
(out[Symbolish[k]] ||= []).push(*v)
|
159
168
|
out
|
160
169
|
end
|
161
170
|
else
|
162
|
-
raise Dry::Types::CoercionError,
|
171
|
+
raise Dry::Types::CoercionError,
|
172
|
+
"not sure what to do with #{input.inspect}"
|
163
173
|
end
|
164
174
|
end
|
165
175
|
|
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.7
|
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-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-types
|