ruby_event_store-active_record 2.9.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b42559ca51848ea6e388b9cfe5a73c9058691a4a2281000c6ba0da5f3899a40e
4
- data.tar.gz: 17440ba2550814acb3bc4d0a9522570783ab21306c318dac218b85d98065f1e2
3
+ metadata.gz: 1625a6e2249c0ddac54baa8564bfece80a81b36a2e8cdd4fba198557b83e0ecf
4
+ data.tar.gz: 18ae89b42a29c0f562a6d93ce3c8264bf40f9d70ae975bd1a1a2124bc76b4ed1
5
5
  SHA512:
6
- metadata.gz: 2870b19f168fd7730a9e3a1ab4cdfe7ec8d4c1ff3b9bda2d6f9a2f4a769a9e4c54f4fe85149525c1b4d5ee950151f01276fb17a079c1f1fd09753008dc80b3f7
7
- data.tar.gz: 5c72abb8e403fb1e2a2f387943c04de84992ce7e6517feb0a457e949ef0c9b74eb3d6aabd60f2e7e15d85772b925e6a6e8c5e2ea5a65f66606460f881680a4d1
6
+ metadata.gz: 7ea84bed37d8183a5ee6ad111720c1c92bf36ced3651b8b72d02eb7d9c86c165133eaa22acac891d6e11403bada2e222e4f1e3ce1a0db061da50985456a0d0a0
7
+ data.tar.gz: a08404348cdbffef94a6f50968b67732b494d69e8f70f3adecbce84313dfe1b370debc870fcb147982cf6bf45d7f3c6ed6edf6bc16f6fac73fea03b6bbe96b52
@@ -114,11 +114,13 @@ module RubyEventStore
114
114
  end
115
115
 
116
116
  def as_of(spec)
117
- Arel.sql("COALESCE(#{@event_klass.table_name}.valid_at, #{@event_klass.table_name}.created_at) #{order(spec)}")
117
+ expr = coalesce(@event_klass.arel_table[:valid_at], @event_klass.arel_table[:created_at])
118
+ spec.forward? ? expr.asc : expr.desc
118
119
  end
119
120
 
120
121
  def as_at(spec)
121
- "#{@event_klass.table_name}.created_at #{order(spec)}"
122
+ expr = @event_klass.arel_table[:created_at]
123
+ spec.forward? ? expr.asc : expr.desc
122
124
  end
123
125
 
124
126
  def start_offset_condition(specification, record_id, search_in)
@@ -163,28 +165,32 @@ module RubyEventStore
163
165
  )
164
166
  end
165
167
 
168
+ def coalesce(*exprs)
169
+ Arel::Nodes::NamedFunction.new "COALESCE", exprs
170
+ end
171
+
166
172
  def time_comparison_field(specification)
167
173
  if specification.time_sort_by_as_of?
168
- "COALESCE(#{@event_klass.table_name}.valid_at, #{@event_klass.table_name}.created_at)"
174
+ coalesce(@event_klass.arel_table[:valid_at], @event_klass.arel_table[:created_at])
169
175
  else
170
- "#{@event_klass.table_name}.created_at"
176
+ @event_klass.arel_table[:created_at]
171
177
  end
172
178
  end
173
179
 
174
180
  def older_than_condition(specification)
175
- ["#{time_comparison_field(specification)} < ?", specification.older_than]
181
+ time_comparison_field(specification).lt(specification.older_than)
176
182
  end
177
183
 
178
184
  def older_than_or_equal_condition(specification)
179
- ["#{time_comparison_field(specification)} <= ?", specification.older_than_or_equal]
185
+ time_comparison_field(specification).lteq(specification.older_than_or_equal)
180
186
  end
181
187
 
182
188
  def newer_than_condition(specification)
183
- ["#{time_comparison_field(specification)} > ?", specification.newer_than]
189
+ time_comparison_field(specification).gt(specification.newer_than)
184
190
  end
185
191
 
