ruby_event_store 2.0.0 → 2.3.0

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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -1
  3. data/lib/ruby_event_store/client.rb +37 -6
  4. data/lib/ruby_event_store/errors.rb +1 -0
  5. data/lib/ruby_event_store/event.rb +5 -2
  6. data/lib/ruby_event_store/in_memory_repository.rb +67 -15
  7. data/lib/ruby_event_store/instrumented_dispatcher.rb +12 -2
  8. data/lib/ruby_event_store/instrumented_repository.rb +17 -11
  9. data/lib/ruby_event_store/mappers/default.rb +1 -28
  10. data/lib/ruby_event_store/mappers/encryption_mapper.rb +2 -0
  11. data/lib/ruby_event_store/mappers/forgotten_data.rb +1 -1
  12. data/lib/ruby_event_store/mappers/in_memory_encryption_key_repository.rb +1 -1
  13. data/lib/ruby_event_store/mappers/instrumented_mapper.rb +0 -4
  14. data/lib/ruby_event_store/mappers/json_mapper.rb +7 -5
  15. data/lib/ruby_event_store/mappers/pipeline.rb +2 -26
  16. data/lib/ruby_event_store/mappers/pipeline_mapper.rb +0 -4
  17. data/lib/ruby_event_store/mappers/transformation/domain_event.rb +13 -3
  18. data/lib/ruby_event_store/mappers/transformation/upcast.rb +37 -0
  19. data/lib/ruby_event_store/metadata.rb +3 -3
  20. data/lib/ruby_event_store/projection.rb +2 -2
  21. data/lib/ruby_event_store/spec/broker_lint.rb +11 -11
  22. data/lib/ruby_event_store/spec/event_lint.rb +9 -9
  23. data/lib/ruby_event_store/spec/event_repository_lint.rb +338 -281
  24. data/lib/ruby_event_store/spec/subscriptions_lint.rb +41 -33
  25. data/lib/ruby_event_store/subscriptions.rb +24 -9
  26. data/lib/ruby_event_store/transform_keys.rb +5 -5
  27. data/lib/ruby_event_store/version.rb +1 -1
  28. data/lib/ruby_event_store.rb +43 -44
  29. metadata +26 -17
  30. data/.mutant.yml +0 -1
  31. data/CHANGELOG.md +0 -93
  32. data/Gemfile +0 -9
  33. data/Gemfile.lock +0 -118
  34. data/Makefile +0 -32
  35. data/lib/ruby_event_store/mappers/deprecated_wrapper.rb +0 -33
  36. data/lib/ruby_event_store/mappers/transformation/serialization.rb +0 -36
  37. data/ruby_event_store.gemspec +0 -27
@@ -17,7 +17,7 @@ RSpec.shared_examples :subscriptions do |subscriptions_class|
17
17
 
18
18
  subject(:subscriptions) { subscriptions_class.new }
19
19
 
20
- it 'returns all subscribed handlers' do
20
+ it "returns all subscribed handlers" do
21
21
  handler = TestHandler.new
22
22
  another_handler = TestHandler.new
23
23
  global_handler = TestHandler.new
@@ -26,12 +26,12 @@ RSpec.shared_examples :subscriptions do |subscriptions_class|
26
26
  subscriptions.add_subscription(another_handler, [Test2DomainEvent])
27
27
  subscriptions.add_global_subscription(global_handler)
28
28
 
29
- expect(subscriptions.all_for('Test1DomainEvent')).to eq([handler, global_handler])
30
- expect(subscriptions.all_for('Test2DomainEvent')).to eq([another_handler, global_handler])
31
- expect(subscriptions.all_for('Test3DomainEvent')).to eq([handler, global_handler])
29
+ expect(subscriptions.all_for("Test1DomainEvent")).to eq([handler, global_handler])
30
+ expect(subscriptions.all_for("Test2DomainEvent")).to eq([another_handler, global_handler])
31
+ expect(subscriptions.all_for("Test3DomainEvent")).to eq([handler, global_handler])
32
32
  end
33
33
 
34
- it 'returns subscribed thread handlers' do
34
+ it "returns subscribed thread handlers" do
35
35
  handler = TestHandler.new
