rolemodel-rails 2.1.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +30 -9
- data/Rakefile +3 -3
- data/lib/generators/rolemodel/all_generator.rb +1 -0
- data/lib/generators/rolemodel/core_setup/README.md +27 -0
- data/lib/generators/rolemodel/core_setup/USAGE +12 -0
- data/lib/generators/rolemodel/core_setup/core_setup_generator.rb +23 -0
- data/lib/generators/rolemodel/github/README.md +4 -0
- data/lib/generators/rolemodel/github/templates/workflows/deploy-production.yml +34 -0
- data/lib/generators/rolemodel/github/templates/workflows/deploy-staging.yml +35 -0
- data/lib/generators/rolemodel/good_job/good_job_generator.rb +7 -13
- data/lib/generators/rolemodel/heroku/README.md +20 -1
- data/lib/generators/rolemodel/heroku/heroku_generator.rb +20 -0
- data/lib/generators/rolemodel/heroku/templates/app.json.tt +5 -2
- data/lib/generators/rolemodel/heroku/templates/deploy-app/SKILL.md +202 -0
- data/lib/generators/rolemodel/linters/eslint/eslint_generator.rb +1 -0
- data/lib/generators/rolemodel/linters/rubocop/rubocop_generator.rb +5 -1
- data/lib/generators/rolemodel/lograge/README.md +1 -1
- data/lib/generators/rolemodel/lograge/templates/config/initializers/lograge.rb +1 -1
- data/lib/generators/rolemodel/optics/base/base_generator.rb +3 -2
- data/lib/generators/rolemodel/react/react_generator.rb +1 -0
- data/lib/generators/rolemodel/readme/templates/README.md.erb +2 -4
- data/lib/generators/rolemodel/saas/devise/devise_generator.rb +3 -3
- data/lib/generators/rolemodel/sentry/README.md +25 -0
- data/lib/generators/rolemodel/sentry/USAGE +13 -0
- data/lib/generators/rolemodel/sentry/sentry_generator.rb +114 -0
- data/lib/generators/rolemodel/sentry/templates/app/controllers/concerns/sentry_user.rb +13 -0
- data/lib/generators/rolemodel/sentry/templates/app/javascript/initializers/sentry.js +34 -0
- data/lib/generators/rolemodel/sentry/templates/config/initializers/sentry.rb +68 -0
- data/lib/generators/rolemodel/simple_form/README.md +6 -0
- data/lib/generators/rolemodel/simple_form/USAGE +3 -0
- data/lib/generators/rolemodel/simple_form/simple_form_generator.rb +11 -0
- data/lib/generators/rolemodel/simple_form/templates/app/inputs/switch_checkbox_input.rb +1 -1
- data/lib/generators/rolemodel/slim/templates/app/views/application/_head.html.slim.tt +0 -4
- data/lib/generators/rolemodel/tailored_select/USAGE +2 -1
- data/lib/generators/rolemodel/tailored_select/tailored_select_generator.rb +15 -0
- data/lib/generators/rolemodel/testing/factory_bot/templates/support/factory_bot.rb +2 -0
- data/lib/generators/rolemodel/testing/jasmine_playwright/jasmine_playwright_generator.rb +2 -2
- data/lib/generators/rolemodel/testing/rspec/rspec_generator.rb +8 -10
- data/lib/generators/rolemodel/testing/rspec/templates/spec/rails_helper.rb.tt +4 -1
- data/lib/generators/rolemodel/testing/rspec/templates/spec/support/capybara_drivers.rb.tt +2 -0
- data/lib/generators/rolemodel/testing/rspec/templates/spec/support/helpers/action_cable_helper.rb +2 -0
- data/lib/generators/rolemodel/testing/rspec/templates/spec/support/helpers/test_element_helper.rb +2 -0
- data/lib/generators/rolemodel/testing/rspec/templates/spec/support/helpers.rb.tt +3 -1
- data/lib/generators/rolemodel/testing/vitest/vitest_generator.rb +1 -0
- data/lib/generators/rolemodel/turbo/all/README.md +16 -0
- data/lib/generators/rolemodel/turbo/all/USAGE +5 -0
- data/lib/generators/rolemodel/turbo/all/all_generator.rb +15 -0
- data/lib/generators/rolemodel/turbo/confirm/README.md +25 -0
- data/lib/generators/rolemodel/turbo/confirm/USAGE +5 -0
- data/lib/generators/rolemodel/turbo/confirm/confirm_generator.rb +35 -0
- data/lib/generators/rolemodel/turbo/form/README.md +8 -0
- data/lib/generators/rolemodel/turbo/form/USAGE +5 -0
- data/lib/generators/rolemodel/turbo/form/form_generator.rb +29 -0
- data/lib/generators/rolemodel/turbo/form/templates/app/javascript/controllers/turbo_form_controller.js +15 -0
- data/lib/generators/rolemodel/turbo/form/templates/spec/support/helpers/turbo_form_helper.rb +8 -0
- data/lib/generators/rolemodel/{ui_components → turbo}/modals/README.md +0 -2
- data/lib/generators/rolemodel/turbo/modals/USAGE +5 -0
- data/lib/generators/rolemodel/{ui_components → turbo}/modals/modals_generator.rb +9 -22
- data/lib/generators/rolemodel/{ui_components → turbo}/modals/templates/app/helpers/turbo_frame_link_helper.rb +2 -0
- data/lib/generators/rolemodel/turbo/ready/README.md +12 -0
- data/lib/generators/rolemodel/turbo/ready/USAGE +5 -0
- data/lib/generators/rolemodel/turbo/ready/ready_generator.rb +48 -0
- data/lib/generators/rolemodel/turbo/ready/templates/app/javascript/controllers/prevent_morph_controller.js +22 -0
- data/lib/generators/rolemodel/ui_components/navbar/navbar_generator.rb +11 -14
- data/lib/generators/rolemodel/webpack/README.md +2 -1
- data/lib/generators/rolemodel/webpack/templates/postcss.config.cjs +0 -3
- data/lib/generators/rolemodel/webpack/templates/webpack.config.js +6 -14
- data/lib/generators/rolemodel/webpack/webpack_generator.rb +18 -18
- data/lib/rolemodel/generator_base.rb +15 -0
- data/lib/rolemodel/version.rb +1 -1
- data/lib/rolemodel/yarn.rb +42 -0
- data/lib/rolemodel-rails.rb +0 -1
- metadata +58 -28
- data/lib/generators/rolemodel/linters/rubocop/templates/lib/cops/form_error_response.rb +0 -54
- data/lib/generators/rolemodel/linters/rubocop/templates/lib/cops/no_chrome_tag.rb +0 -45
- data/lib/generators/rolemodel/semaphore/README.md +0 -15
- data/lib/generators/rolemodel/semaphore/USAGE +0 -11
- data/lib/generators/rolemodel/semaphore/semaphore_generator.rb +0 -25
- data/lib/generators/rolemodel/semaphore/templates/heroku-deployment-commands.sh +0 -3
- data/lib/generators/rolemodel/semaphore/templates/production-deploy.yml.erb +0 -17
- data/lib/generators/rolemodel/semaphore/templates/semaphore.yml.erb +0 -145
- data/lib/generators/rolemodel/semaphore/templates/staging-deploy.yml.erb +0 -17
- data/lib/generators/rolemodel/ui_components/modals/USAGE +0 -8
- data/lib/generators/rolemodel/ui_components/modals/templates/app/javascript/controllers/morph_controller.js +0 -23
- data/lib/generators/rolemodel/webpack/templates/app/assets/stylesheets/application.scss +0 -5
- data/lib/generators/rolemodel/webpack/templates/app/javascript/initializers/honeybadger.js +0 -26
- /data/lib/generators/rolemodel/{simple_form → tailored_select}/templates/app/inputs/tailored_select_input.rb +0 -0
- /data/lib/generators/rolemodel/{ui_components/modals/templates/app/javascript/initializers/turbo_confirm.js → turbo/confirm/templates/app/javascript/initializers/turbo_confirm.js.tt} +0 -0
- /data/lib/generators/rolemodel/{ui_components/modals/templates/app/views/application/_confirm.html.slim → turbo/confirm/templates/app/views/application/_confirm.html.slim.tt} +0 -0
- /data/lib/generators/rolemodel/{ui_components → turbo}/modals/templates/app/javascript/controllers/toggle_controller.js +0 -0
- /data/lib/generators/rolemodel/{ui_components → turbo}/modals/templates/app/javascript/initializers/frame_missing_handler.js +0 -0
- /data/lib/generators/rolemodel/{ui_components → turbo}/modals/templates/app/views/layouts/modal.html.slim.tt +0 -0
- /data/lib/generators/rolemodel/{ui_components → turbo}/modals/templates/app/views/layouts/panel.html.slim.tt +0 -0
- /data/lib/generators/rolemodel/{ui_components/modals → turbo/ready}/templates/app/javascript/initializers/before_morph_handler.js +0 -0
- /data/lib/generators/rolemodel/ui_components/navbar/templates/app/assets/stylesheets/components/shoelace/{index.scss → index.css} +0 -0
- /data/lib/generators/rolemodel/ui_components/navbar/templates/app/views/{layouts → application}/_navbar.html.slim +0 -0
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rolemodel-rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- RoleModel Software Inc
|
|
@@ -135,6 +135,20 @@ dependencies:
|
|
|
135
135
|
- - ">="
|
|
136
136
|
- !ruby/object:Gem::Version
|
|
137
137
|
version: '0'
|
|
138
|
+
- !ruby/object:Gem::Dependency
|
|
139
|
+
name: rubocop-rails-omakase
|
|
140
|
+
requirement: !ruby/object:Gem::Requirement
|
|
141
|
+
requirements:
|
|
142
|
+
- - ">="
|
|
143
|
+
- !ruby/object:Gem::Version
|
|
144
|
+
version: '0'
|
|
145
|
+
type: :development
|
|
146
|
+
prerelease: false
|
|
147
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
148
|
+
requirements:
|
|
149
|
+
- - ">="
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: '0'
|
|
138
152
|
- !ruby/object:Gem::Dependency
|
|
139
153
|
name: benchmark
|
|
140
154
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -163,6 +177,9 @@ files:
|
|
|
163
177
|
- lib/generators/rolemodel/README.md
|
|
164
178
|
- lib/generators/rolemodel/USAGE
|
|
165
179
|
- lib/generators/rolemodel/all_generator.rb
|
|
180
|
+
- lib/generators/rolemodel/core_setup/README.md
|
|
181
|
+
- lib/generators/rolemodel/core_setup/USAGE
|
|
182
|
+
- lib/generators/rolemodel/core_setup/core_setup_generator.rb
|
|
166
183
|
- lib/generators/rolemodel/editors/README.md
|
|
167
184
|
- lib/generators/rolemodel/editors/USAGE
|
|
168
185
|
- lib/generators/rolemodel/editors/editors_generator.rb
|
|
@@ -175,6 +192,8 @@ files:
|
|
|
175
192
|
- lib/generators/rolemodel/github/templates/instructions
|
|
176
193
|
- lib/generators/rolemodel/github/templates/pull_request_template.md
|
|
177
194
|
- lib/generators/rolemodel/github/templates/workflows/ci.yml.tt
|
|
195
|
+
- lib/generators/rolemodel/github/templates/workflows/deploy-production.yml
|
|
196
|
+
- lib/generators/rolemodel/github/templates/workflows/deploy-staging.yml
|
|
178
197
|
- lib/generators/rolemodel/good_job/README.md
|
|
179
198
|
- lib/generators/rolemodel/good_job/USAGE
|
|
180
199
|
- lib/generators/rolemodel/good_job/good_job_generator.rb
|
|
@@ -185,6 +204,7 @@ files:
|
|
|
185
204
|
- lib/generators/rolemodel/heroku/heroku_generator.rb
|
|
186
205
|
- lib/generators/rolemodel/heroku/templates/Procfile
|
|
187
206
|
- lib/generators/rolemodel/heroku/templates/app.json.tt
|
|
207
|
+
- lib/generators/rolemodel/heroku/templates/deploy-app/SKILL.md
|
|
188
208
|
- lib/generators/rolemodel/kaminari/README.md
|
|
189
209
|
- lib/generators/rolemodel/kaminari/USAGE
|
|
190
210
|
- lib/generators/rolemodel/kaminari/kaminari_generator.rb
|
|
@@ -205,8 +225,6 @@ files:
|
|
|
205
225
|
- lib/generators/rolemodel/linters/rubocop/README.md
|
|
206
226
|
- lib/generators/rolemodel/linters/rubocop/USAGE
|
|
207
227
|
- lib/generators/rolemodel/linters/rubocop/rubocop_generator.rb
|
|
208
|
-
- lib/generators/rolemodel/linters/rubocop/templates/lib/cops/form_error_response.rb
|
|
209
|
-
- lib/generators/rolemodel/linters/rubocop/templates/lib/cops/no_chrome_tag.rb
|
|
210
228
|
- lib/generators/rolemodel/lograge/README.md
|
|
211
229
|
- lib/generators/rolemodel/lograge/USAGE
|
|
212
230
|
- lib/generators/rolemodel/lograge/lograge_generator.rb
|
|
@@ -282,13 +300,12 @@ files:
|
|
|
282
300
|
- lib/generators/rolemodel/saas/devise/templates/spec/models/user_spec.rb
|
|
283
301
|
- lib/generators/rolemodel/saas/devise/templates/spec/support/devise.rb
|
|
284
302
|
- lib/generators/rolemodel/saas/devise/templates/spec/system/users_spec.rb
|
|
285
|
-
- lib/generators/rolemodel/
|
|
286
|
-
- lib/generators/rolemodel/
|
|
287
|
-
- lib/generators/rolemodel/
|
|
288
|
-
- lib/generators/rolemodel/
|
|
289
|
-
- lib/generators/rolemodel/
|
|
290
|
-
- lib/generators/rolemodel/
|
|
291
|
-
- lib/generators/rolemodel/semaphore/templates/staging-deploy.yml.erb
|
|
303
|
+
- lib/generators/rolemodel/sentry/README.md
|
|
304
|
+
- lib/generators/rolemodel/sentry/USAGE
|
|
305
|
+
- lib/generators/rolemodel/sentry/sentry_generator.rb
|
|
306
|
+
- lib/generators/rolemodel/sentry/templates/app/controllers/concerns/sentry_user.rb
|
|
307
|
+
- lib/generators/rolemodel/sentry/templates/app/javascript/initializers/sentry.js
|
|
308
|
+
- lib/generators/rolemodel/sentry/templates/config/initializers/sentry.rb
|
|
292
309
|
- lib/generators/rolemodel/simple_form/README.md
|
|
293
310
|
- lib/generators/rolemodel/simple_form/USAGE
|
|
294
311
|
- lib/generators/rolemodel/simple_form/simple_form_generator.rb
|
|
@@ -297,7 +314,6 @@ files:
|
|
|
297
314
|
- lib/generators/rolemodel/simple_form/templates/app/inputs/grouped_collection_select_input.rb
|
|
298
315
|
- lib/generators/rolemodel/simple_form/templates/app/inputs/segmented_control_input.rb
|
|
299
316
|
- lib/generators/rolemodel/simple_form/templates/app/inputs/switch_checkbox_input.rb
|
|
300
|
-
- lib/generators/rolemodel/simple_form/templates/app/inputs/tailored_select_input.rb
|
|
301
317
|
- lib/generators/rolemodel/simple_form/templates/config/initializers/simple_form.rb
|
|
302
318
|
- lib/generators/rolemodel/simple_form/templates/config/locales/simple_form.en.yml
|
|
303
319
|
- lib/generators/rolemodel/simple_form/templates/lib/templates/slim/scaffold/_form.html.slim.tt
|
|
@@ -324,6 +340,7 @@ files:
|
|
|
324
340
|
- lib/generators/rolemodel/tailored_select/README.md
|
|
325
341
|
- lib/generators/rolemodel/tailored_select/USAGE
|
|
326
342
|
- lib/generators/rolemodel/tailored_select/tailored_select_generator.rb
|
|
343
|
+
- lib/generators/rolemodel/tailored_select/templates/app/inputs/tailored_select_input.rb
|
|
327
344
|
- lib/generators/rolemodel/testing/README.md
|
|
328
345
|
- lib/generators/rolemodel/testing/USAGE
|
|
329
346
|
- lib/generators/rolemodel/testing/all_generator.rb
|
|
@@ -362,6 +379,32 @@ files:
|
|
|
362
379
|
- lib/generators/rolemodel/testing/vitest/templates/spec/javascript/test-setup.js
|
|
363
380
|
- lib/generators/rolemodel/testing/vitest/templates/vitest.config.js
|
|
364
381
|
- lib/generators/rolemodel/testing/vitest/vitest_generator.rb
|
|
382
|
+
- lib/generators/rolemodel/turbo/all/README.md
|
|
383
|
+
- lib/generators/rolemodel/turbo/all/USAGE
|
|
384
|
+
- lib/generators/rolemodel/turbo/all/all_generator.rb
|
|
385
|
+
- lib/generators/rolemodel/turbo/confirm/README.md
|
|
386
|
+
- lib/generators/rolemodel/turbo/confirm/USAGE
|
|
387
|
+
- lib/generators/rolemodel/turbo/confirm/confirm_generator.rb
|
|
388
|
+
- lib/generators/rolemodel/turbo/confirm/templates/app/javascript/initializers/turbo_confirm.js.tt
|
|
389
|
+
- lib/generators/rolemodel/turbo/confirm/templates/app/views/application/_confirm.html.slim.tt
|
|
390
|
+
- lib/generators/rolemodel/turbo/form/README.md
|
|
391
|
+
- lib/generators/rolemodel/turbo/form/USAGE
|
|
392
|
+
- lib/generators/rolemodel/turbo/form/form_generator.rb
|
|
393
|
+
- lib/generators/rolemodel/turbo/form/templates/app/javascript/controllers/turbo_form_controller.js
|
|
394
|
+
- lib/generators/rolemodel/turbo/form/templates/spec/support/helpers/turbo_form_helper.rb
|
|
395
|
+
- lib/generators/rolemodel/turbo/modals/README.md
|
|
396
|
+
- lib/generators/rolemodel/turbo/modals/USAGE
|
|
397
|
+
- lib/generators/rolemodel/turbo/modals/modals_generator.rb
|
|
398
|
+
- lib/generators/rolemodel/turbo/modals/templates/app/helpers/turbo_frame_link_helper.rb
|
|
399
|
+
- lib/generators/rolemodel/turbo/modals/templates/app/javascript/controllers/toggle_controller.js
|
|
400
|
+
- lib/generators/rolemodel/turbo/modals/templates/app/javascript/initializers/frame_missing_handler.js
|
|
401
|
+
- lib/generators/rolemodel/turbo/modals/templates/app/views/layouts/modal.html.slim.tt
|
|
402
|
+
- lib/generators/rolemodel/turbo/modals/templates/app/views/layouts/panel.html.slim.tt
|
|
403
|
+
- lib/generators/rolemodel/turbo/ready/README.md
|
|
404
|
+
- lib/generators/rolemodel/turbo/ready/USAGE
|
|
405
|
+
- lib/generators/rolemodel/turbo/ready/ready_generator.rb
|
|
406
|
+
- lib/generators/rolemodel/turbo/ready/templates/app/javascript/controllers/prevent_morph_controller.js
|
|
407
|
+
- lib/generators/rolemodel/turbo/ready/templates/app/javascript/initializers/before_morph_handler.js
|
|
365
408
|
- lib/generators/rolemodel/ui_components/README.md
|
|
366
409
|
- lib/generators/rolemodel/ui_components/USAGE
|
|
367
410
|
- lib/generators/rolemodel/ui_components/all_generator.rb
|
|
@@ -370,28 +413,14 @@ files:
|
|
|
370
413
|
- lib/generators/rolemodel/ui_components/flash/flash_generator.rb
|
|
371
414
|
- lib/generators/rolemodel/ui_components/flash/templates/app/views/application/_flash.html.slim
|
|
372
415
|
- lib/generators/rolemodel/ui_components/flash/templates/spec/support/matchers/flash_matchers.rb
|
|
373
|
-
- lib/generators/rolemodel/ui_components/modals/README.md
|
|
374
|
-
- lib/generators/rolemodel/ui_components/modals/USAGE
|
|
375
|
-
- lib/generators/rolemodel/ui_components/modals/modals_generator.rb
|
|
376
|
-
- lib/generators/rolemodel/ui_components/modals/templates/app/helpers/turbo_frame_link_helper.rb
|
|
377
|
-
- lib/generators/rolemodel/ui_components/modals/templates/app/javascript/controllers/morph_controller.js
|
|
378
|
-
- lib/generators/rolemodel/ui_components/modals/templates/app/javascript/controllers/toggle_controller.js
|
|
379
|
-
- lib/generators/rolemodel/ui_components/modals/templates/app/javascript/initializers/before_morph_handler.js
|
|
380
|
-
- lib/generators/rolemodel/ui_components/modals/templates/app/javascript/initializers/frame_missing_handler.js
|
|
381
|
-
- lib/generators/rolemodel/ui_components/modals/templates/app/javascript/initializers/turbo_confirm.js
|
|
382
|
-
- lib/generators/rolemodel/ui_components/modals/templates/app/views/application/_confirm.html.slim
|
|
383
|
-
- lib/generators/rolemodel/ui_components/modals/templates/app/views/layouts/modal.html.slim.tt
|
|
384
|
-
- lib/generators/rolemodel/ui_components/modals/templates/app/views/layouts/panel.html.slim.tt
|
|
385
416
|
- lib/generators/rolemodel/ui_components/navbar/README.md
|
|
386
417
|
- lib/generators/rolemodel/ui_components/navbar/USAGE
|
|
387
418
|
- lib/generators/rolemodel/ui_components/navbar/navbar_generator.rb
|
|
388
|
-
- lib/generators/rolemodel/ui_components/navbar/templates/app/assets/stylesheets/components/shoelace/index.
|
|
419
|
+
- lib/generators/rolemodel/ui_components/navbar/templates/app/assets/stylesheets/components/shoelace/index.css
|
|
389
420
|
- lib/generators/rolemodel/ui_components/navbar/templates/app/javascript/lib/shoelace.js
|
|
390
|
-
- lib/generators/rolemodel/ui_components/navbar/templates/app/views/
|
|
421
|
+
- lib/generators/rolemodel/ui_components/navbar/templates/app/views/application/_navbar.html.slim
|
|
391
422
|
- lib/generators/rolemodel/webpack/README.md
|
|
392
423
|
- lib/generators/rolemodel/webpack/USAGE
|
|
393
|
-
- lib/generators/rolemodel/webpack/templates/app/assets/stylesheets/application.scss
|
|
394
|
-
- lib/generators/rolemodel/webpack/templates/app/javascript/initializers/honeybadger.js
|
|
395
424
|
- lib/generators/rolemodel/webpack/templates/postcss.config.cjs
|
|
396
425
|
- lib/generators/rolemodel/webpack/templates/webpack.config.js
|
|
397
426
|
- lib/generators/rolemodel/webpack/webpack_generator.rb
|
|
@@ -410,6 +439,7 @@ files:
|
|
|
410
439
|
- lib/rolemodel/utility.rb
|
|
411
440
|
- lib/rolemodel/utility/task_tools.rb
|
|
412
441
|
- lib/rolemodel/version.rb
|
|
442
|
+
- lib/rolemodel/yarn.rb
|
|
413
443
|
homepage: https://github.com/RoleModel/rolemodel_rails
|
|
414
444
|
licenses:
|
|
415
445
|
- MIT
|
|
@@ -428,7 +458,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
428
458
|
- !ruby/object:Gem::Version
|
|
429
459
|
version: '0'
|
|
430
460
|
requirements: []
|
|
431
|
-
rubygems_version: 4.0.
|
|
461
|
+
rubygems_version: 4.0.3
|
|
432
462
|
specification_version: 4
|
|
433
463
|
summary: The RoleModel Way of building Rails apps.
|
|
434
464
|
test_files: []
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Cops
|
|
4
|
-
# Custom Cop to Ensure Form Error Response Statuses
|
|
5
|
-
#
|
|
6
|
-
# There are three levels of matching here:
|
|
7
|
-
# Methods (def on_if)
|
|
8
|
-
# This scans code and only stops on the method specified.
|
|
9
|
-
# E.G. `on_if` will only move into the below checks when it encounters an if statement.
|
|
10
|
-
#
|
|
11
|
-
# Node matcher (def_node_matcher :form_error)
|
|
12
|
-
# This scans the block of code (in this case, the else branch of the if block)
|
|
13
|
-
# using AST (Abstract Tree Syntax) to match certain patterns
|
|
14
|
-
#
|
|
15
|
-
# Regex
|
|
16
|
-
# This checks the specific matching line to ensure it meets our expectations
|
|
17
|
-
class FormErrorResponse < RuboCop::Cop::Base
|
|
18
|
-
extend RuboCop::Cop::AutoCorrector
|
|
19
|
-
|
|
20
|
-
def self.rack_version
|
|
21
|
-
Gem.loaded_specs['rack'].version
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def self.http_status
|
|
25
|
-
if rack_version >= '3.1'
|
|
26
|
-
:unprocessable_content
|
|
27
|
-
else
|
|
28
|
-
:unprocessable_entity
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
# Match code in the else branch that either: is the only line and looks like `render :something, ...`
|
|
33
|
-
# or is not the first line and looks like the same.
|
|
34
|
-
def_node_matcher :form_error, <<~PATTERN
|
|
35
|
-
{(... $(send nil? :render (:sym _) ...)) | $(send nil? :render (:sym _) ...)}
|
|
36
|
-
PATTERN
|
|
37
|
-
|
|
38
|
-
MSG = "Use status: :#{self.http_status} for invalid form requests."
|
|
39
|
-
|
|
40
|
-
# Ensure the render is returning the correct status, otherwise add the offense
|
|
41
|
-
STATUS_PAIR = /\(pair\s+\(sym :status\)\s+\(sym :#{self.http_status}\)\)/m
|
|
42
|
-
|
|
43
|
-
# Only check within if blocks
|
|
44
|
-
def on_if(node)
|
|
45
|
-
form_error(node.else_branch) do |name|
|
|
46
|
-
next if name.to_s.match?(STATUS_PAIR)
|
|
47
|
-
|
|
48
|
-
add_offense(name) do |corrector|
|
|
49
|
-
corrector.insert_after(name, ", status: :#{self.class.http_status}")
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'rubocop'
|
|
4
|
-
|
|
5
|
-
module Cops
|
|
6
|
-
# Detect occurences of the chrome tag in specs, and warn and remove them.
|
|
7
|
-
class NoChromeTag < RuboCop::Cop::Base
|
|
8
|
-
include RuboCop::Cop::RangeHelp
|
|
9
|
-
extend RuboCop::Cop::AutoCorrector
|
|
10
|
-
|
|
11
|
-
MSG = 'The :chrome tag is only for testing, and should not be checked into the repository.'
|
|
12
|
-
RESTRICT_ON_SEND = %i[describe context it feature scenario].freeze
|
|
13
|
-
|
|
14
|
-
def on_send(node) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
|
|
15
|
-
node.arguments.each do |a|
|
|
16
|
-
if a.sym_type? && a.value == :chrome
|
|
17
|
-
range = range_with_surrounding_comma(a.source_range)
|
|
18
|
-
add_offense(range) do |corrector|
|
|
19
|
-
corrector.replace(range, '')
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
next unless a.hash_type?
|
|
24
|
-
|
|
25
|
-
a.pairs.each do |pair|
|
|
26
|
-
next unless pair.key.value == :chrome
|
|
27
|
-
|
|
28
|
-
range = range_with_surrounding_comma(pair.source_range)
|
|
29
|
-
add_offense(range) do |corrector|
|
|
30
|
-
corrector.replace(range, '')
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def range_with_surrounding_comma(source_range)
|
|
37
|
-
buffer = source_range.source_buffer
|
|
38
|
-
src = buffer.source
|
|
39
|
-
end_pos = source_range.end_pos
|
|
40
|
-
comma_index = src[...end_pos].rindex(/\s*,\s*/)
|
|
41
|
-
|
|
42
|
-
Parser::Source::Range.new(buffer, comma_index, end_pos)
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# Semaphore Generator
|
|
2
|
-
|
|
3
|
-
## What you get
|
|
4
|
-
|
|
5
|
-
* semaphore.yml file to run the relevant CI commands
|
|
6
|
-
* heroku-deployment-commands.sh file with commands to deploy to heroku
|
|
7
|
-
* staging-deploy.yml file with commands to deploy to staging
|
|
8
|
-
* production-deploy.yml file with commands to deploy to production
|
|
9
|
-
|
|
10
|
-
This is the basic config needed to use semaphore.
|
|
11
|
-
|
|
12
|
-
## Note
|
|
13
|
-
This config assumes
|
|
14
|
-
- `main` is the base branch
|
|
15
|
-
- `yarn test` is the command to run JS tests
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
module Rolemodel
|
|
2
|
-
class SemaphoreGenerator < GeneratorBase
|
|
3
|
-
source_root File.expand_path('templates', __dir__)
|
|
4
|
-
|
|
5
|
-
def create_base_semaphore_config
|
|
6
|
-
@project_name = Rails.application.class.try(:parent_name) || Rails.application.class.module_parent_name
|
|
7
|
-
template 'semaphore.yml.erb', '.semaphore/semaphore.yml'
|
|
8
|
-
|
|
9
|
-
if yes?('Does your project have JavaScript tests and/or eslint?')
|
|
10
|
-
uncomment_lines('.semaphore/semaphore.yml', '- yarn test')
|
|
11
|
-
uncomment_lines('.semaphore/semaphore.yml', '- yarn run eslint')
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def create_deplyment_commands
|
|
16
|
-
default_heroku_prefix = (Rails.application.class.try(:parent_name) || Rails.application.class.module_parent_name).underscore.dasherize
|
|
17
|
-
|
|
18
|
-
@heroku_prefix = ask('Enter the heroku project prefix', default: default_heroku_prefix)
|
|
19
|
-
|
|
20
|
-
template 'heroku-deployment-commands.sh', '.semaphore/heroku-deployment-commands.sh'
|
|
21
|
-
template 'staging-deploy.yml.erb', '.semaphore/staging-deploy.yml'
|
|
22
|
-
template 'production-deploy.yml.erb', '.semaphore/production-deploy.yml'
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
version: v1.0
|
|
2
|
-
name: Deploy to Production
|
|
3
|
-
agent:
|
|
4
|
-
machine:
|
|
5
|
-
type: e1-standard-2
|
|
6
|
-
os_image: ubuntu1804
|
|
7
|
-
blocks:
|
|
8
|
-
- name: Deploy
|
|
9
|
-
task:
|
|
10
|
-
secrets:
|
|
11
|
-
- name: heroku_http_auth
|
|
12
|
-
env_vars:
|
|
13
|
-
- name: HEROKU_APP_NAME
|
|
14
|
-
value: <%= "#{@heroku_prefix}-production" %>
|
|
15
|
-
jobs:
|
|
16
|
-
- name: 'Push code to Production'
|
|
17
|
-
commands_file: heroku-deployment-commands.sh
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
version: v1.0
|
|
2
|
-
name: <%= @project_name %>
|
|
3
|
-
agent:
|
|
4
|
-
machine:
|
|
5
|
-
type: e1-standard-2
|
|
6
|
-
os_image: ubuntu2004
|
|
7
|
-
auto_cancel:
|
|
8
|
-
running:
|
|
9
|
-
when: branch != 'main'
|
|
10
|
-
global_job_config:
|
|
11
|
-
env_vars:
|
|
12
|
-
- name: RAILS_ENV
|
|
13
|
-
value: test
|
|
14
|
-
- name: HONEYBADGER_SOURCE_MAP_DISABLED
|
|
15
|
-
value: 'true'
|
|
16
|
-
- name: DATABASE_URL
|
|
17
|
-
value: 'postgres://postgres:@0.0.0.0/<%= Rails.application.config.database_configuration['test']['database'] %>'
|
|
18
|
-
- name: GOOGLE_CHROME_BIN
|
|
19
|
-
value: 'google-chrome'
|
|
20
|
-
# https://github.com/renderedtext/test-boosters#rspec-booster
|
|
21
|
-
- name: TB_RSPEC_OPTIONS
|
|
22
|
-
value: '--format RspecJunitFormatter --out tmp/test_results/rspec_junit.xml --format documentation'
|
|
23
|
-
secrets:
|
|
24
|
-
- name: rmsbackup_ssh_private_key
|
|
25
|
-
prologue:
|
|
26
|
-
commands:
|
|
27
|
-
# Add keys
|
|
28
|
-
- ssh-keyscan -H github.com >> ~/.ssh/known_hosts
|
|
29
|
-
- chmod 600 ~/.ssh/id_rsa_rmsbackup_ssh_private_key
|
|
30
|
-
- ssh-add ~/.ssh/id_rsa_rmsbackup_ssh_private_key
|
|
31
|
-
|
|
32
|
-
- checkout
|
|
33
|
-
|
|
34
|
-
# Ruby setup
|
|
35
|
-
- sem-service start postgres 14
|
|
36
|
-
- sem-version ruby $(cat .ruby-version)
|
|
37
|
-
- gem install bundler --no-document
|
|
38
|
-
- bundle config set deployment 'true'
|
|
39
|
-
- bundle config set path 'vendor/bundle'
|
|
40
|
-
|
|
41
|
-
# Node setup
|
|
42
|
-
- sem-version node $(cat .node-version)
|
|
43
|
-
- npm i -g yarn
|
|
44
|
-
|
|
45
|
-
# Cache setup
|
|
46
|
-
- cache restore gems-$(checksum .ruby-version)-$(checksum Gemfile.lock)
|
|
47
|
-
- cache restore yarn-cache-$(checksum .node-version)-$(checksum yarn.lock)
|
|
48
|
-
- cache restore yarn-node-modules-$(checksum .node-version)-$(checksum yarn.lock)
|
|
49
|
-
blocks:
|
|
50
|
-
- name: Build
|
|
51
|
-
dependencies: []
|
|
52
|
-
task:
|
|
53
|
-
jobs:
|
|
54
|
-
- name: Install Dependencies
|
|
55
|
-
commands:
|
|
56
|
-
- bundle check || bundle install
|
|
57
|
-
- yarn check || yarn install
|
|
58
|
-
epilogue:
|
|
59
|
-
commands:
|
|
60
|
-
- cache store gems-$(checksum .ruby-version)-$(checksum Gemfile.lock) vendor/bundle
|
|
61
|
-
- cache store yarn-cache-$(checksum .node-version)-$(checksum yarn.lock) /home/semaphore/.cache/yarn
|
|
62
|
-
- cache store yarn-node-modules-$(checksum .node-version)-$(checksum yarn.lock) node_modules
|
|
63
|
-
- name: Ruby/JS/Linting
|
|
64
|
-
execution_time_limit:
|
|
65
|
-
minutes: 20
|
|
66
|
-
dependencies:
|
|
67
|
-
- Build
|
|
68
|
-
task:
|
|
69
|
-
jobs:
|
|
70
|
-
- name: Ruby Test/JS Tests/Audit/Linting
|
|
71
|
-
commands:
|
|
72
|
-
- bundle exec rails db:setup db:test:prepare
|
|
73
|
-
- bundle exec rspec --exclude-pattern "spec/system/**/*_spec.rb" --format RspecJunitFormatter --out tmp/test_results/rspec_junit.xml --format documentation
|
|
74
|
-
- bundle exec bundle-audit update
|
|
75
|
-
- bundle exec bundle-audit check
|
|
76
|
-
# - bundle exec rubocop --fail-level warning --display-only-fail-level-offenses
|
|
77
|
-
# - yarn test
|
|
78
|
-
# - yarn run eslint
|
|
79
|
-
epilogue:
|
|
80
|
-
always:
|
|
81
|
-
commands:
|
|
82
|
-
- test-results publish tmp/test_results
|
|
83
|
-
on_fail:
|
|
84
|
-
commands:
|
|
85
|
-
- artifact push job log/test.log
|
|
86
|
-
- name: Assets Compile
|
|
87
|
-
dependencies:
|
|
88
|
-
- Build
|
|
89
|
-
execution_time_limit:
|
|
90
|
-
minutes: 20
|
|
91
|
-
task:
|
|
92
|
-
jobs:
|
|
93
|
-
- name: Webpack Compile and Store Assets
|
|
94
|
-
commands:
|
|
95
|
-
- bundle check || bundle install --without legacy_data_migration
|
|
96
|
-
- yarn check || yarn install
|
|
97
|
-
- yarn build
|
|
98
|
-
- cache store assets-public-$SEMAPHORE_WORKFLOW_ID public
|
|
99
|
-
- name: System Tests
|
|
100
|
-
dependencies:
|
|
101
|
-
- Assets Compile
|
|
102
|
-
execution_time_limit:
|
|
103
|
-
minutes: 20
|
|
104
|
-
task:
|
|
105
|
-
agent:
|
|
106
|
-
machine:
|
|
107
|
-
type: e1-standard-2
|
|
108
|
-
os_image: ubuntu2004
|
|
109
|
-
env_vars:
|
|
110
|
-
- name: TEST_BOOSTERS_RSPEC_TEST_FILE_PATTERN
|
|
111
|
-
value: spec/system/**/*_spec.rb
|
|
112
|
-
prologue:
|
|
113
|
-
commands:
|
|
114
|
-
- gem install semaphore_test_boosters
|
|
115
|
-
- bundle exec rails db:setup db:test:prepare
|
|
116
|
-
- cache restore assets-public-$SEMAPHORE_WORKFLOW_ID
|
|
117
|
-
jobs:
|
|
118
|
-
- name: Ruby System Tests
|
|
119
|
-
parallelism: 2
|
|
120
|
-
commands:
|
|
121
|
-
- rspec_booster --job $SEMAPHORE_JOB_INDEX/$SEMAPHORE_JOB_COUNT
|
|
122
|
-
epilogue:
|
|
123
|
-
always:
|
|
124
|
-
commands:
|
|
125
|
-
- test-results publish tmp/test_results
|
|
126
|
-
- cache delete assets-public-$SEMAPHORE_WORKFLOW_ID
|
|
127
|
-
on_fail:
|
|
128
|
-
commands:
|
|
129
|
-
- artifact push job log/test.log
|
|
130
|
-
- artifact push workflow tmp/capybara
|
|
131
|
-
after_pipeline:
|
|
132
|
-
task:
|
|
133
|
-
jobs:
|
|
134
|
-
- name: Publish Results
|
|
135
|
-
commands:
|
|
136
|
-
- test-results gen-pipeline-report
|
|
137
|
-
promotions:
|
|
138
|
-
- name: Deploy Staging
|
|
139
|
-
pipeline_file: staging-deploy.yml
|
|
140
|
-
auto_promote_on:
|
|
141
|
-
- result: passed
|
|
142
|
-
branch:
|
|
143
|
-
- main
|
|
144
|
-
- name: Deploy Production
|
|
145
|
-
pipeline_file: production-deploy.yml
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
version: v1.0
|
|
2
|
-
name: Deploy to Staging
|
|
3
|
-
agent:
|
|
4
|
-
machine:
|
|
5
|
-
type: e1-standard-2
|
|
6
|
-
os_image: ubuntu1804
|
|
7
|
-
blocks:
|
|
8
|
-
- name: Deploy
|
|
9
|
-
task:
|
|
10
|
-
secrets:
|
|
11
|
-
- name: heroku_http_auth
|
|
12
|
-
env_vars:
|
|
13
|
-
- name: HEROKU_APP_NAME
|
|
14
|
-
value: <%= "#{@heroku_prefix}-staging" %>
|
|
15
|
-
jobs:
|
|
16
|
-
- name: 'Push code to staging'
|
|
17
|
-
commands_file: heroku-deployment-commands.sh
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Controller } from "@hotwired/stimulus"
|
|
2
|
-
|
|
3
|
-
export default class extends Controller {
|
|
4
|
-
static values = {
|
|
5
|
-
attributeName: String
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Use this method in conjunction with the turbo:before-morph-attribute event to prevent morphing of a specific
|
|
10
|
-
* attribute on an element. This is useful for attributes that may change due to user interaction, such as the "open"
|
|
11
|
-
* attribute on a details element, which can be toggled by the user and should not be overridden by Turbo's morphing process.
|
|
12
|
-
*
|
|
13
|
-
* Example:
|
|
14
|
-
* <details controller="morph" data-morph-attribute-name-value="open" data-action="turbo:before-morph-attribute->morph#skipMorphAttribute">
|
|
15
|
-
*
|
|
16
|
-
* @param {import("@hotwired/turbo").TurboBeforeMorphAttributeEvent} event
|
|
17
|
-
*/
|
|
18
|
-
skipMorphAttribute(event) {
|
|
19
|
-
if (event.detail.attributeName === this.attributeNameValue) {
|
|
20
|
-
event.preventDefault()
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import Honeybadger from '@honeybadger-io/js'
|
|
2
|
-
|
|
3
|
-
if (process.env.RAILS_ENV === 'production') {
|
|
4
|
-
Honeybadger.configure({
|
|
5
|
-
apiKey: process.env.HONEYBADGER_API_KEY,
|
|
6
|
-
environment: process.env.HONEYBADGER_ENV,// ‘production’ or ‘review-app’ from app.json
|
|
7
|
-
revision: process.env.SOURCE_VERSION // provided by heroku
|
|
8
|
-
})
|
|
9
|
-
|
|
10
|
-
const IGNORE_ERRORS = [
|
|
11
|
-
/AbortError/,
|
|
12
|
-
/UnhandledPromiseRejectionWarning: {}/,
|
|
13
|
-
/UnhandledPromiseRejectionWarning.*Load failed/,
|
|
14
|
-
/UnhandledPromiseRejectionWarning: Object Not Found Matching/,
|
|
15
|
-
/UnhandledPromiseRejectionWarning.*Failed to fetch/,
|
|
16
|
-
/ResizeObserver loop completed with undelivered notifications./,
|
|
17
|
-
]
|
|
18
|
-
|
|
19
|
-
Honeybadger.beforeNotify((notice) => {
|
|
20
|
-
for (const ignoreError of IGNORE_ERRORS) {
|
|
21
|
-
if (ignoreError.test(notice.message)) {
|
|
22
|
-
return false
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
})
|
|
26
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|