186
192
  def newer_than_or_equal_condition(specification)
187
- ["#{time_comparison_field(specification)} >= ?", specification.newer_than_or_equal]
193
+ time_comparison_field(specification).gteq(specification.newer_than_or_equal)
188
194
  end
189
195
 
190
196
  def order(spec)
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyEventStore
4
+ module ActiveRecord
5
+ class EventIdIndexMigrationGenerator
6
+ def call(migration_path)
7
+ path = build_path(migration_path)
8
+ write_to_file(path)
9
+ path
10
+ end
11
+
12
+ private
13
+
14
+ def absolute_path(path)
15
+ File.expand_path(path, __dir__)
16
+ end
17
+
18
+ def migration_code
19
+ migration_template.result_with_hash(migration_version: migration_version)
20
+ end
21
+
22
+ def migration_template
23
+ ERB.new(
24
+ File.read(
25
+ File.join(absolute_path("./templates"), "add_event_id_index_to_event_store_events_in_streams_template.erb")
26
+ )
27
+ )
28
+ end
29
+
30
+ def migration_version
31
+ ::ActiveRecord::Migration.current_version
32
+ end
33
+
34
+ def timestamp
35
+ Time.now.strftime("%Y%m%d%H%M%S")
36
+ end
37
+
38
+ def write_to_file(path)
39
+ File.write(path, migration_code)
40
+ end
41
+
42
+ def build_path(migration_path)
43
+ File.join("#{migration_path}", "#{timestamp}_add_event_id_index_to_event_store_events_in_streams.rb")
44
+ end
45
+ end
46
+ end
47
+ end
@@ -6,10 +6,11 @@ module RubyEventStore
6
6
  class MigrationGenerator
7
7
  DATA_TYPES = %w[binary json jsonb].freeze
8
8
 
9
- def call(data_type, migration_path)
9
+ def call(data_type, database_adapter, migration_path)
10
10
  raise ArgumentError, "Invalid value for data type. Supported for options are: #{DATA_TYPES.join(", ")}." unless DATA_TYPES.include?(data_type)
11
+ VerifyDataTypeForAdapter.new.call(database_adapter, data_type)
11
12
 
12
- migration_code = migration_code(data_type)
13
+ migration_code = migration_code(data_type, database_adapter)
13
14
  path = build_path(migration_path)
14
15
  write_to_file(migration_code, path)
15
16
  path
@@ -21,8 +22,16 @@ module RubyEventStore
21
22
  File.expand_path(path, __dir__)
22
23
  end
23
24
 
24
- def migration_code(data_type)
25
- migration_template(absolute_path("./templates"), "create_event_store_events").result_with_hash(migration_version: migration_version, data_type: data_type)
25
+ def migration_code(data_type, database_adapter)
26
+ migration_template(template_root(database_adapter), "create_event_store_events").result_with_hash(migration_version: migration_version, data_type: data_type)
27
+ end
28
+
29
+ def template_root(database_adapter)
30
+ absolute_path("./templates/#{template_directory(database_adapter)}")
31
+ end
32
+
33
+ def template_directory(database_adapter)
34
+ TemplateDirectory.for_adapter(database_adapter)
26
35
  end
27
36
 
28
37
  def migration_template(template_root, name)
@@ -30,7 +39,7 @@ module RubyEventStore
30
39
  end
31
40
 
32
41
  def migration_version
33
- "[4.2]"
42
+ ::ActiveRecord::Migration.current_version
34
43
  end
35
44
 
36
45
  def timestamp
@@ -42,7 +51,7 @@ module RubyEventStore
42
51
  end
43
52
 
44
53
  def build_path(migration_path)
45
- File.join( "#{migration_path}", "#{timestamp}_create_event_store_events.rb")
54
+ File.join("#{migration_path}", "#{timestamp}_create_event_store_events.rb")
46
55
  end
47
56
  end
48
57
  end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ begin
