params-registry 0.1.8 → 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: 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'