evt-messaging 2.5.2.1 → 2.5.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7c04e0dec5f4a44a412b02aaa7f4e7c5c1051edd647f521b55d703e525eb752
4
- data.tar.gz: b179e04fe469d034f8316e669a96d5e763280c79fdc623fd698bae6f68a61b65
3
+ metadata.gz: 29e2d25659fffe70ab1e14512f6c4a4adf7c9daa929f7303e3b96ae169fa4822
4
+ data.tar.gz: 181e600b4ecebc75a08607b364c50e88600788e6fc2e7e62672df10b5c337998
5
5
  SHA512:
6
- metadata.gz: 1bff39401cf18dfea165571dd3780ced69d6747365629331cfb55e82c0227cd41766706909e1cff24b2292d709b0ff03146b3c7034598f28eec0914a3ade22a6
7
- data.tar.gz: faf8f7669aaba89923a1baa321fe8a0f24f92191cb0d41ecc35830c68d676d9a923845f9ea3fe4193937de28b3947835983655637b8b7bb58fc786c04852dd4b
6
+ metadata.gz: 41165cbff3b2bb5a74a39809812851737b228ad1a59d85ecf2a8f46268042e06aed3c0fc3223f30e084febec586b1df09234e625286e7a8dfff617a15878b630
7
+ data.tar.gz: 88c7b54092d4b088de4c95f21f576c7c3e04a3e4cc805b0c32cdf4ae0479865c82e9d2195968ae7046d86508ba2aba1229ff9d7854179786447b2b798ecd7235
@@ -1,4 +1,5 @@
1
1
  require 'message_store'
2
+ require 'settings'
2
3
 
3
4
  require 'messaging/log'
4
5
 
@@ -12,4 +12,5 @@ require 'messaging/controls/message'
12
12
  require 'messaging/controls/metadata'
13
13
  require 'messaging/controls/batch'
14
14
  require 'messaging/controls/write'
15
+ require 'messaging/controls/settings'
15
16
  require 'messaging/controls/handler'
@@ -1,6 +1,10 @@
1
1
  module Messaging
2
2
  module Controls
3
3
  module Handler
4
+ def self.example
5
+ Example.new
6
+ end
7
+
4
8
  class Example
5
9
  include Messaging::Handle
6
10
  include Controls::Message
@@ -97,6 +101,22 @@ module Messaging
97
101
  end
98
102
  end
99
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
100
120
  end
101
121
  end
102
122
  end
@@ -0,0 +1,16 @@
1
+ module Messaging
2
+ module Controls
3
+ module Settings
4
+ def self.example
5
+ ::Settings.build(data)
6
+ end
7
+
8
+ def self.data
9
+ {
10
+ some_setting: 'some setting value',
11
+ some_other_setting: 'some other setting value'
12
+ }
13
+ end
14
+ end
15
+ end
16
+ end
@@ -6,6 +6,7 @@ module Messaging
6
6
  cls.class_exec do
7
7
  include Dependency
8
8
  include Virtual
9
+ include Settings::Setting
9
10
 
10
11
  def handler_logger
11
12
  @handler_logger ||= Log.get(self)
@@ -25,10 +26,14 @@ module Messaging
25
26
  end
26
27
 
27
28
  module Build
28
- def build(strict: nil, session: nil)
29
+ def build(strict: nil, session: nil, settings: nil)
29
30
  instance = new
30
31
  instance.strict = strict
31
32
 
33
+ if not settings.nil?
34
+ settings.set(instance)
35
+ end
36
+
32
37
  if Build.configure_session?(instance)
33
38
  instance.configure(session: session)
34
39
  else
@@ -60,8 +65,8 @@ module Messaging
60
65
  end
61
66
 
62
67
  module Call
63
- def call(message_or_message_data, strict: nil, session: nil)
64
- instance = build(strict: strict, session: session)
68
+ def call(message_or_message_data, strict: nil, session: nil, settings: nil)
69
+ instance = build(strict: strict, session: session, settings: settings)
65
70
  instance.(message_or_message_data)
66
71
  end
67
72
  end
@@ -154,7 +159,7 @@ module Messaging
154
159
  def handle_message(message, strict: nil)
155
160
  strict ||= self.strict?
156
161
 
157
- handler_logger.trace(tags: [:handle, :message]) { "Handling message (Message class: #{message.class.name})" }
162
+ handler_logger.trace(tags: [:dispatch, :message]) { "Dispatching message (Message class: #{message.class.name})" }
158
163
  handler_logger.trace(tags: [:data, :message]) { message.pretty_inspect }
