evt-messaging 2.5.5.2 → 2.5.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/messaging/controls/metadata.rb +9 -3
- data/lib/messaging/message/metadata.rb +48 -5
- data/lib/messaging/message/transform.rb +3 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ed32a3950086fa459ebb29d4343df38845f3ce1d4a559205bb5fcd6d8c42c40
|
4
|
+
data.tar.gz: 6187c2a9da83c38d5f003259a1ecf59b96fcf88aaaa16ca3b5ec03723a6ff806
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56c25adccd43baa313b05d76aa3b2e8f82977be4e898c0680ae38ba479e009d88a31caa4deb50adc59fc3ebce58dc74e46f87dee6a44f8bfd2facb3bedb0c94a
|
7
|
+
data.tar.gz: 6e375228008283d4bc40f7495658223ca789afabc6c99d86805bee419c6b42dbfd06850e3ddc771a30f7c5ff46289ae2485d3e14fa2c5076a4c5cd4057434344
|
@@ -49,10 +49,16 @@ module Messaging
|
|
49
49
|
"#{causation_message_stream_name}/#{causation_message_position}"
|
50
50
|
end
|
51
51
|
|
52
|
+
# def self.properties
|
53
|
+
# {
|
54
|
+
# some_property: 'some property value'
|
55
|
+
# }
|
56
|
+
# end
|
57
|
+
|
52
58
|
def self.properties
|
53
|
-
|
54
|
-
some_property
|
55
|
-
|
59
|
+
[
|
60
|
+
Messaging::Message::Metadata::Property.new(:some_property, 'some property value')
|
61
|
+
]
|
56
62
|
end
|
57
63
|
|
58
64
|
def self.time
|
@@ -33,7 +33,7 @@ module Messaging
|
|
33
33
|
|
34
34
|
attribute :reply_stream_name, String
|
35
35
|
|
36
|
-
attribute :properties,
|
36
|
+
attribute :properties, Array, default: -> { Array.new }
|
37
37
|
|
38
38
|
attribute :time, Time
|
39
39
|
|
@@ -59,6 +59,18 @@ module Messaging
|
|
59
59
|
self.correlation_stream_name = preceding_metadata.correlation_stream_name
|
60
60
|
|
61
61
|
self.reply_stream_name = preceding_metadata.reply_stream_name
|
62
|
+
|
63
|
+
preceding_metadata.properties.each do |property|
|
64
|
+
if property.transient?
|
65
|
+
next
|
66
|
+
end
|
67
|
+
|
68
|
+
set_property(
|
69
|
+
property.name,
|
70
|
+
property.value,
|
71
|
+
transient: property.transient
|
72
|
+
)
|
73
|
+
end
|
62
74
|
end
|
63
75
|
|
64
76
|
def follows?(preceding_metadata)
|
@@ -128,16 +140,47 @@ module Messaging
|
|
128
140
|
end
|
129
141
|
alias :correlates? :correlated?
|
130
142
|
|
131
|
-
|
132
|
-
|
143
|
+
Property = Struct.new(
|
144
|
+
:name,
|
145
|
+
:value,
|
146
|
+
:transient
|
147
|
+
) do
|
148
|
+
def transient?
|
149
|
+
transient == true
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
def set_property(name, value, transient: nil)
|
154
|
+
transient ||= false
|
155
|
+
|
156
|
+
delete_property(name)
|
157
|
+
|
158
|
+
property = Property.new(name, value, transient)
|
159
|
+
|
160
|
+
properties << property
|
161
|
+
|
162
|
+
property
|
163
|
+
end
|
164
|
+
|
165
|
+
def set_transient_property(name, value, transient: nil)
|
166
|
+
set_property(name, value, transient: true)
|
133
167
|
end
|
134
168
|
|
135
169
|
def get_property(name)
|
136
|
-
properties
|
170
|
+
property = properties.find { |property| property.name == name }
|
171
|
+
property&.value
|
137
172
|
end
|
138
173
|
|
139
174
|
def delete_property(name)
|
140
|
-
properties.
|
175
|
+
i = properties.index { |property| property.name == name }
|
176
|
+
|
177
|
+
return nil if i.nil?
|
178
|
+
|
179
|
+
properties.delete_at(i).value
|
180
|
+
end
|
181
|
+
|
182
|
+
def clear_properties
|
183
|
+
properties.clear
|
141
184
|
end
|
142
185
|
|
143
186
|
def self.source_attribute_names
|
@@ -26,8 +26,10 @@ module Messaging
|
|
26
26
|
|
27
27
|
metadata = message.metadata.to_h
|
28
28
|
|
29
|
+
metadata[:properties].delete_if { |property| property.transient? }
|
30
|
+
|
29
31
|
if metadata[:properties].empty?
|
30
|
-
metadata
|
32
|
+
metadata.delete(:properties)
|
31
33
|
end
|
32
34
|
|
33
35
|
metadata.delete_if { |k, v| v.nil? }
|