36
36
  another_handler = TestHandler.new
37
37
  global_handler = TestHandler.new
@@ -42,76 +42,84 @@ RSpec.shared_examples :subscriptions do |subscriptions_class|
42
42
  t = Thread.new do
43
43
  subscriptions.add_thread_subscription(handler, [Test2DomainEvent])
44
44
  subscriptions.add_thread_global_subscription(another_handler)
45
- expect(subscriptions.all_for('Test2DomainEvent')).to eq([another_handler, handler])
45
+ expect(subscriptions.all_for("Test2DomainEvent")).to eq([another_handler, handler])
46
46
  end
47
47
 
48
- expect(subscriptions.all_for('Test1DomainEvent')).to eq([global_handler, handler])
49
- expect(subscriptions.all_for('Test2DomainEvent')).to eq([global_handler, another_handler])
50
- expect(subscriptions.all_for('Test3DomainEvent')).to eq([global_handler, handler])
48
+ expect(subscriptions.all_for("Test1DomainEvent")).to eq([global_handler, handler])
49
+ expect(subscriptions.all_for("Test2DomainEvent")).to eq([global_handler, another_handler])
50
+ expect(subscriptions.all_for("Test3DomainEvent")).to eq([global_handler, handler])
51
51
  t.join
52
52
  end
53
53
 
54
- it 'returns lambda as an output of global subscribe methods' do
54
+ it "returns lambda as an output of global subscribe methods" do
55
55
  handler = TestHandler.new
56
56
  result = subscriptions.add_global_subscription(handler)
57
57
  expect(result).to respond_to(:call)
58
58
  end
59
59
 
60
- it 'returns lambda as an output of subscribe methods' do
60
+ it "returns lambda as an output of subscribe methods" do
61
61
  handler = TestHandler.new
62
62
  result = subscriptions.add_subscription(handler, [Test1DomainEvent, Test2DomainEvent])
63
63
  expect(result).to respond_to(:call)
64
64
  end
65
65
 
66
- it 'revokes global subscription' do
66
+ it "revokes global subscription" do
67
67
  handler = TestHandler.new
68
68
 
69
69
  revoke = subscriptions.add_global_subscription(handler)
70
- expect(subscriptions.all_for('Test1DomainEvent')).to eq([handler])
71
- expect(subscriptions.all_for('Test2DomainEvent')).to eq([handler])
70
+ expect(subscriptions.all_for("Test1DomainEvent")).to eq([handler])
71
+ expect(subscriptions.all_for("Test2DomainEvent")).to eq([handler])
72
72
  revoke.()
73
- expect(subscriptions.all_for('Test1DomainEvent')).to eq([])
74
- expect(subscriptions.all_for('Test2DomainEvent')).to eq([])
73
+ expect(subscriptions.all_for("Test1DomainEvent")).to eq([])
74
+ expect(subscriptions.all_for("Test2DomainEvent")).to eq([])
75
75
  end
76
76
 
77
- it 'revokes subscription' do
77
+ it "revokes subscription" do
78
78
  handler = TestHandler.new
79
79
 
80
80
  revoke = subscriptions.add_subscription(handler, [Test1DomainEvent, Test2DomainEvent])
81
- expect(subscriptions.all_for('Test1DomainEvent')).to eq([handler])
82
- expect(subscriptions.all_for('Test2DomainEvent')).to eq([handler])
81
+ expect(subscriptions.all_for("Test1DomainEvent")).to eq([handler])
82
+ expect(subscriptions.all_for("Test2DomainEvent")).to eq([handler])
83
83
  revoke.()
84
- expect(subscriptions.all_for('Test1DomainEvent')).to eq([])
85
- expect(subscriptions.all_for('Test2DomainEvent')).to eq([])
84
+ expect(subscriptions.all_for("Test1DomainEvent")).to eq([])
85
+ expect(subscriptions.all_for("Test2DomainEvent")).to eq([])
86
86
  end
87
87
 
88
- it 'revokes thread global subscription' do
88
+ it "revokes thread global subscription" do
89
89
  handler = TestHandler.new
