eventsimple 1.5.6 → 1.7.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.
- checksums.yaml +4 -4
- data/.rubocop.yml +82 -5
- data/.ruby-version +1 -1
- data/CHANGELOG.md +12 -0
- data/Gemfile.lock +172 -167
- data/Guardfile +2 -0
- data/README.md +0 -3
- data/app/controllers/eventsimple/application_controller.rb +2 -0
- data/app/controllers/eventsimple/entities_controller.rb +4 -4
- data/app/controllers/eventsimple/home_controller.rb +2 -0
- data/app/controllers/eventsimple/models_controller.rb +4 -1
- data/catalog-info.yaml +1 -0
- data/config/routes.rb +2 -0
- data/eventsimple.gemspec +7 -2
- data/lib/eventsimple/active_job/arguments.rb +3 -1
- data/lib/eventsimple/configuration.rb +2 -5
- data/lib/eventsimple/dispatcher.rb +2 -0
- data/lib/eventsimple/engine.rb +2 -0
- data/lib/eventsimple/entity.rb +15 -8
- data/lib/eventsimple/event.rb +12 -10
- data/lib/eventsimple/invalid_transition.rb +2 -0
- data/lib/eventsimple/outbox/consumer.rb +2 -2
- data/lib/eventsimple/reactor.rb +1 -1
- data/lib/eventsimple/version.rb +1 -1
- metadata +86 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c0e02b9b7b00100a888407cfd7dfb4422f468fb2ee7807d0a174996be66d12d
|
4
|
+
data.tar.gz: 89f100e610caeff2b34d2a0a67b934e701845548007bacbef0d814f221f7c7bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2cd191a5940f13eaa79cd75b2cf4285a52f34e35b5b463ac568ceebca6c2f2c804b99c329bb622c4dd8e368a6a7bfe671cd248f4a62493aa59a81de11b9f4cc
|
7
|
+
data.tar.gz: 80a78a2b932b5c3784432bf66a731f169ac70f161bc1330d63d70ad642cc005eea3f8fc640416121a7bb8f21f1de65cf68062686843ac39ff3dc0898c1200a49
|
data/.rubocop.yml
CHANGED
@@ -1,18 +1,95 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
-
|
1
|
+
inherit_mode:
|
2
|
+
merge:
|
3
|
+
- Exclude
|
4
|
+
|
5
|
+
plugins:
|
6
|
+
- rubocop-performance
|
7
|
+
- rubocop-rails
|
8
|
+
- rubocop-rspec
|
9
|
+
- rubocop-rspec_rails
|
10
|
+
- rubocop-factory_bot
|
4
11
|
|
5
12
|
AllCops:
|
13
|
+
NewCops: disable
|
6
14
|
Exclude:
|
7
15
|
- "spec/dummy/bin/**/*"
|
8
16
|
- "spec/dummy/db/migrate/**/*"
|
9
17
|
- "spec/dummy/db/schema.rb"
|
10
18
|
- "spec/dummy/log/**/*"
|
11
19
|
- "spec/dummy/tmp/**/*"
|
12
|
-
|
20
|
+
|
21
|
+
Layout/ArgumentAlignment:
|
22
|
+
Enabled: true
|
23
|
+
EnforcedStyle: with_fixed_indentation
|
24
|
+
|
25
|
+
Layout/DotPosition:
|
26
|
+
EnforcedStyle: trailing
|
27
|
+
|
28
|
+
Layout/LineLength:
|
29
|
+
Enabled: false
|
30
|
+
|
31
|
+
Metrics/AbcSize:
|
32
|
+
Enabled: false
|
33
|
+
|
34
|
+
Metrics/CyclomaticComplexity:
|
35
|
+
Enabled: false
|
36
|
+
|
37
|
+
Metrics/MethodLength:
|
38
|
+
Enabled: false
|
39
|
+
|
40
|
+
Metrics/ModuleLength:
|
41
|
+
Enabled: false
|
42
|
+
|
43
|
+
Metrics/PerceivedComplexity:
|
44
|
+
Enabled: false
|
13
45
|
|
14
46
|
Rails/SkipsModelValidations:
|
15
47
|
Enabled: false
|
16
48
|
|
17
|
-
|
49
|
+
RSpec/AnyInstance:
|
50
|
+
Enabled: false
|
51
|
+
|
52
|
+
RSpec/ExampleLength:
|
53
|
+
Enabled: false
|
54
|
+
|
55
|
+
RSpec/IndexedLet:
|
56
|
+
Enabled: false
|
57
|
+
|
58
|
+
RSpec/LetSetup:
|
18
59
|
Enabled: false
|
60
|
+
|
61
|
+
RSpec/MessageSpies:
|
62
|
+
Enabled: false
|
63
|
+
|
64
|
+
RSpec/MultipleMemoizedHelpers:
|
65
|
+
Enabled: false
|
66
|
+
|
67
|
+
RSpec/MultipleExpectations:
|
68
|
+
Enabled: false
|
69
|
+
|
70
|
+
RSpec/NamedSubject:
|
71
|
+
Enabled: false
|
72
|
+
|
73
|
+
RSpec/NestedGroups:
|
74
|
+
Enabled: false
|
75
|
+
|
76
|
+
Style/BlockDelimiters:
|
77
|
+
Enabled: false
|
78
|
+
|
79
|
+
Style/Documentation:
|
80
|
+
Enabled: false
|
81
|
+
|
82
|
+
Style/IfUnlessModifier:
|
83
|
+
Enabled: false
|
84
|
+
|
85
|
+
Style/StringLiterals:
|
86
|
+
Enabled: false
|
87
|
+
|
88
|
+
Style/TrailingCommaInArguments:
|
89
|
+
EnforcedStyleForMultiline: comma
|
90
|
+
|
91
|
+
Style/TrailingCommaInArrayLiteral:
|
92
|
+
EnforcedStyleForMultiline: comma
|
93
|
+
|
94
|
+
Style/TrailingCommaInHashLiteral:
|
95
|
+
EnforcedStyleForMultiline: comma
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.4.4
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
6
6
|
|
7
7
|
## Unreleased
|
8
8
|
|
9
|
+
## 1.7.0 - 2025-06-27
|
10
|
+
### Changed
|
11
|
+
- Verify optimistic locking column exists
|
12
|
+
|
13
|
+
## 1.6.0 - 2025-06-27
|
14
|
+
### Changed
|
15
|
+
- Remove ws-style as we no longer publish it to rubygems
|
16
|
+
|
17
|
+
## 1.5.7 - 2025-04-04
|
18
|
+
### Changed
|
19
|
+
- Initializiation error on db:schema:load is fixed
|
20
|
+
|
9
21
|
## 1.5.6 - 2025-01-02
|
10
22
|
### Changed
|
11
23
|
- inheritance column setter needs to be a string
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
eventsimple (1.
|
4
|
+
eventsimple (1.7.0)
|
5
5
|
concurrent-ruby (>= 1.2.3)
|
6
6
|
dry-struct (~> 1.6)
|
7
7
|
dry-types (~> 1.7)
|
@@ -13,29 +13,29 @@ PATH
|
|
13
13
|
GEM
|
14
14
|
remote: https://rubygems.org/
|
15
15
|
specs:
|
16
|
-
actioncable (8.0.
|
17
|
-
actionpack (= 8.0.
|
18
|
-
activesupport (= 8.0.
|
16
|
+
actioncable (8.0.2)
|
17
|
+
actionpack (= 8.0.2)
|
18
|
+
activesupport (= 8.0.2)
|
19
19
|
nio4r (~> 2.0)
|
20
20
|
websocket-driver (>= 0.6.1)
|
21
21
|
zeitwerk (~> 2.6)
|
22
|
-
actionmailbox (8.0.
|
23
|
-
actionpack (= 8.0.
|
24
|
-
activejob (= 8.0.
|
25
|
-
activerecord (= 8.0.
|
26
|
-
activestorage (= 8.0.
|
27
|
-
activesupport (= 8.0.
|
22
|
+
actionmailbox (8.0.2)
|
23
|
+
actionpack (= 8.0.2)
|
24
|
+
activejob (= 8.0.2)
|
25
|
+
activerecord (= 8.0.2)
|
26
|
+
activestorage (= 8.0.2)
|
27
|
+
activesupport (= 8.0.2)
|
28
28
|
mail (>= 2.8.0)
|
29
|
-
actionmailer (8.0.
|
30
|
-
actionpack (= 8.0.
|
31
|
-
actionview (= 8.0.
|
32
|
-
activejob (= 8.0.
|
33
|
-
activesupport (= 8.0.
|
29
|
+
actionmailer (8.0.2)
|
30
|
+
actionpack (= 8.0.2)
|
31
|
+
actionview (= 8.0.2)
|
32
|
+
activejob (= 8.0.2)
|
33
|
+
activesupport (= 8.0.2)
|
34
34
|
mail (>= 2.8.0)
|
35
35
|
rails-dom-testing (~> 2.2)
|
36
|
-
actionpack (8.0.
|
37
|
-
actionview (= 8.0.
|
38
|
-
activesupport (= 8.0.
|
36
|
+
actionpack (8.0.2)
|
37
|
+
actionview (= 8.0.2)
|
38
|
+
activesupport (= 8.0.2)
|
39
39
|
nokogiri (>= 1.8.5)
|
40
40
|
rack (>= 2.2.4)
|
41
41
|
rack-session (>= 1.0.1)
|
@@ -43,35 +43,35 @@ GEM
|
|
43
43
|
rails-dom-testing (~> 2.2)
|
44
44
|
rails-html-sanitizer (~> 1.6)
|
45
45
|
useragent (~> 0.16)
|
46
|
-
actiontext (8.0.
|
47
|
-
actionpack (= 8.0.
|
48
|
-
activerecord (= 8.0.
|
49
|
-
activestorage (= 8.0.
|
50
|
-
activesupport (= 8.0.
|
46
|
+
actiontext (8.0.2)
|
47
|
+
actionpack (= 8.0.2)
|
48
|
+
activerecord (= 8.0.2)
|
49
|
+
activestorage (= 8.0.2)
|
50
|
+
activesupport (= 8.0.2)
|
51
51
|
globalid (>= 0.6.0)
|
52
52
|
nokogiri (>= 1.8.5)
|
53
|
-
actionview (8.0.
|
54
|
-
activesupport (= 8.0.
|
53
|
+
actionview (8.0.2)
|
54
|
+
activesupport (= 8.0.2)
|
55
55
|
builder (~> 3.1)
|
56
56
|
erubi (~> 1.11)
|
57
57
|
rails-dom-testing (~> 2.2)
|
58
58
|
rails-html-sanitizer (~> 1.6)
|
59
|
-
activejob (8.0.
|
60
|
-
activesupport (= 8.0.
|
59
|
+
activejob (8.0.2)
|
60
|
+
activesupport (= 8.0.2)
|
61
61
|
globalid (>= 0.3.6)
|
62
|
-
activemodel (8.0.
|
63
|
-
activesupport (= 8.0.
|
64
|
-
activerecord (8.0.
|
65
|
-
activemodel (= 8.0.
|
66
|
-
activesupport (= 8.0.
|
62
|
+
activemodel (8.0.2)
|
63
|
+
activesupport (= 8.0.2)
|
64
|
+
activerecord (8.0.2)
|
65
|
+
activemodel (= 8.0.2)
|
66
|
+
activesupport (= 8.0.2)
|
67
67
|
timeout (>= 0.4.0)
|
68
|
-
activestorage (8.0.
|
69
|
-
actionpack (= 8.0.
|
70
|
-
activejob (= 8.0.
|
71
|
-
activerecord (= 8.0.
|
72
|
-
activesupport (= 8.0.
|
68
|
+
activestorage (8.0.2)
|
69
|
+
actionpack (= 8.0.2)
|
70
|
+
activejob (= 8.0.2)
|
71
|
+
activerecord (= 8.0.2)
|
72
|
+
activesupport (= 8.0.2)
|
73
73
|
marcel (~> 1.0)
|
74
|
-
activesupport (8.0.
|
74
|
+
activesupport (8.0.2)
|
75
75
|
base64
|
76
76
|
benchmark (>= 0.3)
|
77
77
|
bigdecimal
|
@@ -86,10 +86,10 @@ GEM
|
|
86
86
|
uri (>= 0.13.1)
|
87
87
|
addressable (2.8.7)
|
88
88
|
public_suffix (>= 2.0.2, < 7.0)
|
89
|
-
ast (2.4.
|
90
|
-
base64 (0.
|
91
|
-
benchmark (0.4.
|
92
|
-
bigdecimal (3.
|
89
|
+
ast (2.4.3)
|
90
|
+
base64 (0.3.0)
|
91
|
+
benchmark (0.4.1)
|
92
|
+
bigdecimal (3.2.2)
|
93
93
|
builder (3.3.0)
|
94
94
|
bundle-audit (0.1.0)
|
95
95
|
bundler-audit
|
@@ -97,58 +97,62 @@ GEM
|
|
97
97
|
bundler (>= 1.2.0, < 3)
|
98
98
|
thor (~> 1.0)
|
99
99
|
coderay (1.1.3)
|
100
|
-
concurrent-ruby (1.3.
|
101
|
-
connection_pool (2.
|
100
|
+
concurrent-ruby (1.3.5)
|
101
|
+
connection_pool (2.5.3)
|
102
102
|
crass (1.0.6)
|
103
103
|
date (3.4.1)
|
104
|
-
diff-lcs (1.
|
105
|
-
drb (2.2.
|
106
|
-
dry-core (1.0
|
104
|
+
diff-lcs (1.6.2)
|
105
|
+
drb (2.2.3)
|
106
|
+
dry-core (1.1.0)
|
107
107
|
concurrent-ruby (~> 1.0)
|
108
108
|
logger
|
109
109
|
zeitwerk (~> 2.6)
|
110
|
-
dry-inflector (1.
|
111
|
-
dry-logic (1.
|
110
|
+
dry-inflector (1.2.0)
|
111
|
+
dry-logic (1.6.0)
|
112
|
+
bigdecimal
|
112
113
|
concurrent-ruby (~> 1.0)
|
113
|
-
dry-core (~> 1.
|
114
|
+
dry-core (~> 1.1)
|
114
115
|
zeitwerk (~> 2.6)
|
115
|
-
dry-struct (1.
|
116
|
-
dry-core (~> 1.
|
117
|
-
dry-types (
|
116
|
+
dry-struct (1.8.0)
|
117
|
+
dry-core (~> 1.1)
|
118
|
+
dry-types (~> 1.8, >= 1.8.2)
|
118
119
|
ice_nine (~> 0.11)
|
119
120
|
zeitwerk (~> 2.6)
|
120
|
-
dry-types (1.
|
121
|
+
dry-types (1.8.3)
|
121
122
|
bigdecimal (~> 3.0)
|
122
123
|
concurrent-ruby (~> 1.0)
|
123
124
|
dry-core (~> 1.0)
|
124
125
|
dry-inflector (~> 1.0)
|
125
126
|
dry-logic (~> 1.4)
|
126
127
|
zeitwerk (~> 2.6)
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
128
|
+
erb (5.0.1)
|
129
|
+
erubi (1.13.1)
|
130
|
+
factory_bot (6.5.4)
|
131
|
+
activesupport (>= 6.1.0)
|
132
|
+
factory_bot_rails (6.5.0)
|
131
133
|
factory_bot (~> 6.5)
|
132
|
-
railties (>=
|
133
|
-
ffi (1.17.
|
134
|
-
ffi (1.17.
|
134
|
+
railties (>= 6.1.0)
|
135
|
+
ffi (1.17.2-arm64-darwin)
|
136
|
+
ffi (1.17.2-x86_64-linux-gnu)
|
135
137
|
formatador (1.1.0)
|
136
138
|
fuubar (2.5.1)
|
137
139
|
rspec-core (~> 3.0)
|
138
140
|
ruby-progressbar (~> 1.4)
|
139
|
-
git (
|
141
|
+
git (3.1.0)
|
140
142
|
activesupport (>= 5.0)
|
141
143
|
addressable (~> 2.8)
|
142
|
-
process_executer (~> 1.
|
143
|
-
rchardet (~> 1.
|
144
|
+
process_executer (~> 1.3)
|
145
|
+
rchardet (~> 1.9)
|
144
146
|
globalid (1.2.1)
|
145
147
|
activesupport (>= 6.1)
|
146
|
-
guard (2.19.
|
148
|
+
guard (2.19.1)
|
147
149
|
formatador (>= 0.2.4)
|
148
150
|
listen (>= 2.7, < 4.0)
|
151
|
+
logger (~> 1.6)
|
149
152
|
lumberjack (>= 1.0.12, < 2.0)
|
150
153
|
nenv (~> 0.1)
|
151
154
|
notiffany (~> 0.0)
|
155
|
+
ostruct (~> 0.6)
|
152
156
|
pry (>= 0.13.0)
|
153
157
|
shellany (~> 0.0)
|
154
158
|
thor (>= 0.18.1)
|
@@ -157,21 +161,22 @@ GEM
|
|
157
161
|
guard (~> 2.1)
|
158
162
|
guard-compat (~> 1.1)
|
159
163
|
rspec (>= 2.99.0, < 4.0)
|
160
|
-
i18n (1.14.
|
164
|
+
i18n (1.14.7)
|
161
165
|
concurrent-ruby (~> 1.0)
|
162
166
|
ice_nine (0.11.2)
|
163
167
|
io-console (0.8.0)
|
164
|
-
irb (1.
|
168
|
+
irb (1.15.2)
|
169
|
+
pp (>= 0.6.0)
|
165
170
|
rdoc (>= 4.0.0)
|
166
171
|
reline (>= 0.4.2)
|
167
|
-
json (2.
|
168
|
-
language_server-protocol (3.17.0.
|
172
|
+
json (2.12.2)
|
173
|
+
language_server-protocol (3.17.0.5)
|
169
174
|
lint_roller (1.1.0)
|
170
175
|
listen (3.9.0)
|
171
176
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
172
177
|
rb-inotify (~> 0.9, >= 0.9.10)
|
173
|
-
logger (1.
|
174
|
-
loofah (2.
|
178
|
+
logger (1.7.0)
|
179
|
+
loofah (2.24.1)
|
175
180
|
crass (~> 1.0.2)
|
176
181
|
nokogiri (>= 1.12.0)
|
177
182
|
lumberjack (1.2.10)
|
@@ -183,187 +188,182 @@ GEM
|
|
183
188
|
marcel (1.0.4)
|
184
189
|
method_source (1.1.0)
|
185
190
|
mini_mime (1.1.5)
|
186
|
-
minitest (5.25.
|
191
|
+
minitest (5.25.5)
|
187
192
|
nenv (0.3.0)
|
188
|
-
net-imap (0.5.
|
193
|
+
net-imap (0.5.9)
|
189
194
|
date
|
190
195
|
net-protocol
|
191
196
|
net-pop (0.1.2)
|
192
197
|
net-protocol
|
193
198
|
net-protocol (0.2.2)
|
194
199
|
timeout
|
195
|
-
net-smtp (0.5.
|
200
|
+
net-smtp (0.5.1)
|
196
201
|
net-protocol
|
197
202
|
nio4r (2.7.4)
|
198
|
-
nokogiri (1.
|
203
|
+
nokogiri (1.18.8-arm64-darwin)
|
199
204
|
racc (~> 1.4)
|
200
|
-
nokogiri (1.
|
205
|
+
nokogiri (1.18.8-x86_64-linux-gnu)
|
201
206
|
racc (~> 1.4)
|
202
207
|
notiffany (0.1.3)
|
203
208
|
nenv (~> 0.1)
|
204
209
|
shellany (~> 0.0)
|
205
|
-
|
210
|
+
ostruct (0.6.2)
|
211
|
+
parallel (1.27.0)
|
206
212
|
parse_a_changelog (1.3.3)
|
207
213
|
treetop (~> 1.6)
|
208
|
-
parser (3.3.
|
214
|
+
parser (3.3.8.0)
|
209
215
|
ast (~> 2.4.1)
|
210
216
|
racc
|
211
217
|
pg (1.5.9)
|
212
218
|
polyglot (0.3.5)
|
213
|
-
|
214
|
-
|
219
|
+
pp (0.6.2)
|
220
|
+
prettyprint
|
221
|
+
prettyprint (0.2.0)
|
222
|
+
prism (1.4.0)
|
223
|
+
process_executer (1.3.0)
|
224
|
+
pry (0.15.2)
|
215
225
|
coderay (~> 1.1)
|
216
226
|
method_source (~> 1.0)
|
217
|
-
psych (5.2.
|
227
|
+
psych (5.2.6)
|
218
228
|
date
|
219
229
|
stringio
|
220
|
-
public_suffix (6.0.
|
221
|
-
puma (6.
|
230
|
+
public_suffix (6.0.2)
|
231
|
+
puma (6.6.0)
|
222
232
|
nio4r (~> 2.0)
|
223
233
|
racc (1.8.1)
|
224
|
-
rack (3.1.
|
225
|
-
rack-session (2.
|
234
|
+
rack (3.1.16)
|
235
|
+
rack-session (2.1.1)
|
236
|
+
base64 (>= 0.1.0)
|
226
237
|
rack (>= 3.0.0)
|
227
|
-
rack-test (2.
|
238
|
+
rack-test (2.2.0)
|
228
239
|
rack (>= 1.3)
|
229
240
|
rackup (2.2.1)
|
230
241
|
rack (>= 3)
|
231
|
-
rails (8.0.
|
232
|
-
actioncable (= 8.0.
|
233
|
-
actionmailbox (= 8.0.
|
234
|
-
actionmailer (= 8.0.
|
235
|
-
actionpack (= 8.0.
|
236
|
-
actiontext (= 8.0.
|
237
|
-
actionview (= 8.0.
|
238
|
-
activejob (= 8.0.
|
239
|
-
activemodel (= 8.0.
|
240
|
-
activerecord (= 8.0.
|
241
|
-
activestorage (= 8.0.
|
242
|
-
activesupport (= 8.0.
|
242
|
+
rails (8.0.2)
|
243
|
+
actioncable (= 8.0.2)
|
244
|
+
actionmailbox (= 8.0.2)
|
245
|
+
actionmailer (= 8.0.2)
|
246
|
+
actionpack (= 8.0.2)
|
247
|
+
actiontext (= 8.0.2)
|
248
|
+
actionview (= 8.0.2)
|
249
|
+
activejob (= 8.0.2)
|
250
|
+
activemodel (= 8.0.2)
|
251
|
+
activerecord (= 8.0.2)
|
252
|
+
activestorage (= 8.0.2)
|
253
|
+
activesupport (= 8.0.2)
|
243
254
|
bundler (>= 1.15.0)
|
244
|
-
railties (= 8.0.
|
245
|
-
rails-dom-testing (2.
|
255
|
+
railties (= 8.0.2)
|
256
|
+
rails-dom-testing (2.3.0)
|
246
257
|
activesupport (>= 5.0.0)
|
247
258
|
minitest
|
248
259
|
nokogiri (>= 1.6)
|
249
|
-
rails-html-sanitizer (1.6.
|
260
|
+
rails-html-sanitizer (1.6.2)
|
250
261
|
loofah (~> 2.21)
|
251
262
|
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
|
252
|
-
railties (8.0.
|
253
|
-
actionpack (= 8.0.
|
254
|
-
activesupport (= 8.0.
|
263
|
+
railties (8.0.2)
|
264
|
+
actionpack (= 8.0.2)
|
265
|
+
activesupport (= 8.0.2)
|
255
266
|
irb (~> 1.13)
|
256
267
|
rackup (>= 1.0.0)
|
257
268
|
rake (>= 12.2)
|
258
269
|
thor (~> 1.0, >= 1.2.2)
|
259
270
|
zeitwerk (~> 2.6)
|
260
271
|
rainbow (3.1.1)
|
261
|
-
rake (13.
|
272
|
+
rake (13.3.0)
|
262
273
|
rb-fsevent (0.11.2)
|
263
274
|
rb-inotify (0.11.1)
|
264
275
|
ffi (~> 1.0)
|
265
|
-
rchardet (1.
|
266
|
-
rdoc (6.
|
276
|
+
rchardet (1.9.0)
|
277
|
+
rdoc (6.14.1)
|
278
|
+
erb
|
267
279
|
psych (>= 4.0.0)
|
268
|
-
regexp_parser (2.
|
269
|
-
reline (0.
|
280
|
+
regexp_parser (2.10.0)
|
281
|
+
reline (0.6.1)
|
270
282
|
io-console (~> 0.5)
|
271
283
|
retriable (3.1.2)
|
272
|
-
rspec (3.13.
|
284
|
+
rspec (3.13.1)
|
273
285
|
rspec-core (~> 3.13.0)
|
274
286
|
rspec-expectations (~> 3.13.0)
|
275
287
|
rspec-mocks (~> 3.13.0)
|
276
|
-
rspec-core (3.13.
|
288
|
+
rspec-core (3.13.5)
|
277
289
|
rspec-support (~> 3.13.0)
|
278
|
-
rspec-expectations (3.13.
|
290
|
+
rspec-expectations (3.13.5)
|
279
291
|
diff-lcs (>= 1.2.0, < 2.0)
|
280
292
|
rspec-support (~> 3.13.0)
|
281
|
-
rspec-mocks (3.13.
|
293
|
+
rspec-mocks (3.13.5)
|
282
294
|
diff-lcs (>= 1.2.0, < 2.0)
|
283
295
|
rspec-support (~> 3.13.0)
|
284
|
-
rspec-rails (
|
285
|
-
actionpack (>= 7.
|
286
|
-
activesupport (>= 7.
|
287
|
-
railties (>= 7.
|
296
|
+
rspec-rails (8.0.1)
|
297
|
+
actionpack (>= 7.2)
|
298
|
+
activesupport (>= 7.2)
|
299
|
+
railties (>= 7.2)
|
288
300
|
rspec-core (~> 3.13)
|
289
301
|
rspec-expectations (~> 3.13)
|
290
302
|
rspec-mocks (~> 3.13)
|
291
303
|
rspec-support (~> 3.13)
|
292
|
-
rspec-support (3.13.
|
293
|
-
rubocop (1.
|
304
|
+
rspec-support (3.13.4)
|
305
|
+
rubocop (1.77.0)
|
294
306
|
json (~> 2.3)
|
295
|
-
language_server-protocol (
|
307
|
+
language_server-protocol (~> 3.17.0.2)
|
308
|
+
lint_roller (~> 1.1.0)
|
296
309
|
parallel (~> 1.10)
|
297
310
|
parser (>= 3.3.0.2)
|
298
311
|
rainbow (>= 2.2.2, < 4.0)
|
299
312
|
regexp_parser (>= 2.9.3, < 3.0)
|
300
|
-
rubocop-ast (>= 1.
|
313
|
+
rubocop-ast (>= 1.45.1, < 2.0)
|
301
314
|
ruby-progressbar (~> 1.7)
|
302
315
|
unicode-display_width (>= 2.4.0, < 4.0)
|
303
|
-
rubocop-ast (1.
|
304
|
-
parser (>= 3.3.
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
rubocop (
|
309
|
-
|
310
|
-
|
316
|
+
rubocop-ast (1.45.1)
|
317
|
+
parser (>= 3.3.7.2)
|
318
|
+
prism (~> 1.4)
|
319
|
+
rubocop-factory_bot (2.27.1)
|
320
|
+
lint_roller (~> 1.1)
|
321
|
+
rubocop (~> 1.72, >= 1.72.1)
|
322
|
+
rubocop-performance (1.25.0)
|
323
|
+
lint_roller (~> 1.1)
|
324
|
+
rubocop (>= 1.75.0, < 2.0)
|
325
|
+
rubocop-ast (>= 1.38.0, < 2.0)
|
326
|
+
rubocop-rails (2.32.0)
|
311
327
|
activesupport (>= 4.2.0)
|
328
|
+
lint_roller (~> 1.1)
|
312
329
|
rack (>= 1.1)
|
313
|
-
rubocop (>= 1.
|
314
|
-
rubocop-ast (>= 1.
|
315
|
-
rubocop-rspec (3.
|
316
|
-
|
317
|
-
|
318
|
-
|
330
|
+
rubocop (>= 1.75.0, < 2.0)
|
331
|
+
rubocop-ast (>= 1.44.0, < 2.0)
|
332
|
+
rubocop-rspec (3.6.0)
|
333
|
+
lint_roller (~> 1.1)
|
334
|
+
rubocop (~> 1.72, >= 1.72.1)
|
335
|
+
rubocop-rspec_rails (2.31.0)
|
336
|
+
lint_roller (~> 1.1)
|
337
|
+
rubocop (~> 1.72, >= 1.72.1)
|
338
|
+
rubocop-rspec (~> 3.5)
|
319
339
|
ruby-progressbar (1.13.0)
|
320
|
-
securerandom (0.4.
|
340
|
+
securerandom (0.4.1)
|
321
341
|
shellany (0.0.1)
|
322
|
-
|
323
|
-
language_server-protocol (~> 3.17.0.2)
|
324
|
-
lint_roller (~> 1.0)
|
325
|
-
rubocop (~> 1.62)
|
326
|
-
standard-custom (~> 1.0.0)
|
327
|
-
standard-performance (~> 1.3)
|
328
|
-
standard-custom (1.0.2)
|
329
|
-
lint_roller (~> 1.0)
|
330
|
-
rubocop (~> 1.50)
|
331
|
-
standard-performance (1.5.0)
|
332
|
-
lint_roller (~> 1.1)
|
333
|
-
rubocop-performance (~> 1.22.0)
|
334
|
-
standard-rails (1.2.0)
|
335
|
-
lint_roller (~> 1.0)
|
336
|
-
rubocop-rails (~> 2.26.0)
|
337
|
-
stringio (3.1.2)
|
342
|
+
stringio (3.1.7)
|
338
343
|
thor (1.3.2)
|
339
344
|
timeout (0.4.3)
|
340
|
-
treetop (1.6.
|
345
|
+
treetop (1.6.14)
|
341
346
|
polyglot (~> 0.3)
|
342
347
|
tzinfo (2.0.6)
|
343
348
|
concurrent-ruby (~> 1.0)
|
344
|
-
unicode-display_width (3.1.
|
349
|
+
unicode-display_width (3.1.4)
|
345
350
|
unicode-emoji (~> 4.0, >= 4.0.4)
|
346
351
|
unicode-emoji (4.0.4)
|
347
|
-
uri (1.0.
|
352
|
+
uri (1.0.3)
|
348
353
|
useragent (0.16.11)
|
349
|
-
websocket-driver (0.
|
354
|
+
websocket-driver (0.8.0)
|
355
|
+
base64
|
350
356
|
websocket-extensions (>= 0.1.0)
|
351
357
|
websocket-extensions (0.1.5)
|
352
|
-
with_advisory_lock (5.
|
358
|
+
with_advisory_lock (5.3.0)
|
353
359
|
activerecord (>= 6.1)
|
354
360
|
zeitwerk (>= 2.6)
|
355
|
-
|
356
|
-
rubocop-factory_bot (>= 2.26.0)
|
357
|
-
rubocop-rspec (>= 3.0.0)
|
358
|
-
rubocop-vendor (>= 0.11)
|
359
|
-
standard (>= 1.30.1)
|
360
|
-
standard-custom (>= 1.0.2)
|
361
|
-
standard-rails (>= 0.1.0)
|
362
|
-
zeitwerk (2.7.1)
|
361
|
+
zeitwerk (2.7.3)
|
363
362
|
|
364
363
|
PLATFORMS
|
365
364
|
arm64-darwin-22
|
366
365
|
arm64-darwin-23
|
366
|
+
arm64-darwin-24
|
367
367
|
x86_64-linux
|
368
368
|
|
369
369
|
DEPENDENCIES
|
@@ -377,7 +377,12 @@ DEPENDENCIES
|
|
377
377
|
pry
|
378
378
|
puma
|
379
379
|
rspec-rails
|
380
|
-
|
380
|
+
rubocop
|
381
|
+
rubocop-factory_bot
|
382
|
+
rubocop-performance
|
383
|
+
rubocop-rails
|
384
|
+
rubocop-rspec
|
385
|
+
rubocop-rspec_rails
|
381
386
|
|
382
387
|
BUNDLED WITH
|
383
|
-
2.
|
388
|
+
2.6.9
|
data/Guardfile
CHANGED
data/README.md
CHANGED
@@ -281,9 +281,6 @@ For many use cases, async reactors are sufficient to handle workflows like makin
|
|
281
281
|
|
282
282
|
The current implementation leverages a single advisory lock to guarantee write order. This will impact write throughput on the model. On a db.rg6.large Aurora instance for example, write throughput to the table is ~300 events per second.
|
283
283
|
|
284
|
-
For an explaination of why an advisory lock is required:
|
285
|
-
https://github.com/pawelpacana/account-basics
|
286
|
-
|
287
284
|
### Setup an ordered outbox
|
288
285
|
|
289
286
|
Generate migration to setup the outbox cursor table. This table is used to track cursor positions.
|
@@ -1,16 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Eventsimple
|
2
4
|
class EntitiesController < ApplicationController
|
3
|
-
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
4
5
|
def show
|
5
6
|
@model_name = params[:model_name]
|
6
7
|
@model_class = event_classes.find { |d| d.name == @model_name }
|
7
8
|
@aggregate_id = params[:id]
|
8
9
|
@event_id = params[:e] || -1
|
9
|
-
@tab_id =
|
10
|
+
@tab_id = params[:t] == 'event' ? 'event' : 'entity'
|
10
11
|
|
11
12
|
filter_columns = @model_class._filter_attributes
|
12
13
|
params_filters = params.permit(filters: {})[:filters] || {}
|
13
|
-
@filters = filter_columns.
|
14
|
+
@filters = filter_columns.index_with { |column| params_filters[column] }
|
14
15
|
|
15
16
|
primary_key = @model_class.event_class._aggregate_id
|
16
17
|
@entity = @model_class.find_by!(primary_key => @aggregate_id)
|
@@ -28,7 +29,6 @@ module Eventsimple
|
|
28
29
|
@error_message = e.message
|
29
30
|
render html: '', layout: true
|
30
31
|
end
|
31
|
-
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
32
32
|
|
33
33
|
private
|
34
34
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Eventsimple
|
2
4
|
class ModelsController < ApplicationController
|
3
5
|
def show
|
@@ -17,7 +19,7 @@ module Eventsimple
|
|
17
19
|
filter_columns = model_class._filter_attributes
|
18
20
|
|
19
21
|
params_filters = params.permit(filters: {})[:filters] || {}
|
20
|
-
@filters = filter_columns.
|
22
|
+
@filters = filter_columns.index_with { |column| params_filters[column] }
|
21
23
|
|
22
24
|
return model_event_class unless @filters.any?
|
23
25
|
|
@@ -25,6 +27,7 @@ module Eventsimple
|
|
25
27
|
model_event_class = model_event_class.joins(aggregate_class_symbol)
|
26
28
|
@filters.each do |key, value|
|
27
29
|
next if value.blank?
|
30
|
+
|
28
31
|
key = model_event_class._aggregate_id if key == :aggregate_id
|
29
32
|
model_event_class = model_event_class.where({ aggregate_class_symbol => { key => value } })
|
30
33
|
end
|
data/catalog-info.yaml
CHANGED
data/config/routes.rb
CHANGED
data/eventsimple.gemspec
CHANGED
@@ -23,13 +23,13 @@ Gem::Specification.new do |spec|
|
|
23
23
|
end
|
24
24
|
spec.require_paths = ['lib']
|
25
25
|
|
26
|
+
spec.add_runtime_dependency 'concurrent-ruby', '>= 1.2.3'
|
26
27
|
spec.add_runtime_dependency 'dry-struct', '~> 1.6'
|
27
28
|
spec.add_runtime_dependency 'dry-types', '~> 1.7'
|
28
29
|
spec.add_runtime_dependency 'pg', '~> 1.4'
|
29
30
|
spec.add_runtime_dependency 'rails', '>= 7.0', '< 9.0'
|
30
31
|
spec.add_runtime_dependency 'retriable', '~> 3.1'
|
31
32
|
spec.add_runtime_dependency 'with_advisory_lock', '>= 5.1'
|
32
|
-
spec.add_runtime_dependency 'concurrent-ruby', '>= 1.2.3'
|
33
33
|
|
34
34
|
spec.add_development_dependency 'bundle-audit'
|
35
35
|
spec.add_development_dependency 'fuubar'
|
@@ -39,5 +39,10 @@ Gem::Specification.new do |spec|
|
|
39
39
|
spec.add_development_dependency 'pry'
|
40
40
|
spec.add_development_dependency 'puma'
|
41
41
|
spec.add_development_dependency 'rspec-rails'
|
42
|
-
spec.add_development_dependency '
|
42
|
+
spec.add_development_dependency 'rubocop'
|
43
|
+
spec.add_development_dependency 'rubocop-factory_bot'
|
44
|
+
spec.add_development_dependency 'rubocop-performance'
|
45
|
+
spec.add_development_dependency 'rubocop-rails'
|
46
|
+
spec.add_development_dependency 'rubocop-rspec'
|
47
|
+
spec.add_development_dependency 'rubocop-rspec_rails'
|
43
48
|
end
|
@@ -3,11 +3,8 @@
|
|
3
3
|
module Eventsimple
|
4
4
|
class Configuration
|
5
5
|
attr_reader :max_concurrency_retries
|
6
|
-
attr_writer :metadata_klass
|
7
|
-
|
8
|
-
attr_accessor :retry_reactor_on_record_not_found
|
9
|
-
|
10
|
-
attr_accessor :ui_visible_models
|
6
|
+
attr_writer :metadata_klass, :parent_record_klass
|
7
|
+
attr_accessor :retry_reactor_on_record_not_found, :ui_visible_models
|
11
8
|
|
12
9
|
def initialize
|
13
10
|
@dispatchers = []
|
data/lib/eventsimple/engine.rb
CHANGED
data/lib/eventsimple/entity.rb
CHANGED
@@ -1,18 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Eventsimple
|
2
4
|
module Entity
|
3
5
|
DEFAULT_IGNORE_PROPS = %w[id lock_version].freeze
|
4
6
|
|
5
7
|
def event_driven_by(event_klass, aggregate_id:, filter_attributes: [])
|
6
|
-
|
7
|
-
|
8
|
+
begin
|
9
|
+
if table_exists? && !column_names.include?(locking_column)
|
10
|
+
raise ArgumentError, "A #{locking_column} column is required to enable optimistic locking"
|
11
|
+
end
|
12
|
+
|
13
|
+
if defined?(event_klass._aggregate_id) && event_klass.table_exists? && table_exists?
|
14
|
+
raise ArgumentError, "aggregate_id mismatch event:#{event_klass._aggregate_id} entity:#{aggregate_id}" if aggregate_id != event_klass._aggregate_id
|
8
15
|
|
9
|
-
begin
|
10
16
|
aggregate_column_type_in_event = event_klass.column_for_attribute(:aggregate_id).type
|
11
17
|
aggregate_column_type_in_entity = column_for_attribute(aggregate_id).type
|
12
18
|
|
13
19
|
raise ArgumentError, "column type mismatch - event:#{aggregate_column_type_in_event} entity:#{aggregate_column_type_in_entity}" if aggregate_column_type_in_event != aggregate_column_type_in_entity
|
14
|
-
rescue ActiveRecord::NoDatabaseError
|
15
20
|
end
|
21
|
+
rescue ActiveRecord::NoDatabaseError
|
22
|
+
# skip checks if the database is not yet created
|
16
23
|
end
|
17
24
|
|
18
25
|
has_many :events, class_name: event_klass.name.to_s,
|
@@ -53,10 +60,10 @@ module Eventsimple
|
|
53
60
|
was_readonly = @readonly
|
54
61
|
@readonly = false
|
55
62
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
63
|
+
return unless block
|
64
|
+
|
65
|
+
yield self
|
66
|
+
@readonly = was_readonly
|
60
67
|
end
|
61
68
|
|
62
69
|
def reproject(at: nil)
|
data/lib/eventsimple/event.rb
CHANGED
@@ -1,20 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Eventsimple
|
2
4
|
module Event
|
3
5
|
require 'globalid'
|
4
6
|
include GlobalID::Identification
|
5
7
|
|
6
|
-
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
7
8
|
def drives_events_for(aggregate_klass, aggregate_id:, events_namespace: nil)
|
8
|
-
|
9
|
-
|
9
|
+
begin
|
10
|
+
if defined?(aggregate_klass._aggregate_id) && aggregate_klass.table_exists? && table_exists?
|
11
|
+
raise ArgumentError, "aggregate_id mismatch event:#{aggregate_id} entity:#{aggregate_klass._aggregate_id}" if aggregate_id != aggregate_klass._aggregate_id
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
-
aggregate_column_type_in_entity = column_for_attribute(:aggregate_id).type unless aggregate_klass.attribute_names.blank?
|
13
|
+
aggregate_column_type_in_event = aggregate_klass.column_for_attribute(aggregate_klass._aggregate_id).type if aggregate_klass.attribute_names.present?
|
14
|
+
aggregate_column_type_in_entity = column_for_attribute(:aggregate_id).type if aggregate_klass.attribute_names.present?
|
14
15
|
|
15
16
|
raise ArgumentError, "column type mismatch - event:#{aggregate_column_type_in_event} entity:#{aggregate_column_type_in_entity}" if aggregate_column_type_in_event != aggregate_column_type_in_entity
|
16
|
-
|
17
|
+
|
17
18
|
end
|
19
|
+
rescue ActiveRecord::NoDatabaseError
|
20
|
+
# skip checks if the database is not yet created
|
18
21
|
end
|
19
22
|
|
20
23
|
class_attribute :_events_namespace
|
@@ -56,7 +59,6 @@ module Eventsimple
|
|
56
59
|
include InstanceMethods
|
57
60
|
extend ClassMethods
|
58
61
|
end
|
59
|
-
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
60
62
|
|
61
63
|
module InstanceMethods
|
62
64
|
def skip_dispatcher
|
@@ -134,7 +136,7 @@ module Eventsimple
|
|
134
136
|
# Events for an entity are expected to be namespaced under _events_namespace.
|
135
137
|
def find_sti_class(type_name)
|
136
138
|
if _events_namespace.blank?
|
137
|
-
super
|
139
|
+
super
|
138
140
|
else
|
139
141
|
super("#{_events_namespace}::#{type_name}")
|
140
142
|
end
|
@@ -179,7 +181,7 @@ module Eventsimple
|
|
179
181
|
end
|
180
182
|
end
|
181
183
|
|
182
|
-
def with_retries(args, &)
|
184
|
+
def with_retries(args, &)
|
183
185
|
entity = args[0][_aggregate_klass.model_name.element.to_sym]
|
184
186
|
|
185
187
|
# Only implement retries when the event is not already inside a transaction.
|
@@ -33,10 +33,10 @@ module Eventsimple
|
|
33
33
|
def processor(processor_klass, concurrency: 5)
|
34
34
|
self._concurrency = concurrency
|
35
35
|
self._processor_klass = processor_klass
|
36
|
-
self._processor_pool = _concurrency
|
36
|
+
self._processor_pool = Array.new(_concurrency) { processor_klass.new }
|
37
37
|
end
|
38
38
|
|
39
|
-
def start
|
39
|
+
def start
|
40
40
|
Signal.trap('INT') do
|
41
41
|
self.stop_consumer = true
|
42
42
|
$stdout.puts('INT received, stopping consumer')
|
data/lib/eventsimple/reactor.rb
CHANGED
@@ -4,7 +4,7 @@ module Eventsimple
|
|
4
4
|
class Reactor < ActiveJob::Base # rubocop:disable Rails/ApplicationJob
|
5
5
|
queue_as :eventsimple
|
6
6
|
|
7
|
-
discard_on ActiveJob::DeserializationError do |job,
|
7
|
+
discard_on ActiveJob::DeserializationError do |job, _error|
|
8
8
|
Rails.logger.warn("Event #{job.arguments.first} not found for reactor: #{self.class}")
|
9
9
|
end
|
10
10
|
|
data/lib/eventsimple/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,28 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eventsimple
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zulfiqar Ali
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
12
|
+
- !ruby/object:Gem::Dependency
|
13
|
+
name: concurrent-ruby
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - ">="
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: 1.2.3
|
19
|
+
type: :runtime
|
20
|
+
prerelease: false
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
requirements:
|
23
|
+
- - ">="
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: 1.2.3
|
13
26
|
- !ruby/object:Gem::Dependency
|
14
27
|
name: dry-struct
|
15
28
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,21 +114,21 @@ dependencies:
|
|
101
114
|
- !ruby/object:Gem::Version
|
102
115
|
version: '5.1'
|
103
116
|
- !ruby/object:Gem::Dependency
|
104
|
-
name:
|
117
|
+
name: bundle-audit
|
105
118
|
requirement: !ruby/object:Gem::Requirement
|
106
119
|
requirements:
|
107
120
|
- - ">="
|
108
121
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
110
|
-
type: :
|
122
|
+
version: '0'
|
123
|
+
type: :development
|
111
124
|
prerelease: false
|
112
125
|
version_requirements: !ruby/object:Gem::Requirement
|
113
126
|
requirements:
|
114
127
|
- - ">="
|
115
128
|
- !ruby/object:Gem::Version
|
116
|
-
version:
|
129
|
+
version: '0'
|
117
130
|
- !ruby/object:Gem::Dependency
|
118
|
-
name:
|
131
|
+
name: fuubar
|
119
132
|
requirement: !ruby/object:Gem::Requirement
|
120
133
|
requirements:
|
121
134
|
- - ">="
|
@@ -129,7 +142,7 @@ dependencies:
|
|
129
142
|
- !ruby/object:Gem::Version
|
130
143
|
version: '0'
|
131
144
|
- !ruby/object:Gem::Dependency
|
132
|
-
name:
|
145
|
+
name: git
|
133
146
|
requirement: !ruby/object:Gem::Requirement
|
134
147
|
requirements:
|
135
148
|
- - ">="
|
@@ -143,7 +156,7 @@ dependencies:
|
|
143
156
|
- !ruby/object:Gem::Version
|
144
157
|
version: '0'
|
145
158
|
- !ruby/object:Gem::Dependency
|
146
|
-
name:
|
159
|
+
name: guard-rspec
|
147
160
|
requirement: !ruby/object:Gem::Requirement
|
148
161
|
requirements:
|
149
162
|
- - ">="
|
@@ -157,7 +170,7 @@ dependencies:
|
|
157
170
|
- !ruby/object:Gem::Version
|
158
171
|
version: '0'
|
159
172
|
- !ruby/object:Gem::Dependency
|
160
|
-
name:
|
173
|
+
name: parse_a_changelog
|
161
174
|
requirement: !ruby/object:Gem::Requirement
|
162
175
|
requirements:
|
163
176
|
- - ">="
|
@@ -171,7 +184,7 @@ dependencies:
|
|
171
184
|
- !ruby/object:Gem::Version
|
172
185
|
version: '0'
|
173
186
|
- !ruby/object:Gem::Dependency
|
174
|
-
name:
|
187
|
+
name: pry
|
175
188
|
requirement: !ruby/object:Gem::Requirement
|
176
189
|
requirements:
|
177
190
|
- - ">="
|
@@ -185,7 +198,7 @@ dependencies:
|
|
185
198
|
- !ruby/object:Gem::Version
|
186
199
|
version: '0'
|
187
200
|
- !ruby/object:Gem::Dependency
|
188
|
-
name:
|
201
|
+
name: puma
|
189
202
|
requirement: !ruby/object:Gem::Requirement
|
190
203
|
requirements:
|
191
204
|
- - ">="
|
@@ -199,7 +212,7 @@ dependencies:
|
|
199
212
|
- !ruby/object:Gem::Version
|
200
213
|
version: '0'
|
201
214
|
- !ruby/object:Gem::Dependency
|
202
|
-
name:
|
215
|
+
name: rspec-rails
|
203
216
|
requirement: !ruby/object:Gem::Requirement
|
204
217
|
requirements:
|
205
218
|
- - ">="
|
@@ -213,7 +226,63 @@ dependencies:
|
|
213
226
|
- !ruby/object:Gem::Version
|
214
227
|
version: '0'
|
215
228
|
- !ruby/object:Gem::Dependency
|
216
|
-
name:
|
229
|
+
name: rubocop
|
230
|
+
requirement: !ruby/object:Gem::Requirement
|
231
|
+
requirements:
|
232
|
+
- - ">="
|
233
|
+
- !ruby/object:Gem::Version
|
234
|
+
version: '0'
|
235
|
+
type: :development
|
236
|
+
prerelease: false
|
237
|
+
version_requirements: !ruby/object:Gem::Requirement
|
238
|
+
requirements:
|
239
|
+
- - ">="
|
240
|
+
- !ruby/object:Gem::Version
|
241
|
+
version: '0'
|
242
|
+
- !ruby/object:Gem::Dependency
|
243
|
+
name: rubocop-factory_bot
|
244
|
+
requirement: !ruby/object:Gem::Requirement
|
245
|
+
requirements:
|
246
|
+
- - ">="
|
247
|
+
- !ruby/object:Gem::Version
|
248
|
+
version: '0'
|
249
|
+
type: :development
|
250
|
+
prerelease: false
|
251
|
+
version_requirements: !ruby/object:Gem::Requirement
|
252
|
+
requirements:
|
253
|
+
- - ">="
|
254
|
+
- !ruby/object:Gem::Version
|
255
|
+
version: '0'
|
256
|
+
- !ruby/object:Gem::Dependency
|
257
|
+
name: rubocop-performance
|
258
|
+
requirement: !ruby/object:Gem::Requirement
|
259
|
+
requirements:
|
260
|
+
- - ">="
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: '0'
|
263
|
+
type: :development
|
264
|
+
prerelease: false
|
265
|
+
version_requirements: !ruby/object:Gem::Requirement
|
266
|
+
requirements:
|
267
|
+
- - ">="
|
268
|
+
- !ruby/object:Gem::Version
|
269
|
+
version: '0'
|
270
|
+
- !ruby/object:Gem::Dependency
|
271
|
+
name: rubocop-rails
|
272
|
+
requirement: !ruby/object:Gem::Requirement
|
273
|
+
requirements:
|
274
|
+
- - ">="
|
275
|
+
- !ruby/object:Gem::Version
|
276
|
+
version: '0'
|
277
|
+
type: :development
|
278
|
+
prerelease: false
|
279
|
+
version_requirements: !ruby/object:Gem::Requirement
|
280
|
+
requirements:
|
281
|
+
- - ">="
|
282
|
+
- !ruby/object:Gem::Version
|
283
|
+
version: '0'
|
284
|
+
- !ruby/object:Gem::Dependency
|
285
|
+
name: rubocop-rspec
|
217
286
|
requirement: !ruby/object:Gem::Requirement
|
218
287
|
requirements:
|
219
288
|
- - ">="
|
@@ -227,7 +296,7 @@ dependencies:
|
|
227
296
|
- !ruby/object:Gem::Version
|
228
297
|
version: '0'
|
229
298
|
- !ruby/object:Gem::Dependency
|
230
|
-
name:
|
299
|
+
name: rubocop-rspec_rails
|
231
300
|
requirement: !ruby/object:Gem::Requirement
|
232
301
|
requirements:
|
233
302
|
- - ">="
|
@@ -303,7 +372,6 @@ licenses:
|
|
303
372
|
- MIT
|
304
373
|
metadata:
|
305
374
|
changelog_uri: https://github.com/wealthsimple/eventsimple/blob/main/CHANGELOG.md
|
306
|
-
post_install_message:
|
307
375
|
rdoc_options: []
|
308
376
|
require_paths:
|
309
377
|
- lib
|
@@ -318,8 +386,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
318
386
|
- !ruby/object:Gem::Version
|
319
387
|
version: '0'
|
320
388
|
requirements: []
|
321
|
-
rubygems_version: 3.
|
322
|
-
signing_key:
|
389
|
+
rubygems_version: 3.6.7
|
323
390
|
specification_version: 4
|
324
391
|
summary: Event sourcing toolkit using Rails and ActiveJob
|
325
392
|
test_files: []
|