eventsimple 1.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.
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.