90
90
 
91
91
  revoke = subscriptions.add_thread_global_subscription(handler)
92
- expect(subscriptions.all_for('Test1DomainEvent')).to eq([handler])
93
- expect(subscriptions.all_for('Test2DomainEvent')).to eq([handler])
92
+ expect(subscriptions.all_for("Test1DomainEvent")).to eq([handler])
93
+ expect(subscriptions.all_for("Test2DomainEvent")).to eq([handler])
94
94
  revoke.()
95
- expect(subscriptions.all_for('Test1DomainEvent')).to eq([])
96
- expect(subscriptions.all_for('Test2DomainEvent')).to eq([])
95
+ expect(subscriptions.all_for("Test1DomainEvent")).to eq([])
96
+ expect(subscriptions.all_for("Test2DomainEvent")).to eq([])
97
97
  end
98
98
 
99
- it 'revokes thread subscription' do
99
+ it "revokes thread subscription" do
100
100
  handler = TestHandler.new
101
101
 
102
102
  revoke = subscriptions.add_thread_subscription(handler, [Test1DomainEvent, Test2DomainEvent])
103
- expect(subscriptions.all_for('Test1DomainEvent')).to eq([handler])
104
- expect(subscriptions.all_for('Test2DomainEvent')).to eq([handler])
103
+ expect(subscriptions.all_for("Test1DomainEvent")).to eq([handler])
104
+ expect(subscriptions.all_for("Test2DomainEvent")).to eq([handler])
105
105
  revoke.()
106
- expect(subscriptions.all_for('Test1DomainEvent')).to eq([])
107
- expect(subscriptions.all_for('Test2DomainEvent')).to eq([])
106
+ expect(subscriptions.all_for("Test1DomainEvent")).to eq([])
107
+ expect(subscriptions.all_for("Test2DomainEvent")).to eq([])
108
108
  end
109
109
 
110
- it 'subscribes by type of event which is a String' do
110
+ it "subscribes by type of event which is a String" do
111
111
  handler = TestHandler.new
112
112
  subscriptions.add_subscription(handler, ["Test1DomainEvent"])
113
113
  subscriptions.add_thread_subscription(handler, ["Test1DomainEvent"])
114
114
 
115
- expect(subscriptions.all_for('Test1DomainEvent')).to eq([handler, handler])
115
+ expect(subscriptions.all_for("Test1DomainEvent")).to eq([handler, handler])
116
+ end
117
+
118
+ it "subscribes by type of event which is a class" do
119
+ handler = TestHandler.new
120
+ subscriptions.add_subscription(handler, [Test1DomainEvent])
121
+ subscriptions.add_thread_subscription(handler, [Test1DomainEvent])
122
+
123
+ expect(subscriptions.all_for("Test1DomainEvent")).to eq([handler, handler])
116
124
  end
117
125
  end
@@ -1,17 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'concurrent'
3
+ require "concurrent"
4
4
 
5
5
  module RubyEventStore
6
6
  class Subscriptions
7
- def initialize
7
+ def initialize(event_type_resolver: default_event_type_resolver)
8
+ @event_type_resolver = event_type_resolver
8
9
  @local = LocalSubscriptions.new
9
10
  @global = GlobalSubscriptions.new
10
- @thread = ThreadSubscriptions.new
11
+ @thread = ThreadSubscriptions.new
11
12
  end
12
13
 
13
14
  def add_subscription(subscriber, event_types)
14
- local.add(subscriber, event_types)
15
+ local.add(subscriber, resolve_event_types(event_types))
15
16
  end
16
17
 
17
18
  def add_global_subscription(subscriber)
@@ -19,7 +20,7 @@ module RubyEventStore
19
20
  end
20
21
 
21
22
  def add_thread_subscription(subscriber, event_types)
22
- thread.local.add(subscriber, event_types)
23
+ thread.local.add(subscriber, resolve_event_types(event_types))
23
24
  end
24
25
 
25
26
  def add_thread_global_subscription(subscriber)
@@ -30,9 +31,23 @@ module RubyEventStore
30
31
  [local, global, thread].map{|r| r.all_for(event_type)}.reduce(&:+)
