webhukhs 0.6.0 → 0.8.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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/.standard.yml +2 -0
  3. data/.yard-lint.yml +296 -0
  4. data/AGENTS.md +56 -0
  5. data/Appraisals +6 -2
  6. data/CHANGELOG.md +20 -0
  7. data/README.md +101 -11
  8. data/Rakefile +7 -0
  9. data/config/mutant.rb +37 -0
  10. data/config/mutant.yml +25 -0
  11. data/example/Gemfile +5 -6
  12. data/example/Gemfile.lock +260 -141
  13. data/example/app/webhooks/acme_handler.rb +16 -0
  14. data/example/app/webhooks/flaky_handler.rb +8 -0
  15. data/example/app/webhooks/signed_handler.rb +10 -0
  16. data/example/config/initializers/webhukhs.rb +4 -3
  17. data/example/config/routes.rb +3 -0
  18. data/example/db/migrate/20240601000000_add_headers_to_webhukhs_webhooks.rb +7 -0
  19. data/example/db/schema.rb +2 -1
  20. data/example/db/seeds.rb +71 -7
  21. data/gemfiles/{rails_7.1.gemfile → rails_7.2.gemfile} +1 -4
  22. data/gemfiles/rails_7.2.gemfile.lock +477 -0
  23. data/gemfiles/rails_8.0.gemfile +0 -3
  24. data/gemfiles/rails_8.0.gemfile.lock +74 -4
  25. data/gemfiles/rails_8.1.gemfile +0 -3
  26. data/gemfiles/rails_8.1.gemfile.lock +74 -4
  27. data/gemfiles/rails_master.gemfile +7 -0
  28. data/lib/webhukhs/admin/application_controller.rb +32 -0
  29. data/lib/webhukhs/admin/assets/admin.css +476 -0
  30. data/lib/webhukhs/admin/assets/admin.js +111 -0
  31. data/lib/webhukhs/admin/config/routes.rb +6 -0
  32. data/lib/webhukhs/admin/engine.rb +20 -0
  33. data/lib/webhukhs/admin/received_webhook_presenter.rb +63 -0
  34. data/lib/webhukhs/admin/received_webhooks_controller.rb +60 -0
  35. data/lib/webhukhs/admin/view_helper.rb +50 -0
  36. data/lib/webhukhs/admin/views/layouts/webhukhs/admin/application.html.erb +22 -0
  37. data/lib/webhukhs/admin/views/webhukhs/admin/received_webhooks/index.html.erb +50 -0
  38. data/lib/webhukhs/admin/views/webhukhs/admin/received_webhooks/show.html.erb +55 -0
  39. data/lib/webhukhs/admin.rb +17 -0
  40. data/lib/webhukhs/base_handler.rb +9 -6
  41. data/lib/webhukhs/controllers/receive_webhooks_controller.rb +26 -7
  42. data/lib/webhukhs/engine.rb +1 -4
  43. data/lib/webhukhs/install_generator.rb +9 -2
  44. data/lib/webhukhs/jobs/processing_job.rb +13 -12
  45. data/lib/webhukhs/models/received_webhook.rb +21 -9
  46. data/lib/webhukhs/version.rb +1 -1
  47. data/lib/webhukhs.rb +9 -0
  48. data/test/admin_test.rb +334 -0
  49. data/test/base_handler_test.rb +125 -0
  50. data/test/browser/admin_click_through.rb +208 -0
  51. data/test/processing_job_test.rb +152 -12
  52. data/test/received_webhook_test.rb +260 -0
  53. data/test/test_app.rb +39 -15
  54. data/test/test_helper.rb +69 -0
  55. data/test/webhukhs_test.rb +111 -49
  56. metadata +173 -11
  57. data/example/.ruby-version +0 -1
  58. data/gemfiles/rails_7.1.gemfile.lock +0 -412
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- webhukhs (0.5.0)
5
- rails (>= 7.0)
4
+ webhukhs (0.7.0)
5
+ assiette (~> 0.6)
6
+ rails (>= 7.2)
6
7
  state_machine_enum
