sequent 4.0.0 → 4.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/bin/sequent +33 -26
  3. data/lib/notices.rb +2 -0
  4. data/lib/sequent/application_record.rb +2 -0
  5. data/lib/sequent/configuration.rb +24 -31
  6. data/lib/sequent/core/aggregate_repository.rb +48 -13
  7. data/lib/sequent/core/aggregate_root.rb +36 -7
  8. data/lib/sequent/core/aggregate_roots.rb +24 -0
  9. data/lib/sequent/core/aggregate_snapshotter.rb +8 -5
  10. data/lib/sequent/core/base_command_handler.rb +4 -2
  11. data/lib/sequent/core/command.rb +17 -9
  12. data/lib/sequent/core/command_record.rb +8 -3
  13. data/lib/sequent/core/command_service.rb +18 -18
  14. data/lib/sequent/core/core.rb +2 -0
  15. data/lib/sequent/core/current_event.rb +2 -0
  16. data/lib/sequent/core/event.rb +16 -11
  17. data/lib/sequent/core/event_publisher.rb +16 -15
  18. data/lib/sequent/core/event_record.rb +7 -7
  19. data/lib/sequent/core/event_store.rb +89 -51
  20. data/lib/sequent/core/ext/ext.rb +9 -1
  21. data/lib/sequent/core/helpers/array_with_type.rb +4 -1
  22. data/lib/sequent/core/helpers/association_validator.rb +9 -7
  23. data/lib/sequent/core/helpers/attribute_support.rb +45 -28
  24. data/lib/sequent/core/helpers/autoset_attributes.rb +4 -4
  25. data/lib/sequent/core/helpers/boolean_validator.rb +6 -1
  26. data/lib/sequent/core/helpers/copyable.rb +2 -2
  27. data/lib/sequent/core/helpers/date_time_validator.rb +4 -1
  28. data/lib/sequent/core/helpers/date_validator.rb +6 -1
  29. data/lib/sequent/core/helpers/default_validators.rb +12 -10
  30. data/lib/sequent/core/helpers/equal_support.rb +8 -6
  31. data/lib/sequent/core/helpers/helpers.rb +2 -0
  32. data/lib/sequent/core/helpers/mergable.rb +6 -5
  33. data/lib/sequent/core/helpers/message_handler.rb +3 -1
  34. data/lib/sequent/core/helpers/param_support.rb +19 -15
  35. data/lib/sequent/core/helpers/secret.rb +14 -12
  36. data/lib/sequent/core/helpers/string_support.rb +5 -4
  37. data/lib/sequent/core/helpers/string_to_value_parsers.rb +7 -2
  38. data/lib/sequent/core/helpers/string_validator.rb +6 -1
  39. data/lib/sequent/core/helpers/type_conversion_support.rb +5 -3
  40. data/lib/sequent/core/helpers/uuid_helper.rb +5 -2
  41. data/lib/sequent/core/helpers/value_validators.rb +23 -9
  42. data/lib/sequent/core/persistors/active_record_persistor.rb +19 -9
  43. data/lib/sequent/core/persistors/persistor.rb +16 -14
  44. data/lib/sequent/core/persistors/persistors.rb +2 -0
  45. data/lib/sequent/core/persistors/replay_optimized_postgres_persistor.rb +70 -47
  46. data/lib/sequent/core/projector.rb +53 -22
  47. data/lib/sequent/core/random_uuid_generator.rb +2 -0
  48. data/lib/sequent/core/sequent_oj.rb +2 -0
  49. data/lib/sequent/core/stream_record.rb +9 -3
  50. data/lib/sequent/core/transactions/active_record_transaction_provider.rb +30 -9
  51. data/lib/sequent/core/transactions/no_transactions.rb +2 -1
  52. data/lib/sequent/core/transactions/read_only_active_record_transaction_provider.rb +46 -0
  53. data/lib/sequent/core/transactions/transactions.rb +3 -0
  54. data/lib/sequent/core/value_object.rb +8 -10
  55. data/lib/sequent/core/workflow.rb +35 -5
  56. data/lib/sequent/generator/aggregate.rb +16 -10
  57. data/lib/sequent/generator/command.rb +26 -19
  58. data/lib/sequent/generator/event.rb +19 -17
  59. data/lib/sequent/generator/generator.rb +2 -0
  60. data/lib/sequent/generator/project.rb +9 -0
  61. data/lib/sequent/generator/template_project/Gemfile +1 -1
  62. data/lib/sequent/generator/template_project/ruby-version +1 -0
  63. data/lib/sequent/generator.rb +2 -0
  64. data/lib/sequent/migrations/executor.rb +22 -13
  65. data/lib/sequent/migrations/functions.rb +5 -6
  66. data/lib/sequent/migrations/migrate_events.rb +12 -9
  67. data/lib/sequent/migrations/migrations.rb +2 -1
  68. data/lib/sequent/migrations/planner.rb +33 -23
  69. data/lib/sequent/migrations/projectors.rb +4 -3
  70. data/lib/sequent/migrations/sql.rb +2 -0
  71. data/lib/sequent/migrations/view_schema.rb +84 -45
  72. data/lib/sequent/rake/migration_tasks.rb +58 -22
  73. data/lib/sequent/rake/tasks.rb +5 -2
  74. data/lib/sequent/sequent.rb +2 -0
  75. data/lib/sequent/support/database.rb +30 -15
  76. data/lib/sequent/support/view_projection.rb +6 -3
  77. data/lib/sequent/support/view_schema.rb +2 -0
  78. data/lib/sequent/support.rb +2 -0
  79. data/lib/sequent/test/command_handler_helpers.rb +35 -17
  80. data/lib/sequent/test/event_handler_helpers.rb +10 -4
  81. data/lib/sequent/test/event_stream_helpers.rb +7 -3
  82. data/lib/sequent/test/time_comparison.rb +12 -5
  83. data/lib/sequent/test.rb +2 -0
  84. data/lib/sequent/util/dry_run.rb +28 -20
  85. data/lib/sequent/util/printer.rb +6 -5
  86. data/lib/sequent/util/skip_if_already_processing.rb +3 -1
  87. data/lib/sequent/util/timer.rb +2 -0
  88. data/lib/sequent/util/util.rb +2 -0
  89. data/lib/sequent.rb +2 -0
  90. data/lib/version.rb +3 -1
  91. metadata +84 -67
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../test/command_handler_helpers'
2
4
 
