evt-consumer-event_store 0.2.1.1 → 0.3.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/event_store/controls/{event_data.rb → message_data.rb} +1 -1
- data/lib/consumer/event_store/controls/position_stream.rb +1 -1
- data/lib/consumer/event_store/controls.rb +1 -1
- data/lib/consumer/event_store/event_store.rb +2 -4
- data/lib/consumer/event_store/position_store/stream_name.rb +28 -0
- data/lib/consumer/event_store/position_store/updated.rb +11 -0
- data/lib/consumer/event_store/position_store.rb +10 -33
- data/lib/consumer/event_store.rb +6 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8198797269a8305829bf75445528c0e9857a2b4e
|
4
|
+
data.tar.gz: ff430be9229c0b32aa819d452767aba402c3ce9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2e2ae37969637886332a04760b2c9f4e435e570d7bc7f74f0aa9849d2c8a40a125bdf431ffbd84767380524edeab757116a4e97e6c1dab8592afced0baa21e1c
|
7
|
+
data.tar.gz: f20d34f092577d031febbe0eb4ce4d151519475b7f17cee491526ad596a548c314ecf8011ade78ab00175dd8205d309a0e64c0ebbffe16bd9c5a3e1f154f9fc0
|
@@ -7,7 +7,7 @@ module Consumer
|
|
7
7
|
stream_name ||= StreamName.example type: 'position'
|
8
8
|
position ||= 0
|
9
9
|
|
10
|
-
message = PositionStore::
|
10
|
+
message = PositionStore::Updated.new
|
11
11
|
message.position = position
|
12
12
|
|
13
13
|
Messaging::EventStore::Write.(message, stream_name)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'consumer/controls'
|
2
2
|
|
3
3
|
require 'consumer/event_store/controls/category'
|
4
|
-
require 'consumer/event_store/controls/
|
4
|
+
require 'consumer/event_store/controls/message_data'
|
5
5
|
require 'consumer/event_store/controls/handle'
|
6
6
|
require 'consumer/event_store/controls/position_stream'
|
7
7
|
require 'consumer/event_store/controls/stream_name'
|
@@ -15,18 +15,16 @@ module Consumer
|
|
15
15
|
get_session = CopySession.(session)
|
16
16
|
end
|
17
17
|
|
18
|
-
|
18
|
+
MessageStore::EventStore::Get.configure(
|
19
19
|
self,
|
20
20
|
batch_size: batch_size,
|
21
21
|
long_poll_duration: long_poll_duration,
|
22
22
|
session: get_session
|
23
23
|
)
|
24
24
|
|
25
|
-
position_store_stream_name = stream_name.sub %r{\A\$ce-}, ''
|
26
|
-
|
27
25
|
PositionStore.configure(
|
28
26
|
self,
|
29
|
-
|
27
|
+
stream_name,
|
30
28
|
session: session,
|
31
29
|
position_store: position_store
|
32
30
|
)
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Consumer
|
2
|
+
module EventStore
|
3
|
+
class PositionStore
|
4
|
+
module StreamName
|
5
|
+
def self.get(stream_name)
|
6
|
+
match_data = MessageStore::EventStore::StreamName.parse(stream_name)
|
7
|
+
|
8
|
+
types = match_data[:type_list]
|
9
|
+
types = Array(types)
|
10
|
+
|
11
|
+
return stream_name if types.include?('position')
|
12
|
+
|
13
|
+
types << 'position'
|
14
|
+
|
15
|
+
entity_name = match_data[:entity]
|
16
|
+
|
17
|
+
stream_id = match_data[:stream_id]
|
18
|
+
|
19
|
+
MessageStore::StreamName.stream_name(
|
20
|
+
entity_name,
|
21
|
+
stream_id,
|
22
|
+
types: types
|
23
|
+
)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -5,61 +5,38 @@ module Consumer
|
|
5
5
|
|
6
6
|
initializer :stream_name
|
7
7
|
|
8
|
-
dependency :get_last,
|
9
|
-
dependency :session,
|
8
|
+
dependency :get_last, MessageStore::EventStore::Get::Last
|
9
|
+
dependency :session, MessageStore::EventStore::Session
|
10
10
|
dependency :write, ::Messaging::EventStore::Write
|
11
11
|
|
12
12
|
def self.build(stream_name, session: nil)
|
13
|
-
position_stream_name = StreamName.
|
13
|
+
position_stream_name = StreamName.get(stream_name)
|
14
14
|
|
15
15
|
instance = new position_stream_name
|
16
|
-
|
16
|
+
MessageStore::EventStore::Session.configure instance, session: session
|
17
17
|
instance.configure
|
18
18
|
instance
|
19
19
|
end
|
20
20
|
|
21
21
|
def configure
|
22
|
-
|
22
|
+
MessageStore::EventStore::Get::Last.configure self, session: session
|
23
23
|
Messaging::EventStore::Write.configure self, session: session
|
24
24
|
end
|
25
25
|
|
26
26
|
def get
|
27
|
-
|
27
|
+
message_data = get_last.(stream_name)
|
28
28
|
|
29
|
-
return nil if
|
29
|
+
return nil if message_data.nil?
|
30
30
|
|
31
|
-
message = Messaging::Message::Import.(
|
31
|
+
message = Messaging::Message::Import.(message_data, Updated)
|
32
32
|
message.position
|
33
33
|
end
|
34
34
|
|
35
35
|
def put(position)
|
36
|
-
message =
|
36
|
+
message = Updated.new
|
37
|
+
message.position = position
|
37
38
|
|
38
39
|
write.(message, stream_name)
|
39
|
-
|
40
|
-
message
|
41
|
-
end
|
42
|
-
|
43
|
-
class PositionUpdated
|
44
|
-
include Messaging::Message
|
45
|
-
|
46
|
-
attribute :position, Integer
|
47
|
-
end
|
48
|
-
|
49
|
-
module StreamName
|
50
|
-
def self.canonize(stream_name)
|
51
|
-
types = EventSource::StreamName.get_type_list stream_name
|
52
|
-
types = Array(types)
|
53
|
-
|
54
|
-
return stream_name if types.include? 'position'
|
55
|
-
|
56
|
-
types << 'position'
|
57
|
-
|
58
|
-
entity_name = EventSource::StreamName.get_entity_name stream_name
|
59
|
-
id = EventSource::StreamName.get_id stream_name
|
60
|
-
|
61
|
-
EventSource::StreamName.stream_name entity_name, id, types: types
|
62
|
-
end
|
63
40
|
end
|
64
41
|
end
|
65
42
|
end
|
data/lib/consumer/event_store.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
require 'consumer'
|
2
|
+
|
2
3
|
require 'messaging/event_store'
|
3
4
|
|
5
|
+
require 'consumer/event_store/position_store'
|
6
|
+
require 'consumer/event_store/position_store/updated'
|
7
|
+
require 'consumer/event_store/position_store/stream_name'
|
8
|
+
|
4
9
|
require 'consumer/event_store/copy_session'
|
10
|
+
|
5
11
|
require 'consumer/event_store/event_store'
|
6
|
-
require 'consumer/event_store/position_store'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evt-consumer-event_store
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.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-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: evt-consumer
|
@@ -62,13 +62,15 @@ files:
|
|
62
62
|
- lib/consumer/event_store/controls.rb
|
63
63
|
- lib/consumer/event_store/controls/category.rb
|
64
64
|
- lib/consumer/event_store/controls/consumer.rb
|
65
|
-
- lib/consumer/event_store/controls/event_data.rb
|
66
65
|
- lib/consumer/event_store/controls/handle.rb
|
66
|
+
- lib/consumer/event_store/controls/message_data.rb
|
67
67
|
- lib/consumer/event_store/controls/position_stream.rb
|
68
68
|
- lib/consumer/event_store/controls/stream_name.rb
|
69
69
|
- lib/consumer/event_store/copy_session.rb
|
70
70
|
- lib/consumer/event_store/event_store.rb
|
71
71
|
- lib/consumer/event_store/position_store.rb
|
72
|
+
- lib/consumer/event_store/position_store/stream_name.rb
|
73
|
+
- lib/consumer/event_store/position_store/updated.rb
|
72
74
|
homepage: https://github.com/eventide-project/consumer-event-store
|
73
75
|
licenses:
|
74
76
|
- MIT
|