7
8
 
8
9
  GEM
@@ -82,10 +83,14 @@ GEM
82
83
  securerandom (>= 0.3)
83
84
  tzinfo (~> 2.0, >= 2.0.5)
84
85
  uri (>= 0.13.1)
86
+ addressable (2.9.0)
87
+ public_suffix (>= 2.0.2, < 8.0)
85
88
  appraisal (2.5.0)
86
89
  bundler
87
90
  rake
88
91
  thor (>= 0.14.0)
92
+ assiette (0.6.1)
93
+ actionpack (>= 7.2)
89
94
  ast (2.4.3)
90
95
  base64 (0.3.0)
91
96
  bigdecimal (4.0.1)
@@ -94,9 +99,16 @@ GEM
94
99
  connection_pool (3.0.2)
95
100
  crass (1.0.6)
96
101
  date (3.5.1)
102
+ diff-lcs (2.0.0)
103
+ docile (1.4.1)
97
104
  drb (2.2.3)
98
105
  erb (6.0.1)
99
106
  erubi (1.13.1)
107
+ ferrum (0.19.1)
108
+ addressable (~> 2.5)
109
+ base64 (~> 0.2)
110
+ concurrent-ruby (~> 1.1)
111
+ websocket-driver (~> 0.7)
100
112
  globalid (1.3.0)
101
113
  activesupport (>= 6.1)
102
114
  i18n (1.14.8)
@@ -123,6 +135,21 @@ GEM
123
135
  marcel (1.1.0)
124
136
  mini_mime (1.1.5)
125
137
  minitest (5.27.0)
138
+ minitest-strict (1.0.1)
139
+ minitest (>= 5.21, < 7)
140
+ mutant (0.17.1)
141
+ diff-lcs (>= 1.6, < 3)
142
+ irb (~> 1.15)
143
+ parser (~> 3.3.10)
144
+ regexp_parser (~> 2.10)
145
+ securerandom (>= 0.3)
146
+ sorbet-runtime (~> 0.6.0)
147
+ unparser (>= 0.8.2, < 0.10)
148
+ mutant-minitest (0.17.1)
149
+ minitest (>= 5.11, < 7)
150
+ mutant (= 0.17.1)
151
+ mutex_m (~> 0.2)
152
+ mutex_m (0.3.0)
126
153
  net-imap (0.6.2)
127
154
  date
128
155
  net-protocol
@@ -160,6 +187,9 @@ GEM
160
187
  psych (5.3.1)
161
188
  date
162
189
  stringio
190
+ public_suffix (7.0.5)
191
+ puma (8.0.2)
192
+ nio4r (~> 2.0)
163
193
  racc (1.8.1)
164
194
  rack (3.2.4)
165
195
  rack-session (2.1.1)
@@ -228,6 +258,13 @@ GEM
228
258
  rubocop-ast (>= 1.47.1, < 2.0)
229
259
  ruby-progressbar (1.13.0)
230
260
  securerandom (0.4.1)
261
+ simplecov (0.22.0)
262
+ docile (~> 1.1)
263
+ simplecov-html (~> 0.11)
264
+ simplecov_json_formatter (~> 0.1)
265
+ simplecov-html (0.13.2)
266
+ simplecov_json_formatter (0.1.4)
267
+ sorbet-runtime (0.6.13584)
231
268
  sprockets (4.2.2)
232
269
  concurrent-ruby (~> 1.0)
233
270
  logger
@@ -267,12 +304,20 @@ GEM
267
304
  unicode-display_width (3.2.0)
268
305
  unicode-emoji (~> 4.1)
269
306
  unicode-emoji (4.2.0)
307
+ unparser (0.9.0)
308
+ diff-lcs (>= 1.6, < 3)
309
+ parser (>= 3.3.0)
310
+ prism (>= 1.5.1)
270
311
  uri (1.1.1)
271
312
  useragent (0.16.11)
272
313
  websocket-driver (0.8.0)
273
314
  base64
274
315
  websocket-extensions (>= 0.1.0)