4
+ require "rails/generators"
5
+ rescue LoadError
6
+ end
7
+
8
+ if defined?(Rails::Generators::Base)
9
+ module RubyEventStore
10
+ module ActiveRecord
11
+ class RailsEventIdIndexMigrationGenerator < Rails::Generators::Base
12
+ class Error < Thor::Error
13
+ end
14
+
15
+ namespace "rails_event_store_active_record:migration_for_missing_event_id_index"
16
+
17
+ source_root File.expand_path(File.join(File.dirname(__FILE__), "../generators/templates"))
18
+
19
+ def create_migration
20
+ template "add_event_id_index_to_event_store_events_in_streams_template.erb",
21
+ "db/migrate/#{timestamp}_add_event_id_index_to_event_store_events_in_streams.rb"
22
+ end
23
+
24
+ private
25
+
26
+ def migration_version
27
+ ::ActiveRecord::Migration.current_version
28
+ end
29
+
30
+ def timestamp
31
+ Time.now.strftime("%Y%m%d%H%M%S")
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -27,23 +27,35 @@ module RubyEventStore
27
27
  def initialize(*args)
28
28
  super
29
29
 
30
- if DATA_TYPES.exclude?(options.fetch(:data_type))
30
+ if DATA_TYPES.exclude?(data_type)
31
31
  raise Error, "Invalid value for --data-type option. Supported for options are: #{DATA_TYPES.join(", ")}."
32
32
  end
33
+
34
+ VerifyDataTypeForAdapter.new.call(adapter, data_type)
35
+ rescue InvalidDataTypeForAdapter, UnsupportedAdapter => e
36
+ raise Error, e.message
33
37
  end
34
38
 
35
39
  def create_migration
36
- template "create_event_store_events_template.erb", "db/migrate/#{timestamp}_create_event_store_events.rb"
40
+ template "#{template_directory}create_event_store_events_template.erb", "db/migrate/#{timestamp}_create_event_store_events.rb"
37
41
  end
38
42
 
39
43
  private
40
44
 
45
+ def template_directory
46
+ TemplateDirectory.for_adapter(adapter)
47
+ end
48
+
41
49
  def data_type
42
50
  options.fetch("data_type")
43
51
  end
44
52
 
53
+ def adapter
54
+ ::ActiveRecord::Base.connection.adapter_name.downcase
55
+ end
56
+
45
57
  def migration_version
46
- "[4.2]"
58
+ ::ActiveRecord::Migration.current_version
47
59
  end
48
60
 
49
61
  def timestamp
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddEventIdIndexToEventStoreEventsInStreams < ActiveRecord::Migration[<%= migration_version %>]
4
+ def change
5
+ return if index_exists?(:event_store_events_in_streams, :event_id)
6
+
7
+ add_index :event_store_events_in_streams, [:event_id]
8
+ end
9
+ end
@@ -1,55 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class CreateEventStoreEvents < ActiveRecord::Migration<%= migration_version %>
3
+ class CreateEventStoreEvents < ActiveRecord::Migration[<%= migration_version %>]
4
4
  def change
