morty 0.0.1 → 0.1.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 (134) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +12 -0
  3. data/.github/workflows/ci.yml +107 -0
  4. data/.gitignore +17 -3
  5. data/.rubocop.yml +20 -0
  6. data/Appraisals +24 -0
  7. data/Gemfile +28 -1
  8. data/LICENSE +21 -0
  9. data/README.md +37 -7
  10. data/Rakefile +37 -0
  11. data/app/models/morty/account.rb +37 -0
  12. data/app/models/morty/account_type.rb +7 -0
  13. data/app/models/morty/activity.rb +147 -0
  14. data/app/models/morty/activity_type.rb +7 -0
  15. data/app/models/morty/application_record.rb +6 -0
  16. data/app/models/morty/entry.rb +24 -0
  17. data/app/models/morty/entry_type.rb +23 -0
  18. data/app/models/morty/ledger.rb +8 -0
  19. data/config/routes.rb +2 -0
  20. data/config.ru +7 -0
  21. data/cucumber.yml +2 -0
  22. data/db/migrate/20260224063053_create_morty_schema.rb +17 -0
  23. data/db/seeds.rb +18 -0
  24. data/db/sql/create_morty_schema.sql +479 -0
  25. data/features/accountant.feature +47 -0
  26. data/features/adjustment.feature +79 -0
  27. data/features/cancel.feature +130 -0
  28. data/features/daily.feature +42 -0
  29. data/features/default.feature +33 -0
  30. data/features/ledger.feature +57 -0
  31. data/features/retroactive.feature +92 -0
  32. data/features/return.feature +112 -0
  33. data/features/reversal.feature +57 -0
  34. data/features/simulation.feature +128 -0
  35. data/features/support/accountants/adjusting_accountant.rb +34 -0
  36. data/features/support/accountants/daily_accountant.rb +13 -0
  37. data/features/support/accountants/default_accountant.rb +2 -0
  38. data/features/support/accountants/defaulting_accountant.rb +32 -0
  39. data/features/support/accountants/multiple_ledgers_accountant.rb +51 -0
  40. data/features/support/accountants/simulating_accountant.rb +36 -0
  41. data/features/support/accountants/sourceless_accountant.rb +2 -0
  42. data/features/support/accountants/waterfalling_accountant.rb +15 -0
  43. data/features/support/env.rb +17 -0
  44. data/features/waterfall.feature +34 -0
  45. data/gemfiles/rails_7.0.gemfile +30 -0
  46. data/gemfiles/rails_7.0.gemfile.lock +494 -0
  47. data/gemfiles/rails_7.1.gemfile +30 -0
  48. data/gemfiles/rails_7.1.gemfile.lock +543 -0
  49. data/gemfiles/rails_7.2.gemfile +30 -0
  50. data/gemfiles/rails_7.2.gemfile.lock +539 -0
  51. data/gemfiles/rails_8.0.gemfile +30 -0
  52. data/gemfiles/rails_8.0.gemfile.lock +536 -0
  53. data/gemfiles/rails_8.1.gemfile +30 -0
  54. data/gemfiles/rails_8.1.gemfile.lock +538 -0
  55. data/lib/morty/accountant.rb +332 -0
  56. data/lib/morty/adjustment.rb +64 -0
  57. data/lib/morty/book.rb +54 -0
  58. data/lib/morty/context/activity.rb +52 -0
  59. data/lib/morty/context/daily.rb +23 -0
  60. data/lib/morty/context/simulation.rb +26 -0
  61. data/lib/morty/cucumber/helpers.rb +27 -0
  62. data/lib/morty/cucumber/steps.rb +191 -0
  63. data/lib/morty/diff.rb +71 -0
  64. data/lib/morty/dsl.rb +86 -0
  65. data/lib/morty/engine.rb +21 -0
  66. data/lib/morty/error.rb +3 -0
  67. data/lib/morty/event.rb +27 -0
  68. data/lib/morty/list/activity.rb +57 -0
  69. data/lib/morty/rate.rb +59 -0
  70. data/lib/morty/schedule.rb +36 -0
  71. data/lib/morty/seed.rb +60 -0
  72. data/lib/morty/source.rb +19 -0
  73. data/lib/morty/tasks/morty_tasks.rake +4 -0
  74. data/lib/morty/version.rb +1 -1
  75. data/lib/morty.rb +27 -1
  76. data/morty.gemspec +22 -19
  77. data/spec/dummy/Rakefile +6 -0
  78. data/spec/dummy/app/assets/images/.keep +0 -0
  79. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  80. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  81. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  82. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  83. data/spec/dummy/app/jobs/application_job.rb +7 -0
  84. data/spec/dummy/app/models/application_record.rb +3 -0
  85. data/spec/dummy/app/models/concerns/.keep +0 -0
  86. data/spec/dummy/app/views/layouts/application.html.erb +28 -0
  87. data/spec/dummy/app/views/pwa/manifest.json.erb +22 -0
  88. data/spec/dummy/app/views/pwa/service-worker.js +26 -0
  89. data/spec/dummy/bin/ci +6 -0
  90. data/spec/dummy/bin/dev +2 -0
  91. data/spec/dummy/bin/rails +4 -0
  92. data/spec/dummy/bin/rake +4 -0
  93. data/spec/dummy/bin/setup +35 -0
  94. data/spec/dummy/config/application.rb +48 -0
  95. data/spec/dummy/config/boot.rb +5 -0
  96. data/spec/dummy/config/cable.yml +10 -0
  97. data/spec/dummy/config/ci.rb +15 -0
  98. data/spec/dummy/config/database.yml +15 -0
  99. data/spec/dummy/config/environment.rb +5 -0
  100. data/spec/dummy/config/environments/development.rb +47 -0
  101. data/spec/dummy/config/environments/test.rb +53 -0
  102. data/spec/dummy/config/initializers/content_security_policy.rb +29 -0
  103. data/spec/dummy/config/initializers/filter_parameter_logging.rb +8 -0
  104. data/spec/dummy/config/initializers/inflections.rb +16 -0
  105. data/spec/dummy/config/locales/en.yml +31 -0
  106. data/spec/dummy/config/puma.rb +39 -0
  107. data/spec/dummy/config/routes.rb +3 -0
  108. data/spec/dummy/config/storage.yml +27 -0
  109. data/spec/dummy/config.ru +6 -0
  110. data/spec/dummy/db/seeds.rb +52 -0
  111. data/spec/dummy/log/.keep +0 -0
  112. data/spec/dummy/public/400.html +135 -0
  113. data/spec/dummy/public/404.html +135 -0
  114. data/spec/dummy/public/406-unsupported-browser.html +135 -0
  115. data/spec/dummy/public/422.html +135 -0
  116. data/spec/dummy/public/500.html +135 -0
  117. data/spec/dummy/public/icon.png +0 -0
  118. data/spec/dummy/public/icon.svg +3 -0
  119. data/spec/lib/accountant_spec.rb +236 -0
  120. data/spec/lib/book_spec.rb +91 -0
  121. data/spec/lib/diff_spec.rb +102 -0
  122. data/spec/lib/event_spec.rb +53 -0
  123. data/spec/lib/list/activity_spec.rb +117 -0
  124. data/spec/lib/schedule_spec.rb +106 -0
  125. data/spec/lib/source_spec.rb +31 -0
  126. data/spec/models/account_spec.rb +48 -0
  127. data/spec/models/activity_spec.rb +139 -0
  128. data/spec/models/entry_spec.rb +41 -0
  129. data/spec/models/entry_type_spec.rb +43 -0
  130. data/spec/rate_spec.rb +83 -0
  131. data/spec/spec_helper.rb +36 -0
  132. data/spec/support/test_helpers.rb +25 -0
  133. metadata +193 -16
  134. data/LICENSE.txt +0 -22
