ruby_event_store 0.3.1 → 0.4.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
  SHA1:
3
- metadata.gz: 69546ce0878a7fa65749f566b540daa5c95208d2
4
- data.tar.gz: d61f323dfcf883a093c30fb0c4fb38bdfb83efe5
3
+ metadata.gz: 469ba42eaa17c3da62c4982cb2faf4fa2f247da7
4
+ data.tar.gz: 3bd2294568ef5228c4dfe3887e84b26efd5b1c89
5
5
  SHA512:
6
- metadata.gz: f7c10b9e99f4bfa6ceb29851f712defbe399219977e221770acd72e5f0669d0095cb51d9ae618933dcc6c92e0d1b2ba8a79dd0e6e95911441c35a5177a85d100
7
- data.tar.gz: c00e2dc24868728c5c1fbd468a11eb446e5c63ab70187f24274b8ea6485082e0ed0ebf50809244e2e0572d644310b91df89783f41d19ff97e03598970313a9cc
6
+ metadata.gz: 073ae3f2ed7e25f2acad23b5deb7991866b4f76e01e41f8d015a1760780f15882ea596431d2e664dde644b416b7c6a0faf78875fefd12d482882d33091e06892
7
+ data.tar.gz: a87826352248c9f50e38dfffd3f4f4a1474243d74fdb924ad66d49b41d20e359b2d9171b3d22085da7cb2e3ec01e059b8bb8091995102cce812feb3344f856ac
@@ -1,5 +1,9 @@
1
1
  ### HEAD
2
2
 
3
+ ### 0.4.0 (17.03.2016)
4
+
5
+ * Change: Use class names to subscribe events PR #8
6
+
3
7
  ### 0.3.1 (13.03.2016)
4
8
 
5
9
  * Fix Don't overwrite timestamps when reading from repository
@@ -8,17 +8,20 @@ module RubyEventStore
8
8
  singleton_class.__send__(:define_method, key) { value }
9
9
  end
10
10
 
11
- @event_type = args[:event_type] || event_name
12
11
  @event_id = (args[:event_id] || generate_id).to_s
13
12
  @metadata = args[:metadata] || {}
14
13
  @data = attributes(args)
15
14
  @metadata[:timestamp] ||= Time.now.utc
16
15
  end
17
- attr_reader :event_type, :event_id, :metadata, :data
16
+ attr_reader :event_id, :metadata, :data
17
+
18
+ def event_type
19
+ self.class
20
+ end
18
21
 
19
22
  def to_h
20
23
  {
21
- event_type: event_type,
24
+ event_type: event_type.name,
22
25
  event_id: event_id,
23
26
  metadata: metadata,
24
27
  data: data
@@ -29,18 +32,20 @@ module RubyEventStore
29
32
  metadata[:timestamp]
30
33
  end
31
34
 
35
+ def ==(other_event)
36
+ other_event.instance_of?(self.class) && other_event.to_h.eql?(to_h)
37
+ end
38
+
39
+ alias_method :eql?, :==
40
+
32
41
  private
33
42
 
34
43
  def attributes(args)
35
- args.reject { |k| [:event_type, :event_id, :metadata].include? k }
44
+ args.reject { |k| [:event_id, :metadata].include? k }
36
45
  end
37
46
 
38
47
  def generate_id
39
48
  SecureRandom.uuid
40
49
  end
41
-
42
- def event_name
43
- self.class.name
44
- end
45
50
  end
46
51
  end
@@ -12,8 +12,8 @@ RSpec.shared_examples :event_repository do |repository_class|
12
12
  end
13
13
 
14
14
  it 'created event is stored in given stream' do
15
- expected_event = {event_type: 'TestDomainEvent', data: {}}
16
- created = repository.create(TestDomainEvent.new, 'stream')
15
+ expected_event = TestDomainEvent.new(data: {})
16
+ created = repository.create(expected_event, 'stream')
17
17
  expect_to_be_like_event(created, expected_event)
18
18
  expect_to_be_like_event(repository.read_all_streams_forward(:head, 1).first, expected_event)
19
19
  expect_to_be_like_event(repository.read_stream_events_forward('stream').first, expected_event)
@@ -98,8 +98,8 @@ RSpec.shared_examples :event_repository do |repository_class|
98
98
  private
99
99
 
100
100
  def expect_to_be_like_event(actual, expected)
101
- expect(actual.event_type).to eq expected[:event_type]
102
- expect(actual.data).to eq expected[:data]
103
- if expected.key? :event_id then expect(actual.event_id).to eq expected[:event_id] else true end
101
+ expect(actual.event_type).to eq expected.event_type
102
+ expect(actual.data).to eq expected.data
103
+ if expected.event_id then expect(actual.event_id).to eq expected.event_id else true end
104
104
  end
105
105
  end
@@ -1,3 +1,3 @@
1
1
  module RubyEventStore
2
- VERSION = '0.3.1'
2
+ VERSION = '0.4.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_event_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - rybex
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2016-03-13 00:00:00.000000000 Z
12
+ date: 2016-03-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler