eventsimple 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/.DS_Store +0 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +18 -0
  5. data/.ruby-version +1 -0
  6. data/CHANGELOG.md +164 -0
  7. data/Gemfile +6 -0
  8. data/Gemfile.lock +320 -0
  9. data/Guardfile +35 -0
  10. data/LICENSE +22 -0
  11. data/README.md +510 -0
  12. data/Rakefile +17 -0
  13. data/app/controllers/eventsimple/application_controller.rb +15 -0
  14. data/app/controllers/eventsimple/entities_controller.rb +59 -0
  15. data/app/controllers/eventsimple/home_controller.rb +5 -0
  16. data/app/controllers/eventsimple/models_controller.rb +10 -0
  17. data/app/views/eventsimple/entities/show.html.erb +109 -0
  18. data/app/views/eventsimple/home/index.html.erb +0 -0
  19. data/app/views/eventsimple/models/show.html.erb +19 -0
  20. data/app/views/eventsimple/shared/_header.html.erb +26 -0
  21. data/app/views/eventsimple/shared/_sidebar.html.erb +19 -0
  22. data/app/views/eventsimple/shared/_style.html.erb +105 -0
  23. data/app/views/layouts/eventsimple/application.html.erb +76 -0
  24. data/catalog-info.yaml +11 -0
  25. data/config/routes.rb +11 -0
  26. data/eventsimple.gemspec +42 -0
  27. data/lib/dry_types.rb +5 -0
  28. data/lib/eventsimple/configuration.rb +36 -0
  29. data/lib/eventsimple/data_type.rb +48 -0
  30. data/lib/eventsimple/dispatcher.rb +17 -0
  31. data/lib/eventsimple/engine.rb +37 -0
  32. data/lib/eventsimple/entity.rb +54 -0
  33. data/lib/eventsimple/event.rb +189 -0
  34. data/lib/eventsimple/event_dispatcher.rb +93 -0
  35. data/lib/eventsimple/generators/install_generator.rb +42 -0
  36. data/lib/eventsimple/generators/outbox/install_generator.rb +31 -0
  37. data/lib/eventsimple/generators/outbox/templates/create_outbox_cursor.erb +13 -0
  38. data/lib/eventsimple/generators/templates/create_events.erb +21 -0
  39. data/lib/eventsimple/generators/templates/event.erb +8 -0
  40. data/lib/eventsimple/invalid_transition.rb +14 -0
  41. data/lib/eventsimple/message.rb +23 -0
  42. data/lib/eventsimple/metadata.rb +11 -0
  43. data/lib/eventsimple/metadata_type.rb +38 -0
  44. data/lib/eventsimple/outbox/consumer.rb +52 -0
  45. data/lib/eventsimple/outbox/models/cursor.rb +25 -0
  46. data/lib/eventsimple/reactor_worker.rb +18 -0
  47. data/lib/eventsimple/support/spec_helpers.rb +47 -0
  48. data/lib/eventsimple/version.rb +5 -0
  49. data/lib/eventsimple.rb +41 -0
  50. data/log/development.log +0 -0
  51. data/sonar-project.properties +4 -0
  52. metadata +304 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 8b1d2a6b5eb979f7ba40f0bd7500b001b43497259e56432cb0f6c4d3bf9d2816
4
+ data.tar.gz: e0d2cc3ca58637a1d0267f634b03575f03db026bcba7f62d25d6b82b7228c610
5
+ SHA512:
6
+ metadata.gz: 76d5867b765ae7cb39a87ee8f094a70f2fdd5d9cb81f69e198cf26e4dffa01ae15fccc40afce852922f8f1fc408c01c59d13aa87e6d59f81b52d0f1ad446cd6a
7
+ data.tar.gz: 2713b5f26dbd5ada7db2135e2cd7453a1dea13e853f8046b57d989553bbe4ae08052dc1aa1b59b87bfdc3e5eb782cbf8ae90fc7e47f116641444efcd57a06e2f
data/.DS_Store ADDED
Binary file
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format Fuubar
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,18 @@
1
+ inherit_gem:
2
+ ws-style:
3
+ - default.yml
4
+
5
+ AllCops:
6
+ Exclude:
7
+ - "spec/dummy/bin/**/*"
8
+ - "spec/dummy/db/migrate/**/*"
9
+ - "spec/dummy/db/schema.rb"
10
+ - "spec/dummy/log/**/*"
11
+ - "spec/dummy/tmp/**/*"
12
+ TargetRubyVersion: 3.2
13
+
14
+ Rails/SkipsModelValidations:
15
+ Enabled: false
16
+
17
+ Vendor/StrictDryStruct:
18
+ Enabled: false
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.2.2
data/CHANGELOG.md ADDED
@@ -0,0 +1,164 @@
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
5
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## Unreleased
8
+
9
+ ## 1.0.0 - 2023-05-03
10
+ ### Changed
11
+ - Release under MIT license
12
+
13
+ ## 0.9.1 - 2023-04-29
14
+ ### Changed
15
+ - add `metadata_klass` configuration so it can be easily overwritten
16
+
17
+ ## 0.9.0 - 2023-04-25
18
+ ### Changed
19
+ - update timestamp of projection on deleted events. We originally had deleted
20
+ events act as a `noop` but when checking `model.project_matches_events?` it would fail
21
+ since the original projection would have included the timestamp update.
22
+ We don't want to require a projection of every instance of a model when deleting an event so
23
+ we now update the timestamps on deleted event projections.
24
+
25
+ ## 0.8.0 - 2023-04-18
26
+ ### Changed
27
+ - Rename gem to Eventsimple
28
+
29
+ ## 0.7.3 - 2023-04-14
30
+ ### Changed
31
+ - Adding some missing tests
32
+
33
+ ## 0.7.2 - 2023-04-06
34
+ ### Changed
35
+ - Remove use of ApplicationRecord.descendants to determine the list of models
36
+ to display in the UI. This conflicts with components using packwerk.
37
+ A side effect of this change is that the UI will no longer display STI models.
38
+ STI models did not work properly in the UI anyway, so this is ok.
39
+
40
+ ## 0.7.1 - 2023-04-11
41
+ ### Changed
42
+ - Eventsimple no longer requires a Dispatcher class to be defined.
43
+ Instead, dispatchers must now be registered in the event configuration.
44
+ Each dispatcher must inherit from Eventsimple::Dispatcher
45
+
46
+ ## 0.7.0 - 2023-03-29
47
+ ### Changed
48
+ - Remove custom database role configuration as it is not needed
49
+ - Allow concurrency retry count to be configurable
50
+ - Require Rails >= 7.0.0. Eventsimple is not compatible with older versions.
51
+ - aggregate_id is now a required property on event configuration
52
+
53
+ ## 0.6.5 - 2023-02-02
54
+ ### Changed
55
+ - Fix various UI styling and overflow bugs
56
+
57
+ ## 0.6.4 - 2023-01-20
58
+ ### Changed
59
+ Avoid using redirect to prevent issues with internal proxies
60
+
61
+ ## 0.6.3 - 2023-01-20
62
+ ### Changed
63
+ - Remove turbo use, as it is not essential
64
+
65
+ ## 0.6.2 - 2023-01-20
66
+ ### Changed
67
+ - Add placeholder class for events deleted in code
68
+
69
+ ## 0.6.1 - 2023-01-20
70
+ ### Changed
71
+ - Fix bug where eventsimple UI would not be able to find the correct entity
72
+
73
+ ## 0.6.0 - 2023-01-16
74
+ ### Changed
75
+ - Add "Eventsimple: The UI"
76
+
77
+ ## 0.5.8 - 2023-01-05
78
+ ### Changed
79
+ - Setup eventsimple web view
80
+
81
+ ## 0.5.7 - 2023-01-03
82
+ ### Changed
83
+ - Fixed local development setup script
84
+ - Fixed bug where timestamps may not be updated on reprojection
85
+
86
+ ## 0.5.6 - 2022-11-28
87
+ ### Changed
88
+ - Only implement retry logic for new records
89
+
90
+ ## 0.5.5 - 2022-11-28
91
+ ### Changed
92
+ - Fixes to consumer migration template
93
+ - End consumer correctly on SIGTERM
94
+
95
+ ## 0.5.4 - 2022-11-28
96
+ ### Changed
97
+ - Updated install_generator.rb and templates/create_events.erb to use underscore, instead of downcase.
98
+ - Updated isntall_generator/template/event.erb to extend Eventsimple::Event
99
+
100
+ ## 0.5.3 - 2022-11-18
101
+ ### Changed
102
+ - Add rescue_invalid_transition as optional method to call on an event to customize action taken when can_apply? method returns false
103
+
104
+ ## 0.4.3 - 2022-10-27
105
+ ### Changed
106
+ - Improved error message on event write failures
107
+
108
+ ## 0.4.2 - 2022-10-13
109
+ ### Changed
110
+ - #reproject projects correct entity timestamp values
111
+
112
+ ## 0.4.1 - 2022-10-13
113
+ ### Changed
114
+ - Add auto-applying timestamps to entities
115
+ - Disable rails auto updating of created_at and updated_at columns
116
+ - apply functions no longer require the entity to be returned
117
+
118
+ ## 0.3.0 - 2022-09-26
119
+ ### Changed
120
+ - Add Rails generators to simplify setup
121
+
122
+ ## 0.2.0 - 2022-09-21
123
+ ### Changed
124
+ - Add Eventsimple::Outbox::Consumer to implement an outbox
125
+
126
+ ## 0.1.2 - 2022-09-25
127
+ ### Changed
128
+ - Set up working test suite
129
+
130
+ ## 0.1.1 - 2022-09-21
131
+ ### Changed
132
+ - Use `event_klass.const_defined?(:Message)`
133
+
134
+ ## 0.1.0 - 2022-09-21
135
+ ### Changed
136
+ - Return an instance of `event_klass::Message` from `Eventsimple::DataType#cast_value`
137
+ and `Eventsimple::DataType#deserialize` whenever the type is defined instead of checking
138
+ whether input is empty. Otherwise return the hash
139
+
140
+ ## 0.0.6 - 2022-09-16
141
+ ### Changed
142
+ - Separate modules for entity and event models.
143
+ - Previous usage: `include Eventsimple`
144
+ - New usage: `extend Eventsimple::Entity` or `extend Eventsimple::Event`
145
+
146
+ ## 0.0.5 - 2022-09-16
147
+ ### Changed
148
+ - Cleaner event output in console
149
+
150
+ ## 0.0.4 - 2022-09-15
151
+ ### Changed
152
+ - Raise on state machine check failure instead of setting an activemodel error
153
+
154
+ ## 0.0.3 - 2022-09-15
155
+ ### Changed
156
+ - Fix Cops and setup dummy app
157
+
158
+ ## 0.0.2 - 2022-09-15
159
+ ### Changed
160
+ - Setup eventable base classes
161
+
162
+ ## 0.0.1 - 2022-09-15
163
+ ### Changed
164
+ - Initial gem setup
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in eventsimple.gemspec
6
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,320 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ eventsimple (1.0.0)
5
+ dry-struct (~> 1.6)
6
+ dry-types (~> 1.7)
7
+ pg (~> 1.4)
8
+ rails (~> 7.0)
9
+ retriable (~> 3.1)
10
+ sidekiq (~> 7.0)
11
+
12
+ GEM
13
+ remote: https://rubygems.org/
14
+ specs:
15
+ actioncable (7.0.4.3)
16
+ actionpack (= 7.0.4.3)
17
+ activesupport (= 7.0.4.3)
18
+ nio4r (~> 2.0)
19
+ websocket-driver (>= 0.6.1)
20
+ actionmailbox (7.0.4.3)
21
+ actionpack (= 7.0.4.3)
22
+ activejob (= 7.0.4.3)
23
+ activerecord (= 7.0.4.3)
24
+ activestorage (= 7.0.4.3)
25
+ activesupport (= 7.0.4.3)
26
+ mail (>= 2.7.1)
27
+ net-imap
28
+ net-pop
29
+ net-smtp
30
+ actionmailer (7.0.4.3)
31
+ actionpack (= 7.0.4.3)
32
+ actionview (= 7.0.4.3)
33
+ activejob (= 7.0.4.3)
34
+ activesupport (= 7.0.4.3)
35
+ mail (~> 2.5, >= 2.5.4)
36
+ net-imap
37
+ net-pop
38
+ net-smtp
39
+ rails-dom-testing (~> 2.0)
40
+ actionpack (7.0.4.3)
41
+ actionview (= 7.0.4.3)
42
+ activesupport (= 7.0.4.3)
43
+ rack (~> 2.0, >= 2.2.0)
44
+ rack-test (>= 0.6.3)
45
+ rails-dom-testing (~> 2.0)
46
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
47
+ actiontext (7.0.4.3)
48
+ actionpack (= 7.0.4.3)
49
+ activerecord (= 7.0.4.3)
50
+ activestorage (= 7.0.4.3)
51
+ activesupport (= 7.0.4.3)
52
+ globalid (>= 0.6.0)
53
+ nokogiri (>= 1.8.5)
54
+ actionview (7.0.4.3)
55
+ activesupport (= 7.0.4.3)
56
+ builder (~> 3.1)
57
+ erubi (~> 1.4)
58
+ rails-dom-testing (~> 2.0)
59
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
60
+ activejob (7.0.4.3)
61
+ activesupport (= 7.0.4.3)
62
+ globalid (>= 0.3.6)
63
+ activemodel (7.0.4.3)
64
+ activesupport (= 7.0.4.3)
65
+ activerecord (7.0.4.3)
66
+ activemodel (= 7.0.4.3)
67
+ activesupport (= 7.0.4.3)
68
+ activestorage (7.0.4.3)
69
+ actionpack (= 7.0.4.3)
70
+ activejob (= 7.0.4.3)
71
+ activerecord (= 7.0.4.3)
72
+ activesupport (= 7.0.4.3)
73
+ marcel (~> 1.0)
74
+ mini_mime (>= 1.1.0)
75
+ activesupport (7.0.4.3)
76
+ concurrent-ruby (~> 1.0, >= 1.0.2)
77
+ i18n (>= 1.6, < 2)
78
+ minitest (>= 5.1)
79
+ tzinfo (~> 2.0)
80
+ addressable (2.8.4)
81
+ public_suffix (>= 2.0.2, < 6.0)
82
+ ast (2.4.2)
83
+ builder (3.2.4)
84
+ bundle-audit (0.1.0)
85
+ bundler-audit
86
+ bundler-audit (0.9.1)
87
+ bundler (>= 1.2.0, < 3)
88
+ thor (~> 1.0)
89
+ coderay (1.1.3)
90
+ concurrent-ruby (1.2.2)
91
+ connection_pool (2.4.0)
92
+ crass (1.0.6)
93
+ date (3.3.3)
94
+ diff-lcs (1.5.0)
95
+ dry-core (1.0.0)
96
+ concurrent-ruby (~> 1.0)
97
+ zeitwerk (~> 2.6)
98
+ dry-inflector (1.0.0)
99
+ dry-logic (1.5.0)
100
+ concurrent-ruby (~> 1.0)
101
+ dry-core (~> 1.0, < 2)
102
+ zeitwerk (~> 2.6)
103
+ dry-struct (1.6.0)
104
+ dry-core (~> 1.0, < 2)
105
+ dry-types (>= 1.7, < 2)
106
+ ice_nine (~> 0.11)
107
+ zeitwerk (~> 2.6)
108
+ dry-types (1.7.1)
109
+ concurrent-ruby (~> 1.0)
110
+ dry-core (~> 1.0)
111
+ dry-inflector (~> 1.0)
112
+ dry-logic (~> 1.4)
113
+ zeitwerk (~> 2.6)
114
+ erubi (1.12.0)
115
+ ffi (1.15.5)
116
+ formatador (1.1.0)
117
+ fuubar (2.5.1)
118
+ rspec-core (~> 3.0)
119
+ ruby-progressbar (~> 1.4)
120
+ git (1.18.0)
121
+ addressable (~> 2.8)
122
+ rchardet (~> 1.8)
123
+ globalid (1.1.0)
124
+ activesupport (>= 5.0)
125
+ guard (2.18.0)
126
+ formatador (>= 0.2.4)
127
+ listen (>= 2.7, < 4.0)
128
+ lumberjack (>= 1.0.12, < 2.0)
129
+ nenv (~> 0.1)
130
+ notiffany (~> 0.0)
131
+ pry (>= 0.13.0)
132
+ shellany (~> 0.0)
133
+ thor (>= 0.18.1)
134
+ guard-compat (1.2.1)
135
+ guard-rspec (4.7.3)
136
+ guard (~> 2.1)
137
+ guard-compat (~> 1.1)
138
+ rspec (>= 2.99.0, < 4.0)
139
+ i18n (1.13.0)
140
+ concurrent-ruby (~> 1.0)
141
+ ice_nine (0.11.2)
142
+ json (2.6.3)
143
+ listen (3.8.0)
144
+ rb-fsevent (~> 0.10, >= 0.10.3)
145
+ rb-inotify (~> 0.9, >= 0.9.10)
146
+ loofah (2.20.0)
147
+ crass (~> 1.0.2)
148
+ nokogiri (>= 1.5.9)
149
+ lumberjack (1.2.8)
150
+ mail (2.8.1)
151
+ mini_mime (>= 0.1.1)
152
+ net-imap
153
+ net-pop
154
+ net-smtp
155
+ marcel (1.0.2)
156
+ method_source (1.0.0)
157
+ mini_mime (1.1.2)
158
+ minitest (5.18.0)
159
+ nenv (0.3.0)
160
+ net-imap (0.3.4)
161
+ date
162
+ net-protocol
163
+ net-pop (0.1.2)
164
+ net-protocol
165
+ net-protocol (0.2.1)
166
+ timeout
167
+ net-smtp (0.3.3)
168
+ net-protocol
169
+ nio4r (2.5.9)
170
+ nokogiri (1.14.3-arm64-darwin)
171
+ racc (~> 1.4)
172
+ nokogiri (1.14.3-x86_64-linux)
173
+ racc (~> 1.4)
174
+ notiffany (0.1.3)
175
+ nenv (~> 0.1)
176
+ shellany (~> 0.0)
177
+ parallel (1.23.0)
178
+ parse_a_changelog (1.2.0)
179
+ treetop (~> 1.6)
180
+ parser (3.2.2.1)
181
+ ast (~> 2.4.1)
182
+ pg (1.5.3)
183
+ polyglot (0.3.5)
184
+ pry (0.14.2)
185
+ coderay (~> 1.1)
186
+ method_source (~> 1.0)
187
+ public_suffix (5.0.1)
188
+ puma (6.2.2)
189
+ nio4r (~> 2.0)
190
+ racc (1.6.2)
191
+ rack (2.2.7)
192
+ rack-test (2.1.0)
193
+ rack (>= 1.3)
194
+ rails (7.0.4.3)
195
+ actioncable (= 7.0.4.3)
196
+ actionmailbox (= 7.0.4.3)
197
+ actionmailer (= 7.0.4.3)
198
+ actionpack (= 7.0.4.3)
199
+ actiontext (= 7.0.4.3)
200
+ actionview (= 7.0.4.3)
201
+ activejob (= 7.0.4.3)
202
+ activemodel (= 7.0.4.3)
203
+ activerecord (= 7.0.4.3)
204
+ activestorage (= 7.0.4.3)
205
+ activesupport (= 7.0.4.3)
206
+ bundler (>= 1.15.0)
207
+ railties (= 7.0.4.3)
208
+ rails-dom-testing (2.0.3)
209
+ activesupport (>= 4.2.0)
210
+ nokogiri (>= 1.6)
211
+ rails-html-sanitizer (1.5.0)
212
+ loofah (~> 2.19, >= 2.19.1)
213
+ railties (7.0.4.3)
214
+ actionpack (= 7.0.4.3)
215
+ activesupport (= 7.0.4.3)
216
+ method_source
217
+ rake (>= 12.2)
218
+ thor (~> 1.0)
219
+ zeitwerk (~> 2.5)
220
+ rainbow (3.1.1)
221
+ rake (13.0.6)
222
+ rb-fsevent (0.11.2)
223
+ rb-inotify (0.10.1)
224
+ ffi (~> 1.0)
225
+ rchardet (1.8.0)
226
+ redis-client (0.14.1)
227
+ connection_pool
228
+ regexp_parser (2.8.0)
229
+ retriable (3.1.2)
230
+ rexml (3.2.5)
231
+ rspec (3.12.0)
232
+ rspec-core (~> 3.12.0)
233
+ rspec-expectations (~> 3.12.0)
234
+ rspec-mocks (~> 3.12.0)
235
+ rspec-core (3.12.2)
236
+ rspec-support (~> 3.12.0)
237
+ rspec-expectations (3.12.3)
238
+ diff-lcs (>= 1.2.0, < 2.0)
239
+ rspec-support (~> 3.12.0)
240
+ rspec-mocks (3.12.5)
241
+ diff-lcs (>= 1.2.0, < 2.0)
242
+ rspec-support (~> 3.12.0)
243
+ rspec-rails (6.0.1)
244
+ actionpack (>= 6.1)
245
+ activesupport (>= 6.1)
246
+ railties (>= 6.1)
247
+ rspec-core (~> 3.11)
248
+ rspec-expectations (~> 3.11)
249
+ rspec-mocks (~> 3.11)
250
+ rspec-support (~> 3.11)
251
+ rspec-support (3.12.0)
252
+ rubocop (1.50.2)
253
+ json (~> 2.3)
254
+ parallel (~> 1.10)
255
+ parser (>= 3.2.0.0)
256
+ rainbow (>= 2.2.2, < 4.0)
257
+ regexp_parser (>= 1.8, < 3.0)
258
+ rexml (>= 3.2.5, < 4.0)
259
+ rubocop-ast (>= 1.28.0, < 2.0)
260
+ ruby-progressbar (~> 1.7)
261
+ unicode-display_width (>= 2.4.0, < 3.0)
262
+ rubocop-ast (1.28.1)
263
+ parser (>= 3.2.1.0)
264
+ rubocop-capybara (2.18.0)
265
+ rubocop (~> 1.41)
266
+ rubocop-performance (1.17.1)
267
+ rubocop (>= 1.7.0, < 2.0)
268
+ rubocop-ast (>= 0.4.0)
269
+ rubocop-rails (2.19.1)
270
+ activesupport (>= 4.2.0)
271
+ rack (>= 1.1)
272
+ rubocop (>= 1.33.0, < 2.0)
273
+ rubocop-rspec (2.20.0)
274
+ rubocop (~> 1.33)
275
+ rubocop-capybara (~> 2.17)
276
+ rubocop-vendor (0.9.2)
277
+ rubocop (>= 0.53.0)
278
+ ruby-progressbar (1.13.0)
279
+ shellany (0.0.1)
280
+ sidekiq (7.1.0)
281
+ concurrent-ruby (< 2)
282
+ connection_pool (>= 2.3.0)
283
+ rack (>= 2.2.4)
284
+ redis-client (>= 0.14.0)
285
+ thor (1.2.1)
286
+ timeout (0.3.2)
287
+ treetop (1.6.12)
288
+ polyglot (~> 0.3)
289
+ tzinfo (2.0.6)
290
+ concurrent-ruby (~> 1.0)
291
+ unicode-display_width (2.4.2)
292
+ websocket-driver (0.7.5)
293
+ websocket-extensions (>= 0.1.0)
294
+ websocket-extensions (0.1.5)
295
+ ws-style (6.14.6)
296
+ rubocop (>= 1.36)
297
+ rubocop-performance (>= 1.10.2)
298
+ rubocop-rails (>= 2.9.1)
299
+ rubocop-rspec (>= 2.2.0)
300
+ rubocop-vendor (>= 0.6.0)
301
+ zeitwerk (2.6.8)
302
+
303
+ PLATFORMS
304
+ arm64-darwin-22
305
+ x86_64-linux
306
+
307
+ DEPENDENCIES
308
+ bundle-audit
309
+ eventsimple!
310
+ fuubar
311
+ git
312
+ guard-rspec
313
+ parse_a_changelog
314
+ pry
315
+ puma
316
+ rspec-rails
317
+ ws-style
318
+
319
+ BUNDLED WITH
320
+ 2.3.26
data/Guardfile ADDED
@@ -0,0 +1,35 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ ## Uncomment and set this to only include directories you want to watch
5
+ # directories %w(app lib config test spec features) \
6
+ # .select{|d| Dir.exist?(d) ? d : UI.warning("Directory #{d} does not exist")}
7
+
8
+ ## Note: if you are using the `directories` clause above and you are not
9
+ ## watching the project directory ('.'), then you will want to move
10
+ ## the Guardfile to a watched dir and symlink it back, e.g.
11
+ #
12
+ # $ mkdir config
13
+ # $ mv Guardfile config/
14
+ # $ ln -s config/Guardfile .
15
+ #
16
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
17
+
18
+ guard :rspec, cmd: 'bundle exec rspec' do
19
+ require 'guard/rspec/dsl'
20
+ dsl = Guard::RSpec::Dsl.new(self)
21
+
22
+ # Feel free to open issues for suggestions and improvements
23
+
24
+ # RSpec files
25
+ rspec = dsl.rspec
26
+ watch(rspec.spec_helper) { rspec.spec_dir }
27
+ watch(rspec.spec_support) { rspec.spec_dir }
28
+ watch(rspec.spec_files)
29
+
30
+ # Ruby files
31
+ ruby = dsl.ruby
32
+ dsl.watch_spec_files_for(ruby.lib_files)
33
+
34
+ watch(/^(.+)\.rb$/) { |m| "spec/#{m[1]}_spec.rb" }
35
+ end
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2023 Wealthsimple
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.