@@ -0,0 +1,538 @@
1
+ GIT
2
+ remote: https://github.com/companygardener/lookup_by.git
3
+ revision: bd97afca01f94760e0727c08c761aa618b62a87d
4
+ specs:
5
+ lookup_by (0.12.0)
6
+ activerecord (>= 7.0.0)
7
+ mutex_m
8
+
9
+ PATH
10
+ remote: ..
11
+ specs:
12
+ morty (0.1.0)
13
+ activerecord (>= 7.0)
14
+ colorize
15
+ lookup_by
16
+ railties (>= 7.0)
17
+
18
+ GEM
19
+ remote: https://rubygems.org/
20
+ specs:
21
+ action_text-trix (2.1.18)
22
+ railties
23
+ actioncable (8.1.3)
24
+ actionpack (= 8.1.3)
25
+ activesupport (= 8.1.3)
26
+ nio4r (~> 2.0)
27
+ websocket-driver (>= 0.6.1)
28
+ zeitwerk (~> 2.6)
29
+ actionmailbox (8.1.3)
30
+ actionpack (= 8.1.3)
31
+ activejob (= 8.1.3)
32
+ activerecord (= 8.1.3)
33
+ activestorage (= 8.1.3)
34
+ activesupport (= 8.1.3)
35
+ mail (>= 2.8.0)
36
+ actionmailer (8.1.3)
37
+ actionpack (= 8.1.3)
38
+ actionview (= 8.1.3)
39
+ activejob (= 8.1.3)
40
+ activesupport (= 8.1.3)
41
+ mail (>= 2.8.0)
42
+ rails-dom-testing (~> 2.2)
43
+ actionpack (8.1.3)
44
+ actionview (= 8.1.3)
45
+ activesupport (= 8.1.3)
46
+ nokogiri (>= 1.8.5)
47
+ rack (>= 2.2.4)
48
+ rack-session (>= 1.0.1)
49
+ rack-test (>= 0.6.3)
50
+ rails-dom-testing (~> 2.2)
51
+ rails-html-sanitizer (~> 1.6)
52
+ useragent (~> 0.16)
53
+ actiontext (8.1.3)
54
+ action_text-trix (~> 2.1.15)
55
+ actionpack (= 8.1.3)
56
+ activerecord (= 8.1.3)
57
+ activestorage (= 8.1.3)
58
+ activesupport (= 8.1.3)
59
+ globalid (>= 0.6.0)
60
+ nokogiri (>= 1.8.5)
61
+ actionview (8.1.3)
62
+ activesupport (= 8.1.3)
63
+ builder (~> 3.1)
64
+ erubi (~> 1.11)
65
+ rails-dom-testing (~> 2.2)
66
+ rails-html-sanitizer (~> 1.6)
67
+ activejob (8.1.3)
68
+ activesupport (= 8.1.3)
69
+ globalid (>= 0.3.6)
70
+ activemodel (8.1.3)
71
+ activesupport (= 8.1.3)
72
+ activerecord (8.1.3)
73
+ activemodel (= 8.1.3)
74
+ activesupport (= 8.1.3)
75
+ timeout (>= 0.4.0)
76
+ activestorage (8.1.3)
77
+ actionpack (= 8.1.3)
78
+ activejob (= 8.1.3)
79
+ activerecord (= 8.1.3)
80
+ activesupport (= 8.1.3)
81
+ marcel (~> 1.0)
82
+ activesupport (8.1.3)
83
+ base64
84
+ bigdecimal
85
+ concurrent-ruby (~> 1.0, >= 1.3.1)
86
+ connection_pool (>= 2.2.5)
87
+ drb
88
+ i18n (>= 1.6, < 2)
89
+ json
90
+ logger (>= 1.4.2)
91
+ minitest (>= 5.1)
92
+ securerandom (>= 0.3)
93
+ tzinfo (~> 2.0, >= 2.0.5)
94
+ uri (>= 0.13.1)
95
+ appraisal (2.5.0)
96
+ bundler
97
+ rake
98
+ thor (>= 0.14.0)
99
+ ast (2.4.3)
100
+ base64 (0.3.0)
101
+ bigdecimal (4.1.1)
102
+ builder (3.3.0)
103
+ chronic (0.10.2)
104
+ colorize (1.1.0)
105
+ concurrent-ruby (1.3.6)
106
+ connection_pool (3.0.2)
107
+ crass (1.0.6)
108
+ cucumber (10.2.0)
109
+ base64 (~> 0.2)
110
+ builder (~> 3.2)
111
+ cucumber-ci-environment (> 9, < 12)
112
+ cucumber-core (> 15, < 17)
113
+ cucumber-cucumber-expressions (> 17, < 20)
114
+ cucumber-html-formatter (> 21, < 23)
115
+ diff-lcs (~> 1.5)
116
+ logger (~> 1.6)
117
+ mini_mime (~> 1.1)
118
+ multi_test (~> 1.1)
119
+ sys-uname (~> 1.3)
120
+ cucumber-ci-environment (11.0.0)
121
+ cucumber-core (16.2.0)
122
+ cucumber-gherkin (> 36, < 40)
123
+ cucumber-messages (> 31, < 33)
124
+ cucumber-tag-expressions (> 6, < 9)
125
+ cucumber-cucumber-expressions (19.0.0)
126
+ bigdecimal
127
+ cucumber-gherkin (39.0.0)
128
+ cucumber-messages (>= 31, < 33)
129
+ cucumber-html-formatter (22.3.0)
130
+ cucumber-messages (> 23, < 33)
131
+ cucumber-messages (32.2.0)
132
+ cucumber-tag-expressions (8.1.0)
133
+ date (3.5.1)
134
+ diff-lcs (1.6.2)
135
+ docile (1.4.1)
136
+ drb (2.2.3)
137
+ erb (6.0.2)
138
+ erubi (1.13.1)
139
+ factory_bot (6.5.6)
140
+ activesupport (>= 6.1.0)
141
+ factory_bot_rails (6.5.1)
142
+ factory_bot (~> 6.5)
143
+ railties (>= 6.1.0)
144
+ ffi (1.17.4-aarch64-linux-gnu)
145
+ ffi (1.17.4-aarch64-linux-musl)
146
+ ffi (1.17.4-arm-linux-gnu)
147
+ ffi (1.17.4-arm-linux-musl)
148
+ ffi (1.17.4-arm64-darwin)
149
+ ffi (1.17.4-x86_64-darwin)
150
+ ffi (1.17.4-x86_64-linux-gnu)
151
+ ffi (1.17.4-x86_64-linux-musl)
152
+ globalid (1.3.0)
153
+ activesupport (>= 6.1)
154
+ i18n (1.14.8)
155
+ concurrent-ruby (~> 1.0)
156
+ io-console (0.8.2)
157
+ irb (1.17.0)
158
+ pp (>= 0.6.0)
159
+ prism (>= 1.3.0)
160
+ rdoc (>= 4.0.0)
161
+ reline (>= 0.4.2)
162
+ json (2.19.3)
163
+ language_server-protocol (3.17.0.5)
164
+ lint_roller (1.1.0)
165
+ logger (1.7.0)
166
+ loofah (2.25.1)
167
+ crass (~> 1.0.2)
168
+ nokogiri (>= 1.12.0)
169
+ mail (2.9.0)
170
+ logger
171
+ mini_mime (>= 0.1.1)
172
+ net-imap
173
+ net-pop
174
+ net-smtp
175
+ marcel (1.1.0)
176
+ memoist3 (1.0.0)
177
+ mini_mime (1.1.5)
178
+ minitest (6.0.3)
179
+ drb (~> 2.0)
180
+ prism (~> 1.5)
181
+ multi_test (1.1.0)
182
+ mutex_m (0.3.0)
183
+ net-imap (0.6.3)
184
+ date
185
+ net-protocol
186
+ net-pop (0.1.2)
187
+ net-protocol
188
+ net-protocol (0.2.2)
189
+ timeout
190
+ net-smtp (0.5.1)
191
+ net-protocol
192
+ nio4r (2.7.5)
193
+ nokogiri (1.19.2-aarch64-linux-gnu)
194
+ racc (~> 1.4)
195
+ nokogiri (1.19.2-aarch64-linux-musl)
196
+ racc (~> 1.4)
197
+ nokogiri (1.19.2-arm-linux-gnu)
198
+ racc (~> 1.4)
199
+ nokogiri (1.19.2-arm-linux-musl)
200
+ racc (~> 1.4)
201
+ nokogiri (1.19.2-arm64-darwin)
202
+ racc (~> 1.4)
203
+ nokogiri (1.19.2-x86_64-darwin)
204
+ racc (~> 1.4)
205
+ nokogiri (1.19.2-x86_64-linux-gnu)
206
+ racc (~> 1.4)
207
+ nokogiri (1.19.2-x86_64-linux-musl)
208
+ racc (~> 1.4)
209
+ parallel (1.28.0)
210
+ parser (3.3.11.1)
211
+ ast (~> 2.4.1)
212
+ racc
213
+ pg (1.6.3)
214
+ pg (1.6.3-aarch64-linux)
215
+ pg (1.6.3-aarch64-linux-musl)
216
+ pg (1.6.3-arm64-darwin)
217
+ pg (1.6.3-x86_64-darwin)
218
+ pg (1.6.3-x86_64-linux)
219
+ pg (1.6.3-x86_64-linux-musl)
220
+ pp (0.6.3)
221
+ prettyprint
222
+ prettyprint (0.2.0)
223
+ prism (1.9.0)
224
+ propshaft (1.3.1)
225
+ actionpack (>= 7.0.0)
226
+ activesupport (>= 7.0.0)
227
+ rack
228
+ psych (5.3.1)
229
+ date
230
+ stringio
231
+ puma (8.0.0)
232
+ nio4r (~> 2.0)
233
+ racc (1.8.1)
234
+ rack (3.2.6)
235
+ rack-session (2.1.2)
236
+ base64 (>= 0.1.0)
237
+ rack (>= 3.0.0)
238
+ rack-test (2.2.0)
239
+ rack (>= 1.3)
240
+ rackup (2.3.1)
241
+ rack (>= 3)
242
+ rails (8.1.3)
243
+ actioncable (= 8.1.3)
244
+ actionmailbox (= 8.1.3)
245
+ actionmailer (= 8.1.3)
246
+ actionpack (= 8.1.3)
247
+ actiontext (= 8.1.3)
248
+ actionview (= 8.1.3)
249
+ activejob (= 8.1.3)
250
+ activemodel (= 8.1.3)
251
+ activerecord (= 8.1.3)
252
+ activestorage (= 8.1.3)
253
+ activesupport (= 8.1.3)
254
+ bundler (>= 1.15.0)
255
+ railties (= 8.1.3)
256
+ rails-dom-testing (2.3.0)
257
+ activesupport (>= 5.0.0)
258
+ minitest
259
+ nokogiri (>= 1.6)
260
+ rails-html-sanitizer (1.7.0)
261
+ loofah (~> 2.25)
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)
263
+ railties (8.1.3)
264
+ actionpack (= 8.1.3)
265
+ activesupport (= 8.1.3)
266
+ irb (~> 1.13)
267
+ rackup (>= 1.0.0)
268
+ rake (>= 12.2)
269
+ thor (~> 1.0, >= 1.2.2)
270
+ tsort (>= 0.2)
271
+ zeitwerk (~> 2.6)
272
+ rainbow (3.1.1)
273
+ rake (13.3.1)
274
+ rdoc (7.2.0)
275
+ erb
276
+ psych (>= 4.0.0)
277
+ tsort
278
+ regexp_parser (2.12.0)
279
+ reline (0.6.3)
280
+ io-console (~> 0.5)
281
+ rspec-core (3.13.6)
282
+ rspec-support (~> 3.13.0)
283
+ rspec-expectations (3.13.5)
284
+ diff-lcs (>= 1.2.0, < 2.0)
285
+ rspec-support (~> 3.13.0)
286
+ rspec-its (2.0.0)
287
+ rspec-core (>= 3.13.0)
288
+ rspec-expectations (>= 3.13.0)
289
+ rspec-mocks (3.13.8)
290
+ diff-lcs (>= 1.2.0, < 2.0)
291
+ rspec-support (~> 3.13.0)
292
+ rspec-rails (8.0.4)
293
+ actionpack (>= 7.2)
294
+ activesupport (>= 7.2)
295
+ railties (>= 7.2)
296
+ rspec-core (>= 3.13.0, < 5.0.0)
297
+ rspec-expectations (>= 3.13.0, < 5.0.0)
298
+ rspec-mocks (>= 3.13.0, < 5.0.0)
299
+ rspec-support (>= 3.13.0, < 5.0.0)
300
+ rspec-support (3.13.7)
301
+ rspec_junit_formatter (0.6.0)
302
+ rspec-core (>= 2, < 4, != 2.12.0)
303
+ rubocop (1.86.0)
304
+ json (~> 2.3)
305
+ language_server-protocol (~> 3.17.0.2)
306
+ lint_roller (~> 1.1.0)
307
+ parallel (~> 1.10)
308
+ parser (>= 3.3.0.2)
309
+ rainbow (>= 2.2.2, < 4.0)
310
+ regexp_parser (>= 2.9.3, < 3.0)
311
+ rubocop-ast (>= 1.49.0, < 2.0)
312
+ ruby-progressbar (~> 1.7)
313
+ unicode-display_width (>= 2.4.0, < 4.0)
314
+ rubocop-ast (1.49.1)
315
+ parser (>= 3.3.7.2)
316
+ prism (~> 1.7)
317
+ rubocop-performance (1.26.1)
318
+ lint_roller (~> 1.1)
319
+ rubocop (>= 1.75.0, < 2.0)
320
+ rubocop-ast (>= 1.47.1, < 2.0)
321
+ rubocop-rails (2.34.3)
322
+ activesupport (>= 4.2.0)
323
+ lint_roller (~> 1.1)
324
+ rack (>= 1.1)
325
+ rubocop (>= 1.75.0, < 2.0)
326
+ rubocop-ast (>= 1.44.0, < 2.0)
327
+ rubocop-rails-omakase (1.1.0)
328
+ rubocop (>= 1.72)
329
+ rubocop-performance (>= 1.24)
330
+ rubocop-rails (>= 2.30)
331
+ ruby-progressbar (1.13.0)
332
+ securerandom (0.4.1)
333
+ shoulda-matchers (7.0.1)
334
+ activesupport (>= 7.1)
335
+ simplecov (0.22.0)
336
+ docile (~> 1.1)
337
+ simplecov-html (~> 0.11)
338
+ simplecov_json_formatter (~> 0.1)
339
+ simplecov-html (0.13.2)
340
+ simplecov_json_formatter (0.1.4)
341
+ stringio (3.2.0)
342
+ sys-uname (1.5.1)
343
+ ffi (~> 1.1)
344
+ memoist3 (~> 1.0.0)
345
+ thor (1.5.0)
346
+ timecop (0.9.10)
347
+ timeout (0.6.1)
348
+ tsort (0.2.0)
349
+ tzinfo (2.0.6)
350
+ concurrent-ruby (~> 1.0)
351
+ unicode-display_width (3.2.0)
352
+ unicode-emoji (~> 4.1)
353
+ unicode-emoji (4.2.0)
354
+ uri (1.1.1)
355
+ useragent (0.16.11)
356
+ websocket-driver (0.8.0)
357
+ base64
358
+ websocket-extensions (>= 0.1.0)
359
+ websocket-extensions (0.1.5)
360
+ zeitwerk (2.7.5)
361
+
362
+ PLATFORMS
363
+ aarch64-linux
364
+ aarch64-linux-gnu
365
+ aarch64-linux-musl
366
+ arm-linux-gnu
367
+ arm-linux-musl
368
+ arm64-darwin
369
+ x86_64-darwin
370
+ x86_64-linux
371
+ x86_64-linux-gnu
372
+ x86_64-linux-musl
373
+
374
+ DEPENDENCIES
375
+ activerecord (~> 8.1.0)
376
+ appraisal (~> 2.5.0)
377
+ bundler (~> 4.0)
378
+ chronic
379
+ cucumber
380
+ factory_bot_rails
381
+ lookup_by!
382
+ morty!
383
+ pg
384
+ propshaft
385
+ puma
386
+ rails
387
+ railties (~> 8.1.0)
388
+ rake (> 10.0)
389
+ rspec-its
390
+ rspec-rails
391
+ rspec_junit_formatter
392
+ rubocop-rails-omakase
393
+ shoulda-matchers
394
+ simplecov
395
+ timecop
396
+
397
+ CHECKSUMS
398
+ action_text-trix (2.1.18) sha256=3fdb83f8bff4145d098be283cdd47ac41caf5110bfa6df4695ed7127d7fb3642
399
+ actioncable (8.1.3) sha256=e5bc7f75e44e6a22de29c4f43176927c3a9ce4824464b74ed18d8226e75a80f0
400
+ actionmailbox (8.1.3) sha256=df7da474eaa0e70df4ed5a6fef66eb3b3b0f2dbf7f14518deee8d77f1b4aae59
401
+ actionmailer (8.1.3) sha256=831f724891bb70d0aaa4d76581a6321124b6a752cb655c9346aae5479318448d
402
+ actionpack (8.1.3) sha256=af998cae4d47c5d581a2cc363b5c77eb718b7c4b45748d81b1887b25621c29a3
403
+ actiontext (8.1.3) sha256=d291019c00e1ea9e6463011fa214f6081a56d7b9a1d224e7d3f6384c1dafc7d2
404
+ actionview (8.1.3) sha256=1347c88c7f3edb38100c5ce0e9fb5e62d7755f3edc1b61cce2eb0b2c6ea2fd5d
405
+ activejob (8.1.3) sha256=a149b1766aa8204c3c3da7309e4becd40fcd5529c348cffbf6c9b16b565fe8d3
406
+ activemodel (8.1.3) sha256=90c05cbe4cef3649b8f79f13016191ea94c4525ce4a5c0fb7ef909c4b91c8219
407
+ activerecord (8.1.3) sha256=8003be7b2466ba0a2a670e603eeb0a61dd66058fccecfc49901e775260ac70ab
408
+ activestorage (8.1.3) sha256=0564ce9309143951a67615e1bb4e090ee54b8befed417133cae614479b46384d
409
+ activesupport (8.1.3) sha256=21a5e0dfbd4c3ddd9e1317ec6a4d782fa226e7867dc70b0743acda81a1dca20e
410
+ appraisal (2.5.0) sha256=36989221be127913b0dba8d114da2001e6b2dceea7bd4951200eaba764eed3ce
411
+ ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
412
+ base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
413
+ bigdecimal (4.1.1) sha256=1c09efab961da45203c8316b0cdaec0ff391dfadb952dd459584b63ebf8054ca
414
+ builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
415
+ chronic (0.10.2) sha256=766f2fcce6ac3cc152249ed0f2b827770d3e517e2e87c5fba7ed74f4889d2dc3
416
+ colorize (1.1.0) sha256=30b5237f0603f6662ab8d1fc2bd4a96142b806c6415d79e45ef5fdc6a0cfc837
417
+ concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
418
+ connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a
419
+ crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
420
+ cucumber (10.2.0) sha256=fdedbd31ecf40858b60f04853f2aa15c44f5c30bbac29c6a227fa1e7005a8158
421
+ cucumber-ci-environment (11.0.0) sha256=0df79a9e1d0b015b3d9def680f989200d96fef206f4d19ccf86a338c4f71d1e2
422
+ cucumber-core (16.2.0) sha256=592b58a95cf42feef8e5a349f68e363784ba3b6568ffbcf6776e38e136cf970b
423
+ cucumber-cucumber-expressions (19.0.0) sha256=33208ff204732ac9bed42b46993a0a243054f71ece08579d57e53df6a1c9d93a
424
+ cucumber-gherkin (39.0.0) sha256=46f51d87e910f41c3c5cee3b500028ca2b2e7149a413a8280b9a58cee2593e55
425
+ cucumber-html-formatter (22.3.0) sha256=f9768ed05588dbd73a5f3824c2cc648bd86b00206e6972d743af8051281d0729
426
+ cucumber-messages (32.2.0) sha256=42c4056cccf7dd9d07bf678a28b1233efbdaf35789b76b65e071be6b7b00731a
427
+ cucumber-tag-expressions (8.1.0) sha256=9bd8c4b6654f8e5bf2a9c99329b6f32136a75e50cd39d4cfb3927d0fa9f52e21
428
+ date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
429
+ diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
430
+ docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
431
+ drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
432
+ erb (6.0.2) sha256=9fe6264d44f79422c87490a1558479bd0e7dad4dd0e317656e67ea3077b5242b
433
+ erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
434
+ factory_bot (6.5.6) sha256=12beb373214dccc086a7a63763d6718c49769d5606f0501e0a4442676917e077
435
+ factory_bot_rails (6.5.1) sha256=d3cc4851eae4dea8a665ec4a4516895045e710554d2b5ac9e68b94d351bc6d68
436
+ ffi (1.17.4-aarch64-linux-gnu) sha256=b208f06f91ffd8f5e1193da3cae3d2ccfc27fc36fba577baf698d26d91c080df
437
+ ffi (1.17.4-aarch64-linux-musl) sha256=9286b7a615f2676245283aef0a0a3b475ae3aae2bb5448baace630bb77b91f39
438
+ ffi (1.17.4-arm-linux-gnu) sha256=d6dbddf7cb77bf955411af5f187a65b8cd378cb003c15c05697f5feee1cb1564
439
+ ffi (1.17.4-arm-linux-musl) sha256=9d4838ded0465bef6e2426935f6bcc93134b6616785a84ffd2a3d82bc3cf6f95
440
+ ffi (1.17.4-arm64-darwin) sha256=19071aaf1419251b0a46852abf960e77330a3b334d13a4ab51d58b31a937001b
441
+ ffi (1.17.4-x86_64-darwin) sha256=aa70390523cf3235096cf64962b709b4cfbd5c082a2cb2ae714eb0fe2ccda496
442
+ ffi (1.17.4-x86_64-linux-gnu) sha256=9d3db14c2eae074b382fa9c083fe95aec6e0a1451da249eab096c34002bc752d
443
+ ffi (1.17.4-x86_64-linux-musl) sha256=3fdf9888483de005f8ef8d1cf2d3b20d86626af206cbf780f6a6a12439a9c49e
444
+ globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11
445
+ i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
446
+ io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
447
+ irb (1.17.0) sha256=168c4ddb93d8a361a045c41d92b2952c7a118fa73f23fe14e55609eb7a863aae
448
+ json (2.19.3) sha256=289b0bb53052a1fa8c34ab33cc750b659ba14a5c45f3fcf4b18762dc67c78646
449
+ language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
450
+ lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
451
+ logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
452
+ loofah (2.25.1) sha256=d436c73dbd0c1147b16c4a41db097942d217303e1f7728704b37e4df9f6d2e04
453
+ lookup_by (0.12.0)
454
+ mail (2.9.0) sha256=6fa6673ecd71c60c2d996260f9ee3dd387d4673b8169b502134659ece6d34941
455
+ marcel (1.1.0) sha256=fdcfcfa33cc52e93c4308d40e4090a5d4ea279e160a7f6af988260fa970e0bee
456
+ memoist3 (1.0.0) sha256=686e42402cf150a362050c23143dc57b0ef88f8c344943ff8b7845792b50d56f
457
+ mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef
458
+ minitest (6.0.3) sha256=88ac8a1de36c00692420e7cb3cc11a0773bbcb126aee1c249f320160a7d11411
459
+ morty (0.1.0)
460
+ multi_test (1.1.0) sha256=e9e550cdd863fb72becfe344aefdcd4cbd26ebf307847f4a6c039a4082324d10
461
+ mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751
462
+ net-imap (0.6.3) sha256=9bab75f876596d09ee7bf911a291da478e0cd6badc54dfb82874855ccc82f2ad
463
+ net-pop (0.1.2) sha256=848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3
464
+ net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8
465
+ net-smtp (0.5.1) sha256=ed96a0af63c524fceb4b29b0d352195c30d82dd916a42f03c62a3a70e5b70736
466
+ nio4r (2.7.5) sha256=6c90168e48fb5f8e768419c93abb94ba2b892a1d0602cb06eef16d8b7df1dca1
467
+ nokogiri (1.19.2-aarch64-linux-gnu) sha256=c34d5c8208025587554608e98fd88ab125b29c80f9352b821964e9a5d5cfbd19
468
+ nokogiri (1.19.2-aarch64-linux-musl) sha256=7f6b4b0202d507326841a4f790294bf75098aef50c7173443812e3ac5cb06515
469
+ nokogiri (1.19.2-arm-linux-gnu) sha256=b7fa1139016f3dc850bda1260988f0d749934a939d04ef2da13bec060d7d5081
470
+ nokogiri (1.19.2-arm-linux-musl) sha256=61114d44f6742ff72194a1b3020967201e2eb982814778d130f6471c11f9828c
471
+ nokogiri (1.19.2-arm64-darwin) sha256=58d8ea2e31a967b843b70487a44c14c8ba1866daa1b9da9be9dbdf1b43dee205
472
+ nokogiri (1.19.2-x86_64-darwin) sha256=7d9af11fda72dfaa2961d8c4d5380ca0b51bc389dc5f8d4b859b9644f195e7a4
473
+ nokogiri (1.19.2-x86_64-linux-gnu) sha256=fa8feca882b73e871a9845f3817a72e9734c8e974bdc4fbad6e4bc6e8076b94f
474
+ nokogiri (1.19.2-x86_64-linux-musl) sha256=93128448e61a9383a30baef041bf1f5817e22f297a1d400521e90294445069a8
475
+ parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970
476
+ parser (3.3.11.1) sha256=d17ace7aabe3e72c3cc94043714be27cc6f852f104d81aa284c2281aecc65d54
477
+ pg (1.6.3) sha256=1388d0563e13d2758c1089e35e973a3249e955c659592d10e5b77c468f628a99
478
+ pg (1.6.3-aarch64-linux) sha256=0698ad563e02383c27510b76bf7d4cd2de19cd1d16a5013f375dd473e4be72ea
479
+ pg (1.6.3-aarch64-linux-musl) sha256=06a75f4ea04b05140146f2a10550b8e0d9f006a79cdaf8b5b130cde40e3ecc2c
480
+ pg (1.6.3-arm64-darwin) sha256=7240330b572e6355d7c75a7de535edb5dfcbd6295d9c7777df4d9dddfb8c0e5f
481
+ pg (1.6.3-x86_64-darwin) sha256=ee2e04a17c0627225054ffeb43e31a95be9d7e93abda2737ea3ce4a62f2729d6
482
+ pg (1.6.3-x86_64-linux) sha256=5d9e188c8f7a0295d162b7b88a768d8452a899977d44f3274d1946d67920ae8d
483
+ pg (1.6.3-x86_64-linux-musl) sha256=9c9c90d98c72f78eb04c0f55e9618fe55d1512128e411035fe229ff427864009
484
+ pp (0.6.3) sha256=2951d514450b93ccfeb1df7d021cae0da16e0a7f95ee1e2273719669d0ab9df6
485
+ prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
486
+ prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
487
+ propshaft (1.3.1) sha256=9acc664ef67e819ffa3d95bd7ad4c3623ea799110c5f4dee67fa7e583e74c392
488
+ psych (5.3.1) sha256=eb7a57cef10c9d70173ff74e739d843ac3b2c019a003de48447b2963d81b1974
489
+ puma (8.0.0) sha256=1681050b8b60fab1d3033255ab58b6aec64cd063e43fc6f8204bcb8bf9364b88
490
+ racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
491
+ rack (3.2.6) sha256=5ed78e1f73b2e25679bec7d45ee2d4483cc4146eb1be0264fc4d94cb5ef212c2
492
+ rack-session (2.1.2) sha256=595434f8c0c3473ae7d7ac56ecda6cc6dfd9d37c0b2b5255330aa1576967ffe8
493
+ rack-test (2.2.0) sha256=005a36692c306ac0b4a9350355ee080fd09ddef1148a5f8b2ac636c720f5c463
494
+ rackup (2.3.1) sha256=6c79c26753778e90983761d677a48937ee3192b3ffef6bc963c0950f94688868
495
+ rails (8.1.3) sha256=6d017ba5348c98fc909753a8169b21d44de14d2a0b92d140d1a966834c3c9cd3
496
+ rails-dom-testing (2.3.0) sha256=8acc7953a7b911ca44588bf08737bc16719f431a1cc3091a292bca7317925c1d
497
+ rails-html-sanitizer (1.7.0) sha256=28b145cceaf9cc214a9874feaa183c3acba036c9592b19886e0e45efc62b1e89
498
+ railties (8.1.3) sha256=913eb0e0cb520aac687ffd74916bd726d48fa21f47833c6292576ef6a286de22
499
+ rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
500
+ rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c
501
+ rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192
502
+ regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb
503
+ reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
504
+ rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
505
+ rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
506
+ rspec-its (2.0.0) sha256=a88e8bc38149f2835e93533591ec4f5c829aacbfd41269a2e6f9f5b82f5260df
507
+ rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47
508
+ rspec-rails (8.0.4) sha256=06235692fc0892683d3d34977e081db867434b3a24ae0dd0c6f3516bad4e22df
509
+ rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
510
+ rspec_junit_formatter (0.6.0) sha256=40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15
511
+ rubocop (1.86.0) sha256=4ff1186fe16ebe9baff5e7aad66bb0ad4cabf5cdcd419f773146dbba2565d186
512
+ rubocop-ast (1.49.1) sha256=4412f3ee70f6fe4546cc489548e0f6fcf76cafcfa80fa03af67098ffed755035
513
+ rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
514
+ rubocop-rails (2.34.3) sha256=10d37989024865ecda8199f311f3faca990143fbac967de943f88aca11eb9ad2
515
+ rubocop-rails-omakase (1.1.0) sha256=2af73ac8ee5852de2919abbd2618af9c15c19b512c4cfc1f9a5d3b6ef009109d
516
+ ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
517
+ securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
518
+ shoulda-matchers (7.0.1) sha256=b4bfd8744c10e0a36c8ac1a687f921ee7e25ed529e50488d61b79a8688749c77
519
+ simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
520
+ simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
521
+ simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
522
+ stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1
523
+ sys-uname (1.5.1) sha256=784d7e6491b0393c25cbbe5ac38324ac7be9fda083a6094832648af669386d7b
524
+ thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73
525
+ timecop (0.9.10) sha256=12ba45ce57cdcf6b1043cb6cdffa6381fd89ce10d369c28a7f6f04dc1b0cd8eb
526
+ timeout (0.6.1) sha256=78f57368a7e7bbadec56971f78a3f5ecbcfb59b7fcbb0a3ed6ddc08a5094accb
527
+ tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
528
+ tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
529
+ unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
530
+ unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
531
+ uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
532
+ useragent (0.16.11) sha256=700e6413ad4bb954bb63547fa098dddf7b0ebe75b40cc6f93b8d54255b173844
533
+ websocket-driver (0.8.0) sha256=ed0dba4b943c22f17f9a734817e808bc84cdce6a7e22045f5315aa57676d4962
534
+ websocket-extensions (0.1.5) sha256=1c6ba63092cda343eb53fc657110c71c754c56484aad42578495227d717a8241
535
+ zeitwerk (2.7.5) sha256=d8da92128c09ea6ec62c949011b00ed4a20242b255293dd66bf41545398f73dd
536
+
537
+ BUNDLED WITH
538
+ 4.0.6