rails_event_store_mongoid 0.14.3 → 0.15.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: 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