rails_event_store_active_record 2.1.0 → 2.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: 291ce390bf636caf06d9949f79aa697799079a547b282095afe8f40f27d6c84a
4
- data.tar.gz: ea74678de5019d72b1c82779815f12778e01871695aeeed3d704835ea64a9120
3
+ metadata.gz: c0bef98dccdd36a255c20ef3bd059921c483fe3e9e448bd53c48fa23c6032692
4
+ data.tar.gz: 02f25563e5d185d4d19fbe79e92d83d2c8abe14281797f2d365db970664f464e
5
5
  SHA512:
6
- metadata.gz: ae73534ca38d6ecb19bc599aa8ceb0b4e3705a20b38b3981637e0f7a313b3b3e29adb2bffc1048afb4b8c41733a41e0ca51030835271ddcb79d30aae1a8e4204
7
- data.tar.gz: 881dd61f6e62165dd76112b8852a20a84283d1de2fa6d601b92a8e859aab9267d55b58e8ee65cb90e04ec0c08d91f3de75c4d05bc35ecc1441443fed879c17a3
6
+ metadata.gz: 3949e5687ec1647b7257c25cf337f488f012df089226819e4b4198937b72eb8d3d1c1e8d09fbb4cf46711abf583743c49edfd76c00def3f1f5800b555db0fa1e
7
+ data.tar.gz: 5dd00bbb2a01217095c8e5ed4130582e0f8a23b6cb0fdaf6cb8c94f70afe371648197b3f5cbf8a98e0711e529b3ae87c02619a1372be3679f808ee2367e49f26
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rails_event_store_active_record/generators/migration_generator'
4
- require 'rails_event_store_active_record/event'
5
- require 'rails_event_store_active_record/with_default_models'
6
- require 'rails_event_store_active_record/with_abstract_base_class'
7
- require 'rails_event_store_active_record/event_repository'
8
- require 'rails_event_store_active_record/batch_enumerator'
9
- require 'rails_event_store_active_record/event_repository_reader'
10
- require 'rails_event_store_active_record/index_violation_detector'
11
- require 'rails_event_store_active_record/pg_linearized_event_repository'
12
- require 'rails_event_store_active_record/version'
3
+ require_relative 'rails_event_store_active_record/generators/migration_generator'
4
+ require_relative 'rails_event_store_active_record/event'
5
+ require_relative 'rails_event_store_active_record/with_default_models'
6
+ require_relative 'rails_event_store_active_record/with_abstract_base_class'
7
+ require_relative 'rails_event_store_active_record/event_repository'
8
+ require_relative 'rails_event_store_active_record/batch_enumerator'
9
+ require_relative 'rails_event_store_active_record/event_repository_reader'
10
+ require_relative 'rails_event_store_active_record/index_violation_detector'
11
+ require_relative 'rails_event_store_active_record/pg_linearized_event_repository'
12
+ require_relative 'rails_event_store_active_record/version'
@@ -20,14 +20,8 @@ module RailsEventStoreActiveRecord
20
20
 
21
21
  def read(spec)
22
22
  stream = read_scope(spec)
23
-
24
23
  if spec.batched?
25
- batch_reader = ->(offset_id, limit) do
26
- search_in = spec.stream.global? ? @event_klass.table_name : @stream_klass.table_name
27
- records = offset_id.nil? ? stream.limit(limit) : stream.where(start_offset_condition(spec, offset_id, search_in)).limit(limit)
28
- [records.map(&method(:record)), records.last]
29
- end
30
- BatchEnumerator.new(spec.batch_size, spec.limit, batch_reader).each
24
+ spec.time_sort_by ? offset_limit_batch_reader(spec, stream) : monotonic_id_batch_reader(spec, stream)
31
25
  elsif spec.first?
32
26
  record_ = stream.first
33
27
  record(record_) if record_
@@ -46,6 +40,25 @@ module RailsEventStoreActiveRecord
46
40
  private
47
41
  attr_reader :serializer
48
42
 
43
+ def offset_limit_batch_reader(spec, stream)
44
+ batch_reader = ->(offset, limit) do
45
+ stream
46
+ .offset(offset)
47
+ .limit(limit)
48
+ .map(&method(:record))
49
+ end
50
+ RubyEventStore::BatchEnumerator.new(spec.batch_size, spec.limit, batch_reader).each
51
+ end
52
+
53
+ def monotonic_id_batch_reader(spec, stream)
54
+ batch_reader = ->(offset_id, limit) do
55
+ search_in = spec.stream.global? ? @event_klass.table_name : @stream_klass.table_name
56
+ records = offset_id.nil? ? stream.limit(limit) : stream.where(start_offset_condition(spec, offset_id, search_in)).limit(limit)
57
+ [records.map(&method(:record)), records.last]
58
+ end
59
+ BatchEnumerator.new(spec.batch_size, spec.limit, batch_reader).each
60
+ end
61
+
49
62
  def read_scope(spec)
50
63
  if spec.stream.global?
51
64
  stream = @event_klass
@@ -5,7 +5,6 @@ class CreateEventStoreEvents < ActiveRecord::Migration<%= migration_version %>
5
5
  postgres = ActiveRecord::Base.connection.adapter_name == "PostgreSQL"
6
6
  sqlite = ActiveRecord::Base.connection.adapter_name == "SQLite"
7
7
 
8
- enable_extension "pgcrypto" if postgres
9
8
  create_table(:event_store_events_in_streams, force: false) do |t|
10
9
  t.string :stream, null: false
11
10
  t.integer :position, null: true
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsEventStoreActiveRecord
4
- VERSION = "2.1.0"
4
+ VERSION = "2.2.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_event_store_active_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arkency
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-07 00:00:00.000000000 Z
11
+ date: 2021-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby_event_store
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 2.1.0
19
+ version: 2.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 2.1.0
26
+ version: 2.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activerecord
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -93,7 +93,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '2.5'
96
+ version: '2.6'
97
97
  required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  requirements:
99
99
  - - ">="