evt-consumer 0.5.0.4 → 0.6.0.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/consumer/actor.rb +5 -5
- data/lib/consumer/consumer.rb +38 -15
- data/lib/consumer/controls.rb +1 -0
- data/lib/consumer/controls/consumer.rb +3 -3
- data/lib/consumer/controls/consumer/incrementing.rb +3 -6
- data/lib/consumer/controls/error.rb +1 -1
- data/lib/consumer/controls/get.rb +1 -1
- data/lib/consumer/controls/get/incrementing.rb +5 -2
- data/lib/consumer/controls/handle.rb +4 -4
- data/lib/consumer/controls/identifier.rb +9 -0
- data/lib/consumer/controls/position_store.rb +7 -1
- data/lib/consumer/controls/position_store/local_file.rb +9 -3
- data/lib/consumer/controls/subscription.rb +2 -2
- data/lib/consumer/dispatch.rb +5 -5
- data/lib/consumer/dispatch/substitute.rb +6 -6
- data/lib/consumer/handler_registry.rb +7 -7
- data/lib/consumer/position_store.rb +11 -13
- data/lib/consumer/position_store/telemetry.rb +2 -2
- data/lib/consumer/subscription.rb +2 -2
- data/lib/consumer/subscription/get_batch.rb +1 -1
- data/lib/consumer/substitute.rb +6 -6
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2475ecea2ff83320921192335e0a577a7be6c570
|
4
|
+
data.tar.gz: 431e4d264dbf0e5905e38ea0fe5122ca97507ed7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe951b092065c75f0a06965e6cfb5afda86fee1c9133a1d1791c6755560cd32a483eee26db43ea9bcb7b9b6547ffdca26259dff779e4855fcaf33384440db8ec
|
7
|
+
data.tar.gz: 36f378434b972906ee3abc8aaeba0aa2d0b32dab08409c5d78a314abc58ffd27a44793b20de11927a0a2a906174ae15abb9b7c6dc5d1c88204b08c8f35a2a859
|
data/lib/consumer/actor.rb
CHANGED
@@ -19,23 +19,23 @@ module Consumer
|
|
19
19
|
end
|
20
20
|
|
21
21
|
handle Subscription::GetBatch::Reply do |get_batch_reply|
|
22
|
-
|
22
|
+
messages = get_batch_reply.batch
|
23
23
|
|
24
|
-
logger.trace { "Received batch (
|
24
|
+
logger.trace { "Received batch (Messages: #{messages.count})" }
|
25
25
|
|
26
26
|
request_batch
|
27
27
|
|
28
|
-
|
28
|
+
messages.each do |message_data|
|
29
29
|
consumer.(message_data)
|
30
30
|
end
|
31
31
|
|
32
|
-
logger.debug { "Batch received (Events: #{
|
32
|
+
logger.debug { "Batch received (Events: #{messages.count})" }
|
33
33
|
end
|
34
34
|
|
35
35
|
def request_batch
|
36
36
|
logger.trace { "Requesting batch" }
|
37
37
|
|
38
|
-
get_batch = Subscription::GetBatch.new
|
38
|
+
get_batch = Subscription::GetBatch.new(address)
|
39
39
|
|
40
40
|
send.(get_batch, subscription_address)
|
41
41
|
|
data/lib/consumer/consumer.rb
CHANGED
@@ -8,6 +8,7 @@ module Consumer
|
|
8
8
|
extend Start
|
9
9
|
|
10
10
|
extend HandlerMacro
|
11
|
+
extend IdentifierMacro
|
11
12
|
|
12
13
|
prepend Configure
|
13
14
|
|
@@ -29,16 +30,16 @@ module Consumer
|
|
29
30
|
end
|
30
31
|
|
31
32
|
def call(message_data)
|
32
|
-
logger.trace { "Dispatching event (#{LogText.message_data
|
33
|
+
logger.trace { "Dispatching event (#{LogText.message_data(message_data)})" }
|
33
34
|
|
34
35
|
dispatch.(message_data)
|
35
36
|
|
36
|
-
update_position
|
37
|
+
update_position(message_data.global_position)
|
37
38
|
|
38
|
-
logger.info { "Event dispatched (#{LogText.message_data
|
39
|
+
logger.info { "Event dispatched (#{LogText.message_data(message_data)})" }
|
39
40
|
|
40
41
|
rescue => error
|
41
|
-
logger.error { "Error raised (Error Class: #{error.class}, Error Message: #{error.message}, #{LogText.message_data
|
42
|
+
logger.error { "Error raised (Error Class: #{error.class}, Error Message: #{error.message}, #{LogText.message_data(message_data)})" }
|
42
43
|
error_raised error, message_data
|
43
44
|
end
|
44
45
|
|
@@ -59,15 +60,19 @@ module Consumer
|
|
59
60
|
Actor::Messaging::Send.(:stop, address)
|
60
61
|
end
|
61
62
|
|
62
|
-
threads.each
|
63
|
+
threads.each(&:join)
|
63
64
|
|
64
65
|
AsyncInvocation::Incorrect
|
65
66
|
end
|
66
67
|
|
68
|
+
def identifier
|
69
|
+
self.class.identifier
|
70
|
+
end
|
71
|
+
|
67
72
|
def start(&probe)
|
68
73
|
_, subscription_thread = ::Actor::Start.(subscription)
|
69
74
|
|
70
|
-
actor_address, actor_thread = Actor.start
|
75
|
+
actor_address, actor_thread = Actor.start(self, subscription, include: :thread)
|
71
76
|
|
72
77
|
if probe
|
73
78
|
subscription_address = subscription.address
|
@@ -89,8 +94,10 @@ module Consumer
|
|
89
94
|
def update_position(position)
|
90
95
|
logger.trace { "Updating position (Position: #{position}, Interval: #{position_update_interval})" }
|
91
96
|
|
92
|
-
|
93
|
-
|
97
|
+
position_offset = position % position_update_interval
|
98
|
+
|
99
|
+
if position_offset == 0
|
100
|
+
position_store.put(position)
|
94
101
|
|
95
102
|
logger.debug { "Updated position (Position: #{position}, Interval: #{position_update_interval})" }
|
96
103
|
else
|
@@ -112,7 +119,7 @@ module Consumer
|
|
112
119
|
def configure(batch_size: nil, session: nil, position_store: nil)
|
113
120
|
logger.trace { "Configuring (Batch Size: #{batch_size}, Session: #{session.inspect})" }
|
114
121
|
|
115
|
-
super if defined?
|
122
|
+
super if defined?(super)
|
116
123
|
|
117
124
|
starting_position = self.position_store.get
|
118
125
|
|
@@ -125,9 +132,9 @@ module Consumer
|
|
125
132
|
cycle_timeout_milliseconds: cycle_timeout_milliseconds
|
126
133
|
)
|
127
134
|
|
128
|
-
handlers = self.class.handler_registry.get
|
135
|
+
handlers = self.class.handler_registry.get(self)
|
129
136
|
|
130
|
-
dispatch = Dispatch.configure
|
137
|
+
dispatch = Dispatch.configure(self, handlers)
|
131
138
|
|
132
139
|
logger.debug { "Done configuring (Batch Size: #{batch_size}, Session: #{session.inspect}, Starting Position: #{starting_position})" }
|
133
140
|
end
|
@@ -139,7 +146,7 @@ module Consumer
|
|
139
146
|
instance.position_update_interval = position_update_interval
|
140
147
|
instance.cycle_maximum_milliseconds = cycle_maximum_milliseconds
|
141
148
|
instance.cycle_timeout_milliseconds = cycle_timeout_milliseconds
|
142
|
-
instance.configure
|
149
|
+
instance.configure(batch_size: batch_size, position_store: position_store, session: session)
|
143
150
|
instance
|
144
151
|
end
|
145
152
|
end
|
@@ -147,14 +154,14 @@ module Consumer
|
|
147
154
|
module Run
|
148
155
|
def run(stream_name, **arguments, &probe)
|
149
156
|
instance = build stream_name, **arguments
|
150
|
-
instance.run
|
157
|
+
instance.run(&probe)
|
151
158
|
end
|
152
159
|
end
|
153
160
|
|
154
161
|
module Start
|
155
162
|
def start(stream_name, **arguments, &probe)
|
156
163
|
instance = build stream_name, **arguments
|
157
|
-
instance.start
|
164
|
+
instance.start(&probe)
|
158
165
|
end
|
159
166
|
end
|
160
167
|
|
@@ -162,7 +169,7 @@ module Consumer
|
|
162
169
|
def handler_macro(handler=nil, &block)
|
163
170
|
handler ||= block
|
164
171
|
|
165
|
-
handler_registry.register
|
172
|
+
handler_registry.register(handler)
|
166
173
|
end
|
167
174
|
alias_method :handler, :handler_macro
|
168
175
|
|
@@ -170,4 +177,20 @@ module Consumer
|
|
170
177
|
@handler_registry ||= HandlerRegistry.new
|
171
178
|
end
|
172
179
|
end
|
180
|
+
|
181
|
+
module IdentifierMacro
|
182
|
+
attr_writer :identifier
|
183
|
+
|
184
|
+
def identifier_macro(identifier)
|
185
|
+
self.identifier = identifier
|
186
|
+
end
|
187
|
+
|
188
|
+
def identifier(identifier=nil)
|
189
|
+
if identifier.nil?
|
190
|
+
@identifier
|
191
|
+
else
|
192
|
+
identifier_macro(identifier)
|
193
|
+
end
|
194
|
+
end
|
195
|
+
end
|
173
196
|
end
|
data/lib/consumer/controls.rb
CHANGED
@@ -9,6 +9,7 @@ require 'consumer/controls/get'
|
|
9
9
|
require 'consumer/controls/get/incrementing'
|
10
10
|
require 'consumer/controls/handle'
|
11
11
|
require 'consumer/controls/id'
|
12
|
+
require 'consumer/controls/identifier'
|
12
13
|
require 'consumer/controls/position'
|
13
14
|
require 'consumer/controls/stream_name'
|
14
15
|
|
@@ -2,7 +2,7 @@ module Consumer
|
|
2
2
|
module Controls
|
3
3
|
module Consumer
|
4
4
|
def self.example
|
5
|
-
Example.new
|
5
|
+
Example.new(StreamName.example)
|
6
6
|
end
|
7
7
|
|
8
8
|
class Example
|
@@ -11,8 +11,8 @@ module Consumer
|
|
11
11
|
handler Handle::Example
|
12
12
|
|
13
13
|
def configure(session: nil, batch_size: nil, position_store: nil)
|
14
|
-
Get::Example.configure
|
15
|
-
PositionStore::Example.configure
|
14
|
+
Get::Example.configure(self)
|
15
|
+
PositionStore::Example.configure(self, position_store: position_store)
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
@@ -3,10 +3,7 @@ module Consumer
|
|
3
3
|
module Consumer
|
4
4
|
class Incrementing
|
5
5
|
include ::Consumer
|
6
|
-
|
7
|
-
def self.logger
|
8
|
-
@logger ||= ::Log.get self
|
9
|
-
end
|
6
|
+
include ::Log::Dependency
|
10
7
|
|
11
8
|
handler do |message_data|
|
12
9
|
logger.info { "Handled event (StreamName: #{message_data.stream_name}, GlobalPosition: #{message_data.global_position})" }
|
@@ -20,9 +17,9 @@ module Consumer
|
|
20
17
|
sleep_duration = ENV['SLEEP_DURATION'] || 100
|
21
18
|
sleep_duration = sleep_duration.to_i
|
22
19
|
|
23
|
-
Get::Incrementing.configure
|
20
|
+
Get::Incrementing.configure(self, sleep_duration)
|
24
21
|
|
25
|
-
PositionStore::LocalFile.configure
|
22
|
+
PositionStore::LocalFile.configure(self, position_store: position_store)
|
26
23
|
end
|
27
24
|
end
|
28
25
|
end
|
@@ -7,7 +7,7 @@ module Consumer
|
|
7
7
|
initializer :sleep_duration
|
8
8
|
|
9
9
|
def self.build(sleep_duration)
|
10
|
-
new
|
10
|
+
new(sleep_duration)
|
11
11
|
end
|
12
12
|
|
13
13
|
def call(stream_name, position: nil)
|
@@ -27,7 +27,10 @@ module Consumer
|
|
27
27
|
|
28
28
|
class MessageData
|
29
29
|
def self.get(stream_name, global_position, position)
|
30
|
-
data = {
|
30
|
+
data = {
|
31
|
+
:position => position,
|
32
|
+
:global_position => global_position
|
33
|
+
}
|
31
34
|
|
32
35
|
Controls::MessageData.example(
|
33
36
|
stream_name: stream_name,
|
@@ -9,15 +9,15 @@ module Consumer
|
|
9
9
|
include Messaging::Handle
|
10
10
|
|
11
11
|
def handle(message_data)
|
12
|
-
|
12
|
+
handled_messages << message_data
|
13
13
|
end
|
14
14
|
|
15
|
-
def
|
16
|
-
@
|
15
|
+
def handled_messages
|
16
|
+
@handled_messages ||= []
|
17
17
|
end
|
18
18
|
|
19
19
|
def handled?(message_data)
|
20
|
-
|
20
|
+
handled_messages.include?(message_data)
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
@@ -10,10 +10,16 @@ module Consumer
|
|
10
10
|
|
11
11
|
attr_accessor :telemetry_sink
|
12
12
|
|
13
|
+
def self.build
|
14
|
+
instance = new
|
15
|
+
instance.configure
|
16
|
+
instance
|
17
|
+
end
|
18
|
+
|
13
19
|
def configure
|
14
20
|
self.telemetry_sink = ::Consumer::PositionStore::Telemetry::Sink.new
|
15
21
|
|
16
|
-
telemetry.register
|
22
|
+
telemetry.register(telemetry_sink)
|
17
23
|
end
|
18
24
|
|
19
25
|
def get
|
@@ -4,14 +4,20 @@ module Consumer
|
|
4
4
|
class LocalFile
|
5
5
|
include Consumer::PositionStore
|
6
6
|
|
7
|
+
def self.build
|
8
|
+
instance = new
|
9
|
+
instance.configure
|
10
|
+
instance
|
11
|
+
end
|
12
|
+
|
7
13
|
def get
|
8
|
-
return 0 unless File.exist?
|
9
|
-
text = File.read
|
14
|
+
return 0 unless File.exist?(path)
|
15
|
+
text = File.read(path)
|
10
16
|
text.to_i
|
11
17
|
end
|
12
18
|
|
13
19
|
def put(position)
|
14
|
-
File.write
|
20
|
+
File.write(path, position)
|
15
21
|
end
|
16
22
|
|
17
23
|
def path
|
@@ -7,10 +7,10 @@ module Consumer
|
|
7
7
|
get = Get.example
|
8
8
|
|
9
9
|
unless batch.nil?
|
10
|
-
get.set_batch
|
10
|
+
get.set_batch(stream_name, batch, position)
|
11
11
|
end
|
12
12
|
|
13
|
-
subscription = ::Consumer::Subscription.new
|
13
|
+
subscription = ::Consumer::Subscription.new(stream_name, get)
|
14
14
|
|
15
15
|
subscription.position = position if position
|
16
16
|
|
data/lib/consumer/dispatch.rb
CHANGED
@@ -10,20 +10,20 @@ module Consumer
|
|
10
10
|
instance = new
|
11
11
|
|
12
12
|
handlers.each do |handler|
|
13
|
-
instance.add_handler
|
13
|
+
instance.add_handler(handler)
|
14
14
|
end
|
15
15
|
|
16
16
|
instance
|
17
17
|
end
|
18
18
|
|
19
19
|
def call(message_data)
|
20
|
-
logger.trace { "Dispatching event (#{LogText.message_data
|
20
|
+
logger.trace { "Dispatching event (#{LogText.message_data(message_data)})" }
|
21
21
|
|
22
22
|
handlers.each do |handle|
|
23
23
|
handle.(message_data)
|
24
24
|
end
|
25
25
|
|
26
|
-
logger.debug { "Event dispatched (#{LogText.message_data
|
26
|
+
logger.debug { "Event dispatched (#{LogText.message_data(message_data)}, Handlers Count: #{handlers.count})" }
|
27
27
|
|
28
28
|
nil
|
29
29
|
end
|
@@ -37,12 +37,12 @@ module Consumer
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def to_proc
|
40
|
-
method
|
40
|
+
method(:call)
|
41
41
|
end
|
42
42
|
|
43
43
|
module Assertions
|
44
44
|
def handler?(handle)
|
45
|
-
handler_registry.registered?
|
45
|
+
handler_registry.registered?(handle)
|
46
46
|
end
|
47
47
|
end
|
48
48
|
end
|
@@ -7,25 +7,25 @@ module Consumer
|
|
7
7
|
|
8
8
|
class Dispatch
|
9
9
|
def call(message_data)
|
10
|
-
|
10
|
+
dispatched_messages << message_data
|
11
11
|
end
|
12
12
|
|
13
13
|
def add_handler(handle)
|
14
14
|
handlers << handle
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
18
|
-
@
|
17
|
+
def dispatched_messages
|
18
|
+
@dispatched_messages ||= []
|
19
19
|
end
|
20
20
|
|
21
21
|
def dispatched?(message_data=nil, &block)
|
22
22
|
if message_data.nil?
|
23
23
|
block ||= proc { true }
|
24
24
|
else
|
25
|
-
block ||= proc { |
|
25
|
+
block ||= proc { |msg| message_data == msg }
|
26
26
|
end
|
27
27
|
|
28
|
-
|
28
|
+
dispatched_messages.any? &block
|
29
29
|
end
|
30
30
|
|
31
31
|
def handlers
|
@@ -33,7 +33,7 @@ module Consumer
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def handler?(handler)
|
36
|
-
handlers.include?
|
36
|
+
handlers.include?(handler)
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
@@ -5,17 +5,17 @@ module Consumer
|
|
5
5
|
configure :handler_registry
|
6
6
|
|
7
7
|
def register(handler)
|
8
|
-
logger.trace { "Registering handler (Handler: #{LogText.handler
|
8
|
+
logger.trace { "Registering handler (Handler: #{LogText.handler(handler)})" }
|
9
9
|
|
10
10
|
if registered? handler
|
11
|
-
error_message = "Handler is already registered (Handler: #{LogText.handler
|
12
|
-
logger.error error_message
|
11
|
+
error_message = "Handler is already registered (Handler: #{LogText.handler(handler)})"
|
12
|
+
logger.error { error_message }
|
13
13
|
raise Error, error_message
|
14
14
|
end
|
15
15
|
|
16
16
|
entries << handler
|
17
17
|
|
18
|
-
logger.debug { "Handler registered (Handler: #{LogText.handler
|
18
|
+
logger.debug { "Handler registered (Handler: #{LogText.handler(handler)})" }
|
19
19
|
|
20
20
|
handler
|
21
21
|
end
|
@@ -24,7 +24,7 @@ module Consumer
|
|
24
24
|
entries.map do |handler|
|
25
25
|
if handler.is_a? Proc
|
26
26
|
proc { |message_data|
|
27
|
-
consumer.instance_exec
|
27
|
+
consumer.instance_exec(message_data, &handler)
|
28
28
|
}
|
29
29
|
else
|
30
30
|
handler.build
|
@@ -36,7 +36,7 @@ module Consumer
|
|
36
36
|
entries.any? do |entry|
|
37
37
|
return true if handler == entry
|
38
38
|
|
39
|
-
next if entry.is_a?
|
39
|
+
next if entry.is_a?(Proc)
|
40
40
|
|
41
41
|
handler === entry
|
42
42
|
end
|
@@ -60,6 +60,6 @@ module Consumer
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
-
Error = Class.new
|
63
|
+
Error = Class.new(RuntimeError)
|
64
64
|
end
|
65
65
|
end
|
@@ -15,13 +15,11 @@ module Consumer
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
Virtual::Method.define
|
18
|
+
Virtual::Method.define(self, :configure)
|
19
19
|
|
20
20
|
module Build
|
21
|
-
def
|
22
|
-
|
23
|
-
instance.configure
|
24
|
-
instance
|
21
|
+
def self.extended(cls)
|
22
|
+
Virtual::PureMethod.define(cls.singleton_class, :build)
|
25
23
|
end
|
26
24
|
end
|
27
25
|
|
@@ -31,13 +29,13 @@ module Consumer
|
|
31
29
|
|
32
30
|
if position_store.nil?
|
33
31
|
if arguments.any?
|
34
|
-
position_store = build
|
32
|
+
position_store = build(*arguments, **keyword_arguments)
|
35
33
|
else
|
36
|
-
position_store = build
|
34
|
+
position_store = build(*arguments)
|
37
35
|
end
|
38
36
|
end
|
39
37
|
|
40
|
-
receiver.public_send
|
38
|
+
receiver.public_send("#{attr_name}=", position_store)
|
41
39
|
|
42
40
|
position_store
|
43
41
|
end
|
@@ -45,7 +43,7 @@ module Consumer
|
|
45
43
|
|
46
44
|
module Configure
|
47
45
|
def configure
|
48
|
-
::Telemetry.configure
|
46
|
+
::Telemetry.configure(self)
|
49
47
|
|
50
48
|
super
|
51
49
|
end
|
@@ -53,7 +51,7 @@ module Consumer
|
|
53
51
|
|
54
52
|
module Get
|
55
53
|
def self.prepended(cls)
|
56
|
-
Virtual::PureMethod.define
|
54
|
+
Virtual::PureMethod.define(cls, :get)
|
57
55
|
end
|
58
56
|
|
59
57
|
def get
|
@@ -63,7 +61,7 @@ module Consumer
|
|
63
61
|
|
64
62
|
logger.info { "Get position done (Position: #{position || '(none)'})" }
|
65
63
|
|
66
|
-
telemetry.record
|
64
|
+
telemetry.record(:get, Telemetry::Get.new(position))
|
67
65
|
|
68
66
|
position
|
69
67
|
end
|
@@ -71,7 +69,7 @@ module Consumer
|
|
71
69
|
|
72
70
|
module Put
|
73
71
|
def self.prepended(cls)
|
74
|
-
Virtual::Method.define
|
72
|
+
Virtual::Method.define(cls, :put)
|
75
73
|
end
|
76
74
|
|
77
75
|
def put(position)
|
@@ -81,7 +79,7 @@ module Consumer
|
|
81
79
|
|
82
80
|
logger.info { "Put position done (Position: #{position})" }
|
83
81
|
|
84
|
-
telemetry.record
|
82
|
+
telemetry.record(:put, Telemetry::Put.new(position))
|
85
83
|
|
86
84
|
nil
|
87
85
|
end
|
@@ -20,7 +20,7 @@ module Consumer
|
|
20
20
|
cycle_maximum_milliseconds ||= Defaults.cycle_maximum_milliseconds
|
21
21
|
cycle_timeout_milliseconds ||= Defaults.cycle_timeout_milliseconds
|
22
22
|
|
23
|
-
instance = new
|
23
|
+
instance = new(stream_name, get)
|
24
24
|
|
25
25
|
instance.position = position
|
26
26
|
|
@@ -67,7 +67,7 @@ module Consumer
|
|
67
67
|
|
68
68
|
batch = reset_next_batch
|
69
69
|
|
70
|
-
reply_message = get_batch.reply_message
|
70
|
+
reply_message = get_batch.reply_message(batch)
|
71
71
|
|
72
72
|
send.(reply_message, get_batch.reply_address)
|
73
73
|
|
data/lib/consumer/substitute.rb
CHANGED
@@ -6,21 +6,21 @@ module Consumer
|
|
6
6
|
|
7
7
|
class Consumer
|
8
8
|
def call(message_data)
|
9
|
-
|
9
|
+
dispatched_messages << message_data
|
10
10
|
end
|
11
11
|
|
12
|
-
def
|
13
|
-
@
|
12
|
+
def dispatched_messages
|
13
|
+
@dispatched_messages ||= []
|
14
14
|
end
|
15
15
|
|
16
|
-
def
|
16
|
+
def dispatched?(message_data=nil, &block)
|
17
17
|
if message_data.nil?
|
18
18
|
block ||= proc { true }
|
19
19
|
else
|
20
|
-
block ||= proc { |
|
20
|
+
block ||= proc { |msg| message_data == msg }
|
21
21
|
end
|
22
22
|
|
23
|
-
|
23
|
+
dispatched_messages.any?(&block)
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evt-consumer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0.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: 2017-
|
11
|
+
date: 2017-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ntl-actor
|
@@ -99,6 +99,7 @@ files:
|
|
99
99
|
- lib/consumer/controls/get/incrementing.rb
|
100
100
|
- lib/consumer/controls/handle.rb
|
101
101
|
- lib/consumer/controls/id.rb
|
102
|
+
- lib/consumer/controls/identifier.rb
|
102
103
|
- lib/consumer/controls/message_data.rb
|
103
104
|
- lib/consumer/controls/message_data/batch.rb
|
104
105
|
- lib/consumer/controls/position.rb
|