karafka-core 2.0.5 → 2.0.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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +1 -1
- data/lib/karafka/core/configurable/leaf.rb +6 -1
- data/lib/karafka/core/configurable/node.rb +22 -4
- data/lib/karafka/core/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 158fcf590bf58fc10f8c47c5f9b9e8a256db4df8bfa842780cd20b6859c82392
|
4
|
+
data.tar.gz: 33025b3aaae92b63dffd21bf1820937d768cae4f8103701c963903e2add50fa6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ebd3106bfe9f3ee67c1fca1ed6c871a2b7d18d03bb6a1dd9be4922777cb0bed1362047550a1a146491e9402fd9da61d6a37baf6aef99d6e303410702e7cedb3b
|
7
|
+
data.tar.gz: 89fab64ee5a909d0e05fbf179b690cc4fa75153d13cdbfe06e22d8b2d66b11fe4484641897ce95cb1a21e48e05746e29313a0d4157cc0a38d5dbe169d21ecc7f
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Karafka core changelog
|
2
2
|
|
3
|
+
## 2.0.7 (2022-12-18)
|
4
|
+
- Allow for recompilation of config upon injecting new config nodes.
|
5
|
+
- Compile given config scope automatically after it is defined.
|
6
|
+
- Support sub-config merging via their nested definitions.
|
7
|
+
|
8
|
+
## 2.0.6 (2022-12-07)
|
9
|
+
- Reverse node compilation state tracking removal.
|
10
|
+
|
3
11
|
## 2.0.5 (2022-12-07)
|
4
12
|
- Move `librdkafka` generic (producer and consumer) patches from WaterDrop here.
|
5
13
|
- Move dependency on `librdkafka` here from both Karafka and WaterDrop to unify management.
|
data/Gemfile.lock
CHANGED
@@ -4,7 +4,12 @@ module Karafka
|
|
4
4
|
module Core
|
5
5
|
module Configurable
|
6
6
|
# Single end config value representation
|
7
|
-
Leaf = Struct.new(:name, :default, :constructor)
|
7
|
+
Leaf = Struct.new(:name, :default, :constructor, :compiled) do
|
8
|
+
# @return [Boolean] true if already compiled
|
9
|
+
def compiled?
|
10
|
+
compiled
|
11
|
+
end
|
12
|
+
end
|
8
13
|
end
|
9
14
|
end
|
10
15
|
end
|
@@ -21,6 +21,7 @@ module Karafka
|
|
21
21
|
@name = name
|
22
22
|
@children = []
|
23
23
|
@nestings = nestings
|
24
|
+
@compiled = false
|
24
25
|
instance_eval(&nestings)
|
25
26
|
end
|
26
27
|
|
@@ -34,8 +35,10 @@ module Karafka
|
|
34
35
|
@children << if block
|
35
36
|
Node.new(name, block)
|
36
37
|
else
|
37
|
-
Leaf.new(name, default, constructor)
|
38
|
+
Leaf.new(name, default, constructor, false)
|
38
39
|
end
|
40
|
+
|
41
|
+
compile
|
39
42
|
end
|
40
43
|
|
41
44
|
# Allows for the configuration and setup of the settings
|
@@ -43,7 +46,7 @@ module Karafka
|
|
43
46
|
# Compile settings, allow for overrides via yielding
|
44
47
|
# @return [Node] returns self after configuration
|
45
48
|
def configure
|
46
|
-
compile
|
49
|
+
compile if !@compiled || name == :root
|
47
50
|
yield(self) if block_given?
|
48
51
|
self
|
49
52
|
end
|
@@ -54,7 +57,10 @@ module Karafka
|
|
54
57
|
|
55
58
|
@children.each do |value|
|
56
59
|
config[value.name] = if value.is_a?(Leaf)
|
57
|
-
public_send(value.name)
|
60
|
+
result = public_send(value.name)
|
61
|
+
# We need to check if value is not a result node for cases where
|
62
|
+
# we merge additional config
|
63
|
+
result.is_a?(Node) ? result.to_h : result
|
58
64
|
else
|
59
65
|
value.to_h
|
60
66
|
end
|
@@ -70,7 +76,14 @@ module Karafka
|
|
70
76
|
dupped = Node.new(name, nestings)
|
71
77
|
|
72
78
|
dupped.children += children.map do |value|
|
73
|
-
value.is_a?(Leaf)
|
79
|
+
if value.is_a?(Leaf)
|
80
|
+
# After inheritance we need to reload the state so the leafs are recompiled again
|
81
|
+
value = value.dup
|
82
|
+
value.compiled = false
|
83
|
+
value
|
84
|
+
else
|
85
|
+
value.deep_dup
|
86
|
+
end
|
74
87
|
end
|
75
88
|
|
76
89
|
dupped
|
@@ -89,6 +102,9 @@ module Karafka
|
|
89
102
|
next if skippable
|
90
103
|
|
91
104
|
initialized = if value.is_a?(Leaf)
|
105
|
+
next if value.compiled?
|
106
|
+
|
107
|
+
value.compiled = true
|
92
108
|
value.constructor ? value.constructor.call(value.default) : value.default
|
93
109
|
else
|
94
110
|
value.compile
|
@@ -97,6 +113,8 @@ module Karafka
|
|
97
113
|
|
98
114
|
public_send("#{value.name}=", initialized)
|
99
115
|
end
|
116
|
+
|
117
|
+
@compiled = true
|
100
118
|
end
|
101
119
|
end
|
102
120
|
end
|
data/lib/karafka/core/version.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: karafka-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maciej Mensfeld
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
Qf04B9ceLUaC4fPVEz10FyobjaFoY4i32xRto3XnrzeAgfEe4swLq8bQsR3w/EF3
|
36
36
|
MGU0FeSV2Yj7Xc2x/7BzLK8xQn5l7Yy75iPF+KP3vVmDHnNl
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2022-12-
|
38
|
+
date: 2022-12-18 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: concurrent-ruby
|
metadata.gz.sig
CHANGED
@@ -1,2 +1,4 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
�#f�餐Ѡ^�N���-X�hˬ�t�n���9_�Y뾁����,C�iЛ"{���SI,F�=ã�l�Zw���*�YKj�i���rz�3����ϝG;D��������7������-V;<%���\&��vJ5>�{���s*v�}�-���Rb�&ۇ�x��.5`��^�v��,��E9�X��˞����.�����}ǿ-5���HI˒�2���_�*Ia��$�*�a��
|
2
|
+
�2
|
3
|
+
6�$6��7[z7�%؍9�Ts���x�=;ïҧo��[���A�|x',�J���R��)Z�\l�����挏B?푹�z�������m�i
|
4
|
+
���J]L��o(Ms��4zɜ�]B>�W�N'���]d��Q�Z
|