5
- postgres =
6
- ActiveRecord::Base.connection.adapter_name == "PostgreSQL"
7
- if postgres
8
- create_table(:event_store_events_in_streams, id: :bigserial, force: false) do |t|
9
- t.string :stream, null: false
10
- t.integer :position, null: true
11
- t.references :event, null: false, type: :uuid
12
- t.datetime :created_at, null: false
13
- end
14
- add_index :event_store_events_in_streams, [:stream, :position], unique: true
15
- add_index :event_store_events_in_streams, [:created_at]
16
- add_index :event_store_events_in_streams, [:stream, :event_id], unique: true
17
-
18
- create_table(:event_store_events, id: :bigserial, force: false) do |t|
19
- t.references :event, null: false, type: :uuid
20
- t.string :event_type, null: false
21
- t.<%= data_type %> :metadata
22
- t.<%= data_type %> :data, null: false
23
- t.datetime :created_at, null: false
24
- t.datetime :valid_at, null: true
25
- end
26
- add_index :event_store_events, :event_id, unique: true
27
- add_index :event_store_events, :created_at
28
- add_index :event_store_events, :valid_at
29
- add_index :event_store_events, :event_type
30
- else
31
- create_table(:event_store_events_in_streams, force: false) do |t|
32
- t.string :stream, null: false
33
- t.integer :position, null: true
34
- t.references :event, null: false, type: :string, limit: 36
35
- t.datetime :created_at, null: false, precision: 6
36
- end
37
- add_index :event_store_events_in_streams, [:stream, :position], unique: true
38
- add_index :event_store_events_in_streams, [:created_at]
39
- add_index :event_store_events_in_streams, [:stream, :event_id], unique: true
5
+ create_table(:event_store_events_in_streams, force: false) do |t|
6
+ t.string :stream, null: false
7
+ t.integer :position, null: true
8
+ t.references :event, null: false, type: :string, limit: 36, index: false
9
+ t.datetime :created_at, null: false, precision: 6, index: true
10
+ end
11
+ add_index :event_store_events_in_streams, [:stream, :position], unique: true
12
+ add_index :event_store_events_in_streams, [:stream, :event_id], unique: true
13
+ add_index :event_store_events_in_streams, [:event_id]
40
14
 
41
- create_table(:event_store_events, force: false) do |t|
42
- t.references :event, null: false, type: :string, limit: 36
43
- t.string :event_type, null: false
44
- t.binary :metadata
45
- t.binary :data, null: false
46
- t.datetime :created_at, null: false, precision: 6
47
- t.datetime :valid_at, null: true, precision: 6
48
- end
49
- add_index :event_store_events, :event_id, unique: true
50
- add_index :event_store_events, :created_at
51
- add_index :event_store_events, :valid_at
52
- add_index :event_store_events, :event_type
15
+ create_table(:event_store_events, force: false) do |t|
16
+ t.references :event, null: false, type: :string, limit: 36, index: { unique: true }
17
+ t.string :event_type, null: false, index: true
18
+ t.binary :metadata
19
+ t.binary :data, null: false
20
+ t.datetime :created_at, null: false, precision: 6, index: true
21
+ t.datetime :valid_at, null: true, precision: 6, index: true
53
22
  end
54
23
  end
55
24
  end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateEventStoreEvents < ActiveRecord::Migration[<%= migration_version %>]