159
164
 
160
165
  handler = self.class.handler(message)
@@ -162,8 +167,12 @@ module Messaging
162
167
  unless handler.nil?
163
168
  message_type = message.message_type
164
169
 
165
- handler_logger.debug(tag: :handle) { "Handling Message (Type: #{message_type}, Method: #{handler})" }
170
+ handler_logger.trace(tag: [:handle, :message]) { "Handling Message (Type: #{message_type}, Method: #{handler})" }
171
+
166
172
  public_send(handler, message)
173
+
174
+ handler_logger.info(tags: [:handle, :message]) { "Handled message (Message class: #{message.class.name})" }
175
+ handler_logger.info(tags: [:data, :message]) { message.pretty_inspect }
167
176
  else
168
177
  if strict
169
178
  error_msg = "#{self.class.name} does not implement a handler for #{message.message_type}. Cannot handle the message."
@@ -172,16 +181,13 @@ module Messaging
172
181
  end
173
182
  end
174
183
 
175
- handler_logger.info(tags: [:handle, :message]) { "Handled message (Message class: #{message.class.name})" }
176
- handler_logger.info(tags: [:data, :message]) { message.pretty_inspect }
177
-
178
184
  message
179
185
  end
180
186
 
181
187
  def handle_message_data(message_data, strict: nil)
182
188
  strict ||= self.strict?
183
189
 
184
- handler_logger.trace(tags: [:handle, :message_data]) { "Handling message data (Type: #{message_data.type})" }
190
+ handler_logger.trace(tags: [:dispatch, :message_data]) { "Dispatching message data (Type: #{message_data.type})" }
185
191
  handler_logger.trace(tags: [:data, :message_data]) { message_data.pretty_inspect }
186
192
 
187
193
  message = nil
@@ -203,15 +209,17 @@ module Messaging
203
209
 
204
210
  message_type = message.message_type
205
211
 
206
- handler_logger.debug(tag: :handle) { "Handling Message (Type: #{message_type}, Method: #{handler})" }
207
212
  public_send(handler, message)
208
213
  else
209
214
  if respond_to?(:handle)
210
215
  message_type = message_data.type
211
- handler_logger.debug(tag: :handle) { "Handling Message Data (Type: #{message_type}, Method: handle" }
216
+ handler_logger.trace(tag: [:handle, :message_data]) { "Handling Message Data (Type: #{message_type}, Method: handle" }
212
217
 
213
218
  handle(message_data)
214
219
 
220
+ handler_logger.info(tags: [:handle, :message_data]) { "Handled message data (Type: #{message_data.type})" }
221
+ handler_logger.info(tags: [:data, :message_data]) { message_data.pretty_inspect }
222
+
215
223
  message = message_data
216
224
  else
217
225
  if strict
@@ -222,9 +230,6 @@ module Messaging
222
230
  end
223
231
  end
224
232
 
225
- handler_logger.info(tags: [:handle, :message_data]) { "Handled message data (Type: #{message_data.type})" }
226
- handler_logger.info(tags: [:data, :message_data]) { message_data.pretty_inspect }
227
-
228
233
  message
229
234
  end
230
235
  end
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.2.1
4
+ version: 2.5.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Eventide Project
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-09 00:00:00.000000000 Z
11
+ date: 2020-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evt-message_store
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: evt-settings
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: test_bench
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -54,6 +68,7 @@ files:
54
68
  - lib/messaging/controls/message_data.rb
55
69
  - lib/messaging/controls/metadata.rb
56
70
  - lib/messaging/controls/random.rb
71
+ - lib/messaging/controls/settings.rb
57
72
  - lib/messaging/controls/stream_name.rb
58
73
  - lib/messaging/controls/time.rb
59
74
  - lib/messaging/controls/write.rb
@@ -76,7 +91,7 @@ homepage: https://github.com/eventide-project/messaging
76
91
  licenses:
77
92
  - MIT
78
93
  metadata: {}
79
- post_install_message:
94
+ post_install_message:
80
95
  rdoc_options: []
81
96
  require_paths:
82
97
  - lib
@@ -92,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
107
  version: '0'
93
108
  requirements: []
94
109
  rubygems_version: 3.1.2
95
- signing_key:
110
+ signing_key:
96
111
  specification_version: 4
97
112
  summary: Common primitives for platform-specific messaging implementations for Eventide
98
113
  test_files: []