ruby_event_store 0.43.0 → 0.44.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/ruby_event_store/broker.rb +1 -1
 - data/lib/ruby_event_store/event.rb +9 -14
 - data/lib/ruby_event_store/link_by_metadata.rb +4 -4
 - data/lib/ruby_event_store/mappers/protobuf.rb +1 -1
 - data/lib/ruby_event_store/mappers/transformation/domain_event.rb +1 -1
 - data/lib/ruby_event_store/projection.rb +5 -4
 - data/lib/ruby_event_store/spec/broker_lint.rb +1 -1
 - data/lib/ruby_event_store/spec/event_lint.rb +4 -4
 - data/lib/ruby_event_store/spec/mapper_lint.rb +1 -1
 - data/lib/ruby_event_store/version.rb +1 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 368744aa127e8d45d1e6237561ffb22279452f5e71212e1bda86988ee2726c3a
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 7dfbd1a66c649a6ecc90f08432047ff93aa7376eaec66ab774a5a347d574135a
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 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. 
     | 
| 
      
 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  
     | 
| 
      
 33 
     | 
    
         
            +
                def event_type
         
     | 
| 
       34 
34 
     | 
    
         
             
                  self.class.name
         
     | 
| 
       35 
35 
     | 
    
         
             
                end
         
     | 
| 
       36 
36 
     | 
    
         | 
| 
       37 
     | 
    
         
            -
                #  
     | 
| 
       38 
     | 
    
         
            -
                #
         
     | 
| 
       39 
     | 
    
         
            -
                 
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       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. 
     | 
| 
      
 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. 
     | 
| 
       52 
     | 
    
         
            -
                    stream_name: "#{@prefix}#{event. 
     | 
| 
      
 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
         
     | 
| 
         @@ -15,8 +15,8 @@ module RubyEventStore 
     | 
|
| 
       15 
15 
     | 
    
         | 
| 
       16 
16 
     | 
    
         
             
                def initialize(streams: [])
         
     | 
| 
       17 
17 
     | 
    
         
             
                  @streams  = streams
         
     | 
| 
       18 
     | 
    
         
            -
                  @handlers =  
     | 
| 
       19 
     | 
    
         
            -
                  @init     = -> {  
     | 
| 
      
 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. 
     | 
| 
      
 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 
     | 
| 
      
 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,  
     | 
| 
      
 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. 
     | 
| 
       35 
     | 
    
         
            -
                expect(event. 
     | 
| 
       36 
     | 
    
         
            -
                expect(event. 
     | 
| 
      
 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. 
     | 
| 
      
 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
         
     | 
    
        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. 
     | 
| 
      
 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- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2020-04-28 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: concurrent-ruby
         
     |