31
32
  end
32
33
 
34
+ attr_reader :event_type_resolver
35
+
33
36
  private
34
37
  attr_reader :local, :global, :thread
35
38
 
39
+ def default_event_type_resolver
40
+ ->(value) { value.to_s }
41
+ end
42
+
43
+ def resolve_event_types(event_types)
44
+ event_types.map(&method(:resolve_event_type))
45
+ end
46
+
47
+ def resolve_event_type(type)
48
+ event_type_resolver.call(type)
49
+ end
50
+
36
51
  class ThreadSubscriptions
37
52
  def initialize
38
53
  @local = ThreadLocalSubscriptions.new
@@ -51,8 +66,8 @@ module RubyEventStore
51
66
  end
52
67
 
53
68
  def add(subscription, event_types)
54
- event_types.each{ |type| @subscriptions[type.to_s] << subscription }
55
- ->() {event_types.each{ |type| @subscriptions.fetch(type.to_s).delete(subscription) } }
69
+ event_types.each{ |type| @subscriptions[type] << subscription }
70
+ ->() {event_types.each{ |type| @subscriptions.fetch(type).delete(subscription) } }
56
71
  end
57
72
 
58
73
  def all_for(event_type)
@@ -83,8 +98,8 @@ module RubyEventStore
83
98
  end
84
99
 
85
100
  def add(subscription, event_types)
86
- event_types.each{ |type| @subscriptions.value[type.to_s] << subscription }
87
- ->() {event_types.each{ |type| @subscriptions.value.fetch(type.to_s).delete(subscription) } }
101
+ event_types.each{ |type| @subscriptions.value[type] << subscription }
102
+ ->() {event_types.each{ |type| @subscriptions.value.fetch(type).delete(subscription) } }
88
103
  end
89
104
 
90
105
  def all_for(event_type)
@@ -4,23 +4,23 @@ module RubyEventStore
4
4
  class TransformKeys
5
5
  class << self
6
6
  def stringify(data)
7
- transform(data) {|k| k.to_s}
7
+ deep_transform(data, &:to_s)
8
8
  end
9
9
 
10
10
  def symbolize(data)
11
- transform(data) {|k| k.to_sym}
11
+ deep_transform(data, &:to_sym)
12
12
  end
13
13
 
14
14
  private
15
15
 
16
- def transform(data, &block)
16
+ def deep_transform(data, &block)
17
17
  data.each_with_object({}) do |(k, v), h|
18
18
  h[yield(k)] =
19
19
  case v
20
20
  when Hash
21
- transform(v, &block)
21
+ deep_transform(v, &block)
22
22
  when Array
23
- v.map{|i| Hash === i ? transform(i, &block) : i}
23
+ v.map{|i| Hash === i ? deep_transform(i, &block) : i}
24
24
  else
25
25
  v
26
26
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubyEventStore
4
- VERSION = "2.0.0"
4
+ VERSION = "2.3.0"
5
5
  end
