rails_event_store 1.1.1 → 2.0.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.
@@ -0,0 +1,14 @@
1
+ source 'https://rubygems.org'
2
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
+ gemspec
4
+
5
+ eval_gemfile '../support/bundler/Gemfile.shared'
6
+
7
+ gem 'ruby_event_store', path: '../ruby_event_store'
8
+ gem 'ruby_event_store-browser', path: '../ruby_event_store-browser'
9
+ gem 'rails_event_store_active_record', path: '../rails_event_store_active_record'
10
+ gem 'aggregate_root', path: '../aggregate_root'
11
+ gem 'sidekiq'
12
+ gem 'rack-test'
13
+ gem 'rails', '6.0.3.4'
14
+ gem 'sqlite3', '1.4.2'
@@ -0,0 +1,283 @@
1
+ PATH
2
+ remote: ../aggregate_root
3
+ specs:
4
+ aggregate_root (2.0.0)
5
+ ruby_event_store (= 2.0.0)
6
+
7
+ PATH
8
+ remote: ../rails_event_store_active_record
9
+ specs:
10
+ rails_event_store_active_record (2.0.0)
11
+ activemodel (>= 3.0)
12
+ activerecord-import (>= 1.0.2)
13
+ activesupport (>= 3.0)
14
+ ruby_event_store (= 2.0.0)
15
+
16
+ PATH
17
+ remote: ../ruby_event_store-browser
18
+ specs:
19
+ ruby_event_store-browser (2.0.0)
20
+ ruby_event_store (= 2.0.0)
21
+ sinatra
22
+
23
+ PATH
24
+ remote: ../ruby_event_store
25
+ specs:
26
+ ruby_event_store (2.0.0)
27
+ concurrent-ruby (~> 1.0, >= 1.1.6)
28
+
29
+ PATH
30
+ remote: .
31
+ specs:
32
+ rails_event_store (2.0.0)
33
+ activejob (>= 3.0)
34
+ activemodel (>= 3.0)
35
+ activesupport (>= 3.0)
36
+ aggregate_root (= 2.0.0)
37
+ arkency-command_bus (>= 0.4)
38
+ rails_event_store_active_record (= 2.0.0)
39
+ ruby_event_store (= 2.0.0)
40
+ ruby_event_store-browser (= 2.0.0)
41
+
42
+ GEM
43
+ remote: https://rubygems.org/
44
+ remote: https://oss:7AXfeZdAfCqL1PvHm2nvDJO6Zd9UW8IK@gem.mutant.dev/
45
+ specs:
46
+ abstract_type (0.0.7)
47
+ actioncable (6.0.3.4)
48
+ actionpack (= 6.0.3.4)
49
+ nio4r (~> 2.0)
50
+ websocket-driver (>= 0.6.1)
51
+ actionmailbox (6.0.3.4)
52
+ actionpack (= 6.0.3.4)
53
+ activejob (= 6.0.3.4)
54
+ activerecord (= 6.0.3.4)
55
+ activestorage (= 6.0.3.4)
56
+ activesupport (= 6.0.3.4)
57
+ mail (>= 2.7.1)
58
+ actionmailer (6.0.3.4)
59
+ actionpack (= 6.0.3.4)
60
+ actionview (= 6.0.3.4)
61
+ activejob (= 6.0.3.4)
62
+ mail (~> 2.5, >= 2.5.4)
63
+ rails-dom-testing (~> 2.0)
64
+ actionpack (6.0.3.4)
65
+ actionview (= 6.0.3.4)
66
+ activesupport (= 6.0.3.4)
67
+ rack (~> 2.0, >= 2.0.8)
68
+ rack-test (>= 0.6.3)
69
+ rails-dom-testing (~> 2.0)
70
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
71
+ actiontext (6.0.3.4)
72
+ actionpack (= 6.0.3.4)
73
+ activerecord (= 6.0.3.4)
74
+ activestorage (= 6.0.3.4)
75
+ activesupport (= 6.0.3.4)
76
+ nokogiri (>= 1.8.5)
77
+ actionview (6.0.3.4)
78
+ activesupport (= 6.0.3.4)
79
+ builder (~> 3.1)
80
+ erubi (~> 1.4)
81
+ rails-dom-testing (~> 2.0)
82
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
83
+ activejob (6.0.3.4)
84
+ activesupport (= 6.0.3.4)
85
+ globalid (>= 0.3.6)
86
+ activemodel (6.0.3.4)
87
+ activesupport (= 6.0.3.4)
88
+ activerecord (6.0.3.4)
89
+ activemodel (= 6.0.3.4)
90
+ activesupport (= 6.0.3.4)
91
+ activerecord-import (1.0.7)
92
+ activerecord (>= 3.2)
93
+ activestorage (6.0.3.4)
94
+ actionpack (= 6.0.3.4)
95
+ activejob (= 6.0.3.4)
96
+ activerecord (= 6.0.3.4)
97
+ marcel (~> 0.3.1)
98
+ activesupport (6.0.3.4)
99
+ concurrent-ruby (~> 1.0, >= 1.0.2)
100
+ i18n (>= 0.7, < 2)
101
+ minitest (~> 5.1)
102
+ tzinfo (~> 1.1)
103
+ zeitwerk (~> 2.2, >= 2.2.2)
104
+ adamantium (0.2.0)
105
+ ice_nine (~> 0.11.0)
106
+ memoizable (~> 0.4.0)
107
+ anima (0.3.2)
108
+ abstract_type (~> 0.0.7)
109
+ adamantium (~> 0.2)
110
+ equalizer (~> 0.0.11)
111
+ arkency-command_bus (0.4.0)
112
+ thread_safe
113
+ ast (2.4.1)
114
+ builder (3.2.4)
115
+ concord (0.1.6)
116
+ adamantium (~> 0.2.0)
117
+ equalizer (~> 0.0.9)
118
+ concurrent-ruby (1.1.7)
119
+ connection_pool (2.2.3)
120
+ crass (1.0.6)
121
+ diff-lcs (1.4.4)
122
+ equalizer (0.0.11)
123
+ erubi (1.10.0)
124
+ globalid (0.4.2)
125
+ activesupport (>= 4.2.0)
126
+ i18n (1.8.5)
127
+ concurrent-ruby (~> 1.0)
128
+ ice_nine (0.11.2)
129
+ loofah (2.8.0)
130
+ crass (~> 1.0.2)
131
+ nokogiri (>= 1.5.9)
132
+ mail (2.7.1)
133
+ mini_mime (>= 0.1.1)
134
+ marcel (0.3.3)
135
+ mimemagic (~> 0.3.2)
136
+ memoizable (0.4.2)
137
+ thread_safe (~> 0.3, >= 0.3.1)
138
+ method_source (1.0.0)
139
+ mimemagic (0.3.5)
140
+ mini_mime (1.0.2)
141
+ mini_portile2 (2.4.0)
142
+ minitest (5.14.2)
143
+ mprelude (0.1.0)
144
+ abstract_type (~> 0.0.7)
145
+ adamantium (~> 0.2.0)
146
+ concord (~> 0.1.5)
147
+ equalizer (~> 0.0.9)
148
+ ice_nine (~> 0.11.1)
149
+ procto (~> 0.0.2)
150
+ mustermann (1.1.1)
151
+ ruby2_keywords (~> 0.0.1)
152
+ mutant (0.10.22)
153
+ abstract_type (~> 0.0.7)
154
+ adamantium (~> 0.2.0)
155
+ anima (~> 0.3.1)
156
+ ast (~> 2.2)
157
+ concord (~> 0.1.5)
158
+ diff-lcs (~> 1.3)
159
+ equalizer (~> 0.0.9)
160
+ ice_nine (~> 0.11.1)
161
+ memoizable (~> 0.4.2)
162
+ mprelude (~> 0.1.0)
163
+ parser (~> 3.0.0)
164
+ procto (~> 0.0.2)
165
+ unparser (~> 0.5.6)
166
+ variable (~> 0.0.1)
167
+ mutant-license (0.1.1.2.1627430819213747598431630701693729869473.0)
168
+ mutant-rspec (0.10.22)
169
+ mutant (= 0.10.22)
170
+ rspec-core (>= 3.8.0, < 4.0.0)
171
+ nio4r (2.5.4)
172
+ nokogiri (1.10.10)
173
+ mini_portile2 (~> 2.4.0)
174
+ parser (3.0.0.0)
175
+ ast (~> 2.4.1)
176
+ procto (0.0.3)
177
+ rack (2.2.3)
178
+ rack-protection (2.1.0)
179
+ rack
180
+ rack-test (1.1.0)
181
+ rack (>= 1.0, < 3)
182
+ rails (6.0.3.4)
183
+ actioncable (= 6.0.3.4)
184
+ actionmailbox (= 6.0.3.4)
185
+ actionmailer (= 6.0.3.4)
186
+ actionpack (= 6.0.3.4)
187
+ actiontext (= 6.0.3.4)
188
+ actionview (= 6.0.3.4)
189
+ activejob (= 6.0.3.4)
190
+ activemodel (= 6.0.3.4)
191
+ activerecord (= 6.0.3.4)
192
+ activestorage (= 6.0.3.4)
193
+ activesupport (= 6.0.3.4)
194
+ bundler (>= 1.3.0)
195
+ railties (= 6.0.3.4)
196
+ sprockets-rails (>= 2.0.0)
197
+ rails-dom-testing (2.0.3)
198
+ activesupport (>= 4.2.0)
199
+ nokogiri (>= 1.6)
200
+ rails-html-sanitizer (1.3.0)
201
+ loofah (~> 2.3)
202
+ railties (6.0.3.4)
203
+ actionpack (= 6.0.3.4)
204
+ activesupport (= 6.0.3.4)
205
+ method_source
206
+ rake (>= 0.8.7)
207
+ thor (>= 0.20.3, < 2.0)
208
+ rake (13.0.3)
209
+ redis (4.2.5)
210
+ rspec (3.10.0)
211
+ rspec-core (~> 3.10.0)
212
+ rspec-expectations (~> 3.10.0)
213
+ rspec-mocks (~> 3.10.0)
214
+ rspec-core (3.10.1)
215
+ rspec-support (~> 3.10.0)
216
+ rspec-expectations (3.10.1)
217
+ diff-lcs (>= 1.2.0, < 2.0)
218
+ rspec-support (~> 3.10.0)
219
+ rspec-mocks (3.10.1)
220
+ diff-lcs (>= 1.2.0, < 2.0)
221
+ rspec-support (~> 3.10.0)
222
+ rspec-support (3.10.1)
223
+ ruby2_keywords (0.0.2)
224
+ sidekiq (6.1.2)
225
+ connection_pool (>= 2.2.2)
226
+ rack (~> 2.0)
227
+ redis (>= 4.2.0)
228
+ sinatra (2.1.0)
229
+ mustermann (~> 1.0)
230
+ rack (~> 2.2)
231
+ rack-protection (= 2.1.0)
232
+ tilt (~> 2.0)
233
+ sprockets (4.0.2)
234
+ concurrent-ruby (~> 1.0)
235
+ rack (> 1, < 3)
236
+ sprockets-rails (3.2.2)
237
+ actionpack (>= 4.0)
238
+ activesupport (>= 4.0)
239
+ sprockets (>= 3.0.0)
240
+ sqlite3 (1.4.2)
241
+ thor (1.0.1)
242
+ thread_safe (0.3.6)
243
+ tilt (2.0.10)
244
+ tzinfo (1.2.9)
245
+ thread_safe (~> 0.1)
246
+ unparser (0.5.6)
247
+ abstract_type (~> 0.0.7)
248
+ adamantium (~> 0.2.0)
249
+ anima (~> 0.3.1)
250
+ concord (~> 0.1.5)
251
+ diff-lcs (~> 1.3)
252
+ equalizer (~> 0.0.9)
253
+ mprelude (~> 0.1.0)
254
+ parser (>= 3.0.0)
255
+ procto (~> 0.0.2)
256
+ variable (0.0.1)
257
+ equalizer (~> 0.0.11)
258
+ websocket-driver (0.7.3)
259
+ websocket-extensions (>= 0.1.0)
260
+ websocket-extensions (0.1.5)
261
+ zeitwerk (2.4.2)
262
+
263
+ PLATFORMS
264
+ ruby
265
+
266
+ DEPENDENCIES
267
+ aggregate_root!
268
+ mutant (~> 0.10.21)
269
+ mutant-license!
270
+ mutant-rspec (~> 0.10.21)
271
+ rack-test
272
+ rails (= 6.0.3.4)
273
+ rails_event_store!
274
+ rails_event_store_active_record!
275
+ rake (>= 10.0)
276
+ rspec (~> 3.6)
277
+ ruby_event_store!
278
+ ruby_event_store-browser!
279
+ sidekiq
280
+ sqlite3 (= 1.4.2)
281
+
282
+ BUNDLED WITH
283
+ 2.1.4
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators'
4
+
5
+ module RailsEventStore
6
+ module Generators
7
+ class BoundedContextGenerator < Rails::Generators::NamedBase
8
+ source_root File.expand_path(File.join(File.dirname(__FILE__), '../templates'))
9
+ hook_for :test_framework
10
+
11
+ def create_bounded_context
12
+ create_file "#{bounded_context_name}/lib/#{bounded_context_name}/.keep"
13
+
14
+ template "module.rb", "#{bounded_context_name}/lib/#{bounded_context_name}.rb"
15
+
16
+ application do
17
+ "config.paths.add '#{bounded_context_name}/lib', eager_load: true"
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ def bounded_context_namespace
24
+ name.camelize
25
+ end
26
+
27
+ def bounded_context_name
28
+ name.underscore
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators'
4
+
5
+ module RailsEventStore
6
+ module Generators
7
+ class RspecGenerator < Rails::Generators::NamedBase
8
+ source_root File.expand_path(File.join(File.dirname(__FILE__), '../templates'))
9
+
10
+ def spec_helper
11
+ template "spec_helper.rb", "#{bounded_context_name}/spec/spec_helper.rb"
12
+ end
13
+
14
+ def bc_spec
15
+ template "bc_spec.rb", "#{bounded_context_name}/spec/#{bounded_context_name}_spec.rb"
16
+ end
17
+
18
+ def require_bc_spec
19
+ template "require_bc_spec.rb", "spec/#{bounded_context_name}_spec.rb"
20
+ end
21
+
22
+ private
23
+
24
+ def bounded_context_namespace
25
+ name.camelize
26
+ end
27
+
28
+ def bounded_context_name
29
+ name.underscore
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators'
4
+
5
+ module RailsEventStore
6
+ module Generators
7
+ class TestUnitGenerator < Rails::Generators::NamedBase
8
+ source_root File.expand_path(File.join(File.dirname(__FILE__), '../templates'))
9
+
10
+ def test_helper
11
+ template "test_helper.rb", "#{bounded_context_name}/test/test_helper.rb"
12
+ end
13
+
14
+ private
15
+
16
+ def bounded_context_name
17
+ name.underscore
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,4 @@
1
+ require_relative 'spec_helper'
2
+
3
+ RSpec.describe <%= bounded_context_namespace %> do
4
+ end
@@ -0,0 +1,2 @@
1
+ module <%= bounded_context_namespace %>
2
+ end
@@ -0,0 +1,6 @@
1
+ require 'rails_helper'
2
+
3
+ path = Rails.root.join('<%= bounded_context_name %>/spec')
4
+ Dir.glob("#{path}/**/*_spec.rb") do |file|
5
+ require file
6
+ end
@@ -0,0 +1,7 @@
1
+ ENV['RAILS_ENV'] = 'test'
2
+
3
+ $LOAD_PATH.push File.expand_path('../../../spec', __FILE__)
4
+ require File.expand_path('../../../config/environment', __FILE__)
5
+ require File.expand_path('../../../spec/rails_helper', __FILE__)
6
+
7
+ require_relative '../lib/<%= bounded_context_name %>'
@@ -0,0 +1 @@
1
+ require_relative '../lib/<%= bounded_context_name %>'
@@ -4,12 +4,19 @@ require 'active_job'
4
4
 
5
5
  module RailsEventStore
6
6
  class ActiveJobScheduler
7
- def call(klass, serialized_event)
8
- klass.perform_later(serialized_event.to_h)
7
+ def initialize(serializer:)
8
+ @serializer = serializer
9
+ end
10
+
11
+ def call(klass, record)
12
+ klass.perform_later(record.serialize(serializer).to_h)
9
13
  end
10
14
 
11
15
  def verify(subscriber)
12
16
  Class === subscriber && !!(subscriber < ActiveJob::Base)
13
17
  end
18
+
19
+ private
20
+ attr_reader :serializer
14
21
  end
15
22
  end
@@ -6,9 +6,9 @@ module RailsEventStore
6
6
  @scheduler = scheduler
7
7
  end
8
8
 
9
- def call(subscriber, _, serialized_event)
9
+ def call(subscriber, _, record)
10
10
  run do
11
- @scheduler.call(subscriber, serialized_event)
11
+ @scheduler.call(subscriber, record)
12
12
  end
13
13
  end
14
14