nexia_event_store 0.2.10

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.
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Configuration" do
4
+ it "should do nothing if you try to clear! without a connected db" do
5
+ allow(EventStore).to receive(:db).and_return(nil)
6
+ expect {EventStore.clear!}.not_to raise_error
7
+ end
8
+ end
@@ -0,0 +1,4 @@
1
+
2
+ �
3
+ $93d071aa-9add-4a4a-abc5-93c225eeeed9Cfaceplate_api.thermostats.core.zone.events.IndoorTemperatureUpdated2014-03-31 12:53:24 -0600"auid_10
4
+ 20
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+ module EventStore
3
+ describe "Snapshots" do
4
+ let(:aggregate_id) {'100A' }
5
+ let(:new_aggregate) { Aggregate.new(aggregate_id) }
6
+ let(:client) { Client.new(aggregate_id) }
7
+ let(:appender) { EventAppender.new(new_aggregate) }
8
+ let(:events) { Array.new }
9
+
10
+ before do
11
+ @event_time = Time.parse("2001-01-01 00:00:00 UTC")
12
+ (0...10).to_a.each_with_index do |version|
13
+ events << EventStore::Event.new(aggregate_id, @event_time, 'event_name', "#{234532.to_s(2)}_foo}", version)
14
+ end
15
+ end
16
+
17
+ it "should build an empty snapshot for a new client" do
18
+ expect(new_aggregate.snapshot).to eq([])
19
+ expect(new_aggregate.version).to eq(-1)
20
+ expect(EventStore.redis.hget(new_aggregate.snapshot_version_table, :current_version)).to eq(nil)
21
+ end
22
+
23
+ it "should rebuild a snapshot after it is deleted" do
24
+ appender.append(events)
25
+ snapshot = new_aggregate.snapshot
26
+ version = new_aggregate.version
27
+ new_aggregate.delete_snapshot!
28
+ new_aggregate.rebuild_snapshot!
29
+ expect(new_aggregate.snapshot).to eq(snapshot)
30
+ end
31
+
32
+ it "a client should rebuild a snapshot" do
33
+ expect_any_instance_of(Aggregate).to receive(:delete_snapshot!)
34
+ expect_any_instance_of(Aggregate).to receive(:rebuild_snapshot!)
35
+ client.rebuild_snapshot!
36
+ end
37
+
38
+ it "should rebuild the snapshot if events exist, but the snapshot is empty" do
39
+ appender.append(events)
40
+ snapshot = new_aggregate.snapshot
41
+ new_aggregate.delete_snapshot!
42
+ expect(new_aggregate.snapshot).to eq(snapshot)
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,23 @@
1
+ id | type | version | data | timestamp
2
+
3
+ seg by therm_id
4
+ let dbd figure out compression
5
+ partition by timestamp (month based)?
6
+ - works on min max; dates are best
7
+ - could try custom hash for partitioning
8
+ order by id, type, version
9
+
10
+ UDL - in java or C++
11
+
12
+ 27tb is pushing 3 nodes
13
+
14
+ WOS
15
+ start with default
16
+ tuple_mover_events table for stats
17
+
18
+ all nodes should be identical
19
+
20
+ define fault groups in different region
21
+ bad idea to divide cluster between regions -- perf
22
+
23
+ graphviz
@@ -0,0 +1,33 @@
1
+ require 'simplecov'
2
+ require 'simplecov-rcov'
3
+ require 'pry'
4
+ require 'rspec'
5
+
6
+ class SimpleCov::Formatter::MergedFormatter
7
+ def format(result)
8
+ SimpleCov::Formatter::HTMLFormatter.new.format(result)
9
+ SimpleCov::Formatter::RcovFormatter.new.format(result)
10
+ end
11
+ end
12
+ SimpleCov.formatter = SimpleCov::Formatter::MergedFormatter
13
+
14
+ SimpleCov.start do
15
+ add_filter "/spec/"
16
+ add_filter "/vendor/bundle/"
17
+ add_filter 'lib/event_store.rb'
18
+ SimpleCov.minimum_coverage 95
19
+ end
20
+
21
+ require 'event_store'
22
+
23
+ # connect to the test db for the gem, create to ensure exists, delete and re-create
24
+ EventStore.postgres('test', 'test_events', 'event_store_gem_test')
25
+ EventStore.create_db
26
+ EventStore.clear!
27
+ EventStore.create_db
28
+
29
+ RSpec.configure do |config|
30
+ config.after(:each) do
31
+ EventStore.clear!
32
+ end
33
+ end
metadata ADDED
@@ -0,0 +1,286 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nexia_event_store
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.10
5
+ platform: ruby
6
+ authors:
7
+ - Paul Saieg, John Colvin
8
+ - Stuart Nelson
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-09-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.7'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.7'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rspec
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '3.1'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '3.1'
56
+ - !ruby/object:Gem::Dependency
57
+ name: simplecov
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '0.9'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.9'
70
+ - !ruby/object:Gem::Dependency
71
+ name: simplecov-rcov
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '0.2'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '0.2'
84
+ - !ruby/object:Gem::Dependency
85
+ name: guard-rspec
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '4.3'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '4.3'
98
+ - !ruby/object:Gem::Dependency
99
+ name: pry-byebug
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '2.0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '2.0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: mock_redis
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '0.13'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '0.13'
126
+ - !ruby/object:Gem::Dependency
127
+ name: sequel
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '4.14'
133
+ type: :runtime
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '4.14'
140
+ - !ruby/object:Gem::Dependency
141
+ name: nexia-sequel-vertica
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: '0.2'
147
+ type: :runtime
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '0.2'
154
+ - !ruby/object:Gem::Dependency
155
+ name: pg
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: '0.17'
161
+ type: :runtime
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: '0.17'
168
+ - !ruby/object:Gem::Dependency
169
+ name: redis
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: '3.1'
175
+ type: :runtime
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: '3.1'
182
+ - !ruby/object:Gem::Dependency
183
+ name: hiredis
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: '0.5'
189
+ type: :runtime
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - "~>"
194
+ - !ruby/object:Gem::Version
195
+ version: '0.5'
196
+ - !ruby/object:Gem::Dependency
197
+ name: rspec_junit_formatter
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - "~>"
201
+ - !ruby/object:Gem::Version
202
+ version: '0.2'
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: '0.2'
210
+ description: '["A Ruby implementation of an EventSource (A+ES) tuned for Vertica or
211
+ Postgres"]'
212
+ email:
213
+ - classicist@gmail.com, jgeiger@gmail.com
214
+ executables: []
215
+ extensions: []
216
+ extra_rdoc_files: []
217
+ files:
218
+ - ".agignore"
219
+ - ".gitignore"
220
+ - ".rspec"
221
+ - ".simplecov"
222
+ - Gemfile
223
+ - Guardfile
224
+ - LICENSE.txt
225
+ - README.md
226
+ - Rakefile
227
+ - db/database.yml
228
+ - db/event_store_db_designer_common_queries.sql
229
+ - db/event_store_db_designer_event_data.sql
230
+ - db/event_store_sample_data_generator.rb
231
+ - db/migrations/001_create_event_store_events.rb
232
+ - db/pg_migrations/001_create_event_store_events.rb
233
+ - db/setup_db_user.sql
234
+ - event_store.gemspec
235
+ - lib/event_store.rb
236
+ - lib/event_store/aggregate.rb
237
+ - lib/event_store/client.rb
238
+ - lib/event_store/errors.rb
239
+ - lib/event_store/event_appender.rb
240
+ - lib/event_store/time_hacker.rb
241
+ - lib/event_store/version.rb
242
+ - spec/benchmark/bench.rb
243
+ - spec/benchmark/memory_profile.rb
244
+ - spec/benchmark/seed_db.rb
245
+ - spec/event_store/binary_string_term_with_null_byte.txt
246
+ - spec/event_store/client_spec.rb
247
+ - spec/event_store/config_spec.rb
248
+ - spec/event_store/serialized_binary_event_data.txt
249
+ - spec/event_store/snapshot_spec.rb
250
+ - spec/event_store/vertica guy notes.txt
251
+ - spec/spec_helper.rb
252
+ homepage: https://github.com/nexiahome/event_store
253
+ licenses:
254
+ - MIT
255
+ metadata: {}
256
+ post_install_message:
257
+ rdoc_options: []
258
+ require_paths:
259
+ - lib
260
+ required_ruby_version: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
265
+ required_rubygems_version: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - ">="
268
+ - !ruby/object:Gem::Version
269
+ version: '0'
270
+ requirements: []
271
+ rubyforge_project:
272
+ rubygems_version: 2.2.2
273
+ signing_key:
274
+ specification_version: 4
275
+ summary: Ruby implementation of an EventSource (A+ES) for the Nexia Ecosystem
276
+ test_files:
277
+ - spec/benchmark/bench.rb
278
+ - spec/benchmark/memory_profile.rb
279
+ - spec/benchmark/seed_db.rb
280
+ - spec/event_store/binary_string_term_with_null_byte.txt
281
+ - spec/event_store/client_spec.rb
282
+ - spec/event_store/config_spec.rb
283
+ - spec/event_store/serialized_binary_event_data.txt
284
+ - spec/event_store/snapshot_spec.rb
285
+ - spec/event_store/vertica guy notes.txt
286
+ - spec/spec_helper.rb