275
316
  websocket-extensions (0.1.5)
317
+ yard (0.9.45)
318
+ yard-lint (1.12.0)
319
+ yard (~> 0.9)
320
+ zeitwerk (~> 2.6)
276
321
  zeitwerk (2.7.4)
277
322
 
278
323
  PLATFORMS
@@ -287,14 +332,21 @@ PLATFORMS
287
332
 
288
333
  DEPENDENCIES
289
334
  appraisal
335
+ ferrum (~> 0.19)
290
336
  magic_frozen_string_literal
291
337
  minitest (~> 5.0)
338
+ minitest-strict (~> 1.0)
339
+ mutant
340
+ mutant-minitest
341
+ puma
292
342
  rails (~> 8.0)
293
343
  rake (~> 13.0)
344
+ simplecov (~> 0.22)
294
345
  sprockets-rails
295
346
  sqlite3
296
347
  standard
297
348
  webhukhs!
349
+ yard-lint
298
350
 
299
351
  CHECKSUMS
300
352
  action_text-trix (2.1.16) sha256=f645a2c21821b8449fd1d6770708f4031c91a2eedf9ef476e9be93c64e703a8a
@@ -309,7 +361,9 @@ CHECKSUMS
309
361
  activerecord (8.1.1) sha256=e32c3a03e364fd803498eb4150c21bedc995aa83bc27122a94d480ab1dcb3d17
310
362
  activestorage (8.1.1) sha256=bc01d8b4c55e309a0a2e218bfe502c382c9f232e28b1f4b0adc9d8719d2bf28d
311
363
  activesupport (8.1.1) sha256=5e92534e8d0c8b8b5e6b16789c69dbea65c1d7b752269f71a39422e9546cea67
364
+ addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af
312
365
  appraisal (2.5.0) sha256=36989221be127913b0dba8d114da2001e6b2dceea7bd4951200eaba764eed3ce
366
+ assiette (0.6.1) sha256=e0508d01d049c9f494fb87459b6a897fbb751fd5106714ee218bb45eaeaa94d0
313
367
  ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
314
368
  base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
315
369
  bigdecimal (4.0.1) sha256=8b07d3d065a9f921c80ceaea7c9d4ae596697295b584c296fe599dd0ad01c4a7
@@ -318,9 +372,12 @@ CHECKSUMS
318
372
  connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a
319
373
  crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
320
374
  date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
375
+ diff-lcs (2.0.0) sha256=708a5d52ec2945b50f8f53a181174aa1ef2c496edf81c05957fe956dabb363d5
376
+ docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
321
377
  drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
322
378
  erb (6.0.1) sha256=28ecdd99c5472aebd5674d6061e3c6b0a45c049578b071e5a52c2a7f13c197e5
323
379
  erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
380
+ ferrum (0.19.1) sha256=2e9ab588d24e08b6765a5a349bc5d367e5c09d3bead26270f1f2279ad7a4bc25
324
381
  globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11
325
382
  i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
326
383
  io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
@@ -335,6 +392,10 @@ CHECKSUMS
335
392
  marcel (1.1.0) sha256=fdcfcfa33cc52e93c4308d40e4090a5d4ea279e160a7f6af988260fa970e0bee
336
393
  mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef
337
394
  minitest (5.27.0) sha256=2d3b17f8a36fe7801c1adcffdbc38233b938eb0b4966e97a6739055a45fa77d5
395
+ minitest-strict (1.0.1) sha256=5bf179ed48c21013575cc00506be3fd6ceec8529636ce6897468f9574004ae06
396
+ mutant (0.17.1) sha256=24c7ceecae0b4efe550ab88ff06017a93828c73cd9569bda1b2689575b120e6c
397
+ mutant-minitest (0.17.1) sha256=53b71286b28019b64d3c565680244ce8dc3aa9095d1aa4ea4faee235ddea8a78
398
+ mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751
338
399
  net-imap (0.6.2) sha256=08caacad486853c61676cca0c0c47df93db02abc4a8239a8b67eb0981428acc6
