evt-messaging 2.5.3.0 → 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 +15 -1
- data/lib/messaging/handle.rb +5 -0
- data/lib/messaging/message/copy.rb +1 -1
- data/lib/messaging/message/metadata.rb +57 -0
- data/lib/messaging/message/transform.rb +7 -0
- 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: 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,6 +49,18 @@ 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
|
+
|
58
|
+
def self.properties
|
59
|
+
[
|
60
|
+
Messaging::Message::Metadata::Property.new(:some_property, 'some property value')
|
61
|
+
]
|
62
|
+
end
|
63
|
+
|
52
64
|
def self.time
|
53
65
|
Time::Raw.example
|
54
66
|
end
|
@@ -57,6 +69,7 @@ module Messaging
|
|
57
69
|
{
|
58
70
|
stream_name: stream_name,
|
59
71
|
position: position,
|
72
|
+
global_position: global_position,
|
60
73
|
|
61
74
|
causation_message_stream_name: causation_message_stream_name,
|
62
75
|
causation_message_position: causation_message_position,
|
@@ -66,7 +79,8 @@ module Messaging
|
|
66
79
|
|
67
80
|
reply_stream_name: reply_stream_name,
|
68
81
|
|
69
|
-
|
82
|
+
properties: properties,
|
83
|
+
|
70
84
|
time: time,
|
71
85
|
|
72
86
|
schema_version: schema_version
|
data/lib/messaging/handle.rb
CHANGED
@@ -209,7 +209,12 @@ module Messaging
|
|
209
209
|
|
210
210
|
message_type = message.message_type
|
211
211
|
|
212
|
+
handler_logger.trace(tag: [:handle, :message_data]) { "Handling Message Data (Type: #{message_type}, Method: #{handler})" }
|
213
|
+
|
212
214
|
public_send(handler, message)
|
215
|
+
|
216
|
+
handler_logger.info(tags: [:handle, :message_data]) { "Handled message data (Type: #{message_data.type})" }
|
217
|
+
handler_logger.info(tags: [:data, :message_data]) { message_data.pretty_inspect }
|
213
218
|
else
|
214
219
|
if respond_to?(:handle)
|
215
220
|
message_type = message_data.type
|
@@ -33,6 +33,8 @@ module Messaging
|
|
33
33
|
|
34
34
|
attribute :reply_stream_name, String
|
35
35
|
|
36
|
+
attribute :properties, Array, default: -> { Array.new }
|
37
|
+
|
36
38
|
attribute :time, Time
|
37
39
|
|
38
40
|
attribute :schema_version, String
|
@@ -57,6 +59,18 @@ module Messaging
|
|
57
59
|
self.correlation_stream_name = preceding_metadata.correlation_stream_name
|
58
60
|
|
59
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
|
60
74
|
end
|
61
75
|
|
62
76
|
def follows?(preceding_metadata)
|
@@ -126,6 +140,49 @@ module Messaging
|
|
126
140
|
end
|
127
141
|
alias :correlates? :correlated?
|
128
142
|
|
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)
|
167
|
+
end
|
168
|
+
|
169
|
+
def get_property(name)
|
170
|
+
property = properties.find { |property| property.name == name }
|
171
|
+
property&.value
|
172
|
+
end
|
173
|
+
|
174
|
+
def delete_property(name)
|
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
|
184
|
+
end
|
185
|
+
|
129
186
|
def self.source_attribute_names
|
130
187
|
[
|
131
188
|
:stream_name,
|
@@ -25,6 +25,13 @@ module Messaging
|
|
25
25
|
message_data.data = message.to_h
|
26
26
|
|
27
27
|
metadata = message.metadata.to_h
|
28
|
+
|
29
|
+
metadata[:properties].delete_if { |property| property.transient? }
|
30
|
+
|
31
|
+
if metadata[:properties].empty?
|
32
|
+
metadata.delete(:properties)
|
33
|
+
end
|
34
|
+
|
28
35
|
metadata.delete_if { |k, v| v.nil? }
|
29
36
|
|
30
37
|
message_data.metadata = metadata
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evt-messaging
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.5.
|
4
|
+
version: 2.5.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Eventide Project
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: evt-message_store
|