event_store_subscriptions 1.2.1 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +16 -32
- data/lib/event_store_subscriptions/subscription.rb +6 -7
- data/lib/event_store_subscriptions/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f0ea0e0a7d5583dffb1783e4c51d78e42e048ef64720f34ba338814f5a07978
|
4
|
+
data.tar.gz: 87e8be2b18a52d2d6bff4634320b6fd0223c57fb4967f7279e0ce4b43efef5b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b76357f9782e7980498b2328d067afb2743e9f0ba6db73b196c2253c3d6792a7a461e05e488a02f0ccf711cb9864d27798100ab0d9a5e7c9ea9aa7ba69cc14d
|
7
|
+
data.tar.gz: d47c76a3a191f73c2d654eebd537ed7cc277a05acb4b285a99e0fcb4ae9ef2b27de6b70214bd4c17515b9bdf18e2d7e3272b69f50b176744a269687ae82a3d20
|
data/README.md
CHANGED
@@ -35,12 +35,8 @@ Use the `#create` method in order to subscribe to specific stream:
|
|
35
35
|
|
36
36
|
```ruby
|
37
37
|
subscriptions = EventStoreSubscriptions::Subscriptions.new(EventStoreClient.client)
|
38
|
-
handler = proc do |
|
39
|
-
|
40
|
-
do_something_with_resp(resp.success) # retrieve an event
|
41
|
-
else # resp.failure? => true
|
42
|
-
handle_failure(resp.failure)
|
43
|
-
end
|
38
|
+
handler = proc do |event|
|
39
|
+
# process event
|
44
40
|
end
|
45
41
|
subscriptions.create('some-stream', handler: handler)
|
46
42
|
subscriptions.listen_all
|
@@ -50,12 +46,8 @@ You may provide any object which responds to `#call` as a handler:
|
|
50
46
|
|
51
47
|
```ruby
|
52
48
|
class SomeStreamHandler
|
53
|
-
def call(
|
54
|
-
|
55
|
-
do_something_with_resp(resp.success) # retrieve an event
|
56
|
-
else # resp.failure? => true
|
57
|
-
handle_failure(resp.failure)
|
58
|
-
end
|
49
|
+
def call(event)
|
50
|
+
# process event
|
59
51
|
end
|
60
52
|
end
|
61
53
|
subscriptions = EventStoreSubscriptions::Subscriptions.new(EventStoreClient.client)
|
@@ -69,12 +61,8 @@ Use the `#create_for_all` method to subscribe to the all stream:
|
|
69
61
|
|
70
62
|
```ruby
|
71
63
|
subscriptions = EventStoreSubscriptions::Subscriptions.new(EventStoreClient.client)
|
72
|
-
handler = proc do |
|
73
|
-
|
74
|
-
do_something_with_resp(resp.success) # retrieve an event
|
75
|
-
else # resp.failure? => true
|
76
|
-
handle_failure(resp.failure)
|
77
|
-
end
|
64
|
+
handler = proc do |event|
|
65
|
+
# process event
|
78
66
|
end
|
79
67
|
subscriptions.create_for_all(handler: handler)
|
80
68
|
subscriptions.listen_all
|
@@ -84,12 +72,8 @@ You may also explicitly pass `"$all"` stream name to the `#create` method:
|
|
84
72
|
|
85
73
|
```ruby
|
86
74
|
subscriptions = EventStoreSubscriptions::Subscriptions.new(EventStoreClient.client)
|
87
|
-
handler = proc do |
|
88
|
-
|
89
|
-
do_something_with_resp(resp.success) # retrieve an event
|
90
|
-
else # resp.failure? => true
|
91
|
-
handle_failure(resp.failure)
|
92
|
-
end
|
75
|
+
handler = proc do |event|
|
76
|
+
# process event
|
93
77
|
end
|
94
78
|
subscriptions.create('$all', handler: handler)
|
95
79
|
subscriptions.listen_all
|
@@ -105,7 +89,7 @@ A handler registered to receive position updates of a specific stream is called
|
|
105
89
|
|
106
90
|
```ruby
|
107
91
|
subscriptions = EventStoreSubscriptions::Subscriptions.new(EventStoreClient.client)
|
108
|
-
subscription = subscriptions.create('some-stream', handler: proc { |
|
92
|
+
subscription = subscriptions.create('some-stream', handler: proc { |event| p event })
|
109
93
|
subscription.position.register_update_hook do |position|
|
110
94
|
puts "Current revision is #{position.revision}"
|
111
95
|
end
|
@@ -118,7 +102,7 @@ A handler registered to receive position updates of the `$all` stream is called
|
|
118
102
|
|
119
103
|
```ruby
|
120
104
|
subscriptions = EventStoreSubscriptions::Subscriptions.new(EventStoreClient.client)
|
121
|
-
subscription = subscriptions.create_for_all(handler: proc { |
|
105
|
+
subscription = subscriptions.create_for_all(handler: proc { |event| p event })
|
122
106
|
subscription.position.register_update_hook do |position|
|
123
107
|
puts "Current commit/prepare positions are #{position.commit_position}/#{position.prepare_position}"
|
124
108
|
end
|
@@ -133,7 +117,7 @@ Start watching over your subscriptions' collection:
|
|
133
117
|
|
134
118
|
```ruby
|
135
119
|
subscriptions = EventStoreSubscriptions::Subscriptions.new(EventStoreClient.client)
|
136
|
-
subscriptions.create_for_all(handler: proc { |
|
120
|
+
subscriptions.create_for_all(handler: proc { |event| p event })
|
137
121
|
EventStoreSubscriptions::WatchDog.watch(subscriptions)
|
138
122
|
subscriptions.listen_all
|
139
123
|
```
|
@@ -154,7 +138,7 @@ For single subscription:
|
|
154
138
|
|
155
139
|
```ruby
|
156
140
|
subscriptions = EventStoreSubscriptions::Subscriptions.new(EventStoreClient.client)
|
157
|
-
subscription = subscriptions.create_for_all(handler: proc { |
|
141
|
+
subscription = subscriptions.create_for_all(handler: proc { |event| p event })
|
158
142
|
subscription.listen
|
159
143
|
|
160
144
|
# Initiate Subscription shutdown
|
@@ -167,7 +151,7 @@ For the entire collection:
|
|
167
151
|
|
168
152
|
```ruby
|
169
153
|
subscriptions = EventStoreSubscriptions::Subscriptions.new(EventStoreClient.client)
|
170
|
-
subscriptions.create_for_all(handler: proc { |
|
154
|
+
subscriptions.create_for_all(handler: proc { |event| p event })
|
171
155
|
subscriptions.listen_all
|
172
156
|
|
173
157
|
# Initiate shutdown for each Subscription in the collection
|
@@ -194,7 +178,7 @@ You may want to gracefully shut down the process that handles the subscriptions.
|
|
194
178
|
|
195
179
|
```ruby
|
196
180
|
subscriptions = EventStoreSubscriptions::Subscriptions.new(EventStoreClient.client)
|
197
|
-
subscriptions.create_for_all(handler: proc { |
|
181
|
+
subscriptions.create_for_all(handler: proc { |event| p event })
|
198
182
|
watcher = EventStoreSubscriptions::WatchDog.watch(subscriptions)
|
199
183
|
subscriptions.listen_all
|
200
184
|
|
@@ -225,7 +209,7 @@ After you started listening your Subscriptions, you may want to monitor status o
|
|
225
209
|
|
226
210
|
```ruby
|
227
211
|
subscriptions = EventStoreSubscriptions::Subscriptions.new(EventStoreClient.client)
|
228
|
-
subscriptions.create_for_all(handler: proc { |
|
212
|
+
subscriptions.create_for_all(handler: proc { |event| p event })
|
229
213
|
watcher = EventStoreSubscriptions::WatchDog.watch(subscriptions)
|
230
214
|
subscriptions.listen_all
|
231
215
|
|
@@ -249,7 +233,7 @@ You may want to decide yourself whether `WhatchDog` should restart a `Subscripti
|
|
249
233
|
|
250
234
|
```ruby
|
251
235
|
subscriptions = EventStoreSubscriptions::Subscriptions.new(EventStoreClient.client)
|
252
|
-
subscriptions.create_for_all(handler: proc { |
|
236
|
+
subscriptions.create_for_all(handler: proc { |event| p event })
|
253
237
|
# Do not restart Subscription if its id is even
|
254
238
|
restart_terminator = proc { |sub| sub.__id__ % 2 == 0 }
|
255
239
|
EventStoreSubscriptions::WatchDog.watch(subscriptions, restart_terminator: restart_terminator)
|
@@ -92,19 +92,18 @@ module EventStoreSubscriptions
|
|
92
92
|
# @param original_handler [#call]
|
93
93
|
# @return [Proc]
|
94
94
|
def handler(original_handler)
|
95
|
-
proc do |
|
95
|
+
proc do |raw_resp|
|
96
96
|
Thread.current.exit unless state.running?
|
97
|
-
|
98
|
-
result =
|
97
|
+
event_or_raw_resp =
|
99
98
|
EventStoreClient::GRPC::Shared::Streams::ProcessResponse.new(config: client.config).call(
|
100
|
-
|
99
|
+
raw_resp,
|
101
100
|
*process_response_args
|
102
101
|
)
|
103
|
-
if
|
104
|
-
original_handler.call(
|
102
|
+
if event_or_raw_resp
|
103
|
+
original_handler.call(event_or_raw_resp)
|
105
104
|
statistic.events_processed += 1
|
106
105
|
end
|
107
|
-
position.update(
|
106
|
+
position.update(raw_resp)
|
108
107
|
end
|
109
108
|
end
|
110
109
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: event_store_subscriptions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivan Dzyzenko
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 3.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 3.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: pry
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|