339
400
  net-pop (0.1.2) sha256=848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3
340
401
  net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8
@@ -354,6 +415,8 @@ CHECKSUMS
354
415
  prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
355
416
  prism (1.7.0) sha256=10062f734bf7985c8424c44fac382ac04a58124ea3d220ec3ba9fe4f2da65103
356
417
  psych (5.3.1) sha256=eb7a57cef10c9d70173ff74e739d843ac3b2c019a003de48447b2963d81b1974
418
+ public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623
419
+ puma (8.0.2) sha256=c8ed871dfbbe66448ea9ffd46692342d9804d4071522b52b5331b7b6e7b686fb
357
420
  racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
358
421
  rack (3.2.4) sha256=5d74b6f75082a643f43c1e76b419c40f0e5527fcfee1e669ac1e6b73c0ccb6f6
359
422
  rack-session (2.1.1) sha256=0b6dc07dea7e4b583f58a48e8b806d4c9f1c6c9214ebc202ec94562cbea2e4e9
@@ -373,6 +436,10 @@ CHECKSUMS
373
436
  rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
374
437
  ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
375
438
  securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
439
+ simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
440
+ simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
441
+ simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
442
+ sorbet-runtime (0.6.13584) sha256=719bd88604fcc8d79c111784754b202fad24e97ac68187be338118e01ae8549c
376
443
  sprockets (4.2.2) sha256=761e5a49f1c288704763f73139763564c845a8f856d52fba013458f8af1b59b1
377
444
  sprockets-rails (3.5.2) sha256=a9e88e6ce9f8c912d349aa5401509165ec42326baf9e942a85de4b76dbc4119e
378
445
  sqlite3 (2.9.0-aarch64-linux-gnu) sha256=cfe1e0216f46d7483839719bf827129151e6c680317b99d7b8fc1597a3e13473
@@ -394,12 +461,15 @@ CHECKSUMS
394
461
  tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
395
462
  unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
396
463
  unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
464
+ unparser (0.9.0) sha256=4331f174a73a23b69250b13d47da3794ed1449711ee0f9ed8947dc020ba76067
397
465
  uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
398
466
  useragent (0.16.11) sha256=700e6413ad4bb954bb63547fa098dddf7b0ebe75b40cc6f93b8d54255b173844
399
- webhukhs (0.5.0)
467
+ webhukhs (0.7.0)
400
468
  websocket-driver (0.8.0) sha256=ed0dba4b943c22f17f9a734817e808bc84cdce6a7e22045f5315aa57676d4962
401
469
  websocket-extensions (0.1.5) sha256=1c6ba63092cda343eb53fc657110c71c754c56484aad42578495227d717a8241
470
+ yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51
471
+ yard-lint (1.12.0) sha256=e9899cfb09e9cdc33bf300933981f87abea9bebd9a83d679209a5d4ce3b0a937
402
472
  zeitwerk (2.7.4) sha256=2bef90f356bdafe9a6c2bd32bcd804f83a4f9b8bc27f3600fff051eb3edcec8b
403
473
 
404
474
  BUNDLED WITH
405
- 4.0.1
475
+ 4.0.3
@@ -2,9 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "sqlite3"
6
- gem "sprockets-rails"
7
- gem "appraisal"
8
5
  gem "rails", "~> 8.1"
9
6
 
10
7
  gemspec path: "../"
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- webhukhs (0.5.0)
5
- rails (>= 7.0)
4
+ webhukhs (0.7.0)
5
+ assiette (~> 0.6)
6
+ rails (>= 7.2)
6
7
  state_machine_enum
7
8
 
8
9
  GEM
@@ -82,10 +83,14 @@ GEM
82
83
  securerandom (>= 0.3)
83
84
  tzinfo (~> 2.0, >= 2.0.5)
84
85
  uri (>= 0.13.1)
86
+ addressable (2.9.0)
87
+ public_suffix (>= 2.0.2, < 8.0)
85
88
  appraisal (2.5.0)