3
5
  module Sequent
@@ -33,19 +35,19 @@ module Sequent
33
35
  attr_reader :command_with_events, :event_store
34
36
 
35
37
  delegate :load_events_for_aggregates,
36
- :load_events,
37
- :publish_events,
38
- :stream_exists?,
39
- to: :event_store
38
+ :load_events,
39
+ :stream_exists?,
40
+ :events_exists?,
41
+ to: :event_store
40
42
 
41
- def initialize(result)
42
- @event_store = Sequent::Test::CommandHandlerHelpers::FakeEventStore.new
43
+ def initialize(result, event_store)
44
+ @event_store = event_store
43
45
  @command_with_events = {}
44
46
  @result = result
45
47
  end
46
48
 
47
49
  def commit_events(command, streams_with_events)
48
- event_store.commit_events(command, streams_with_events)
50
+ Sequent.configuration.event_publisher.publish_events(streams_with_events.flat_map { |_, events| events })
49
51
 
50
52
  new_events = streams_with_events.flat_map { |_, events| events }
51
53
  @result.published_command_with_events(command, new_events)
@@ -59,22 +61,23 @@ module Sequent
59
61
  attr_reader :projectors, :workflows
60
62
 
61
63
  def initialize(result)
64
+ super()
62
65
  @result = result
63
66
  end
64
67
 
65
68
  def process_event(event)
66
- Sequent.configuration.event_handlers.each do |handler|
67
- next unless handler.class.handles_message?(event)
69
+ [*Sequent::Core::Workflows.all, *Sequent::Core::Projectors.all].each do |handler_class|
70
+ next unless handler_class.handles_message?(event)
68
71
 
69
- if handler.is_a?(Sequent::Workflow)
70
- @result.invoked_workflow(EventInvokedHandler.new(event, handler.class))
71
- elsif handler.is_a?(Sequent::Projector)
72
- @result.invoked_projector(EventInvokedHandler.new(event, handler.class))
72
+ if handler_class < Sequent::Workflow
73
+ @result.invoked_workflow(EventInvokedHandler.new(event, handler_class))
74
+ elsif handler_class < Sequent::Projector
75
+ @result.invoked_projector(EventInvokedHandler.new(event, handler_class))
73
76
  else
74
- fail "Unrecognized event_handler #{handler.class} called for event #{event.class}"
77
+ fail "Unrecognized event_handler #{handler_class} called for event #{event.class}"
75
78
  end
76
- rescue
77
- raise PublishEventError.new(handler.class, event)
79
+ rescue StandardError
80
+ raise PublishEventError.new(handler_class, event)
78
81
  end
79
82
  end
80
83
  end
@@ -141,16 +144,16 @@ module Sequent
141
144
  #
142
145
  def print(io)
143
146
  tree.each_with_index do |(command, event_called_handlerss), index|
144
- io.puts "+++++++++++++++++++++++++++++++++++" if index == 0
147
+ io.puts '+++++++++++++++++++++++++++++++++++' if index == 0
145
148
  io.puts "Command: #{command.class} resulted in #{event_called_handlerss.length} events"
146
149
  event_called_handlerss.each_with_index do |event_called_handlers, i|
147
- io.puts "" if i > 0
150
+ io.puts '' if i > 0
148
151
  io.puts "-- Event #{event_called_handlers.event.class} was handled by:"
149
152
  io.puts "-- Projectors: [#{event_called_handlers.projectors.join(', ')}]"
150
153
  io.puts "-- Workflows: [#{event_called_handlers.workflows.join(', ')}]"
151
154
  end
152
155
 
153
- io.puts "+++++++++++++++++++++++++++++++++++"
156
+ io.puts '+++++++++++++++++++++++++++++++++++'
154
157
  end
155
158
  end
156
159
 
@@ -174,10 +177,14 @@ module Sequent
174
177
  def self.these_commands(commands)
175
178
  current_event_store = Sequent.configuration.event_store
176
179
  current_event_publisher = Sequent.configuration.event_publisher
180
+ current_transaction_provider = Sequent.configuration.transaction_provider
181
+
177
182
  result = Result.new
178
183
 
179
- Sequent.configuration.event_store = EventStoreProxy.new(result)
184
+ Sequent.configuration.event_store = EventStoreProxy.new(result, current_event_store)
180
185
  Sequent.configuration.event_publisher = RecordingEventPublisher.new(result)
186
+ Sequent.configuration.transaction_provider =
187
+ Sequent::Core::Transactions::ReadOnlyActiveRecordTransactionProvider.new(current_transaction_provider)
181
188
 
182
189
  Sequent.command_service.execute_commands(*commands)
183
190
 
@@ -185,6 +192,7 @@ module Sequent
185
192
  ensure
186
193
  Sequent.configuration.event_store = current_event_store
187
194
  Sequent.configuration.event_publisher = current_event_publisher
195
+ Sequent.configuration.transaction_provider = current_transaction_provider
188
196
  end
189
197
  end
190
198
  end
@@ -1,16 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Sequent
2
4
  module Util
3
5
  module Printer
4
6
  def recursively_print(e)
5
- logger.error "#{e.to_s}\n\n#{e.backtrace.join("\n")}"
7
+ logger.error "#{e}\n\n#{e.backtrace.join("\n")}"
6
8
 
7
- while e.cause do
8
- logger.error "+++++++++++++++ CAUSE +++++++++++++++"
9
- logger.error "#{e.cause.to_s}\n\n#{e.cause.backtrace.join("\n")}"
9
+ while e.cause
10
+ logger.error '+++++++++++++++ CAUSE +++++++++++++++'
11
+ logger.error "#{e.cause}\n\n#{e.cause.backtrace.join("\n")}"
10
12
  e = e.cause
11
13
  end
12
14
  end
13
15
  end
14
16
  end
15
17
  end
16
-
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Sequent
2
4
  module Util
3
5
  ##
@@ -6,7 +8,7 @@ module Sequent
6
8
  # it yields the given +&block+.
7
9
  #
8
10
  # Useful in a Queue and Processing strategy
9
- def self.skip_if_already_processing(processing_key, &block)
11
+ def self.skip_if_already_processing(processing_key)
10
12
  return if Thread.current[processing_key]
11
13
 
12
14
  begin
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Sequent
2
4
  module Util
3
5
  module Timer
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'skip_if_already_processing'
2
4
  require_relative 'timer'
3
5
  require_relative 'printer'
data/lib/sequent.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'sequent/application_record'
2
4
  require_relative 'sequent/sequent'
3
5
  require_relative 'sequent/core/core'
data/lib/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Sequent
2
- VERSION = '4.0.0'
4
+ VERSION = '4.3.0'
3
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequent
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lars Vonk
@@ -12,18 +12,18 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2021-02-24 00:00:00.000000000 Z
15
+ date: 2022-03-21 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
- name: activerecord
18
+ name: activemodel
19
19
  requirement: !ruby/object:Gem::Requirement
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
23
  version: '5.0'
24
- - - "<"
24
+ - - "<="
25
25
  - !ruby/object:Gem::Version
26
- version: 6.0.4
26
+ version: 7.0.2
27
27
  type: :runtime
28
28
  prerelease: false
29
29
  version_requirements: !ruby/object:Gem::Requirement
@@ -31,19 +31,19 @@ dependencies:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '5.0'
34
- - - "<"
34
+ - - "<="
35
35
  - !ruby/object:Gem::Version
36
- version: 6.0.4
36
+ version: 7.0.2
37
37
  - !ruby/object:Gem::Dependency
38
- name: activemodel
38
+ name: activerecord
39
39
  requirement: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - ">="
42
42
  - !ruby/object:Gem::Version
43
43
  version: '5.0'
44
- - - "<"
44
+ - - "<="
45
45
  - !ruby/object:Gem::Version
46
- version: 6.0.4
46
+ version: 7.0.2
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
@@ -51,37 +51,37 @@ dependencies:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
53
  version: '5.0'
54
- - - "<"
54
+ - - "<="
55
55
  - !ruby/object:Gem::Version
56
- version: 6.0.4
56
+ version: 7.0.2
57
57
  - !ruby/object:Gem::Dependency
58
- name: pg
58
+ name: bcrypt
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: '1.2'
63
+ version: '3.1'
64
64
  type: :runtime
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
- version: '1.2'
70
+ version: '3.1'
71
71
  - !ruby/object:Gem::Dependency
72
- name: postgresql_cursor
72
+ name: i18n
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - "~>"
75
+ - - ">="
76
76
  - !ruby/object:Gem::Version
77
- version: '0.6'
77
+ version: '0'
78
78
  type: :runtime
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - "~>"
82
+ - - ">="
83
83
  - !ruby/object:Gem::Version
84
- version: '0.6'
84
+ version: '0'
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: oj
87
87
  requirement: !ruby/object:Gem::Requirement
@@ -97,125 +97,125 @@ dependencies:
97
97
  - !ruby/object:Gem::Version
98
98
  version: '3'
99
99
  - !ruby/object:Gem::Dependency
100
- name: thread_safe
100
+ name: parallel
101
101
  requirement: !ruby/object:Gem::Requirement
102
102
  requirements:
103
103
  - - "~>"
104
104
  - !ruby/object:Gem::Version
105
- version: 0.3.6
105
+ version: '1.20'
106
106
  type: :runtime
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
110
  - - "~>"
111
111
  - !ruby/object:Gem::Version
112
- version: 0.3.6
112
+ version: '1.20'
113
113
  - !ruby/object:Gem::Dependency
114
- name: parallel
114
+ name: parser
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - "~>"
117
+ - - ">="
118
118
  - !ruby/object:Gem::Version
119
- version: '1.20'
119
+ version: 2.6.5
120
+ - - "<"
121
+ - !ruby/object:Gem::Version
122
+ version: '3.2'
120
123
  type: :runtime
121
124
  prerelease: false
122
125
  version_requirements: !ruby/object:Gem::Requirement
123
126
  requirements:
124
- - - "~>"
127
+ - - ">="
125
128
  - !ruby/object:Gem::Version
126
- version: '1.20'
129
+ version: 2.6.5
130
+ - - "<"
131
+ - !ruby/object:Gem::Version
132
+ version: '3.2'
127
133
  - !ruby/object:Gem::Dependency
128
- name: bcrypt
134
+ name: pg
129
135
  requirement: !ruby/object:Gem::Requirement