4
+ def change
5
+ create_table(:event_store_events_in_streams, force: false) do |t|
6
+ t.string :stream, null: false
7
+ t.integer :position, null: true
8
+ t.references :event, null: false, type: :string, limit: 36, index: false
9
+ t.datetime :created_at, null: false, precision: 6, index: true
10
+ end
11
+ add_index :event_store_events_in_streams, [:stream, :position], unique: true
12
+ add_index :event_store_events_in_streams, [:stream, :event_id], unique: true
13
+ add_index :event_store_events_in_streams, [:event_id]
14
+
15
+ create_table(:event_store_events, force: false) do |t|
16
+ t.references :event, null: false, type: :string, limit: 36, index: { unique: true }
17
+ t.string :event_type, null: false, index: true
18
+ t.<%= data_type %> :metadata
19
+ t.<%= data_type %> :data, null: false
20
+ t.datetime :created_at, null: false, precision: 6, index: true
21
+ t.datetime :valid_at, null: true, precision: 6, index: true
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateEventStoreEvents < ActiveRecord::Migration[<%= migration_version %>]
4
+ def change
5
+ create_table(:event_store_events_in_streams, id: :bigserial, force: false) do |t|
6
+ t.string :stream, null: false
7
+ t.integer :position, null: true
8
+ t.references :event, null: false, type: :uuid, index: false
9
+ t.datetime :created_at, null: false, type: :timestamp, precision: 6, index: true
10
+ end
11
+ add_index :event_store_events_in_streams, [:stream, :position], unique: true
12
+ add_index :event_store_events_in_streams, [:stream, :event_id], unique: true
13
+ add_index :event_store_events_in_streams, [:event_id]
14
+
15
+ create_table(:event_store_events, id: :bigserial, force: false) do |t|
16
+ t.references :event, null: false, type: :uuid, index: { unique: true }
17
+ t.string :event_type, null: false, index: true
18
+ t.<%= data_type %> :metadata
19
+ t.<%= data_type %> :data, null: false
20
+ t.datetime :created_at, null: false, type: :timestamp, precision: 6, index: true
21
+ t.datetime :valid_at, null: true, type: :timestamp, precision: 6, index: true
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyEventStore
4
+ module ActiveRecord
5
+ class TemplateDirectory
6
+ def self.for_adapter(database_adapter)
7
+ case database_adapter.downcase
8
+ when "postgresql"
9
+ "postgres/"
10
+ when "mysql2"
11
+ "mysql/"
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyEventStore
4
+ module ActiveRecord
5
+ InvalidDataTypeForAdapter = Class.new(StandardError)
6
+ UnsupportedAdapter = Class.new(StandardError)
7
+
8
+ class VerifyDataTypeForAdapter
9
+ SUPPORTED_POSTGRES_DATA_TYPES = %w[binary json jsonb].freeze
10
+ SUPPORTED_MYSQL_DATA_TYPES = %w[binary json].freeze
11
+ SUPPORTED_SQLITE_DATA_TYPES = %w[binary].freeze
12
+
13
+ def call(adapter, data_type)
14
+ raise UnsupportedAdapter, "Unsupported adapter" unless supported?(adapter)
15
+ raise InvalidDataTypeForAdapter, "MySQL2 doesn't support #{data_type}" if is_mysql2?(adapter) && !SUPPORTED_MYSQL_DATA_TYPES.include?(data_type)
16
+ raise InvalidDataTypeForAdapter, "sqlite doesn't support #{data_type}" if is_sqlite?(adapter) && supported_by_sqlite?(data_type)
17
+ raise InvalidDataTypeForAdapter, "PostgreSQL doesn't support #{data_type}" unless supported_by_postgres?(data_type)
18
+ end
19
+
20
+ private
21
+
22
+ private_constant :SUPPORTED_POSTGRES_DATA_TYPES, :SUPPORTED_MYSQL_DATA_TYPES, :SUPPORTED_SQLITE_DATA_TYPES
23
+
24
+ def supported?(adapter)
25
+ %w[mysql2 postgresql sqlite].include?(adapter.downcase)
26
+ end
27
+
28
+ def is_sqlite?(adapter)
29
+ adapter.downcase.eql?("sqlite")
30
+ end
31
+
32
+ def is_mysql2?(adapter)
33
+ adapter.downcase.eql?("mysql2")
34
+ end
35
+
36
+ def supported_by_sqlite?(data_type)
37
+ !SUPPORTED_SQLITE_DATA_TYPES.include?(data_type)
38
+ end
39
+
40
+ def supported_by_postgres?(data_type)
41
+ SUPPORTED_POSTGRES_DATA_TYPES.include?(data_type)
42
+ end
43
+ end
44
+ end
45
+ end
@@ -2,11 +2,26 @@ require_relative "../generators/migration_generator"
2
2
 
3
3
  desc "Generate migration"
4
4
  task "db:migrations:copy" do
5
- data_type = ENV["DATA_TYPE"] || raise("Specify data type (binary, json, jsonb): rake db:migrations:copy DATA_TYPE=json")
5
+ data_type =
6
+ ENV["DATA_TYPE"] || raise("Specify data type (binary, json, jsonb): rake db:migrations:copy DATA_TYPE=json")
7
+ ::ActiveRecord::Base.establish_connection(ENV["DATABASE_URL"])
8
+ database_adapter = ::ActiveRecord::Base.connection.adapter_name
6
9
 