86
89
  bundler
87
90
  rake
88
91
  thor (>= 0.14.0)
92
+ assiette (0.6.1)
93
+ actionpack (>= 7.2)
89
94
  ast (2.4.3)
90
95
  base64 (0.3.0)
91
96
  bigdecimal (4.0.1)
@@ -94,9 +99,16 @@ GEM
94
99
  connection_pool (3.0.2)
95
100
  crass (1.0.6)
96
101
  date (3.5.1)
102
+ diff-lcs (2.0.0)
103
+ docile (1.4.1)
97
104
  drb (2.2.3)
98
105
  erb (6.0.1)
99
106
  erubi (1.13.1)
107
+ ferrum (0.19.1)
108
+ addressable (~> 2.5)
109
+ base64 (~> 0.2)
110
+ concurrent-ruby (~> 1.1)
111
+ websocket-driver (~> 0.7)
100
112
  globalid (1.3.0)
101
113
  activesupport (>= 6.1)
102
114
  i18n (1.14.8)
@@ -123,6 +135,21 @@ GEM
123
135
  marcel (1.1.0)
124
136
  mini_mime (1.1.5)
125
137
  minitest (5.27.0)
138
+ minitest-strict (1.0.1)
139
+ minitest (>= 5.21, < 7)
140
+ mutant (0.17.1)
141
+ diff-lcs (>= 1.6, < 3)
142
+ irb (~> 1.15)
143
+ parser (~> 3.3.10)
144
+ regexp_parser (~> 2.10)
145
+ securerandom (>= 0.3)
146
+ sorbet-runtime (~> 0.6.0)
147
+ unparser (>= 0.8.2, < 0.10)
148
+ mutant-minitest (0.17.1)
149
+ minitest (>= 5.11, < 7)
150
+ mutant (= 0.17.1)
151
+ mutex_m (~> 0.2)
152
+ mutex_m (0.3.0)
126
153
  net-imap (0.6.2)
127
154
  date
128
155
  net-protocol
@@ -160,6 +187,9 @@ GEM
160
187
  psych (5.3.1)
161
188
  date
162
189
  stringio
190
+ public_suffix (7.0.5)
191
+ puma (8.0.2)
192
+ nio4r (~> 2.0)
163
193
  racc (1.8.1)
164
194
  rack (3.2.4)
165
195
  rack-session (2.1.1)
@@ -228,6 +258,13 @@ GEM
228
258
  rubocop-ast (>= 1.47.1, < 2.0)
229
259
  ruby-progressbar (1.13.0)
230
260
  securerandom (0.4.1)
261
+ simplecov (0.22.0)
262
+ docile (~> 1.1)
263
+ simplecov-html (~> 0.11)
264
+ simplecov_json_formatter (~> 0.1)
265
+ simplecov-html (0.13.2)
266
+ simplecov_json_formatter (0.1.4)
267
+ sorbet-runtime (0.6.13584)
231
268
  sprockets (4.2.2)
232
269
  concurrent-ruby (~> 1.0)
233
270
  logger
@@ -267,12 +304,20 @@ GEM
267
304
  unicode-display_width (3.2.0)
268
305
  unicode-emoji (~> 4.1)
269
306
  unicode-emoji (4.2.0)
307
+ unparser (0.9.0)
308
+ diff-lcs (>= 1.6, < 3)
309
+ parser (>= 3.3.0)
310
+ prism (>= 1.5.1)
270
311
  uri (1.1.1)
271
312
  useragent (0.16.11)
272
313
  websocket-driver (0.8.0)
273
314
  base64
274
315
  websocket-extensions (>= 0.1.0)
275
316
  websocket-extensions (0.1.5)
317
+ yard (0.9.45)
318
+ yard-lint (1.12.0)
319
+ yard (~> 0.9)
320
+ zeitwerk (~> 2.6)
276
321
  zeitwerk (2.7.4)
277
322
 
278
323
  PLATFORMS
@@ -287,14 +332,21 @@ PLATFORMS
287
332
 
288
333
  DEPENDENCIES
