evt-messaging 2.5.8.1 → 2.7.0.1
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/handler.rb +0 -57
- data/lib/messaging/controls/local_properties.rb +39 -0
- data/lib/messaging/controls/metadata.rb +29 -5
- data/lib/messaging/controls/properties.rb +13 -36
- data/lib/messaging/controls.rb +1 -0
- data/lib/messaging/handle.rb +34 -20
- data/lib/messaging/message/copy.rb +3 -4
- data/lib/messaging/message/metadata.rb +42 -30
- data/lib/messaging/message/transform.rb +10 -32
- data/lib/messaging.rb +0 -1
- metadata +4 -4
- data/lib/messaging/message/metadata/property.rb +0 -22
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9c8945f49315d73d29f7c3a3fa6d88bfca5c8eeb2dcd8fd5e34f2b5020881ef4
|
|
4
|
+
data.tar.gz: 77bfd0a23528e8624e74ca29a0a590892ce29d64571a9e75aeca7ed5247def60
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dbf96b8c14e18786fec12e942b075276b31ded1b1d1c1b7a9e062564d7923f8dbc4e5e1884d7bb935bed784a57f58c2c8bed7e752265643c12f9b462e685d095
|
|
7
|
+
data.tar.gz: 8b5ca6436050e0938f58bf081a8369f6fadb5181aed72875b0a0b3c3fa2decc8042336fcb396a175e77f016a56bdd3e70bc2f767f4e518b2274cb197c6e9621d
|
|
@@ -60,63 +60,6 @@ module Messaging
|
|
|
60
60
|
end
|
|
61
61
|
end
|
|
62
62
|
end
|
|
63
|
-
|
|
64
|
-
module SessionArgument
|
|
65
|
-
class Example
|
|
66
|
-
include Messaging::Handle
|
|
67
|
-
|
|
68
|
-
attr_accessor :session
|
|
69
|
-
|
|
70
|
-
def configure(session: nil)
|
|
71
|
-
self.session = session
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
module Anomaly
|
|
76
|
-
module Required
|
|
77
|
-
class Example
|
|
78
|
-
include Messaging::Handle
|
|
79
|
-
|
|
80
|
-
def configure(session:)
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
module Positional
|
|
86
|
-
class Example
|
|
87
|
-
include Messaging::Handle
|
|
88
|
-
|
|
89
|
-
def configure(session)
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
module Optional
|
|
94
|
-
class Example
|
|
95
|
-
include Messaging::Handle
|
|
96
|
-
|
|
97
|
-
def configure(session=nil)
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
end
|
|
102
|
-
end
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
module Settings
|
|
106
|
-
Error = Class.new(RuntimeError)
|
|
107
|
-
|
|
108
|
-
class Example
|
|
109
|
-
include Messaging::Handle
|
|
110
|
-
|
|
111
|
-
setting :some_setting
|
|
112
|
-
|
|
113
|
-
attr_accessor :some_other_setting
|
|
114
|
-
|
|
115
|
-
def handle(message_data)
|
|
116
|
-
raise Settings::Error if some_setting.nil?
|
|
117
|
-
end
|
|
118
|
-
end
|
|
119
|
-
end
|
|
120
63
|
end
|
|
121
64
|
end
|
|
122
65
|
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module Messaging
|
|
2
|
+
module Controls
|
|
3
|
+
module LocalProperties
|
|
4
|
+
def self.example
|
|
5
|
+
{
|
|
6
|
+
SomeLocalProperty.name => SomeLocalProperty.value
|
|
7
|
+
}
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
module SomeLocalProperty
|
|
11
|
+
def self.name
|
|
12
|
+
:some_local_property
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.value
|
|
16
|
+
'some local property value'
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
module Random
|
|
21
|
+
def self.example
|
|
22
|
+
{
|
|
23
|
+
SomeLocalProperty.name => SomeLocalProperty.value
|
|
24
|
+
}
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
module SomeLocalProperty
|
|
28
|
+
def self.name
|
|
29
|
+
:some_local_property
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def self.value
|
|
33
|
+
SecureRandom.hex
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -4,9 +4,8 @@ module Messaging
|
|
|
4
4
|
def self.example
|
|
5
5
|
data = self.data
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
data[:properties] = Properties.example
|
|
7
|
+
data[:properties] = properties
|
|
8
|
+
data[:local_properties] = local_properties
|
|
10
9
|
|
|
11
10
|
Messaging::Message::Metadata.build(data)
|
|
12
11
|
end
|
|
@@ -63,6 +62,14 @@ module Messaging
|
|
|
63
62
|
Time::Raw.example
|
|
64
63
|
end
|
|
65
64
|
|
|
65
|
+
def self.properties
|
|
66
|
+
Properties.example
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def self.local_properties
|
|
70
|
+
LocalProperties.example
|
|
71
|
+
end
|
|
72
|
+
|
|
66
73
|
def self.data
|
|
67
74
|
{
|
|
68
75
|
stream_name: stream_name,
|
|
@@ -77,7 +84,8 @@ module Messaging
|
|
|
77
84
|
|
|
78
85
|
reply_stream_name: reply_stream_name,
|
|
79
86
|
|
|
80
|
-
properties: Properties.
|
|
87
|
+
properties: Properties.example,
|
|
88
|
+
local_properties: LocalProperties.example,
|
|
81
89
|
|
|
82
90
|
time: time,
|
|
83
91
|
|
|
@@ -110,6 +118,11 @@ module Messaging
|
|
|
110
118
|
|
|
111
119
|
module Random
|
|
112
120
|
def self.example
|
|
121
|
+
data = self.data
|
|
122
|
+
|
|
123
|
+
data[:properties] = properties
|
|
124
|
+
data[:local_properties] = local_properties
|
|
125
|
+
|
|
113
126
|
Messaging::Message::Metadata.build(data)
|
|
114
127
|
end
|
|
115
128
|
|
|
@@ -161,10 +174,19 @@ module Messaging
|
|
|
161
174
|
(::Time.now + Controls::Random::Number.example).utc
|
|
162
175
|
end
|
|
163
176
|
|
|
177
|
+
def self.properties
|
|
178
|
+
Properties::Random.example
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
def self.local_properties
|
|
182
|
+
LocalProperties::Random.example
|
|
183
|
+
end
|
|
184
|
+
|
|
164
185
|
def self.data
|
|
165
186
|
{
|
|
166
187
|
stream_name: stream_name,
|
|
167
188
|
position: position,
|
|
189
|
+
global_position: global_position,
|
|
168
190
|
|
|
169
191
|
causation_message_stream_name: causation_message_stream_name,
|
|
170
192
|
causation_message_position: causation_message_position,
|
|
@@ -174,7 +196,9 @@ module Messaging
|
|
|
174
196
|
|
|
175
197
|
reply_stream_name: reply_stream_name,
|
|
176
198
|
|
|
177
|
-
|
|
199
|
+
properties: Properties::Random.example,
|
|
200
|
+
local_properties: LocalProperties::Random.example,
|
|
201
|
+
|
|
178
202
|
time: time,
|
|
179
203
|
|
|
180
204
|
schema_version: schema_version
|
|
@@ -2,33 +2,14 @@ module Messaging
|
|
|
2
2
|
module Controls
|
|
3
3
|
module Properties
|
|
4
4
|
def self.example
|
|
5
|
-
|
|
6
|
-
SomeProperty.
|
|
7
|
-
|
|
8
|
-
]
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def self.data
|
|
12
|
-
[
|
|
13
|
-
SomeProperty.data,
|
|
14
|
-
SomeLocalProperty.data
|
|
15
|
-
]
|
|
5
|
+
{
|
|
6
|
+
SomeProperty.name => SomeProperty.value
|
|
7
|
+
}
|
|
16
8
|
end
|
|
17
9
|
|
|
18
10
|
module SomeProperty
|
|
19
|
-
def self.example
|
|
20
|
-
Messaging::Message::Metadata::Property.new(name, value)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def self.data
|
|
24
|
-
{
|
|
25
|
-
name: name,
|
|
26
|
-
value: value
|
|
27
|
-
}
|
|
28
|
-
end
|
|
29
|
-
|
|
30
11
|
def self.name
|
|
31
|
-
|
|
12
|
+
:some_property
|
|
32
13
|
end
|
|
33
14
|
|
|
34
15
|
def self.value
|
|
@@ -36,25 +17,21 @@ module Messaging
|
|
|
36
17
|
end
|
|
37
18
|
end
|
|
38
19
|
|
|
39
|
-
module
|
|
20
|
+
module Random
|
|
40
21
|
def self.example
|
|
41
|
-
Messaging::Message::Metadata::Property.new(name, value, true)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def self.data
|
|
45
22
|
{
|
|
46
|
-
name
|
|
47
|
-
value: value,
|
|
48
|
-
local: true
|
|
23
|
+
SomeProperty.name => SomeProperty.value
|
|
49
24
|
}
|
|
50
25
|
end
|
|
51
26
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
27
|
+
module SomeProperty
|
|
28
|
+
def self.name
|
|
29
|
+
:some_property
|
|
30
|
+
end
|
|
55
31
|
|
|
56
|
-
|
|
57
|
-
|
|
32
|
+
def self.value
|
|
33
|
+
SecureRandom.hex
|
|
34
|
+
end
|
|
58
35
|
end
|
|
59
36
|
end
|
|
60
37
|
end
|
data/lib/messaging/controls.rb
CHANGED
|
@@ -8,6 +8,7 @@ require 'messaging/controls/time'
|
|
|
8
8
|
require 'messaging/controls/id'
|
|
9
9
|
require 'messaging/controls/stream_name'
|
|
10
10
|
require 'messaging/controls/properties'
|
|
11
|
+
require 'messaging/controls/local_properties'
|
|
11
12
|
require 'messaging/controls/metadata'
|
|
12
13
|
require 'messaging/controls/message_data'
|
|
13
14
|
require 'messaging/controls/message'
|
data/lib/messaging/handle.rb
CHANGED
|
@@ -6,7 +6,6 @@ module Messaging
|
|
|
6
6
|
cls.class_exec do
|
|
7
7
|
include Dependency
|
|
8
8
|
include Virtual
|
|
9
|
-
include Settings::Setting
|
|
10
9
|
|
|
11
10
|
def handler_logger
|
|
12
11
|
@handler_logger ||= Log.get(self)
|
|
@@ -26,37 +25,49 @@ module Messaging
|
|
|
26
25
|
end
|
|
27
26
|
|
|
28
27
|
module Build
|
|
28
|
+
Error = Class.new(RuntimeError)
|
|
29
|
+
|
|
29
30
|
def build(strict: nil, session: nil, settings: nil)
|
|
30
31
|
instance = new
|
|
31
32
|
instance.strict = strict
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
arguments = {}
|
|
35
|
+
|
|
36
|
+
if Build.send_session?(session, instance)
|
|
37
|
+
arguments[:session] = session
|
|
35
38
|
end
|
|
36
39
|
|
|
37
|
-
if Build.
|
|
38
|
-
|
|
39
|
-
else
|
|
40
|
-
instance.configure
|
|
40
|
+
if Build.send_settings?(settings, instance)
|
|
41
|
+
arguments[:settings] = settings
|
|
41
42
|
end
|
|
42
43
|
|
|
44
|
+
instance.configure(**arguments)
|
|
45
|
+
|
|
43
46
|
instance
|
|
44
47
|
end
|
|
45
48
|
|
|
46
|
-
def self.
|
|
49
|
+
def self.send_session?(session, instance)
|
|
50
|
+
configure?(instance, :session) && !session.nil?
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def self.send_settings?(settings, instance)
|
|
54
|
+
configure?(instance, :settings) && !settings.nil?
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def self.configure?(instance, parameter_name)
|
|
47
58
|
configure_method = instance.method(:configure)
|
|
48
59
|
|
|
49
60
|
parameter_type, _ = configure_method.parameters.find do |type, name|
|
|
50
|
-
name ==
|
|
61
|
+
name == parameter_name
|
|
51
62
|
end
|
|
52
63
|
|
|
53
64
|
return false if parameter_type.nil?
|
|
54
65
|
|
|
55
|
-
return true if
|
|
66
|
+
return true if [:key, :keyreq].include?(parameter_type)
|
|
56
67
|
|
|
57
|
-
error_message = "
|
|
68
|
+
error_message = "Incorrect definition of handler's configure method. The #{parameter_name} parameter must be a keyword argument (Handler: #{instance.class}, Parameter Type: #{parameter_type.inspect})"
|
|
58
69
|
handler_logger.error(tag: :handle) { error_message }
|
|
59
|
-
raise
|
|
70
|
+
raise Error, error_message
|
|
60
71
|
end
|
|
61
72
|
|
|
62
73
|
def self.handler_logger
|
|
@@ -75,20 +86,20 @@ module Messaging
|
|
|
75
86
|
extend self
|
|
76
87
|
|
|
77
88
|
def handler(message_or_message_data)
|
|
78
|
-
|
|
89
|
+
handler_method_name = handler_method_name(message_or_message_data)
|
|
79
90
|
|
|
80
|
-
if method_defined?(
|
|
81
|
-
return
|
|
91
|
+
if method_defined?(handler_method_name)
|
|
92
|
+
return handler_method_name
|
|
82
93
|
else
|
|
83
94
|
return nil
|
|
84
95
|
end
|
|
85
96
|
end
|
|
86
97
|
|
|
87
98
|
def handles?(message_or_message_data)
|
|
88
|
-
method_defined?
|
|
99
|
+
method_defined? handler_method_name(message_or_message_data)
|
|
89
100
|
end
|
|
90
101
|
|
|
91
|
-
def
|
|
102
|
+
def handler_method_name(message_or_message_data)
|
|
92
103
|
name = nil
|
|
93
104
|
|
|
94
105
|
if message_or_message_data.is_a? MessageStore::MessageData::Read
|
|
@@ -99,7 +110,7 @@ module Messaging
|
|
|
99
110
|
name = message_or_message_data.message_name
|
|
100
111
|
end
|
|
101
112
|
|
|
102
|
-
"handle_#{name}"
|
|
113
|
+
"handle_#{name}".to_sym
|
|
103
114
|
end
|
|
104
115
|
end
|
|
105
116
|
|
|
@@ -111,13 +122,16 @@ module Messaging
|
|
|
111
122
|
end
|
|
112
123
|
|
|
113
124
|
def handle_macro(message_class, &blk)
|
|
114
|
-
define_handler_method(message_class, &blk)
|
|
125
|
+
handler_method_name = define_handler_method(message_class, &blk)
|
|
126
|
+
|
|
115
127
|
message_registry.register(message_class)
|
|
128
|
+
|
|
129
|
+
handler_method_name
|
|
116
130
|
end
|
|
117
131
|
alias :handle :handle_macro
|
|
118
132
|
|
|
119
133
|
def define_handler_method(message_class, &blk)
|
|
120
|
-
handler_method_name =
|
|
134
|
+
handler_method_name = handler_method_name(message_class)
|
|
121
135
|
|
|
122
136
|
if blk.nil?
|
|
123
137
|
error_msg = "Handler for #{message_class.name} is not correctly defined. It must have a block."
|
|
@@ -32,13 +32,12 @@ module Messaging
|
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
if metadata
|
|
35
|
-
metadata_include = source.metadata.class.attribute_names - [:properties]
|
|
35
|
+
metadata_include = source.metadata.class.attribute_names - [:properties, :local_properties]
|
|
36
36
|
|
|
37
37
|
SetAttributes.(receiver.metadata, source.metadata, include: metadata_include)
|
|
38
38
|
|
|
39
|
-
source.metadata.properties.
|
|
40
|
-
|
|
41
|
-
end
|
|
39
|
+
receiver.metadata.properties = source.metadata.properties.dup
|
|
40
|
+
receiver.metadata.local_properties = source.metadata.local_properties.dup
|
|
42
41
|
end
|
|
43
42
|
|
|
44
43
|
receiver
|
|
@@ -33,7 +33,8 @@ module Messaging
|
|
|
33
33
|
|
|
34
34
|
attribute :reply_stream_name, String
|
|
35
35
|
|
|
36
|
-
attribute :properties,
|
|
36
|
+
attribute :properties, Hash, default: -> { Hash.new }
|
|
37
|
+
attribute :local_properties, Hash, default: -> { Hash.new }
|
|
37
38
|
|
|
38
39
|
attribute :time, Time
|
|
39
40
|
|
|
@@ -60,12 +61,8 @@ module Messaging
|
|
|
60
61
|
|
|
61
62
|
self.reply_stream_name = preceding_metadata.reply_stream_name
|
|
62
63
|
|
|
63
|
-
preceding_metadata.properties.each do |
|
|
64
|
-
|
|
65
|
-
next
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
properties << property.dup
|
|
64
|
+
preceding_metadata.properties.each do |name, value|
|
|
65
|
+
properties[name] = value
|
|
69
66
|
end
|
|
70
67
|
end
|
|
71
68
|
|
|
@@ -136,49 +133,64 @@ module Messaging
|
|
|
136
133
|
end
|
|
137
134
|
alias :correlates? :correlated?
|
|
138
135
|
|
|
139
|
-
def set_property(name, value
|
|
140
|
-
if not name.is_a?(
|
|
141
|
-
raise Error, "Property name must be a
|
|
136
|
+
def set_property(name, value)
|
|
137
|
+
if not name.is_a?(Symbol)
|
|
138
|
+
raise Error, "Property name must be a symbol: #{name.inspect}"
|
|
142
139
|
end
|
|
143
140
|
|
|
144
|
-
|
|
141
|
+
properties[name] = value
|
|
145
142
|
|
|
146
|
-
|
|
143
|
+
value
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def get_property(name)
|
|
147
|
+
if not name.is_a?(Symbol)
|
|
148
|
+
raise Error, "Property name must be a symbol: #{name.inspect}"
|
|
149
|
+
end
|
|
147
150
|
|
|
148
|
-
|
|
151
|
+
properties[name]
|
|
152
|
+
end
|
|
149
153
|
|
|
150
|
-
|
|
154
|
+
def delete_property(name)
|
|
155
|
+
if not name.is_a?(Symbol)
|
|
156
|
+
raise Error, "Property name must be a symbol: #{name.inspect}"
|
|
157
|
+
end
|
|
151
158
|
|
|
152
|
-
|
|
159
|
+
properties.delete(name)
|
|
153
160
|
end
|
|
154
161
|
|
|
155
|
-
def
|
|
156
|
-
|
|
162
|
+
def clear_properties
|
|
163
|
+
properties.clear
|
|
157
164
|
end
|
|
158
165
|
|
|
159
|
-
def
|
|
160
|
-
if not name.is_a?(
|
|
161
|
-
raise Error, "
|
|
166
|
+
def set_local_property(name, value)
|
|
167
|
+
if not name.is_a?(Symbol)
|
|
168
|
+
raise Error, "Local property name must be a symbol: #{name.inspect}"
|
|
162
169
|
end
|
|
163
170
|
|
|
164
|
-
|
|
165
|
-
|
|
171
|
+
local_properties[name] = value
|
|
172
|
+
|
|
173
|
+
value
|
|
166
174
|
end
|
|
167
175
|
|
|
168
|
-
def
|
|
169
|
-
if not name.is_a?(
|
|
170
|
-
raise Error, "
|
|
176
|
+
def get_local_property(name)
|
|
177
|
+
if not name.is_a?(Symbol)
|
|
178
|
+
raise Error, "Local property name must be a symbol: #{name.inspect}"
|
|
171
179
|
end
|
|
172
180
|
|
|
173
|
-
|
|
181
|
+
local_properties[name]
|
|
182
|
+
end
|
|
174
183
|
|
|
175
|
-
|
|
184
|
+
def delete_local_property(name)
|
|
185
|
+
if not name.is_a?(Symbol)
|
|
186
|
+
raise Error, "Local property name must be a symbol: #{name.inspect}"
|
|
187
|
+
end
|
|
176
188
|
|
|
177
|
-
|
|
189
|
+
local_properties.delete(name)
|
|
178
190
|
end
|
|
179
191
|
|
|
180
|
-
def
|
|
181
|
-
|
|
192
|
+
def clear_local_properties
|
|
193
|
+
local_properties.clear
|
|
182
194
|
end
|
|
183
195
|
|
|
184
196
|
def self.source_attribute_names
|
|
@@ -26,12 +26,12 @@ module Messaging
|
|
|
26
26
|
|
|
27
27
|
metadata = message.metadata.to_h
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if properties.empty?
|
|
29
|
+
if metadata[:properties].empty?
|
|
32
30
|
metadata.delete(:properties)
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
if metadata[:local_properties].empty?
|
|
34
|
+
metadata.delete(:local_properties)
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
metadata.delete_if { |k, v| v.nil? }
|
|
@@ -41,28 +41,13 @@ module Messaging
|
|
|
41
41
|
message_data
|
|
42
42
|
end
|
|
43
43
|
|
|
44
|
-
module Properties
|
|
45
|
-
def self.write(properties)
|
|
46
|
-
properties.map do |property|
|
|
47
|
-
property_hash = property.to_h
|
|
48
|
-
|
|
49
|
-
if not property_hash[:local]
|
|
50
|
-
property_hash.delete(:local)
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
property_hash
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
44
|
def self.read(message_data)
|
|
59
45
|
data = message_data.to_h
|
|
60
46
|
|
|
61
|
-
|
|
62
|
-
unless data[:metadata].nil?
|
|
63
|
-
data[:metadata] = data[:metadata].clone
|
|
64
|
-
else
|
|
47
|
+
if data[:metadata].nil?
|
|
65
48
|
data[:metadata] = {}
|
|
49
|
+
else
|
|
50
|
+
data[:metadata] = data[:metadata].clone
|
|
66
51
|
end
|
|
67
52
|
|
|
68
53
|
metadata = data[:metadata]
|
|
@@ -73,15 +58,8 @@ module Messaging
|
|
|
73
58
|
metadata[:global_position] = data[:global_position]
|
|
74
59
|
metadata[:time] = data[:time]
|
|
75
60
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
properties = metadata[:properties].map do |property_data|
|
|
81
|
-
Metadata::Property.new(*property_data.values_at(*Metadata::Property.members))
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
metadata[:properties] = properties
|
|
61
|
+
metadata[:properties] ||= {}
|
|
62
|
+
metadata[:local_properties] ||= {}
|
|
85
63
|
|
|
86
64
|
data
|
|
87
65
|
end
|
data/lib/messaging.rb
CHANGED
|
@@ -7,7 +7,6 @@ require 'messaging/stream_name'
|
|
|
7
7
|
|
|
8
8
|
require 'messaging/message'
|
|
9
9
|
require 'messaging/message/metadata'
|
|
10
|
-
require 'messaging/message/metadata/property'
|
|
11
10
|
require 'messaging/message/copy'
|
|
12
11
|
require 'messaging/message/follow'
|
|
13
12
|
require 'messaging/message/sequence_accessor'
|
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.
|
|
4
|
+
version: 2.7.0.1
|
|
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: 2022-09-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: evt-message_store
|
|
@@ -64,6 +64,7 @@ files:
|
|
|
64
64
|
- lib/messaging/controls/batch.rb
|
|
65
65
|
- lib/messaging/controls/handler.rb
|
|
66
66
|
- lib/messaging/controls/id.rb
|
|
67
|
+
- lib/messaging/controls/local_properties.rb
|
|
67
68
|
- lib/messaging/controls/message.rb
|
|
68
69
|
- lib/messaging/controls/message_data.rb
|
|
69
70
|
- lib/messaging/controls/metadata.rb
|
|
@@ -82,7 +83,6 @@ files:
|
|
|
82
83
|
- lib/messaging/message/follow.rb
|
|
83
84
|
- lib/messaging/message/import.rb
|
|
84
85
|
- lib/messaging/message/metadata.rb
|
|
85
|
-
- lib/messaging/message/metadata/property.rb
|
|
86
86
|
- lib/messaging/message/sequence_accessor.rb
|
|
87
87
|
- lib/messaging/message/transform.rb
|
|
88
88
|
- lib/messaging/message_registry.rb
|
|
@@ -108,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
108
108
|
- !ruby/object:Gem::Version
|
|
109
109
|
version: '0'
|
|
110
110
|
requirements: []
|
|
111
|
-
rubygems_version: 3.
|
|
111
|
+
rubygems_version: 3.3.3
|
|
112
112
|
signing_key:
|
|
113
113
|
specification_version: 4
|
|
114
114
|
summary: Common primitives for platform-specific messaging implementations for Eventide
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
module Messaging
|
|
2
|
-
module Message
|
|
3
|
-
class Metadata
|
|
4
|
-
Property = Struct.new(
|
|
5
|
-
:name,
|
|
6
|
-
:value,
|
|
7
|
-
:local
|
|
8
|
-
) do
|
|
9
|
-
def local?
|
|
10
|
-
local == true
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def ==(other)
|
|
14
|
-
equal =
|
|
15
|
-
name == other.name &&
|
|
16
|
-
value == other.value &&
|
|
17
|
-
!!local == !!other.local
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|