params-registry 0.1.8 → 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: bcd8659d212d3467f58e09a552bc105d50e35bea4c695c40f9de744a978e4697
4
- data.tar.gz: 03522f0aec72a7d4e3d329051ba18c60a6846cf96e1dfadc8efdea86c801f3d0
3
+ metadata.gz: 9acf2f9ad9e56ea19a32e0803bf20559993a0d30ada1a11591e32de15297d339
4
+ data.tar.gz: 0cfcf9b1800162266314363889ea23577700c92c55853b54925bee4d2d204df6
5
5
  SHA512:
6
- metadata.gz: 8e99fd842ae67daa05f39b60832f2ed03c1446b52b856ac6f661f7b3280cb567b0e7597d0d2f45c288542f14c188ab5be331a3989466c72378bbfdb213b2fca7
7
- data.tar.gz: f5f0adaa738a61a7556c7e3e7f8eefccb498b0d835b6c774f56702ea938b8b02827f9c5d1f8289668b4d1719422febb8073b140737ce346c197fdeda34132d9c
6
+ metadata.gz: be110642e2b2677745e58c146c1ac80f2f34171912daa2c9047785ab3490c89ad5f7ecaf970b4951606391983dc0bd52d44d0cd6fd1f62d95b862c77692f45a0
7
+ data.tar.gz: '0663797215b3d2b4162ccf72ed2f90aa1eaf47471a7e1cb85209eeb29d1dd5cb2284b6ea1b69b2f3fdb72a97325a4f018d8f47913c0f914af4e50a378d5be521'
@@ -79,6 +79,7 @@ class Params::Registry::Instance
79
79
  # canonicalize the keys of the struct
80
80
  struct = Types::Input[struct].reduce({}) do |hash, pair|
81
81
  key, value = pair
82
+ # warn "kv: #{key.inspect} => #{value.inspect}"
82
83
  if t = @registry[@group][key]
83
84
  # warn "yep #{key.inspect}"
84
85
  hash[t.id] = value
@@ -198,6 +199,10 @@ class Params::Registry::Instance
198
199
  out
199
200
  end
200
201
 
202
+ def inspect
203
+ "<#{self.class} content: #{@content.inspect}, extra: #{@extra.inspect}>"
204
+ end
205
+
201
206
  # # Retrieve an {Params::Registry::Instance} that isolates the
202
207
  # # intersection of one or more groups
203
208
  # #
@@ -189,7 +189,7 @@ class Params::Registry::Template
189
189
  # valid values are drawn.
190
190
  # @return [Object, nil]
191
191
  def universe
192
- refresh! unless @universe
192
+ refresh! if @unifunc and not @universe
193
193
  @universe
194
194
  end
195
195
 
@@ -403,7 +403,7 @@ class Params::Registry::Template
403
403
  @universe = univ
404
404
  end
405
405
 
406
- nil
406
+ self
407
407
  end
408
408
 
409
409
  # Return a suitable representation for debugging.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "version"
3
+ require_relative 'version'
4
4
 
5
5
  require 'dry-types' # let's try to use this and not hate it
6
6
  require 'set' # for some reason Set is not in the kernel but Range is
@@ -157,6 +157,7 @@ module Params::Registry::Types
157
157
 
158
158
  Input = self.Constructor(::Hash) do |input|
159
159
  input = input.query.to_s if input.is_a? ::URI
160
+ input = '' if input.nil?
160
161
  input = ::URI.decode_www_form input if input.is_a? ::String
161
162
 
162
163
  case input
@@ -3,6 +3,6 @@
3
3
  module Params
4
4
  class Registry
5
5
  # The module version
6
- VERSION = "0.1.8"
6
+ VERSION = '0.1.11'
7
7
  end
8
8
  end
@@ -135,6 +135,31 @@ class Params::Registry
135
135
  #
136
136
  def templates ; @templates.values; end
137
137
 
138
+ # Assign a new sequence of templates to the group.
139
+ #
140
+ # @param templates [Array, Hash]
141
+ #
142
+ # @return [Array, Hash] whatever was passed
143
+ # in because Ruby ignores the output
144
+ #
145
+ def templates= templates
146
+ templates = templates.to_a if templates.is_a? Hash
147
+
148
+ raise ArgumentError,
149
+ "Don't know what to do with #{templates.class}" unless
150
+ templates.respond_to? :to_a
151
+
152
+ # empty out the actual instance member
153
+ @templates.clear
154
+
155
+ # this should destructure appropriately (XXX MAYBE???) and also
156
+ # use the overloaded subscript assignment method
157
+ templates.to_a.each { |id, spec| self[id] = spec || id }
158
+
159
+ # now return the new members
160
+ @templates.values
161
+ end
162
+
138
163
  # Return the canonical identifier for the template.
139
164
  #
140
165
  # @param id [Object] the identifier, canonical or otherwise.
@@ -381,11 +406,12 @@ class Params::Registry
381
406
 
382
407
  # Refresh any stateful elements of the templates.
383
408
  #
384
- # @return [void]
409
+ # @return [self]
385
410
  #
386
411
  def refresh!
387
412
  templates.each { |t| t.refresh! }
388
- nil
413
+
414
+ self
389
415
  end
390
416
 
391
417
  # @!group Quasi-static methods to override in subclasses
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.8
4
+ version: 0.1.11
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-13 00:00:00.000000000 Z
11
+ date: 2025-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-types
@@ -69,7 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0'
71
71
  requirements: []
72
- rubygems_version: 3.3.15
72
+ rubygems_version: 3.4.20
73
73
  signing_key:
74
74
  specification_version: 4
75
75
  summary: 'Params::Registry: a registry for URI query parameters'