7
- path = RubyEventStore::ActiveRecord::MigrationGenerator
8
- .new
9
- .call(data_type, ENV["MIGRATION_PATH"] || "db/migrate")
10
+ path =
11
+ RubyEventStore::ActiveRecord::MigrationGenerator.new.call(
12
+ data_type,
13
+ database_adapter,
14
+ ENV["MIGRATION_PATH"] || "db/migrate"
15
+ )
10
16
 
11
17
  puts "Migration file created #{path}"
12
- end
18
+ end
19
+
20
+ desc "Generate migration for missing event_id index"
21
+ task "db:migrations:fix_missing_event_id_index" do
22
+ ::ActiveRecord::Base.establish_connection(ENV["DATABASE_URL"])
23
+
24
+ path = RubyEventStore::ActiveRecord::EventIdIndexMigrationGenerator.new.call(ENV["MIGRATION_PATH"] || "db/migrate")
25
+
26
+ puts "Migration file created #{path}"
27
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RubyEventStore
4
4
  module ActiveRecord
5
- VERSION = "2.9.0"
5
+ VERSION = "2.10"
6
6
  end
7
7
  end
@@ -2,6 +2,10 @@
2
2
 
3
3
  require_relative "active_record/generators/migration_generator"
4
4
  require_relative "active_record/generators/rails_migration_generator"
5
+ require_relative "active_record/generators/templates/template_directory"
6
+ require_relative "active_record/generators/verify_data_type_for_adapter"
7
+ require_relative "active_record/generators/event_id_index_migration_generator"
8
+ require_relative "active_record/generators/rails_event_id_index_migration_generator"
5
9
  require_relative "active_record/event"
6
10
  require_relative "active_record/with_default_models"
7
11
  require_relative "active_record/with_abstract_base_class"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_event_store-active_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.0
4
+ version: '2.10'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arkency
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-24 00:00:00.000000000 Z
11
+ date: 2023-07-19 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.9.0
19
+ version: '2.10'
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.9.0
26
+ version: '2.10'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activerecord
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -57,9 +57,16 @@ files:
57
57
  - lib/ruby_event_store/active_record/event.rb
58
58
  - lib/ruby_event_store/active_record/event_repository.rb
59
59
  - lib/ruby_event_store/active_record/event_repository_reader.rb
60
+ - lib/ruby_event_store/active_record/generators/event_id_index_migration_generator.rb
60
61
  - lib/ruby_event_store/active_record/generators/migration_generator.rb
62
+ - lib/ruby_event_store/active_record/generators/rails_event_id_index_migration_generator.rb
61
63
  - lib/ruby_event_store/active_record/generators/rails_migration_generator.rb
64
+ - lib/ruby_event_store/active_record/generators/templates/add_event_id_index_to_event_store_events_in_streams_template.erb
62
65
  - lib/ruby_event_store/active_record/generators/templates/create_event_store_events_template.erb
66
+ - lib/ruby_event_store/active_record/generators/templates/mysql/create_event_store_events_template.erb
67
+ - lib/ruby_event_store/active_record/generators/templates/postgres/create_event_store_events_template.erb
68
+ - lib/ruby_event_store/active_record/generators/templates/template_directory.rb
69
+ - lib/ruby_event_store/active_record/generators/verify_data_type_for_adapter.rb
63
70
  - lib/ruby_event_store/active_record/index_violation_detector.rb
64
71
  - lib/ruby_event_store/active_record/pg_linearized_event_repository.rb
65
72
  - lib/ruby_event_store/active_record/railtie.rb
@@ -92,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
99
  - !ruby/object:Gem::Version
93
100
  version: '0'
94
101
  requirements: []
95
- rubygems_version: 3.3.26
102
+ rubygems_version: 3.4.1
96
103
  signing_key:
97
104
  specification_version: 4
98
105
  summary: Persistent event repository implementation for RubyEventStore based on ActiveRecord