nxt_registry 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|