kowl 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +7 -0
- data/README.md +383 -0
- data/bin/console +14 -0
- data/bin/kowl +106 -0
- data/bin/setup +13 -0
- data/lib/kowl/actions.rb +240 -0
- data/lib/kowl/docker.rb +447 -0
- data/lib/kowl/generators/README.md +5 -0
- data/lib/kowl/generators/action_generator.rb +113 -0
- data/lib/kowl/generators/admin_generator.rb +114 -0
- data/lib/kowl/generators/assets_generator.rb +188 -0
- data/lib/kowl/generators/base.rb +40 -0
- data/lib/kowl/generators/circleci_generator.rb +11 -0
- data/lib/kowl/generators/config_generator.rb +180 -0
- data/lib/kowl/generators/controller_generator.rb +64 -0
- data/lib/kowl/generators/database_generator.rb +42 -0
- data/lib/kowl/generators/decorators_generator.rb +16 -0
- data/lib/kowl/generators/docker_generator.rb +40 -0
- data/lib/kowl/generators/dotfiles_generator.rb +73 -0
- data/lib/kowl/generators/libs_generator.rb +19 -0
- data/lib/kowl/generators/mailer_generator.rb +58 -0
- data/lib/kowl/generators/misc_generator.rb +20 -0
- data/lib/kowl/generators/overrides/app_base.rb +15 -0
- data/lib/kowl/generators/overrides/app_builder.rb +58 -0
- data/lib/kowl/generators/overrides/app_generator.rb +249 -0
- data/lib/kowl/generators/pages_generator.rb +46 -0
- data/lib/kowl/generators/routes_generator.rb +20 -0
- data/lib/kowl/generators/sidekiq_generator.rb +31 -0
- data/lib/kowl/generators/staging_generator.rb +14 -0
- data/lib/kowl/generators/test_generator.rb +42 -0
- data/lib/kowl/generators/text_files_generator.rb +41 -0
- data/lib/kowl/generators/users_and_auth_generator.rb +143 -0
- data/lib/kowl/generators/uuid_generator.rb +39 -0
- data/lib/kowl/generators/views_and_helpers_generator.rb +104 -0
- data/lib/kowl/geodb.rb +96 -0
- data/lib/kowl/helpers.rb +139 -0
- data/lib/kowl/templates/Gemfile.erb.tt +253 -0
- data/lib/kowl/templates/README.md.erb +33 -0
- data/lib/kowl/templates/app/assets/javascripts/semantic.js.tt +26 -0
- data/lib/kowl/templates/app/assets/stylesheets/administrate/application.scss +44 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/_custom_styling.scss +38 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/application-mailer.scss +1 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/application.scss +14 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/components/_alerts.scss +7 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/components/_errors.scss +28 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/components/_navbar.scss +17 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/variables.scss +6 -0
- data/lib/kowl/templates/app/assets/stylesheets/semantic/_custom_styling.scss +20 -0
- data/lib/kowl/templates/app/assets/stylesheets/semantic/application.scss +24 -0
- data/lib/kowl/templates/app/controllers/admin/application_controller.rb +29 -0
- data/lib/kowl/templates/app/controllers/admin/login_activities_controller.rb +29 -0
- data/lib/kowl/templates/app/controllers/admin/users_controller.rb +37 -0
- data/lib/kowl/templates/app/controllers/concerns/auth/authentication.rb +18 -0
- data/lib/kowl/templates/app/controllers/concerns/auth/authorization.rb +20 -0
- data/lib/kowl/templates/app/controllers/concerns/auth/error_handlers.rb +27 -0
- data/lib/kowl/templates/app/controllers/concerns/noauth/error_handlers.rb +25 -0
- data/lib/kowl/templates/app/controllers/users_controller.rb +17 -0
- data/lib/kowl/templates/app/dashboards/login_activity_dashboard.rb.tt +59 -0
- data/lib/kowl/templates/app/dashboards/rich_text_body_dashboard.rb.tt +17 -0
- data/lib/kowl/templates/app/dashboards/user_dashboard.rb.tt +60 -0
- data/lib/kowl/templates/app/fields/gravatar_field.rb +10 -0
- data/lib/kowl/templates/app/fields/rich_text_area_field.rb +8 -0
- data/lib/kowl/templates/app/inputs/rich_text_area_input.rb +11 -0
- data/lib/kowl/templates/app/javascript/administrate/components/date_time_picker.js.tt +32 -0
- data/lib/kowl/templates/app/javascript/administrate/components/table.js.tt +49 -0
- data/lib/kowl/templates/app/javascript/administrate/index.js +3 -0
- data/lib/kowl/templates/app/javascript/packs/administrate.js.tt +21 -0
- data/lib/kowl/templates/app/javascript/packs/semantic.js +11 -0
- data/lib/kowl/templates/app/mailers/application_mailer.rb +7 -0
- data/lib/kowl/templates/app/mailers/devise_mailer.rb +5 -0
- data/lib/kowl/templates/app/models/login_activity.rb.tt +29 -0
- data/lib/kowl/templates/app/models/user.rb.tt +72 -0
- data/lib/kowl/templates/app/policies/application_policy.rb +38 -0
- data/lib/kowl/templates/app/policies/login_activity_policy.rb +35 -0
- data/lib/kowl/templates/app/policies/user_policy.rb +43 -0
- data/lib/kowl/templates/app/views/admin/templates/navigation.erb.tt +23 -0
- data/lib/kowl/templates/app/views/admin/views/application/_javascript.html.erb +21 -0
- data/lib/kowl/templates/app/views/admin/views/users/_collection.html.erb +102 -0
- data/lib/kowl/templates/app/views/admin/views/users/_form.html.erb +46 -0
- data/lib/kowl/templates/app/views/admin/views/users/edit.html.erb +36 -0
- data/lib/kowl/templates/app/views/admin/views/users/index.html.erb +66 -0
- data/lib/kowl/templates/app/views/fields/gravatar_field/_form.html.erb +6 -0
- data/lib/kowl/templates/app/views/fields/gravatar_field/_index.html.erb +1 -0
- data/lib/kowl/templates/app/views/fields/gravatar_field/_show.html.erb +1 -0
- data/lib/kowl/templates/app/views/fields/rich_text_area_field/_form.html.erb +6 -0
- data/lib/kowl/templates/app/views/fields/rich_text_area_field/_index.html.erb +1 -0
- data/lib/kowl/templates/app/views/fields/rich_text_area_field/_show.html.erb +1 -0
- data/lib/kowl/templates/app/views/layouts/admin.html.erb.tt +47 -0
- data/lib/kowl/templates/app/views/layouts/devise_mailer.html.erb +14 -0
- data/lib/kowl/templates/app/views/pages/welcome/bootstrap.html.erb +18 -0
- data/lib/kowl/templates/app/views/pages/welcome/bootstrap.html.haml +17 -0
- data/lib/kowl/templates/app/views/pages/welcome/bootstrap.html.slim +17 -0
- data/lib/kowl/templates/app/views/pages/welcome/default.html.erb +0 -0
- data/lib/kowl/templates/app/views/pages/welcome/default.html.haml +0 -0
- data/lib/kowl/templates/app/views/pages/welcome/default.html.slim +0 -0
- data/lib/kowl/templates/app/views/pages/welcome/semantic.html.erb +20 -0
- data/lib/kowl/templates/app/views/pages/welcome/semantic.html.haml +17 -0
- data/lib/kowl/templates/app/views/pages/welcome/semantic.html.slim +17 -0
- data/lib/kowl/templates/app/views/shared/footer/bootstrap.html.erb.tt +5 -0
- data/lib/kowl/templates/app/views/shared/footer/bootstrap.html.haml.tt +3 -0
- data/lib/kowl/templates/app/views/shared/footer/bootstrap.html.slim.tt +3 -0
- data/lib/kowl/templates/app/views/shared/footer/semantic.html.erb.tt +7 -0
- data/lib/kowl/templates/app/views/shared/footer/semantic.html.haml.tt +5 -0
- data/lib/kowl/templates/app/views/shared/footer/semantic.html.slim.tt +5 -0
- data/lib/kowl/templates/app/views/shared/navigation/bootstrap.html.erb.tt +51 -0
- data/lib/kowl/templates/app/views/shared/navigation/bootstrap.html.haml.tt +36 -0
- data/lib/kowl/templates/app/views/shared/navigation/bootstrap.html.slim.tt +36 -0
- data/lib/kowl/templates/app/views/shared/navigation/semantic.html.erb.tt +48 -0
- data/lib/kowl/templates/app/views/shared/navigation/semantic.html.haml.tt +36 -0
- data/lib/kowl/templates/app/views/shared/navigation/semantic.html.slim.tt +36 -0
- data/lib/kowl/templates/app/workers/scheduler/pghero_scheduler.rb +11 -0
- data/lib/kowl/templates/config/autoprefixer.yml +4 -0
- data/lib/kowl/templates/config/db/mysql.yml.tt +43 -0
- data/lib/kowl/templates/config/db/oracle.yml.tt +29 -0
- data/lib/kowl/templates/config/db/postgresql.yml.tt +37 -0
- data/lib/kowl/templates/config/db/sqlite3.yml.tt +20 -0
- data/lib/kowl/templates/config/db/sqlserver.yml.tt +28 -0
- data/lib/kowl/templates/config/initializers/administrate.rb.tt +9 -0
- data/lib/kowl/templates/config/initializers/bullet.rb +21 -0
- data/lib/kowl/templates/config/initializers/devise-security.rb +44 -0
- data/lib/kowl/templates/config/initializers/devise_argon2.rb +29 -0
- data/lib/kowl/templates/config/initializers/faker.rb +6 -0
- data/lib/kowl/templates/config/initializers/generators.rb.tt +31 -0
- data/lib/kowl/templates/config/initializers/geocoder.rb +10 -0
- data/lib/kowl/templates/config/initializers/letter_opener.rb +13 -0
- data/lib/kowl/templates/config/initializers/lockbox.rb +11 -0
- data/lib/kowl/templates/config/initializers/logging.rb +6 -0
- data/lib/kowl/templates/config/initializers/lograge.rb +7 -0
- data/lib/kowl/templates/config/initializers/logstop.rb +4 -0
- data/lib/kowl/templates/config/initializers/middleware.rb +9 -0
- data/lib/kowl/templates/config/initializers/oj.rb +7 -0
- data/lib/kowl/templates/config/initializers/pagy.rb.tt +16 -0
- data/lib/kowl/templates/config/initializers/postmark.rb +8 -0
- data/lib/kowl/templates/config/initializers/rack_attack.rb.tt +71 -0
- data/lib/kowl/templates/config/initializers/sass.rb +5 -0
- data/lib/kowl/templates/config/initializers/sidekiq.rb +11 -0
- data/lib/kowl/templates/config/initializers/simpleform/semantic.rb +225 -0
- data/lib/kowl/templates/config/initializers/slim.rb +6 -0
- data/lib/kowl/templates/config/initializers/sparkpost.rb +13 -0
- data/lib/kowl/templates/config/routes.rb.tt +28 -0
- data/lib/kowl/templates/config/sidekiq.yml.tt +17 -0
- data/lib/kowl/templates/db/migrations/create_action_text_tables.action_text.rb.tt +16 -0
- data/lib/kowl/templates/db/migrations/create_active_storage_tables.active_storage.rb.tt +29 -0
- data/lib/kowl/templates/db/migrations/devise.rb.tt +59 -0
- data/lib/kowl/templates/db/migrations/login_activities.rb.tt +41 -0
- data/lib/kowl/templates/db/seeds.rb.tt +14 -0
- data/lib/kowl/templates/docker/Dockerfile.alpine.tt +92 -0
- data/lib/kowl/templates/docker/Dockerfile.debian.tt +133 -0
- data/lib/kowl/templates/docker/docker-compose.yml.tt +55 -0
- data/lib/kowl/templates/docker/mysql/Dockerfile.tt +15 -0
- data/lib/kowl/templates/dotfiles/Aptfile.tt +34 -0
- data/lib/kowl/templates/dotfiles/Brewfile.tt +49 -0
- data/lib/kowl/templates/dotfiles/Procfile.tt +12 -0
- data/lib/kowl/templates/dotfiles/codeclimate.yml +76 -0
- data/lib/kowl/templates/dotfiles/coffeelint.json +10 -0
- data/lib/kowl/templates/dotfiles/coffeelintignore +15 -0
- data/lib/kowl/templates/dotfiles/dockerignore +23 -0
- data/lib/kowl/templates/dotfiles/editorconfig +13 -0
- data/lib/kowl/templates/dotfiles/env.tt +58 -0
- data/lib/kowl/templates/dotfiles/erb-lint.yml +10 -0
- data/lib/kowl/templates/dotfiles/erdconfig.tt +24 -0
- data/lib/kowl/templates/dotfiles/eslintignore +20 -0
- data/lib/kowl/templates/dotfiles/eslintrc.js +31 -0
- data/lib/kowl/templates/dotfiles/fasterer.yml +14 -0
- data/lib/kowl/templates/dotfiles/foreman +1 -0
- data/lib/kowl/templates/dotfiles/gitattributes +15 -0
- data/lib/kowl/templates/dotfiles/gitignore +69 -0
- data/lib/kowl/templates/dotfiles/haml-lint.yml +23 -0
- data/lib/kowl/templates/dotfiles/jsbeautifyrc +15 -0
- data/lib/kowl/templates/dotfiles/jshintrc +3 -0
- data/lib/kowl/templates/dotfiles/mailmap +3 -0
- data/lib/kowl/templates/dotfiles/nvmrc +1 -0
- data/lib/kowl/templates/dotfiles/prettierignore +21 -0
- data/lib/kowl/templates/dotfiles/prettierrc.js +62 -0
- data/lib/kowl/templates/dotfiles/pryrc +7 -0
- data/lib/kowl/templates/dotfiles/rspec +3 -0
- data/lib/kowl/templates/dotfiles/rubocop.yml.tt +78 -0
- data/lib/kowl/templates/dotfiles/scss-lint.yml +132 -0
- data/lib/kowl/templates/dotfiles/simplecov +19 -0
- data/lib/kowl/templates/dotfiles/slim-lint.yml +23 -0
- data/lib/kowl/templates/dotfiles/slugignore +10 -0
- data/lib/kowl/templates/dotfiles/yamllint +7 -0
- data/lib/kowl/templates/dotfiles/yarnclean +46 -0
- data/lib/kowl/templates/lib/tasks/stats.rake +42 -0
- data/lib/kowl/templates/tests/factories/README.md +0 -0
- data/lib/kowl/templates/tests/factories/login_activity.rb +11 -0
- data/lib/kowl/templates/tests/factories/user.rb +11 -0
- data/lib/kowl/templates/tests/minitest/README.md +3 -0
- data/lib/kowl/templates/tests/minitest/application_system_test_case.rb +7 -0
- data/lib/kowl/templates/tests/minitest/controllers/pages_controller_test.rb +10 -0
- data/lib/kowl/templates/tests/minitest/models/login_activity_test.rb +8 -0
- data/lib/kowl/templates/tests/minitest/models/user_test.rb +15 -0
- data/lib/kowl/templates/tests/minitest/policies/login_activity_policy_test.rb +7 -0
- data/lib/kowl/templates/tests/minitest/policies/user_policy_test.rb +7 -0
- data/lib/kowl/templates/tests/minitest/support/capybara.rb +38 -0
- data/lib/kowl/templates/tests/minitest/support/database_cleaner.rb +20 -0
- data/lib/kowl/templates/tests/minitest/support/database_cleaner_support.rb +15 -0
- data/lib/kowl/templates/tests/minitest/support/deferred_garbage_collection.rb +21 -0
- data/lib/kowl/templates/tests/minitest/support/devise.rb +16 -0
- data/lib/kowl/templates/tests/minitest/support/factories.rb +6 -0
- data/lib/kowl/templates/tests/minitest/support/formulaic.rb +8 -0
- data/lib/kowl/templates/tests/minitest/support/helpers/devise_helper.rb +57 -0
- data/lib/kowl/templates/tests/minitest/support/papertrail.rb +17 -0
- data/lib/kowl/templates/tests/minitest/support/pundit.rb +0 -0
- data/lib/kowl/templates/tests/minitest/support/shoulda.rb +11 -0
- data/lib/kowl/templates/tests/minitest/support/simplecov.rb +8 -0
- data/lib/kowl/templates/tests/minitest/test_helper.rb +17 -0
- data/lib/kowl/templates/tests/rspec/README.md +9 -0
- data/lib/kowl/templates/tests/rspec/controllers/admin/application_controller_spec.rb +12 -0
- data/lib/kowl/templates/tests/rspec/controllers/admin/users_controller_spec.rb +14 -0
- data/lib/kowl/templates/tests/rspec/controllers/pages_controller_spec.rb +10 -0
- data/lib/kowl/templates/tests/rspec/features/README.md +15 -0
- data/lib/kowl/templates/tests/rspec/features/visitor_sign_up_spec.rb +25 -0
- data/lib/kowl/templates/tests/rspec/helpers/application_helper_spec.rb +7 -0
- data/lib/kowl/templates/tests/rspec/helpers/pages_helper_spec.rb +15 -0
- data/lib/kowl/templates/tests/rspec/models/login_activity_spec.rb +11 -0
- data/lib/kowl/templates/tests/rspec/models/user_spec.rb +21 -0
- data/lib/kowl/templates/tests/rspec/policies/login_activity_policy_spec.rb +59 -0
- data/lib/kowl/templates/tests/rspec/policies/user_policy_spec.rb +56 -0
- data/lib/kowl/templates/tests/rspec/rails_helper.rb +72 -0
- data/lib/kowl/templates/tests/rspec/requests/pages_spec.rb +11 -0
- data/lib/kowl/templates/tests/rspec/spec_helper.rb +96 -0
- data/lib/kowl/templates/tests/rspec/support/bullet.rb +17 -0
- data/lib/kowl/templates/tests/rspec/support/capybara.rb +37 -0
- data/lib/kowl/templates/tests/rspec/support/controller_testing.rb +10 -0
- data/lib/kowl/templates/tests/rspec/support/database_cleaner.rb +55 -0
- data/lib/kowl/templates/tests/rspec/support/deferred_garbage_collection.rb +32 -0
- data/lib/kowl/templates/tests/rspec/support/devise.rb +21 -0
- data/lib/kowl/templates/tests/rspec/support/factories.rb +5 -0
- data/lib/kowl/templates/tests/rspec/support/formulaic.rb +8 -0
- data/lib/kowl/templates/tests/rspec/support/helpers/devise_helpers.rb +56 -0
- data/lib/kowl/templates/tests/rspec/support/papertrail.rb +5 -0
- data/lib/kowl/templates/tests/rspec/support/pi_ci.rb +6 -0
- data/lib/kowl/templates/tests/rspec/support/pundit.rb +6 -0
- data/lib/kowl/templates/tests/rspec/support/shoulda.rb +10 -0
- data/lib/kowl/templates/tests/rspec/support/sidekiq.rb +10 -0
- data/lib/kowl/templates/tests/rspec/support/simplecov.rb +7 -0
- data/lib/kowl/templates/tests/rspec/support/warden.rb +8 -0
- data/lib/kowl/templates/text_files/AUTHORS.md +4 -0
- data/lib/kowl/templates/text_files/CHANGELOG.md.tt +12 -0
- data/lib/kowl/templates/text_files/CODE_OF_CONDUCT.md +76 -0
- data/lib/kowl/templates/text_files/TODO.md +7 -0
- data/lib/kowl/templates/text_files/VERSION +1 -0
- data/lib/kowl/templates/text_files/humans.txt.tt +15 -0
- data/lib/kowl/templates/text_files/robots.txt.tt +6 -0
- data/lib/kowl/templates/text_files/security.txt +6 -0
- data/lib/kowl/version.rb +9 -0
- data/lib/kowl.rb +18 -0
- metadata +404 -0
@@ -0,0 +1,24 @@
|
|
1
|
+
attributes:
|
2
|
+
- content
|
3
|
+
- primary_key
|
4
|
+
- timestamp
|
5
|
+
- foreign_key
|
6
|
+
- inheritance
|
7
|
+
disconnected: true
|
8
|
+
filename: <%= app_name.parameterize %>_erd
|
9
|
+
filetype: png
|
10
|
+
indirect: true
|
11
|
+
inheritance: true
|
12
|
+
markup: true
|
13
|
+
notation: bachman
|
14
|
+
orientation: horizontal
|
15
|
+
polymorphism: true
|
16
|
+
sort: true
|
17
|
+
warn: false
|
18
|
+
title: <%= app_name.titleize %> ERD Diagram
|
19
|
+
exclude: "ApplicationRecord,Version,PaperTrail::Version,ActiveRecord::InternalMetadata,ActiveRecord::SchemaMigration"
|
20
|
+
only: null
|
21
|
+
only_recursion_depth: null
|
22
|
+
prepend_primary: false
|
23
|
+
cluster: false
|
24
|
+
splines: spline
|
@@ -0,0 +1,20 @@
|
|
1
|
+
app/assets/javascripts/locale/**/app.js
|
2
|
+
bin/
|
3
|
+
build/
|
4
|
+
builds/
|
5
|
+
config/
|
6
|
+
coverage/
|
7
|
+
db/
|
8
|
+
lib/
|
9
|
+
log/
|
10
|
+
node_modules/
|
11
|
+
public/
|
12
|
+
scripts/
|
13
|
+
spec/
|
14
|
+
storage/
|
15
|
+
test/
|
16
|
+
tmp/
|
17
|
+
vendor/
|
18
|
+
karma.config.js
|
19
|
+
webpack.config.js
|
20
|
+
!.eslintrc.js
|
@@ -0,0 +1,31 @@
|
|
1
|
+
// https://eslint.org/docs/rules/
|
2
|
+
// https://github.com/airbnb/javascript
|
3
|
+
{
|
4
|
+
"env": {
|
5
|
+
"browser": true,
|
6
|
+
"node": true,
|
7
|
+
"es6": true
|
8
|
+
},
|
9
|
+
|
10
|
+
extends: ['eslint:recommended'],
|
11
|
+
"parserOptions": {
|
12
|
+
"ecmaVersion": 6,
|
13
|
+
"sourceType": "module",
|
14
|
+
},
|
15
|
+
|
16
|
+
// https://eslint.org/docs/user-guide/configuring#configuring-rules
|
17
|
+
rules: {
|
18
|
+
'arrow-parens': ["error", "always"],
|
19
|
+
'arrow-spacing': ["error", { "before": true, "after": true }],
|
20
|
+
'block-spacing': [2, "always"],
|
21
|
+
'comma-dangle': ["error", "never"],
|
22
|
+
'keyword-spacing': 2,
|
23
|
+
'max-len': ["error", { "ignoreComments": true,
|
24
|
+
"ignoreTrailingComments": true}],
|
25
|
+
'no-unused-vars': 0, // allow functions to have unused variables
|
26
|
+
'object-curly-spacing': [2, "always"],
|
27
|
+
'semi': [2, 'always'],
|
28
|
+
'space-before-blocks': 2,
|
29
|
+
'space-before-function-paren': [2,'never']
|
30
|
+
}
|
31
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
exclude_paths:
|
2
|
+
- 'app/assets/**/**'
|
3
|
+
- 'app/javascript/**/**'
|
4
|
+
- 'bin/**/**'
|
5
|
+
- 'coverage/**/**'
|
6
|
+
- 'db/**/*.rb'
|
7
|
+
- 'doc/**/**'
|
8
|
+
- 'log/**/**'
|
9
|
+
- 'node_modulse/**/**'
|
10
|
+
- 'public/**/**'
|
11
|
+
- 'storage/**/**'
|
12
|
+
- 'tmp/**/**'
|
13
|
+
- 'vendor/**/*.rb'
|
14
|
+
- '**.yml'
|
@@ -0,0 +1 @@
|
|
1
|
+
procfile: Procfile.dev
|
@@ -0,0 +1,69 @@
|
|
1
|
+
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
|
2
|
+
#
|
3
|
+
# If you find yourself ignoring temporary files generated by your text editor
|
4
|
+
# or operating system, you probably want to add a global ignore instead:
|
5
|
+
# git config --global core.excludesfile '~/.gitignore_global'
|
6
|
+
|
7
|
+
# Ignore OS based config files
|
8
|
+
*.swp
|
9
|
+
*.Thumbs.db
|
10
|
+
*.DS_Store
|
11
|
+
*/.DS_Store
|
12
|
+
.backup
|
13
|
+
.idea
|
14
|
+
.local
|
15
|
+
.project
|
16
|
+
.vscode
|
17
|
+
dump.rdb
|
18
|
+
|
19
|
+
# Ignore Rails generated caching files
|
20
|
+
.bundle/
|
21
|
+
cache/
|
22
|
+
coverage/
|
23
|
+
.sass-cache/
|
24
|
+
vendor/bundle
|
25
|
+
vendor/cache
|
26
|
+
|
27
|
+
# Ignore basic notes, docs, etc
|
28
|
+
docs/*
|
29
|
+
|
30
|
+
# Ignore Generated files, that should be build when pushing to production
|
31
|
+
public/assets/*
|
32
|
+
public/javascripts/*.js
|
33
|
+
public/packs
|
34
|
+
public/stylesheets/*.css
|
35
|
+
|
36
|
+
# Ignore the default SQLite database.
|
37
|
+
*.sql
|
38
|
+
/db/*.sqlite3
|
39
|
+
/db/*.sqlite3-journal
|
40
|
+
db/database.sqlite.yml
|
41
|
+
db/database.oracle.yml
|
42
|
+
db/data/seed.rb
|
43
|
+
db/scheme.rb
|
44
|
+
|
45
|
+
# Ignore Vims files
|
46
|
+
*~
|
47
|
+
*.swp
|
48
|
+
|
49
|
+
# Ignore all logfiles and tempfiles.
|
50
|
+
.byebug_history
|
51
|
+
/log/*
|
52
|
+
/tmp/*
|
53
|
+
!/log/.keep
|
54
|
+
!/tmp/.keep
|
55
|
+
|
56
|
+
# Ignore uploaded files in development
|
57
|
+
/storage/*
|
58
|
+
!/storage/.keep
|
59
|
+
|
60
|
+
# Node / Yarn package files
|
61
|
+
node_modules
|
62
|
+
node_modules/
|
63
|
+
yarn-error.log
|
64
|
+
|
65
|
+
# Ignore master key for decrypting credentials and more.
|
66
|
+
/config/master.key
|
67
|
+
|
68
|
+
# Ignore application based files
|
69
|
+
.vagrant
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# src: https://github.com/sds/haml-lint
|
2
|
+
# => https://github.com/sds/haml-lint/blob/master/config/default.yml
|
3
|
+
# sample: https://github.com/gitlabhq/gitlabhq/blob/master/.haml-lint.yml
|
4
|
+
|
5
|
+
skip_frontmatter: false
|
6
|
+
exclude:
|
7
|
+
- 'bin/*'
|
8
|
+
- 'config/**/*'
|
9
|
+
- 'coverage/**/*'
|
10
|
+
- 'db/**/*'
|
11
|
+
- 'log/**/*'
|
12
|
+
- 'node_modules/**/*'
|
13
|
+
- 'public/**/*'
|
14
|
+
- 'spec/**/*'
|
15
|
+
- 'storage/**/*''
|
16
|
+
- 'test/**/*'
|
17
|
+
- 'tmp/**/*'
|
18
|
+
- 'vendor/**/*'
|
19
|
+
|
20
|
+
|
21
|
+
linters:
|
22
|
+
LineLength:
|
23
|
+
enabled: false
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# https://gist.github.com/wzup/fc3254562236c1ec3f69
|
2
|
+
# https://github.com/beautify-web/js-beautify/blob/master/jsbeautifyrc
|
3
|
+
{
|
4
|
+
"end-with-newline": true,
|
5
|
+
"indent_char": " ",
|
6
|
+
"indent_level": 0,
|
7
|
+
"indent_size": 2,
|
8
|
+
"indent_with_tabs": false,
|
9
|
+
"indent_handlebars": true,
|
10
|
+
"jslint_happy": true,
|
11
|
+
"max_preserve_newlines": 2,
|
12
|
+
"object": {},
|
13
|
+
"other": " ",
|
14
|
+
"preserve_newlines": true,
|
15
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
12
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# https://prettier.io/docs/en/ignore.html
|
2
|
+
# https://github.com/gitlabhq/gitlabhq/blob/master/.prettierignore
|
3
|
+
app/assets/javascripts/locale/**/app.js
|
4
|
+
app/assets/stylesheets/vendor/
|
5
|
+
node_modules/
|
6
|
+
package.json
|
7
|
+
plugins/**/assets/stylesheets/vendor/
|
8
|
+
public/
|
9
|
+
storage/
|
10
|
+
tmp/
|
11
|
+
vendor/
|
12
|
+
build
|
13
|
+
.build
|
14
|
+
|
15
|
+
# ignore stylesheets for now as this clashes with our linter
|
16
|
+
*.css
|
17
|
+
*.scss
|
18
|
+
|
19
|
+
# Ignore locale (i18n config) files
|
20
|
+
config/locales/**/*.yml
|
21
|
+
!config/locales/**/*.en.yml
|
@@ -0,0 +1,62 @@
|
|
1
|
+
// https://prettier.io/
|
2
|
+
// http://json.schemastore.org/prettierrc
|
3
|
+
// https://github.com/prettier/prettier-atom
|
4
|
+
// https://prettier.io/docs/en/configuration.html
|
5
|
+
// https://github.com/obartra/prettierrc/blob/master/example/.prettierrc
|
6
|
+
module.exports = {
|
7
|
+
"eslintIntegration": true,
|
8
|
+
"bracketSpacing": true,
|
9
|
+
"useTabs": false, // Indent lines with tabs instead of spaces.
|
10
|
+
"printWidth": 80, // Specify the length of line that the printer will wrap on.
|
11
|
+
"tabWidth": 2, // Specify the number of spaces per indentation-level.
|
12
|
+
"singleQuote": true, // Use single quotes instead of double quotes.
|
13
|
+
/**
|
14
|
+
* Print trailing commas wherever possible.
|
15
|
+
* Valid options:
|
16
|
+
* - "none" - no trailing commas
|
17
|
+
* - "es5" - trailing commas where valid in ES5 (objects, arrays, etc)
|
18
|
+
* - "all" - trailing commas wherever possible (function arguments)
|
19
|
+
*/
|
20
|
+
// "trailingComma": "none",
|
21
|
+
"trailingComma":"es5",
|
22
|
+
|
23
|
+
/**
|
24
|
+
* Do not print spaces between brackets.
|
25
|
+
* If true, puts the > of a multi-line jsx element at the end of the last line instead of being
|
26
|
+
* alone on the next line
|
27
|
+
*/
|
28
|
+
"jsxBracketSameLine": false,
|
29
|
+
/**
|
30
|
+
* Specify which parse to use.
|
31
|
+
* Valid options:
|
32
|
+
* - "flow"
|
33
|
+
* - "babylon"
|
34
|
+
*/
|
35
|
+
"parser": "babylon",
|
36
|
+
/**
|
37
|
+
* Do not print semicolons, except at the beginning of lines which may need them.
|
38
|
+
* Valid options:
|
39
|
+
* - true - add a semicolon at the end of every line
|
40
|
+
* - false - only add semicolons at the beginning of lines that may introduce ASI failures
|
41
|
+
*/
|
42
|
+
"noSemi": true,
|
43
|
+
"semi": true,
|
44
|
+
/**
|
45
|
+
* Add additional logging from prettierrc (not prettier itself).
|
46
|
+
* Defaults to false
|
47
|
+
* Valid options:
|
48
|
+
* - true - enable additional logging
|
49
|
+
* - false - disable additional logging
|
50
|
+
*/
|
51
|
+
"rcVerbose": true,
|
52
|
+
|
53
|
+
// All files specified will be figured using the override values
|
54
|
+
"overrides": [
|
55
|
+
{
|
56
|
+
"files": ["**/app/**/*", "**/spec/**/*"],
|
57
|
+
"options": {
|
58
|
+
"trailingComma": "all"
|
59
|
+
}
|
60
|
+
}
|
61
|
+
]
|
62
|
+
};
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require:
|
2
|
+
- rubocop-performance
|
3
|
+
- rubocop-rails
|
4
|
+
<%- if options[:test_engine] == 'minitest' && !options[:skip_tests] -%>
|
5
|
+
- rubocop-minitest
|
6
|
+
<%- elsif options[:test_engine] == 'rspec' && !options[:skip_tests] -%>
|
7
|
+
- rubocop-rspec
|
8
|
+
<%- end -%>
|
9
|
+
|
10
|
+
AllCops:
|
11
|
+
NewCops: disable
|
12
|
+
Exclude:
|
13
|
+
- Aptfile
|
14
|
+
- Brewfile
|
15
|
+
- Gemfile
|
16
|
+
- Guardfile
|
17
|
+
- Rakefile
|
18
|
+
- '.**'
|
19
|
+
- '**/*.md'
|
20
|
+
- '**/**.yml'
|
21
|
+
- 'app/assets/**/*'
|
22
|
+
- 'benches/**/*'
|
23
|
+
- 'bin/**/*'
|
24
|
+
- 'config/**/*'
|
25
|
+
- 'db/**/*'
|
26
|
+
- 'docs/**/*'
|
27
|
+
- 'hidden/**/*'
|
28
|
+
- 'lib/**/*'
|
29
|
+
- 'log/**/*'
|
30
|
+
- 'node_modules/**/*'
|
31
|
+
- 'pkg/**/*'
|
32
|
+
- 'public/**/*
|
33
|
+
- 'storage/**/*'
|
34
|
+
- 'test/**/*'
|
35
|
+
- 'spec/rails_helper.rb'
|
36
|
+
- 'spec/spec_helper.rb'
|
37
|
+
- 'spec/support/**/**'
|
38
|
+
- 'tmp/**/*'
|
39
|
+
- 'vendor/**/*'
|
40
|
+
TargetRubyVersion: <%= RUBY_VERSION.to_f %>
|
41
|
+
UseCache: true
|
42
|
+
Layout/LineLength:
|
43
|
+
AllowURI: true
|
44
|
+
Enabled: false
|
45
|
+
Metrics/AbcSize:
|
46
|
+
Max: 42
|
47
|
+
Metrics/BlockLength:
|
48
|
+
Enabled: false
|
49
|
+
Metrics/CyclomaticComplexity:
|
50
|
+
Max: 12
|
51
|
+
Metrics/MethodLength:
|
52
|
+
CountComments: false
|
53
|
+
Max: 43
|
54
|
+
Metrics/ModuleLength:
|
55
|
+
Max: 164
|
56
|
+
Metrics/PerceivedComplexity:
|
57
|
+
Max: 14
|
58
|
+
Style/Documentation:
|
59
|
+
Enabled: false
|
60
|
+
Style/EmptyMethod:
|
61
|
+
EnforcedStyle: expanded
|
62
|
+
Style/HashEachMethods:
|
63
|
+
Enabled: false
|
64
|
+
Style/HashTransformValues:
|
65
|
+
Enabled: false
|
66
|
+
Style/HashTransformKeys:
|
67
|
+
Enabled: false
|
68
|
+
# Style/FrozenStringLiteralComment:
|
69
|
+
# Description: ">- Apply frozen_string_literal to the top of ruby files\nThis is for transitioniting from Ruby 2.3 to Ruby 3.0"
|
70
|
+
# Enabled: false
|
71
|
+
|
72
|
+
##############################
|
73
|
+
# Rails specific
|
74
|
+
##############################
|
75
|
+
Rails/HasManyOrHasOneDependent:
|
76
|
+
Enabled: false
|
77
|
+
Rails/InverseOf:
|
78
|
+
Enabled: false
|
@@ -0,0 +1,132 @@
|
|
1
|
+
# https://github.com/brigade/scss-lint/blob/master/lib/scss_lint/linter/README.md
|
2
|
+
# https://github.com/tootsuite/mastodon/blob/master/.scss-lint.yml
|
3
|
+
# Exclude foreign made assets and stylesheets
|
4
|
+
exclude:
|
5
|
+
- 'lib/*'
|
6
|
+
- 'test/*'
|
7
|
+
- 'spec/*'
|
8
|
+
- 'storage/**/*'
|
9
|
+
- 'tmp/**/*'
|
10
|
+
- 'vender/*'
|
11
|
+
|
12
|
+
linters:
|
13
|
+
# Reports when you use improper spacing around ! (the "bang") in !default,
|
14
|
+
# !global, !important, and !optional flags.
|
15
|
+
BangFormat:
|
16
|
+
enabled: true
|
17
|
+
|
18
|
+
# Whether or not to prefer `border: 0` over `border: none`.
|
19
|
+
BorderZero:
|
20
|
+
enabled: true
|
21
|
+
|
22
|
+
# this allows you to use #fff rather than specifing a color through a variable
|
23
|
+
ColorVariable:
|
24
|
+
enabled: false
|
25
|
+
|
26
|
+
# Allow you to use /* multiline */ comments rather and limited to //
|
27
|
+
Comment:
|
28
|
+
enabled: false
|
29
|
+
|
30
|
+
# Reports when you define the same property twice in a single rule set.
|
31
|
+
DuplicateProperty:
|
32
|
+
enabled: true
|
33
|
+
ignore_consecutive:
|
34
|
+
- cursor
|
35
|
+
|
36
|
+
# Separate rule, function, and mixin declarations with empty lines.
|
37
|
+
EmptyLineBetweenBlocks:
|
38
|
+
enabled: true
|
39
|
+
|
40
|
+
# Reports when you have an empty rule set.
|
41
|
+
EmptyRule:
|
42
|
+
enabled: true
|
43
|
+
|
44
|
+
# Files should always have a final newline. This results in better diffs
|
45
|
+
# when adding lines to the file, since SCM systems such as git won't
|
46
|
+
# think that you touched the last line.
|
47
|
+
FinalNewline:
|
48
|
+
enabled: true
|
49
|
+
|
50
|
+
# HEX color values should use lower-case colors to differentiate between
|
51
|
+
# letters and numbers, e.g. `#E3E3E3` vs. `#e3e3e3`.
|
52
|
+
HexNotation:
|
53
|
+
enabled: true
|
54
|
+
|
55
|
+
# allow #ids to be used
|
56
|
+
IdSelector:
|
57
|
+
enabled: false
|
58
|
+
|
59
|
+
# allows you to use !important
|
60
|
+
ImportantRule:
|
61
|
+
enabled: false
|
62
|
+
|
63
|
+
Indentation:
|
64
|
+
severity: warning
|
65
|
+
width: 2
|
66
|
+
|
67
|
+
# Don't write leading zeros for numeric values with a decimal point.
|
68
|
+
LeadingZero:
|
69
|
+
enabled: false
|
70
|
+
|
71
|
+
# Avoid nesting selectors too deeply.
|
72
|
+
NestingDepth:
|
73
|
+
enabled: true
|
74
|
+
max_depth: 6 # default is 3, revert back to 3 after cleanup
|
75
|
+
ignore_parent_selectors: false
|
76
|
+
|
77
|
+
# Reports when you use an unknown or disabled CSS property
|
78
|
+
# (ignoring vendor-prefixed properties).
|
79
|
+
PropertySpelling:
|
80
|
+
enabled: false
|
81
|
+
|
82
|
+
# Avoid qualifying elements in selectors (also known as "tag-qualifying").
|
83
|
+
QualifyingElement:
|
84
|
+
enabled: false
|
85
|
+
allow_element_with_attribute: false
|
86
|
+
allow_element_with_class: false
|
87
|
+
allow_element_with_id: false
|
88
|
+
|
89
|
+
# Don't write selectors with a depth of applicability greater than max_depth
|
90
|
+
SelectorDepth:
|
91
|
+
enabled: true
|
92
|
+
max_depth: 6 # default is 3, revert back to 3 after cleanup
|
93
|
+
|
94
|
+
# ENABLE: currently disabled to remove errors from addons (icheckbox, etc.)
|
95
|
+
SelectorFormat:
|
96
|
+
enabled: true
|
97
|
+
|
98
|
+
# Prefer the shortest shorthand form possible for properties that support it.
|
99
|
+
Shorthand:
|
100
|
+
enabled: true
|
101
|
+
|
102
|
+
# Each property should have its own line, except in the special case of
|
103
|
+
# single line rulesets.
|
104
|
+
SingleLinePerProperty:
|
105
|
+
enabled: true
|
106
|
+
allow_single_line_rule_sets: true
|
107
|
+
|
108
|
+
# allow selectors to be listed all in the same line: h1, h2, h3
|
109
|
+
SingleLinePerSelector:
|
110
|
+
enabled: false
|
111
|
+
|
112
|
+
# Commas in lists should be followed by a space.
|
113
|
+
SpaceAfterComma:
|
114
|
+
enabled: false
|
115
|
+
|
116
|
+
# Properties should be formatted with a single space separating the colon
|
117
|
+
# from the property's value.
|
118
|
+
SpaceAfterPropertyColon:
|
119
|
+
enabled: true
|
120
|
+
|
121
|
+
# Property values, @extend, @include, and @import directives, and variable
|
122
|
+
# declarations should always end with a semicolon.
|
123
|
+
TrailingSemicolon:
|
124
|
+
enabled: true
|
125
|
+
|
126
|
+
# avoid errors caused by using VenderPrefixes
|
127
|
+
VendorPrefix:
|
128
|
+
enabled: false
|
129
|
+
|
130
|
+
# Omit length units on zero values, e.g. `0px` vs. `0`.
|
131
|
+
ZeroUnit:
|
132
|
+
enabled: true
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'simplecov'
|
4
|
+
SimpleCov.start('rails') do
|
5
|
+
add_group 'Policies', 'app/policies'
|
6
|
+
|
7
|
+
add_filter('/bin/')
|
8
|
+
add_filter('/config/')
|
9
|
+
add_filter('/db/')
|
10
|
+
add_filter('/docs/')
|
11
|
+
add_filter('/lib/tasks/auto_annotate_models.rake')
|
12
|
+
add_filter('/lib/tasks/coverage.rake')
|
13
|
+
add_filter('/node_modules/')
|
14
|
+
add_filter('/public/')
|
15
|
+
add_filter('/storage/')
|
16
|
+
add_filter('/tmp/')
|
17
|
+
end
|
18
|
+
SimpleCov.minimum_coverage(90)
|
19
|
+
SimpleCov.use_merging(false)
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# configuration for using slim-lint
|
2
|
+
# src: https://github.com/sds/slim-lint
|
3
|
+
# => https://github.com/sds/slim-lint/blob/master/config/default.yml
|
4
|
+
exclude:
|
5
|
+
- app/assets/*
|
6
|
+
- /bin/**/*
|
7
|
+
- db/**/*
|
8
|
+
- config/**/*
|
9
|
+
- coverage/**/*
|
10
|
+
- db/**/*
|
11
|
+
- log/**/*
|
12
|
+
- node_modules/**/*
|
13
|
+
- public/*
|
14
|
+
- spec/*
|
15
|
+
- storage/*
|
16
|
+
- test/*
|
17
|
+
- tmp/*
|
18
|
+
|
19
|
+
|
20
|
+
linters:
|
21
|
+
LineLength:
|
22
|
+
enabled: false
|
23
|
+
#max: 100
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# https://yarnpkg.com/lang/en/docs/cli/autoclean/
|
2
|
+
# https://github.com/tootsuite/mastodon/blob/master/.yarnclean
|
3
|
+
|
4
|
+
# test directories
|
5
|
+
__tests__
|
6
|
+
test
|
7
|
+
tests
|
8
|
+
powered-test
|
9
|
+
|
10
|
+
# asset directories
|
11
|
+
docs
|
12
|
+
doc
|
13
|
+
website
|
14
|
+
images
|
15
|
+
# assets
|
16
|
+
|
17
|
+
# editor configs
|
18
|
+
.idea
|
19
|
+
.vscode
|
20
|
+
|
21
|
+
# examples
|
22
|
+
example
|
23
|
+
examples
|
24
|
+
|
25
|
+
# code coverage directories
|
26
|
+
coverage
|
27
|
+
.nyc_output
|
28
|
+
|
29
|
+
# configs
|
30
|
+
.gitattributes
|
31
|
+
.editorconfig
|
32
|
+
.*ignore
|
33
|
+
.eslintrc
|
34
|
+
.jshintrc
|
35
|
+
.flowconfig
|
36
|
+
.documentup.json
|
37
|
+
.yarn-metadata.json
|
38
|
+
|
39
|
+
|
40
|
+
# misc
|
41
|
+
*.gz
|
42
|
+
*.md
|
43
|
+
|
44
|
+
# for specific ignore
|
45
|
+
!.svgo.yml
|
46
|
+
!sass-lint/**/*.yml
|