nxt_registry 0.2.0 → 0.2.1
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/CHANGELOG.md +9 -0
- data/Gemfile.lock +2 -2
- data/lib/nxt_registry/registry.rb +11 -7
- data/lib/nxt_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: 6851c2c3d6dde7438aa6abe438153d4126ea962f948d472a37d8b958830390f3
|
4
|
+
data.tar.gz: '02158d50dd9af0686bd4427e1c41853dca588e686b9a02381263c94700093398'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 04c65be146020a7e3c1e1fa6587cdb9efb0c4b2ab6d76741855fe99a0246e4a5ace755c3184678164f388d41a45ddc6a03c39298c0038ecf13e454f77a5deb74
|
7
|
+
data.tar.gz: f992919cf0d07da41e411b7dff32410678b664f4a12a47e350e0d51e239c6864eaeb549aca4518eae1f122640b99274897e6bc4b39bb6889634e6a32ee137931
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
nxt_registry (0.2.
|
4
|
+
nxt_registry (0.2.1)
|
5
5
|
activesupport
|
6
6
|
|
7
7
|
GEM
|
@@ -14,7 +14,7 @@ GEM
|
|
14
14
|
tzinfo (~> 1.1)
|
15
15
|
zeitwerk (~> 2.2, >= 2.2.2)
|
16
16
|
coderay (1.1.3)
|
17
|
-
concurrent-ruby (1.1.
|
17
|
+
concurrent-ruby (1.1.7)
|
18
18
|
diff-lcs (1.4.4)
|
19
19
|
i18n (1.8.5)
|
20
20
|
concurrent-ruby (~> 1.0)
|
@@ -4,7 +4,7 @@ module NxtRegistry
|
|
4
4
|
@name = name
|
5
5
|
@parent = options[:parent]
|
6
6
|
@is_leaf = true
|
7
|
-
@namespace =
|
7
|
+
@namespace = build_namespace
|
8
8
|
@config = config
|
9
9
|
@options = options
|
10
10
|
@store = {}
|
@@ -29,9 +29,9 @@ module NxtRegistry
|
|
29
29
|
|
30
30
|
default.call
|
31
31
|
elsif default.is_a?(NestedRegistryBuilder)
|
32
|
-
raise ArgumentError,
|
32
|
+
raise ArgumentError, 'Multiple nestings on the same level'
|
33
33
|
else
|
34
|
-
raise ArgumentError,
|
34
|
+
raise ArgumentError, 'Default values cannot be defined on registries that nest others'
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -93,8 +93,8 @@ module NxtRegistry
|
|
93
93
|
store.exclude?(transformed_key(key))
|
94
94
|
end
|
95
95
|
|
96
|
-
def fetch(key,
|
97
|
-
store.fetch(transformed_key(key),
|
96
|
+
def fetch(key, *args, &block)
|
97
|
+
store.fetch(transformed_key(key), *args, &block)
|
98
98
|
end
|
99
99
|
|
100
100
|
delegate :size, :values, :each, to: :store
|
@@ -131,8 +131,9 @@ module NxtRegistry
|
|
131
131
|
def __register(key, value, raise: true)
|
132
132
|
key = transformed_key(key)
|
133
133
|
|
134
|
-
raise ArgumentError,
|
134
|
+
raise ArgumentError, 'Not allowed to register values in a registry that contains nested registries' unless is_leaf
|
135
135
|
raise KeyError, "Keys are restricted to #{attrs.keys}" if attribute_not_allowed?(key)
|
136
|
+
|
136
137
|
on_key_already_registered && on_key_already_registered.call(key) if store[key] && raise
|
137
138
|
|
138
139
|
store[key] = value
|
@@ -214,7 +215,6 @@ module NxtRegistry
|
|
214
215
|
def define_accessors
|
215
216
|
%w[default memoize call resolver transform_keys on_key_already_registered on_key_not_registered].each do |attribute|
|
216
217
|
define_singleton_method attribute do |value = Blank.new, &block|
|
217
|
-
# TODO: Allowing a block does not make sense for memoize and call?!
|
218
218
|
value = block if block
|
219
219
|
|
220
220
|
if value.is_a?(Blank)
|
@@ -268,5 +268,9 @@ module NxtRegistry
|
|
268
268
|
@store = original.send(:store).deep_dup
|
269
269
|
@options = original.send(:options).deep_dup
|
270
270
|
end
|
271
|
+
|
272
|
+
def build_namespace
|
273
|
+
parent ? name.to_s.prepend("#{parent.send(:namespace)}.") : name.to_s
|
274
|
+
end
|
271
275
|
end
|
272
276
|
end
|
data/lib/nxt_registry/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nxt_registry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andreas Robecke
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: exe
|
13
13
|
cert_chain: []
|
14
|
-
date: 2020-
|
14
|
+
date: 2020-08-14 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: activesupport
|