@@ -1,46 +1,45 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ruby_event_store/dispatcher'
4
- require 'ruby_event_store/subscriptions'
5
- require 'ruby_event_store/broker'
6
- require 'ruby_event_store/in_memory_repository'
7
- require 'ruby_event_store/projection'
8
- require 'ruby_event_store/errors'
9
- require 'ruby_event_store/constants'
10
- require 'ruby_event_store/client'
11
- require 'ruby_event_store/metadata'
12
- require 'ruby_event_store/specification'
13
- require 'ruby_event_store/specification_result'
14
- require 'ruby_event_store/specification_reader'
15
- require 'ruby_event_store/event'
16
- require 'ruby_event_store/stream'
17
- require 'ruby_event_store/expected_version'
18
- require 'ruby_event_store/record'
19
- require 'ruby_event_store/serialized_record'
20
- require 'ruby_event_store/null'
21
- require 'ruby_event_store/transform_keys'
22
- require 'ruby_event_store/mappers/encryption_key'
23
- require 'ruby_event_store/mappers/in_memory_encryption_key_repository'
24
- require 'ruby_event_store/mappers/transformation/domain_event'
25
- require 'ruby_event_store/mappers/transformation/encryption'
26
- require 'ruby_event_store/mappers/transformation/event_class_remapper'
27
- require 'ruby_event_store/mappers/transformation/stringify_metadata_keys'
28
- require 'ruby_event_store/mappers/transformation/symbolize_metadata_keys'
29
- require 'ruby_event_store/mappers/transformation/serialization'
30
- require 'ruby_event_store/mappers/pipeline'
31
- require 'ruby_event_store/mappers/pipeline_mapper'
32
- require 'ruby_event_store/mappers/deprecated_wrapper'
33
- require 'ruby_event_store/mappers/default'
34
- require 'ruby_event_store/mappers/forgotten_data'
35
- require 'ruby_event_store/mappers/encryption_mapper'
36
- require 'ruby_event_store/mappers/instrumented_mapper'
37
- require 'ruby_event_store/mappers/json_mapper'
38
- require 'ruby_event_store/mappers/null_mapper'
39
- require 'ruby_event_store/batch_enumerator'
40
- require 'ruby_event_store/correlated_commands'
41
- require 'ruby_event_store/link_by_metadata'
42
- require 'ruby_event_store/immediate_async_dispatcher'
43
- require 'ruby_event_store/composed_dispatcher'
44
- require 'ruby_event_store/version'
45
- require 'ruby_event_store/instrumented_repository'
46
- require 'ruby_event_store/instrumented_dispatcher'
3
+ require_relative "ruby_event_store/dispatcher"
4
+ require_relative "ruby_event_store/subscriptions"
5
+ require_relative "ruby_event_store/broker"
6
+ require_relative "ruby_event_store/in_memory_repository"
7
+ require_relative "ruby_event_store/projection"
8
+ require_relative "ruby_event_store/errors"
9
+ require_relative "ruby_event_store/constants"
10
+ require_relative "ruby_event_store/client"
11
+ require_relative "ruby_event_store/metadata"
12
+ require_relative "ruby_event_store/specification"
13
+ require_relative "ruby_event_store/specification_result"
14
+ require_relative "ruby_event_store/specification_reader"
15
+ require_relative "ruby_event_store/event"
16
+ require_relative "ruby_event_store/stream"
17
+ require_relative "ruby_event_store/expected_version"
18
+ require_relative "ruby_event_store/record"
19
+ require_relative "ruby_event_store/serialized_record"
20
+ require_relative "ruby_event_store/null"
21
+ require_relative "ruby_event_store/transform_keys"
22
+ require_relative "ruby_event_store/mappers/encryption_key"
23
+ require_relative "ruby_event_store/mappers/in_memory_encryption_key_repository"
24
+ require_relative "ruby_event_store/mappers/transformation/domain_event"
25
+ require_relative "ruby_event_store/mappers/transformation/encryption"
26
+ require_relative "ruby_event_store/mappers/transformation/event_class_remapper"
27
+ require_relative "ruby_event_store/mappers/transformation/upcast"
28
+ require_relative "ruby_event_store/mappers/transformation/stringify_metadata_keys"
29
+ require_relative "ruby_event_store/mappers/transformation/symbolize_metadata_keys"
30
+ require_relative "ruby_event_store/mappers/pipeline"
31
+ require_relative "ruby_event_store/mappers/pipeline_mapper"
32
+ require_relative "ruby_event_store/mappers/default"
33
+ require_relative "ruby_event_store/mappers/forgotten_data"
34
+ require_relative "ruby_event_store/mappers/encryption_mapper"
35
+ require_relative "ruby_event_store/mappers/instrumented_mapper"
36
+ require_relative "ruby_event_store/mappers/json_mapper"
37
+ require_relative "ruby_event_store/mappers/null_mapper"
38
+ require_relative "ruby_event_store/batch_enumerator"
39
+ require_relative "ruby_event_store/correlated_commands"
40
+ require_relative "ruby_event_store/link_by_metadata"
41
+ require_relative "ruby_event_store/immediate_async_dispatcher"
42
+ require_relative "ruby_event_store/composed_dispatcher"
43
+ require_relative "ruby_event_store/version"
44
+ require_relative "ruby_event_store/instrumented_repository"
45
+ require_relative "ruby_event_store/instrumented_dispatcher"
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_event_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arkency
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-30 00:00:00.000000000 Z
11
+ date: 2021-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ruby2_keywords
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: concurrent-ruby
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -30,18 +44,15 @@ dependencies:
30
44
  - - ">="