289
334
  appraisal
335
+ ferrum (~> 0.19)
290
336
  magic_frozen_string_literal
291
337
  minitest (~> 5.0)
338
+ minitest-strict (~> 1.0)
339
+ mutant
340
+ mutant-minitest
341
+ puma
292
342
  rails (~> 8.1)
293
343
  rake (~> 13.0)
344
+ simplecov (~> 0.22)
294
345
  sprockets-rails
295
346
  sqlite3
296
347
  standard
297
348
  webhukhs!
349
+ yard-lint
298
350
 
299
351
  CHECKSUMS
300
352
  action_text-trix (2.1.16) sha256=f645a2c21821b8449fd1d6770708f4031c91a2eedf9ef476e9be93c64e703a8a
@@ -309,7 +361,9 @@ CHECKSUMS
309
361
  activerecord (8.1.1) sha256=e32c3a03e364fd803498eb4150c21bedc995aa83bc27122a94d480ab1dcb3d17
310
362
  activestorage (8.1.1) sha256=bc01d8b4c55e309a0a2e218bfe502c382c9f232e28b1f4b0adc9d8719d2bf28d
311
363
  activesupport (8.1.1) sha256=5e92534e8d0c8b8b5e6b16789c69dbea65c1d7b752269f71a39422e9546cea67
364
+ addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af
312
365
  appraisal (2.5.0) sha256=36989221be127913b0dba8d114da2001e6b2dceea7bd4951200eaba764eed3ce
366
+ assiette (0.6.1) sha256=e0508d01d049c9f494fb87459b6a897fbb751fd5106714ee218bb45eaeaa94d0
313
367
  ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
314
368
  base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
315
369
  bigdecimal (4.0.1) sha256=8b07d3d065a9f921c80ceaea7c9d4ae596697295b584c296fe599dd0ad01c4a7
@@ -318,9 +372,12 @@ CHECKSUMS
318
372
  connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a
319
373
  crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
320
374
  date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
375
+ diff-lcs (2.0.0) sha256=708a5d52ec2945b50f8f53a181174aa1ef2c496edf81c05957fe956dabb363d5
376
+ docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
321
377
  drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
322
378
  erb (6.0.1) sha256=28ecdd99c5472aebd5674d6061e3c6b0a45c049578b071e5a52c2a7f13c197e5
323
379
  erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
380
+ ferrum (0.19.1) sha256=2e9ab588d24e08b6765a5a349bc5d367e5c09d3bead26270f1f2279ad7a4bc25
324
381
  globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11
325
382
  i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
326
383
  io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
@@ -335,6 +392,10 @@ CHECKSUMS
335
392
  marcel (1.1.0) sha256=fdcfcfa33cc52e93c4308d40e4090a5d4ea279e160a7f6af988260fa970e0bee
336
393
  mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef
337
394
  minitest (5.27.0) sha256=2d3b17f8a36fe7801c1adcffdbc38233b938eb0b4966e97a6739055a45fa77d5
395
+ minitest-strict (1.0.1) sha256=5bf179ed48c21013575cc00506be3fd6ceec8529636ce6897468f9574004ae06
396
+ mutant (0.17.1) sha256=24c7ceecae0b4efe550ab88ff06017a93828c73cd9569bda1b2689575b120e6c
397
+ mutant-minitest (0.17.1) sha256=53b71286b28019b64d3c565680244ce8dc3aa9095d1aa4ea4faee235ddea8a78
398
+ mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751
338
399
  net-imap (0.6.2) sha256=08caacad486853c61676cca0c0c47df93db02abc4a8239a8b67eb0981428acc6
339
400
  net-pop (0.1.2) sha256=848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3
340
401
  net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8
@@ -354,6 +415,8 @@ CHECKSUMS
354
415
  prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
355
416
  prism (1.7.0) sha256=10062f734bf7985c8424c44fac382ac04a58124ea3d220ec3ba9fe4f2da65103
356
417
  psych (5.3.1) sha256=eb7a57cef10c9d70173ff74e739d843ac3b2c019a003de48447b2963d81b1974
