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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 662e0114549951c68e052b7cb91cd869fb3b6c08
4
- data.tar.gz: b89ef00453b95aa34b649540bb9aaa73ca489902
3
+ metadata.gz: 8198797269a8305829bf75445528c0e9857a2b4e
4
+ data.tar.gz: ff430be9229c0b32aa819d452767aba402c3ce9f
5
5
  SHA512:
6
- metadata.gz: c2d42ea109c7fc95836c1fc74c0ebd5ece1feed7d1d9ba391e488e45c57da17875defe0883835c037baf96d78b8d3e3ae6d201af9a54c8169b8c5dd8bf286935
7
- data.tar.gz: e3e13bdbbf5188b3cf2684a0973c87834e970e9227f20984b2df9cb99b338c405ec3dfec421409127f67f0ac1629140479767df2626281c13e6d4bae9dffd351
6
+ metadata.gz: 2e2ae37969637886332a04760b2c9f4e435e570d7bc7f74f0aa9849d2c8a40a125bdf431ffbd84767380524edeab757116a4e97e6c1dab8592afced0baa21e1c
7
+ data.tar.gz: f20d34f092577d031febbe0eb4ce4d151519475b7f17cee491526ad596a548c314ecf8011ade78ab00175dd8205d309a0e64c0ebbffe16bd9c5a3e1f154f9fc0
@@ -1,7 +1,7 @@
1
1
  module Consumer
2
2
  module EventStore
3
3
  module Controls
4
- EventData = ::Consumer::Controls::EventData
4
+ MessageData = ::Consumer::Controls::MessageData
5
5
  end
6
6
  end
7
7
  end
@@ -7,7 +7,7 @@ module Consumer
7
7
  stream_name ||= StreamName.example type: 'position'
8
8
  position ||= 0
9
9
 
10
- message = PositionStore::PositionUpdated.new
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/event_data'
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
- EventSource::EventStore::HTTP::Get.configure(
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
- position_store_stream_name,
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
@@ -0,0 +1,11 @@
1
+ module Consumer
2
+ module EventStore
3
+ class PositionStore
4
+ class Updated
5
+ include Messaging::Message
6
+
7
+ attribute :position, Integer
8
+ end
9
+ end
10
+ end
11
+ end
@@ -5,61 +5,38 @@ module Consumer
5
5
 
6
6
  initializer :stream_name
7
7
 
8
- dependency :get_last, EventSource::EventStore::HTTP::Get::Last
9
- dependency :session, EventSource::EventStore::HTTP::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.canonize stream_name
13
+ position_stream_name = StreamName.get(stream_name)
14
14
 
15
15
  instance = new position_stream_name
16
- EventSource::EventStore::HTTP::Session.configure instance, session: session
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
- EventSource::EventStore::HTTP::Get::Last.configure self, session: session
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
- event_data = get_last.(stream_name)
27
+ message_data = get_last.(stream_name)
28
28
 
29
- return nil if event_data.nil?
29
+ return nil if message_data.nil?
30
30
 
31
- message = Messaging::Message::Import.(event_data, PositionUpdated)
31
+ message = Messaging::Message::Import.(message_data, Updated)
32
32
  message.position
33
33
  end
34
34
 
35
35
  def put(position)
36
- message = PositionUpdated.build :position => position
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
@@ -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.2.1.1
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-02-01 00:00:00.000000000 Z
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