ruby_event_store 0.43.0 → 0.44.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5dec78069a189ba48a3eacb8c3ff06629e9c9067ea21f23480dbb521394fbaeb
4
- data.tar.gz: d4d466bf64f7402b5f6341228628cebbd73c1a42aecab7e51362c8a6b4f38bb8
3
+ metadata.gz: 368744aa127e8d45d1e6237561ffb22279452f5e71212e1bda86988ee2726c3a
4
+ data.tar.gz: 7dfbd1a66c649a6ecc90f08432047ff93aa7376eaec66ab774a5a347d574135a
5
5
  SHA512:
6
- metadata.gz: 80b4dfbda828a29dfe5cdc0f2606eddc10588822869f6bbd4a880f4407c8d422341ed7e57f639d04c417c15e1ba163343d1bfe51a0f61c23c59aa066443586dc
7
- data.tar.gz: 265efe01bb2bb7bf2a3c6a4b68affd55b28aa04392223884359e0164b9a798b7707cb232291ce756877c51be71e36b1ccbca727140c390863697770e989cfa9f
6
+ metadata.gz: 88167b0f2ac9b3e7148b3772b39e1193eaed384af89c12761790b1a43d34d66677c1d91dba6926fe0d5d773dd446e3a0b8e6bbe0642dffbb1b7d081435400a93
7
+ data.tar.gz: 4eb32bd4ffe7abc50611b0dcb24d778f423d68322b7e9a0dee52680a3dddcc6bfeae1a70a4e744dce071357e9d3ebd85648afb4ba70dfe8eb96c0cc45d34b73e
@@ -8,7 +8,7 @@ module RubyEventStore
8
8
  end
9
9
 
10
10
  def call(event, serialized_event)
11
- subscribers = subscriptions.all_for(event.type)
11
+ subscribers = subscriptions.all_for(event.event_type)
12
12
  subscribers.each do |subscriber|
13
13
  dispatcher.call(subscriber, event, serialized_event)
14
14
  end
@@ -30,22 +30,17 @@ module RubyEventStore
30
30
 
31
31
  # Type of event. Used when matching with subscribed handlers.
32
32
  # @return [String]
33
- def type
33
+ def event_type
34
34
  self.class.name
35
35
  end
36
36
 
37
- # Returns a hash representation of the event.
38
- #
39
- # Metadata is converted to hash as well
40
- #
41
- # @return [Hash] with :event_id, :metadata, :data, :type keys
42
- def to_h
43
- {
44
- event_id: event_id,
45
- metadata: metadata.to_h,
46
- data: data,
47
- type: type,
48
- }
37
+ # Type of event. Used when matching with subscribed handlers.
38
+ # @return [String]
39
+ def type
40
+ warn <<~EOW
41
+ `type` has been deprecated. Use `event_type` instead.
42
+ EOW
43
+ event_type
49
44
  end
50
45
 
51
46
  # Timestamp from metadata
@@ -140,4 +135,4 @@ module RubyEventStore
140
135
 
141
136
  alias_method :eql?, :==
142
137
  end
143
- end
138
+ end
@@ -13,7 +13,7 @@ module RubyEventStore
13
13
  return unless event.metadata.has_key?(@key)
14
14
 
15
15
  @event_store.link(
16
- [event.message_id],
16
+ [event.event_id],
17
17
  stream_name: "#{@prefix}#{event.metadata.fetch(@key)}"
18
18
  )
19
19
  end
@@ -48,10 +48,10 @@ module RubyEventStore
48
48
 
49
49
  def call(event)
50
50
  @event_store.link(
51
- [event.message_id],
52
- stream_name: "#{@prefix}#{event.type}"
51
+ [event.event_id],
52
+ stream_name: "#{@prefix}#{event.event_type}"
53
53
  )
54
54
  end
55
55
  end
56
56
 
57
- end
57
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module RubyEventStore
4
4
  class Proto < RubyEventStore::Event
5
- def type
5
+ def event_type
6
6
  data.class.descriptor.name
7
7
  end
8
8
 
@@ -9,7 +9,7 @@ module RubyEventStore
9
9
  event_id: domain_event.event_id,
10
10
  metadata: domain_event.metadata.to_h,
11
11
  data: domain_event.data,
12
- event_type: domain_event.type
12
+ event_type: domain_event.event_type
13
13
  )
14
14
  end
15
15
 
@@ -15,8 +15,8 @@ module RubyEventStore
15
15
 
16
16
  def initialize(streams: [])
17
17
  @streams = streams
18
- @handlers = Hash.new { ->(_, _) {} }
19
- @init = -> { Hash.new }
18
+ @handlers = {}
19
+ @init = -> { {} }
20
20
  end
21
21
 
22
22
  attr_reader :streams, :handlers
@@ -43,7 +43,7 @@ module RubyEventStore
43
43
  end
44
44
 
45
45
  def call(event)
46
- handlers.fetch(event.type).(current_state, event)
46
+ handlers.fetch(event.event_type).(current_state, event)
47
47
  end
48
48
 
49
49
  def handled_events
@@ -83,6 +83,7 @@ module RubyEventStore
83
83
 
84
84
  def read_scope(event_store, stream, count, start)
85
85
  scope = event_store.read.in_batches(count)
86
+ scope = scope.of_type(handled_events)
86
87
  scope = scope.stream(stream) if stream
87
88
  scope = scope.from(start) if start
88
89
  scope
@@ -93,7 +94,7 @@ module RubyEventStore
93
94
  end
94
95
 
95
96
  def transition(state, event)
96
- handlers[event.type].(state, event)
97
+ handlers.fetch(event.event_type).call(state, event)
97
98
  state
98
99
  end
99
100
  end
@@ -1,5 +1,5 @@
1
1
  RSpec.shared_examples :broker do |broker_klass|
2
- let(:event) { instance_double(::RubyEventStore::Event, type: 'EventType') }
2
+ let(:event) { instance_double(::RubyEventStore::Event, event_type: 'EventType') }
3
3
  let(:serialized_event) { instance_double(::RubyEventStore::SerializedRecord) }
4
4
  let(:handler) { HandlerClass.new }
5
5
  let(:subscriptions) { ::RubyEventStore::Subscriptions.new }
@@ -29,11 +29,11 @@ RSpec.shared_examples :event do |event_class|
29
29
  expect(event.event_id).to eq '1234567890'
30
30
  end
31
31
 
32
- it 'provides type as string' do
32
+ it 'provides event type as string' do
33
33
  event = event_class.new
34
- expect(event.type).to be_an_instance_of(String)
35
- expect(event.type).not_to eq ''
36
- expect(event.type).not_to eq nil
34
+ expect(event.event_type).to be_an_instance_of(String)
35
+ expect(event.event_type).not_to eq ''
36
+ expect(event.event_type).not_to eq nil
37
37
  end
38
38
 
39
39
  it "provides data" do
@@ -5,7 +5,7 @@ module RubyEventStore
5
5
 
6
6
  expect(record).to be_kind_of(SerializedRecord)
7
7
  expect(record.event_id).to eq(domain_event.event_id)
8
- expect(record.event_type).to eq(domain_event.type)
8
+ expect(record.event_type).to eq(domain_event.event_type)
9
9
  end
10
10
 
11
11
  specify "serialize and deserialize gives equal event" do
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubyEventStore
4
- VERSION = "0.43.0"
4
+ VERSION = "0.44.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_event_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.43.0
4
+ version: 0.44.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arkency
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-26 00:00:00.000000000 Z
11
+ date: 2020-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby