sequent 4.0.0 → 4.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 (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