130
136
  requirements:
131
137
  - - "~>"
132
138
  - !ruby/object:Gem::Version
133
- version: '3.1'
139
+ version: '1.2'
134
140
  type: :runtime
135
141
  prerelease: false
136
142
  version_requirements: !ruby/object:Gem::Requirement
137
143
  requirements:
138
144
  - - "~>"
139
145
  - !ruby/object:Gem::Version
140
- version: '3.1'
146
+ version: '1.2'
141
147
  - !ruby/object:Gem::Dependency
142
- name: parser
148
+ name: postgresql_cursor
143
149
  requirement: !ruby/object:Gem::Requirement
144
150
  requirements:
145
- - - ">="
146
- - !ruby/object:Gem::Version
147
- version: 2.6.5
148
- - - "<="
151
+ - - "~>"
149
152
  - !ruby/object:Gem::Version
150
- version: '3'
153
+ version: '0.6'
151
154
  type: :runtime
152
155
  prerelease: false
153
156
  version_requirements: !ruby/object:Gem::Requirement
154
157
  requirements:
155
- - - ">="
156
- - !ruby/object:Gem::Version
157
- version: 2.6.5
158
- - - "<="
158
+ - - "~>"
159
159
  - !ruby/object:Gem::Version
160
- version: '3'
160
+ version: '0.6'
161
161
  - !ruby/object:Gem::Dependency
162
- name: i18n
162
+ name: thread_safe
163
163
  requirement: !ruby/object:Gem::Requirement
164
164
  requirements:
165
- - - ">="
165
+ - - "~>"
166
166
  - !ruby/object:Gem::Version
167
- version: '0'
167
+ version: 0.3.6
168
168
  type: :runtime
169
169
  prerelease: false
170
170
  version_requirements: !ruby/object:Gem::Requirement
171
171
  requirements:
172
- - - ">="
172
+ - - "~>"
173
173
  - !ruby/object:Gem::Version
174
- version: '0'
174
+ version: 0.3.6
175
175
  - !ruby/object:Gem::Dependency
176
176
  name: tzinfo
177
177
  requirement: !ruby/object:Gem::Requirement
178
178
  requirements:
179
- - - "<="
179
+ - - "~>"
180
180
  - !ruby/object:Gem::Version
181
- version: 1.2.7
181
+ version: '2.0'
182
182
  type: :runtime
183
183
  prerelease: false
184
184
  version_requirements: !ruby/object:Gem::Requirement
185
185
  requirements:
186
- - - "<="
186
+ - - "~>"
187
187
  - !ruby/object:Gem::Version
188
- version: 1.2.7
188
+ version: '2.0'
189
189
  - !ruby/object:Gem::Dependency
190
- name: rspec
190
+ name: pry
191
191
  requirement: !ruby/object:Gem::Requirement
192
192
  requirements:
193
193
  - - "~>"
194
194
  - !ruby/object:Gem::Version
195
- version: '3.10'
195
+ version: '0.13'
196
196
  type: :development
197
197
  prerelease: false
198
198
  version_requirements: !ruby/object:Gem::Requirement
199
199
  requirements:
200
200
  - - "~>"
201
201
  - !ruby/object:Gem::Version
202
- version: '3.10'
202
+ version: '0.13'
203
203
  - !ruby/object:Gem::Dependency
204
- name: timecop
204
+ name: rake
205
205
  requirement: !ruby/object:Gem::Requirement
206
206
  requirements:
207
207
  - - "~>"
208
208
  - !ruby/object:Gem::Version
209
- version: '0.9'
209
+ version: '13'
210
210
  type: :development
211
211
  prerelease: false
212
212
  version_requirements: !ruby/object:Gem::Requirement
213
213
  requirements:
214
214
  - - "~>"
215
215
  - !ruby/object:Gem::Version
216
- version: '0.9'
216
+ version: '13'
217
217
  - !ruby/object:Gem::Dependency
218
- name: rspec-mocks
218
+ name: rspec
219
219
  requirement: !ruby/object:Gem::Requirement
220
220
  requirements:
221
221
  - - "~>"
@@ -243,33 +243,33 @@ dependencies:
243
243
  - !ruby/object:Gem::Version
