evt-messaging 2.5.3.0 → 2.5.6.0
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/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
|