31
45
  - !ruby/object:Gem::Version
32
46
  version: 1.1.6
33
- description: Implementation of Event Store in Ruby
34
- email:
35
- - dev@arkency.com
47
+ description: |
48
+ Ruby implementation of an event store. Ships with in-memory event repository, generic instrumentation
49
+ and dispatches events synchronously.
50
+ email: dev@arkency.com
36
51
  executables: []
37
52
  extensions: []
38
- extra_rdoc_files: []
53
+ extra_rdoc_files:
54
+ - README.md
39
55
  files:
40
- - ".mutant.yml"
41
- - CHANGELOG.md
42
- - Gemfile
43
- - Gemfile.lock
44
- - Makefile
45
56
  - README.md
46
57
  - lib/ruby_event_store.rb
47
58
  - lib/ruby_event_store/batch_enumerator.rb
@@ -60,7 +71,6 @@ files:
60
71
  - lib/ruby_event_store/instrumented_repository.rb
61
72
  - lib/ruby_event_store/link_by_metadata.rb
62
73
  - lib/ruby_event_store/mappers/default.rb
63
- - lib/ruby_event_store/mappers/deprecated_wrapper.rb
64
74
  - lib/ruby_event_store/mappers/encryption_key.rb
65
75
  - lib/ruby_event_store/mappers/encryption_mapper.rb
66
76
  - lib/ruby_event_store/mappers/forgotten_data.rb
@@ -73,9 +83,9 @@ files:
73
83
  - lib/ruby_event_store/mappers/transformation/domain_event.rb
74
84
  - lib/ruby_event_store/mappers/transformation/encryption.rb
75
85
  - lib/ruby_event_store/mappers/transformation/event_class_remapper.rb
76
- - lib/ruby_event_store/mappers/transformation/serialization.rb
77
86
  - lib/ruby_event_store/mappers/transformation/stringify_metadata_keys.rb
78
87
  - lib/ruby_event_store/mappers/transformation/symbolize_metadata_keys.rb
88
+ - lib/ruby_event_store/mappers/transformation/upcast.rb
79
89
  - lib/ruby_event_store/metadata.rb
80
90
  - lib/ruby_event_store/null.rb
81
91
  - lib/ruby_event_store/projection.rb
@@ -95,12 +105,11 @@ files:
95
105
  - lib/ruby_event_store/subscriptions.rb
96
106
  - lib/ruby_event_store/transform_keys.rb
97
107
  - lib/ruby_event_store/version.rb
98
- - ruby_event_store.gemspec
99
108
  homepage: https://railseventstore.org
100
109
  licenses:
101
110
  - MIT
102
111
  metadata:
103
- homepage_uri: https://railseventstore.org/
112
+ homepage_uri: https://railseventstore.org
104
113
  changelog_uri: https://github.com/RailsEventStore/rails_event_store/releases
105
114
  source_code_uri: https://github.com/RailsEventStore/rails_event_store
106
115
  bug_tracker_uri: https://github.com/RailsEventStore/rails_event_store/issues
@@ -112,7 +121,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
121
  requirements:
113
122
  - - ">="
114
123
  - !ruby/object:Gem::Version
115
- version: '0'
124
+ version: '2.6'
116
125
  required_rubygems_version: !ruby/object:Gem::Requirement
117
126
  requirements:
118
127
  - - ">="
@@ -122,5 +131,5 @@ requirements: []
122
131
  rubygems_version: 3.1.4
123
132
  signing_key:
124
133
  specification_version: 4
125
- summary: Event Store in Ruby
134
+ summary: Implementation of an event store in Ruby
126
135
  test_files: []
data/.mutant.yml DELETED
@@ -1 +0,0 @@
1
- ../.mutant.yml