418
+ public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623
419
+ puma (8.0.2) sha256=c8ed871dfbbe66448ea9ffd46692342d9804d4071522b52b5331b7b6e7b686fb
357
420
  racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
358
421
  rack (3.2.4) sha256=5d74b6f75082a643f43c1e76b419c40f0e5527fcfee1e669ac1e6b73c0ccb6f6
359
422
  rack-session (2.1.1) sha256=0b6dc07dea7e4b583f58a48e8b806d4c9f1c6c9214ebc202ec94562cbea2e4e9
@@ -373,6 +436,10 @@ CHECKSUMS
373
436
  rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
374
437
  ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
375
438
  securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
439
+ simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
440
+ simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
441
+ simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
442
+ sorbet-runtime (0.6.13584) sha256=719bd88604fcc8d79c111784754b202fad24e97ac68187be338118e01ae8549c
376
443
  sprockets (4.2.2) sha256=761e5a49f1c288704763f73139763564c845a8f856d52fba013458f8af1b59b1
377
444
  sprockets-rails (3.5.2) sha256=a9e88e6ce9f8c912d349aa5401509165ec42326baf9e942a85de4b76dbc4119e
378
445
  sqlite3 (2.9.0-aarch64-linux-gnu) sha256=cfe1e0216f46d7483839719bf827129151e6c680317b99d7b8fc1597a3e13473
@@ -394,12 +461,15 @@ CHECKSUMS
394
461
  tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
395
462
  unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
396
463
  unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
464
+ unparser (0.9.0) sha256=4331f174a73a23b69250b13d47da3794ed1449711ee0f9ed8947dc020ba76067
397
465
  uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
398
466
  useragent (0.16.11) sha256=700e6413ad4bb954bb63547fa098dddf7b0ebe75b40cc6f93b8d54255b173844
399
- webhukhs (0.5.0)
467
+ webhukhs (0.7.0)
400
468
  websocket-driver (0.8.0) sha256=ed0dba4b943c22f17f9a734817e808bc84cdce6a7e22045f5315aa57676d4962
401
469
  websocket-extensions (0.1.5) sha256=1c6ba63092cda343eb53fc657110c71c754c56484aad42578495227d717a8241
470
+ yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51
471
+ yard-lint (1.12.0) sha256=e9899cfb09e9cdc33bf300933981f87abea9bebd9a83d679209a5d4ce3b0a937
402
472
  zeitwerk (2.7.4) sha256=2bef90f356bdafe9a6c2bd32bcd804f83a4f9b8bc27f3600fff051eb3edcec8b
403
473
 
404
474
  BUNDLED WITH
405
- 4.0.1
475
+ 4.0.3
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", github: "rails/rails", branch: "main"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Webhukhs
4
+ module Admin
5
+ # Base controller for the admin pages. Authentication is left to the host application -
6
+ # mount the engine inside whatever guards the rest of your admin.
7
+ class ApplicationController < ActionController::Base
8
+ # Rails hands an engine's controllers its route helpers from an `inherited` hook, which only gets
9
+ # installed when the app initializes - and "webhukhs/admin" may well be required before that
10
+ include Webhukhs::Admin::Engine.routes.url_helpers
11
+
12
+ helper Webhukhs::Admin::Engine.routes.url_helpers
13
+
14
+ layout "webhukhs/admin/application"
15
+ helper Assiette::Helpers
16
+ helper Webhukhs::Admin::ViewHelper
17
+
18
+ # Bodies and headers are whatever a sender chose to send us, so we do not let the page load
19
+ # anything that is not ours
20
+ content_security_policy do |policy|
21
+ policy.default_src :none
22
+ policy.script_src :self
23
+ policy.style_src :self
24
+ policy.img_src :self, :data
25
+ policy.connect_src :self
26
+ policy.base_uri :none
27
+ policy.form_action :self
28
+ policy.frame_ancestors :none
29
+ end
30
+ end
31
+ end
32
+ end