rails_event_store_mongoid 0.14.3 → 0.15.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: d02290de1ffae0788abb75776325fd40e20ddc72
4
- data.tar.gz: 87250bad93e10649b1298e3e8a726bb01e438a26
3
+ metadata.gz: bae6b9c1007eb8ea26141474e4092e0b44dae3fe
4
+ data.tar.gz: 41a79473474aad60c2644b082c927c817b334c25
5
5
  SHA512:
6
- metadata.gz: b38ca4b3773357d14c8f983f505ce510619dfced7c9b3d9e7fcdb73fd2d0ba6da3557df4a92114cc75a0980ec0be25ec201f0e11fb2af997a874287c77caf1a5
7
- data.tar.gz: 001fac1a6494e3e8e6413a0e3271a82b545e77f1e7c2de98aabe4a8350e553d9d928116877b3d8febce893ac7290ce38699eefae82d66f3662db7eaf366df23c
6
+ metadata.gz: e6393f37cd44a865c6a68cef302c161fa2779b9939282a7a982f8ee10afd694aa16d32dc2fd8fbec3d93f9a1fad09c26ce09cd29a3885e9d6cf3fa6cfa8c6fef
7
+ data.tar.gz: 21ee24ab3ae6ae32047bc95741114ccb2a549dd6be54be67e6309969b59c2592d6204651e51e9236aff9d588a52aef1c2a3f04fd45738bda699a70c58f1d4057
data/.travis.yml CHANGED
@@ -1,3 +1,15 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.1.5
3
+ - 2.3.3
4
+
5
+ sudo: required
6
+
7
+ services:
8
+ - docker
9
+
10
+ before_install:
11
+ - docker-compose build
12
+
13
+ script:
14
+ - docker-compose up -d
15
+ - rspec
data/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ * 0.15.0
2
+
3
+ Mongo ids are generated client side which is not guarante to be monotonic if
4
+ multiple records are created at the same time.
5
+
6
+ To maintain correct event order, we rely on a server side generated BSON timestamp.
7
+ https://docs.mongodb.com/manual/reference/bson-types/#timestamps
@@ -0,0 +1,15 @@
1
+ version: '2'
2
+
3
+ services:
4
+ mongo:
5
+ container_name: rails_event_store_mongo
6
+ image: mongo:3.2
7
+ command: ["--storageEngine", "wiredTiger"]
8
+ ports:
9
+ - "27027:27017"
10
+ logging:
11
+ driver: json-file
12
+ options:
13
+ max-size: '10k'
14
+ max-file: '3'
15
+
@@ -13,7 +13,9 @@ module RailsEventStoreMongoid
13
13
  field :meta, type: Hash, default: {}
14
14
  field :data, type: Hash, default: {}
15
15
 
16
+ field :ts, type: BSON::Timestamp, default: -> { BSON::Timestamp.new(0, 0) }
17
+
16
18
  index(event_id: 1)
17
- index(stream: 1, _id: 1)
19
+ index(stream: 1, ts: 1)
18
20
  end
19
21
  end
@@ -27,17 +27,17 @@ module RailsEventStoreMongoid
27
27
  end
28
28
 
29
29
  def last_stream_event(stream_name)
30
- build_event_entity(adapter.where(stream: stream_name).desc(:id).first)
30
+ build_event_entity(adapter.where(stream: stream_name).desc(:ts).first)
31
31
  end
32
32
 
33
33
  def read_events_forward(stream_name, start_event_id, count)
34
34
  stream = adapter.where(stream: stream_name)
35
35
  unless start_event_id.equal?(:head)
36
36
  starting_event = adapter.find_by(event_id: start_event_id)
37
- stream = stream.where(:id.gt => starting_event.id)
37
+ stream = stream.where(:ts.gt => starting_event.ts)
38
38
  end
39
39
 
40
- stream.asc(:id).limit(count)
40
+ stream.asc(:ts).limit(count)
41
41
  .map(&method(:build_event_entity))
42
42
  end
43
43
 
@@ -45,20 +45,20 @@ module RailsEventStoreMongoid
45
45
  stream = adapter.where(stream: stream_name)
46
46
  unless start_event_id.equal?(:head)
47
47
  starting_event = adapter.find_by(event_id: start_event_id)
48
- stream = stream.where(:id.lt => starting_event.id)
48
+ stream = stream.where(:ts.lt => starting_event.ts)
49
49
  end
50
50
 
51
- stream.desc(:id).limit(count)
51
+ stream.desc(:ts).limit(count)
52
52
  .map(&method(:build_event_entity))
53
53
  end
54
54
 
55
55
  def read_stream_events_forward(stream_name)
56
- adapter.where(stream: stream_name).asc(:id)
56
+ adapter.where(stream: stream_name).asc(:ts)
57
57
  .map(&method(:build_event_entity))
58
58
  end
59
59
 
60
60
  def read_stream_events_backward(stream_name)
61
- adapter.where(stream: stream_name).desc(:id)
61
+ adapter.where(stream: stream_name).desc(:ts)
62
62
  .map(&method(:build_event_entity))
63
63
  end
64
64
 
@@ -66,10 +66,10 @@ module RailsEventStoreMongoid
66
66
  stream = adapter
67
67
  unless start_event_id.equal?(:head)
68
68
  starting_event = adapter.find_by(event_id: start_event_id)
69
- stream = stream.where(:id.gt => starting_event.id)
69
+ stream = stream.where(:ts.gt => starting_event.ts)
70
70
  end
71
71
 
72
- stream.asc(:id).limit(count)
72
+ stream.asc(:ts).limit(count)
73
73
  .map(&method(:build_event_entity))
74
74
  end
75
75
 
@@ -77,10 +77,10 @@ module RailsEventStoreMongoid
77
77
  stream = adapter
78
78
  unless start_event_id.equal?(:head)
79
79
  starting_event = adapter.find_by(event_id: start_event_id)
80
- stream = stream.where(:id.lt => starting_event.id)
80
+ stream = stream.where(:ts.lt => starting_event.ts)
81
81
  end
82
82
 
83
- stream.desc(:id).limit(count)
83
+ stream.desc(:ts).limit(count)
84
84
  .map(&method(:build_event_entity))
85
85
  end
86
86
 
@@ -1,3 +1,3 @@
1
1
  module RailsEventStoreMongoid
2
- VERSION = "0.14.3"
2
+ VERSION = "0.15.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_event_store_mongoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.3
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - gottfrois
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2016-11-24 00:00:00.000000000 Z
12
+ date: 2017-02-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -149,12 +149,14 @@ files:
149
149
  - ".gitignore"
150
150
  - ".rspec"
151
151
  - ".travis.yml"
152
+ - CHANGELOG.md
152
153
  - Gemfile
153
154
  - LICENSE.txt
154
155
  - README.md
155
156
  - Rakefile
156
157
  - bin/console
157
158
  - bin/setup
159
+ - docker-compose.yml
158
160
  - lib/rails_event_store_mongoid.rb
159
161
  - lib/rails_event_store_mongoid/event.rb
160
162
  - lib/rails_event_store_mongoid/event_repository.rb
@@ -179,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
179
181
  version: '0'
180
182
  requirements: []
181
183
  rubyforge_project:
182
- rubygems_version: 2.5.1
184
+ rubygems_version: 2.5.2
183
185
  signing_key:
184
186
  specification_version: 4
185
187
  summary: Mongoid events repository for Rails Event Store