evt-entity_store 2.0.1.4 → 2.0.2.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
  SHA256:
3
- metadata.gz: 3286a72118b995549d9f0442dae60ec7bdc9e51a5e90d80912e99b9263a6e82a
4
- data.tar.gz: 7690deeaa662b13cacd372693bc66ff9017fa2e11d7dfd42dfd03bad43f92761
3
+ metadata.gz: d7cdd7deba9dac370a7930c9571051d6af7714e92cd36fccc6aba7da1b1be92f
4
+ data.tar.gz: c58fec3ad26a3644718c11be6a0c2cd719ecd88d8426759c2f4d6a89b97731fc
5
5
  SHA512:
6
- metadata.gz: 8d8aedbcdd03655a0bce121f0b05b8e2ec69c1dc47857143d1d2f0d5f2ec430a86b04f3784e86ea40f1a5b6a00423995944beddc875af557c423fa3b2494ff65
7
- data.tar.gz: b6ca8196324452c8b05dd5f252a86b0e8cb1db1d962c7faa4c6d1e127e54a4d3561f46eb7c61d57c79d8553581e34cc4758c009f44bd87326832a3d869c7055b
6
+ metadata.gz: 9f4a70ca75597903969f82966204a7e4a713466430d614b577a175df9b3ef30e3324caa0bc9422e7fefe61d1a24e4b327b9a67ed0999bdb9caa1b76bb727491e
7
+ data.tar.gz: 459e00e4fa5764110fb00f5ecce5653b09f0039902a6ecbd6f985ef034e228590cc4645b51778047d27f0d11554da666bbecaa76ad1e15a61a11d697673e66f6
@@ -8,6 +8,7 @@ require 'entity_store/controls/version'
8
8
  require 'entity_store/controls/message'
9
9
  require 'entity_store/controls/entity'
10
10
  require 'entity_store/controls/projection'
11
+ require 'entity_store/controls/specifier'
11
12
  require 'entity_store/controls/snapshot_interval'
12
13
  require 'entity_store/controls/snapshot'
13
14
  require 'entity_store/controls/reader'
@@ -1,18 +1,18 @@
1
1
  module EntityStore
2
2
  module Controls
3
3
  module EntityStore
4
- def self.example(category: nil, entity_class: nil, projection_class: nil, reader_class: nil, snapshot_class: nil, snapshot_interval: nil, reader_batch_size: nil)
5
- if category.nil? && entity_class.nil? && projection_class.nil? && reader_class.nil? && snapshot_class.nil? && snapshot_interval.nil? && reader_batch_size.nil?
4
+ def self.example(category: nil, entity_class: nil, projection_class: nil, reader_class: nil, snapshot_class: nil, snapshot_interval: nil, reader_batch_size: nil, specifier: nil)
5
+ if category.nil? && entity_class.nil? && projection_class.nil? && reader_class.nil? && snapshot_class.nil? && snapshot_interval.nil? && reader_batch_size.nil? && specifier.nil?
6
6
  store_class = Example
7
7
  else
8
- store_class = example_class(category: category, entity_class: entity_class, projection_class: projection_class, reader_class: reader_class, snapshot_class: snapshot_class, snapshot_interval: snapshot_interval, reader_batch_size: reader_batch_size)
8
+ store_class = example_class(category: category, entity_class: entity_class, projection_class: projection_class, reader_class: reader_class, snapshot_class: snapshot_class, snapshot_interval: snapshot_interval, reader_batch_size: reader_batch_size, specifier: specifier)
9
9
  end
10
10
 
11
11
  instance = store_class.build
12
12
  instance
13
13
  end
14
14
 
15
- def self.example_class(category: nil, entity_class: nil, projection_class: nil, reader_class: nil, snapshot_class: nil, snapshot_interval: nil, reader_batch_size: nil)
15
+ def self.example_class(category: nil, entity_class: nil, projection_class: nil, reader_class: nil, snapshot_class: nil, snapshot_interval: nil, reader_batch_size: nil, specifier: nil)
16
16
  if category == :none
17
17
  category = nil
18
18
  else
@@ -43,6 +43,12 @@ module EntityStore
43
43
  reader_batch_size ||= Controls::Reader::BatchSize.example
44
44
  end
45
45
 
46
+ if specifier == :none
47
+ specifier = nil
48
+ else
49
+ specifier ||= Controls::Specifier.example
50
+ end
51
+
46
52
  Class.new do
47
53
  include ::EntityStore
48
54
 
@@ -54,6 +60,10 @@ module EntityStore
54
60
  unless snapshot_class.nil?
55
61
  snapshot snapshot_class, interval: snapshot_interval
56
62
  end
63
+
64
+ unless specifier.nil?
65
+ specifier specifier
66
+ end
57
67
  end
58
68
  end
59
69
 
@@ -0,0 +1,5 @@
1
+ module EntityStore
2
+ module Controls
3
+ Specifier = EntityCache::Controls::Specifier
4
+ end
5
+ end
@@ -31,6 +31,7 @@ module EntityStore
31
31
  virtual :reader_batch_size
32
32
  virtual :snapshot_class
33
33
  virtual :snapshot_interval
34
+ virtual :specifier
34
35
 
35
36
  virtual :configure
36
37
 
@@ -39,22 +40,26 @@ module EntityStore
39
40
  extend ProjectionMacro
40
41
  extend ReaderMacro
41
42
  extend SnapshotMacro
43
+ extend SpecifierMacro
42
44
  end
43
45
  end
44
46
 
45
47
  module Build
46
- def build(snapshot_interval: nil, session: nil)
48
+ def build(category: nil, specifier: nil, snapshot_interval: nil, session: nil)
47
49
  instance = new
48
50
 
51
+ instance.category = category
49
52
  instance.session = session
50
53
 
51
54
  instance.configure
52
55
 
53
56
  Build.assure(instance)
54
57
 
58
+ specifier ||= instance.specifier
55
59
  EntityCache.configure(
56
60
  instance,
57
61
  entity_class,
62
+ specifier,
58
63
  persist_interval: instance.snapshot_interval,
59
64
  external_store: instance.snapshot_class,
60
65
  external_store_session: session,
@@ -253,4 +258,13 @@ module EntityStore
253
258
  end
254
259
  alias_method :snapshot, :snapshot_macro
255
260
  end
261
+
262
+ module SpecifierMacro
263
+ def specifier_macro(specifier)
264
+ define_method :specifier do
265
+ specifier
266
+ end
267
+ end
268
+ alias_method :specifier, :specifier_macro
269
+ end
256
270
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evt-entity_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1.4
4
+ version: 2.0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Eventide Project
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-09 00:00:00.000000000 Z
11
+ date: 2020-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evt-entity_projection
@@ -70,6 +70,7 @@ files:
70
70
  - lib/entity_store/controls/record.rb
71
71
  - lib/entity_store/controls/snapshot.rb
72
72
  - lib/entity_store/controls/snapshot_interval.rb
73
+ - lib/entity_store/controls/specifier.rb
73
74
  - lib/entity_store/controls/stream_name.rb
74
75
  - lib/entity_store/controls/version.rb
75
76
  - lib/entity_store/entity_store.rb