244
244
  version: '1.2'
245
245
  - !ruby/object:Gem::Dependency
246
- name: rake
246
+ name: rspec-mocks
247
247
  requirement: !ruby/object:Gem::Requirement
248
248
  requirements:
249
249
  - - "~>"
250
250
  - !ruby/object:Gem::Version
251
- version: '13'
251
+ version: '3.10'
252
252
  type: :development
253
253
  prerelease: false
254
254
  version_requirements: !ruby/object:Gem::Requirement
255
255
  requirements:
256
256
  - - "~>"
257
257
  - !ruby/object:Gem::Version
258
- version: '13'
258
+ version: '3.10'
259
259
  - !ruby/object:Gem::Dependency
260
- name: pry
260
+ name: rubocop
261
261
  requirement: !ruby/object:Gem::Requirement
262
262
  requirements:
263
- - - "~>"
263
+ - - "<"
264
264
  - !ruby/object:Gem::Version
265
- version: '0.13'
265
+ version: '1.21'
266
266
  type: :development
267
267
  prerelease: false
268
268
  version_requirements: !ruby/object:Gem::Requirement
269
269
  requirements:
270
- - - "~>"
270
+ - - "<"
271
271
  - !ruby/object:Gem::Version
272
- version: '0.13'
272
+ version: '1.21'
273
273
  - !ruby/object:Gem::Dependency
274
274
  name: simplecov
275
275
  requirement: !ruby/object:Gem::Requirement
@@ -284,6 +284,20 @@ dependencies:
284
284
  - - "~>"
285
285
  - !ruby/object:Gem::Version
286
286
  version: '0.21'
287
+ - !ruby/object:Gem::Dependency
288
+ name: timecop
289
+ requirement: !ruby/object:Gem::Requirement
290
+ requirements:
291
+ - - "~>"
292
+ - !ruby/object:Gem::Version
293
+ version: '0.9'
294
+ type: :development
295
+ prerelease: false
296
+ version_requirements: !ruby/object:Gem::Requirement
297
+ requirements:
298
+ - - "~>"
299
+ - !ruby/object:Gem::Version
300
+ version: '0.9'
287
301
  description: Sequent is a CQRS and event sourcing framework for Ruby.
288
302
  email:
289
303
  - lars.vonk@gmail.com
@@ -304,6 +318,7 @@ files:
304
318
  - lib/sequent/configuration.rb
305
319
  - lib/sequent/core/aggregate_repository.rb
306
320
  - lib/sequent/core/aggregate_root.rb
321
+ - lib/sequent/core/aggregate_roots.rb
307
322
  - lib/sequent/core/aggregate_snapshotter.rb
308
323
  - lib/sequent/core/base_command_handler.rb
309
324
  - lib/sequent/core/command.rb
@@ -347,6 +362,7 @@ files:
347
362
  - lib/sequent/core/stream_record.rb
348
363
  - lib/sequent/core/transactions/active_record_transaction_provider.rb
349
364
  - lib/sequent/core/transactions/no_transactions.rb
365
+ - lib/sequent/core/transactions/read_only_active_record_transaction_provider.rb
350
366
  - lib/sequent/core/transactions/transactions.rb
351
367
  - lib/sequent/core/value_object.rb
352
368
  - lib/sequent/core/workflow.rb
@@ -378,6 +394,7 @@ files:
378
394
  - lib/sequent/generator/template_project/lib/post/post.rb
379
395
  - lib/sequent/generator/template_project/lib/post/post_command_handler.rb
380
396
  - lib/sequent/generator/template_project/my_app.rb
397
+ - lib/sequent/generator/template_project/ruby-version
381
398
  - lib/sequent/generator/template_project/spec/app/projectors/post_projector_spec.rb
382
399
  - lib/sequent/generator/template_project/spec/lib/post/post_command_handler_spec.rb
383
400
  - lib/sequent/generator/template_project/spec/spec_helper.rb
@@ -426,7 +443,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
426
443
  - !ruby/object:Gem::Version
427
444
  version: '0'
428
445
  requirements: []
429
- rubygems_version: 3.2.3
446
+ rubygems_version: 3.3.7
430
447
  signing_key:
431
448
  specification_version: 4
432
449
  summary: Event sourcing framework for Ruby