kowl 0.0.1

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 (250) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +7 -0
  3. data/README.md +383 -0
  4. data/bin/console +14 -0
  5. data/bin/kowl +106 -0
  6. data/bin/setup +13 -0
  7. data/lib/kowl/actions.rb +240 -0
  8. data/lib/kowl/docker.rb +447 -0
  9. data/lib/kowl/generators/README.md +5 -0
  10. data/lib/kowl/generators/action_generator.rb +113 -0
  11. data/lib/kowl/generators/admin_generator.rb +114 -0
  12. data/lib/kowl/generators/assets_generator.rb +188 -0
  13. data/lib/kowl/generators/base.rb +40 -0
  14. data/lib/kowl/generators/circleci_generator.rb +11 -0
  15. data/lib/kowl/generators/config_generator.rb +180 -0
  16. data/lib/kowl/generators/controller_generator.rb +64 -0
  17. data/lib/kowl/generators/database_generator.rb +42 -0
  18. data/lib/kowl/generators/decorators_generator.rb +16 -0
  19. data/lib/kowl/generators/docker_generator.rb +40 -0
  20. data/lib/kowl/generators/dotfiles_generator.rb +73 -0
  21. data/lib/kowl/generators/libs_generator.rb +19 -0
  22. data/lib/kowl/generators/mailer_generator.rb +58 -0
  23. data/lib/kowl/generators/misc_generator.rb +20 -0
  24. data/lib/kowl/generators/overrides/app_base.rb +15 -0
  25. data/lib/kowl/generators/overrides/app_builder.rb +58 -0
  26. data/lib/kowl/generators/overrides/app_generator.rb +249 -0
  27. data/lib/kowl/generators/pages_generator.rb +46 -0
  28. data/lib/kowl/generators/routes_generator.rb +20 -0
  29. data/lib/kowl/generators/sidekiq_generator.rb +31 -0
  30. data/lib/kowl/generators/staging_generator.rb +14 -0
  31. data/lib/kowl/generators/test_generator.rb +42 -0
  32. data/lib/kowl/generators/text_files_generator.rb +41 -0
  33. data/lib/kowl/generators/users_and_auth_generator.rb +143 -0
  34. data/lib/kowl/generators/uuid_generator.rb +39 -0
  35. data/lib/kowl/generators/views_and_helpers_generator.rb +104 -0
  36. data/lib/kowl/geodb.rb +96 -0
  37. data/lib/kowl/helpers.rb +139 -0
  38. data/lib/kowl/templates/Gemfile.erb.tt +253 -0
  39. data/lib/kowl/templates/README.md.erb +33 -0
  40. data/lib/kowl/templates/app/assets/javascripts/semantic.js.tt +26 -0
  41. data/lib/kowl/templates/app/assets/stylesheets/administrate/application.scss +44 -0
  42. data/lib/kowl/templates/app/assets/stylesheets/bootstrap/_custom_styling.scss +38 -0
  43. data/lib/kowl/templates/app/assets/stylesheets/bootstrap/application-mailer.scss +1 -0
  44. data/lib/kowl/templates/app/assets/stylesheets/bootstrap/application.scss +14 -0
  45. data/lib/kowl/templates/app/assets/stylesheets/bootstrap/components/_alerts.scss +7 -0
  46. data/lib/kowl/templates/app/assets/stylesheets/bootstrap/components/_errors.scss +28 -0
  47. data/lib/kowl/templates/app/assets/stylesheets/bootstrap/components/_navbar.scss +17 -0
  48. data/lib/kowl/templates/app/assets/stylesheets/bootstrap/variables.scss +6 -0
  49. data/lib/kowl/templates/app/assets/stylesheets/semantic/_custom_styling.scss +20 -0
  50. data/lib/kowl/templates/app/assets/stylesheets/semantic/application.scss +24 -0
  51. data/lib/kowl/templates/app/controllers/admin/application_controller.rb +29 -0
  52. data/lib/kowl/templates/app/controllers/admin/login_activities_controller.rb +29 -0
  53. data/lib/kowl/templates/app/controllers/admin/users_controller.rb +37 -0
  54. data/lib/kowl/templates/app/controllers/concerns/auth/authentication.rb +18 -0
  55. data/lib/kowl/templates/app/controllers/concerns/auth/authorization.rb +20 -0
  56. data/lib/kowl/templates/app/controllers/concerns/auth/error_handlers.rb +27 -0
  57. data/lib/kowl/templates/app/controllers/concerns/noauth/error_handlers.rb +25 -0
  58. data/lib/kowl/templates/app/controllers/users_controller.rb +17 -0
  59. data/lib/kowl/templates/app/dashboards/login_activity_dashboard.rb.tt +59 -0
  60. data/lib/kowl/templates/app/dashboards/rich_text_body_dashboard.rb.tt +17 -0
  61. data/lib/kowl/templates/app/dashboards/user_dashboard.rb.tt +60 -0
  62. data/lib/kowl/templates/app/fields/gravatar_field.rb +10 -0
  63. data/lib/kowl/templates/app/fields/rich_text_area_field.rb +8 -0
  64. data/lib/kowl/templates/app/inputs/rich_text_area_input.rb +11 -0
  65. data/lib/kowl/templates/app/javascript/administrate/components/date_time_picker.js.tt +32 -0
  66. data/lib/kowl/templates/app/javascript/administrate/components/table.js.tt +49 -0
  67. data/lib/kowl/templates/app/javascript/administrate/index.js +3 -0
  68. data/lib/kowl/templates/app/javascript/packs/administrate.js.tt +21 -0
  69. data/lib/kowl/templates/app/javascript/packs/semantic.js +11 -0
  70. data/lib/kowl/templates/app/mailers/application_mailer.rb +7 -0
  71. data/lib/kowl/templates/app/mailers/devise_mailer.rb +5 -0
  72. data/lib/kowl/templates/app/models/login_activity.rb.tt +29 -0
  73. data/lib/kowl/templates/app/models/user.rb.tt +72 -0
  74. data/lib/kowl/templates/app/policies/application_policy.rb +38 -0
  75. data/lib/kowl/templates/app/policies/login_activity_policy.rb +35 -0
  76. data/lib/kowl/templates/app/policies/user_policy.rb +43 -0
  77. data/lib/kowl/templates/app/views/admin/templates/navigation.erb.tt +23 -0
  78. data/lib/kowl/templates/app/views/admin/views/application/_javascript.html.erb +21 -0
  79. data/lib/kowl/templates/app/views/admin/views/users/_collection.html.erb +102 -0
  80. data/lib/kowl/templates/app/views/admin/views/users/_form.html.erb +46 -0
  81. data/lib/kowl/templates/app/views/admin/views/users/edit.html.erb +36 -0
  82. data/lib/kowl/templates/app/views/admin/views/users/index.html.erb +66 -0
  83. data/lib/kowl/templates/app/views/fields/gravatar_field/_form.html.erb +6 -0
  84. data/lib/kowl/templates/app/views/fields/gravatar_field/_index.html.erb +1 -0
  85. data/lib/kowl/templates/app/views/fields/gravatar_field/_show.html.erb +1 -0
  86. data/lib/kowl/templates/app/views/fields/rich_text_area_field/_form.html.erb +6 -0
  87. data/lib/kowl/templates/app/views/fields/rich_text_area_field/_index.html.erb +1 -0
  88. data/lib/kowl/templates/app/views/fields/rich_text_area_field/_show.html.erb +1 -0
  89. data/lib/kowl/templates/app/views/layouts/admin.html.erb.tt +47 -0
  90. data/lib/kowl/templates/app/views/layouts/devise_mailer.html.erb +14 -0
  91. data/lib/kowl/templates/app/views/pages/welcome/bootstrap.html.erb +18 -0
  92. data/lib/kowl/templates/app/views/pages/welcome/bootstrap.html.haml +17 -0
  93. data/lib/kowl/templates/app/views/pages/welcome/bootstrap.html.slim +17 -0
  94. data/lib/kowl/templates/app/views/pages/welcome/default.html.erb +0 -0
  95. data/lib/kowl/templates/app/views/pages/welcome/default.html.haml +0 -0
  96. data/lib/kowl/templates/app/views/pages/welcome/default.html.slim +0 -0
  97. data/lib/kowl/templates/app/views/pages/welcome/semantic.html.erb +20 -0
  98. data/lib/kowl/templates/app/views/pages/welcome/semantic.html.haml +17 -0
  99. data/lib/kowl/templates/app/views/pages/welcome/semantic.html.slim +17 -0
  100. data/lib/kowl/templates/app/views/shared/footer/bootstrap.html.erb.tt +5 -0
  101. data/lib/kowl/templates/app/views/shared/footer/bootstrap.html.haml.tt +3 -0
  102. data/lib/kowl/templates/app/views/shared/footer/bootstrap.html.slim.tt +3 -0
  103. data/lib/kowl/templates/app/views/shared/footer/semantic.html.erb.tt +7 -0
  104. data/lib/kowl/templates/app/views/shared/footer/semantic.html.haml.tt +5 -0
  105. data/lib/kowl/templates/app/views/shared/footer/semantic.html.slim.tt +5 -0
  106. data/lib/kowl/templates/app/views/shared/navigation/bootstrap.html.erb.tt +51 -0
  107. data/lib/kowl/templates/app/views/shared/navigation/bootstrap.html.haml.tt +36 -0
  108. data/lib/kowl/templates/app/views/shared/navigation/bootstrap.html.slim.tt +36 -0
  109. data/lib/kowl/templates/app/views/shared/navigation/semantic.html.erb.tt +48 -0
  110. data/lib/kowl/templates/app/views/shared/navigation/semantic.html.haml.tt +36 -0
  111. data/lib/kowl/templates/app/views/shared/navigation/semantic.html.slim.tt +36 -0
  112. data/lib/kowl/templates/app/workers/scheduler/pghero_scheduler.rb +11 -0
  113. data/lib/kowl/templates/config/autoprefixer.yml +4 -0
  114. data/lib/kowl/templates/config/db/mysql.yml.tt +43 -0
  115. data/lib/kowl/templates/config/db/oracle.yml.tt +29 -0
  116. data/lib/kowl/templates/config/db/postgresql.yml.tt +37 -0
  117. data/lib/kowl/templates/config/db/sqlite3.yml.tt +20 -0
  118. data/lib/kowl/templates/config/db/sqlserver.yml.tt +28 -0
  119. data/lib/kowl/templates/config/initializers/administrate.rb.tt +9 -0
  120. data/lib/kowl/templates/config/initializers/bullet.rb +21 -0
  121. data/lib/kowl/templates/config/initializers/devise-security.rb +44 -0
  122. data/lib/kowl/templates/config/initializers/devise_argon2.rb +29 -0
  123. data/lib/kowl/templates/config/initializers/faker.rb +6 -0
  124. data/lib/kowl/templates/config/initializers/generators.rb.tt +31 -0
  125. data/lib/kowl/templates/config/initializers/geocoder.rb +10 -0
  126. data/lib/kowl/templates/config/initializers/letter_opener.rb +13 -0
  127. data/lib/kowl/templates/config/initializers/lockbox.rb +11 -0
  128. data/lib/kowl/templates/config/initializers/logging.rb +6 -0
  129. data/lib/kowl/templates/config/initializers/lograge.rb +7 -0
  130. data/lib/kowl/templates/config/initializers/logstop.rb +4 -0
  131. data/lib/kowl/templates/config/initializers/middleware.rb +9 -0
  132. data/lib/kowl/templates/config/initializers/oj.rb +7 -0
  133. data/lib/kowl/templates/config/initializers/pagy.rb.tt +16 -0
  134. data/lib/kowl/templates/config/initializers/postmark.rb +8 -0
  135. data/lib/kowl/templates/config/initializers/rack_attack.rb.tt +71 -0
  136. data/lib/kowl/templates/config/initializers/sass.rb +5 -0
  137. data/lib/kowl/templates/config/initializers/sidekiq.rb +11 -0
  138. data/lib/kowl/templates/config/initializers/simpleform/semantic.rb +225 -0
  139. data/lib/kowl/templates/config/initializers/slim.rb +6 -0
  140. data/lib/kowl/templates/config/initializers/sparkpost.rb +13 -0
  141. data/lib/kowl/templates/config/routes.rb.tt +28 -0
  142. data/lib/kowl/templates/config/sidekiq.yml.tt +17 -0
  143. data/lib/kowl/templates/db/migrations/create_action_text_tables.action_text.rb.tt +16 -0
  144. data/lib/kowl/templates/db/migrations/create_active_storage_tables.active_storage.rb.tt +29 -0
  145. data/lib/kowl/templates/db/migrations/devise.rb.tt +59 -0
  146. data/lib/kowl/templates/db/migrations/login_activities.rb.tt +41 -0
  147. data/lib/kowl/templates/db/seeds.rb.tt +14 -0
  148. data/lib/kowl/templates/docker/Dockerfile.alpine.tt +92 -0
  149. data/lib/kowl/templates/docker/Dockerfile.debian.tt +133 -0
  150. data/lib/kowl/templates/docker/docker-compose.yml.tt +55 -0
  151. data/lib/kowl/templates/docker/mysql/Dockerfile.tt +15 -0
  152. data/lib/kowl/templates/dotfiles/Aptfile.tt +34 -0
  153. data/lib/kowl/templates/dotfiles/Brewfile.tt +49 -0
  154. data/lib/kowl/templates/dotfiles/Procfile.tt +12 -0
  155. data/lib/kowl/templates/dotfiles/codeclimate.yml +76 -0
  156. data/lib/kowl/templates/dotfiles/coffeelint.json +10 -0
  157. data/lib/kowl/templates/dotfiles/coffeelintignore +15 -0
  158. data/lib/kowl/templates/dotfiles/dockerignore +23 -0
  159. data/lib/kowl/templates/dotfiles/editorconfig +13 -0
  160. data/lib/kowl/templates/dotfiles/env.tt +58 -0
  161. data/lib/kowl/templates/dotfiles/erb-lint.yml +10 -0
  162. data/lib/kowl/templates/dotfiles/erdconfig.tt +24 -0
  163. data/lib/kowl/templates/dotfiles/eslintignore +20 -0
  164. data/lib/kowl/templates/dotfiles/eslintrc.js +31 -0
  165. data/lib/kowl/templates/dotfiles/fasterer.yml +14 -0
  166. data/lib/kowl/templates/dotfiles/foreman +1 -0
  167. data/lib/kowl/templates/dotfiles/gitattributes +15 -0
  168. data/lib/kowl/templates/dotfiles/gitignore +69 -0
  169. data/lib/kowl/templates/dotfiles/haml-lint.yml +23 -0
  170. data/lib/kowl/templates/dotfiles/jsbeautifyrc +15 -0
  171. data/lib/kowl/templates/dotfiles/jshintrc +3 -0
  172. data/lib/kowl/templates/dotfiles/mailmap +3 -0
  173. data/lib/kowl/templates/dotfiles/nvmrc +1 -0
  174. data/lib/kowl/templates/dotfiles/prettierignore +21 -0
  175. data/lib/kowl/templates/dotfiles/prettierrc.js +62 -0
  176. data/lib/kowl/templates/dotfiles/pryrc +7 -0
  177. data/lib/kowl/templates/dotfiles/rspec +3 -0
  178. data/lib/kowl/templates/dotfiles/rubocop.yml.tt +78 -0
  179. data/lib/kowl/templates/dotfiles/scss-lint.yml +132 -0
  180. data/lib/kowl/templates/dotfiles/simplecov +19 -0
  181. data/lib/kowl/templates/dotfiles/slim-lint.yml +23 -0
  182. data/lib/kowl/templates/dotfiles/slugignore +10 -0
  183. data/lib/kowl/templates/dotfiles/yamllint +7 -0
  184. data/lib/kowl/templates/dotfiles/yarnclean +46 -0
  185. data/lib/kowl/templates/lib/tasks/stats.rake +42 -0
  186. data/lib/kowl/templates/tests/factories/README.md +0 -0
  187. data/lib/kowl/templates/tests/factories/login_activity.rb +11 -0
  188. data/lib/kowl/templates/tests/factories/user.rb +11 -0
  189. data/lib/kowl/templates/tests/minitest/README.md +3 -0
  190. data/lib/kowl/templates/tests/minitest/application_system_test_case.rb +7 -0
  191. data/lib/kowl/templates/tests/minitest/controllers/pages_controller_test.rb +10 -0
  192. data/lib/kowl/templates/tests/minitest/models/login_activity_test.rb +8 -0
  193. data/lib/kowl/templates/tests/minitest/models/user_test.rb +15 -0
  194. data/lib/kowl/templates/tests/minitest/policies/login_activity_policy_test.rb +7 -0
  195. data/lib/kowl/templates/tests/minitest/policies/user_policy_test.rb +7 -0
  196. data/lib/kowl/templates/tests/minitest/support/capybara.rb +38 -0
  197. data/lib/kowl/templates/tests/minitest/support/database_cleaner.rb +20 -0
  198. data/lib/kowl/templates/tests/minitest/support/database_cleaner_support.rb +15 -0
  199. data/lib/kowl/templates/tests/minitest/support/deferred_garbage_collection.rb +21 -0
  200. data/lib/kowl/templates/tests/minitest/support/devise.rb +16 -0
  201. data/lib/kowl/templates/tests/minitest/support/factories.rb +6 -0
  202. data/lib/kowl/templates/tests/minitest/support/formulaic.rb +8 -0
  203. data/lib/kowl/templates/tests/minitest/support/helpers/devise_helper.rb +57 -0
  204. data/lib/kowl/templates/tests/minitest/support/papertrail.rb +17 -0
  205. data/lib/kowl/templates/tests/minitest/support/pundit.rb +0 -0
  206. data/lib/kowl/templates/tests/minitest/support/shoulda.rb +11 -0
  207. data/lib/kowl/templates/tests/minitest/support/simplecov.rb +8 -0
  208. data/lib/kowl/templates/tests/minitest/test_helper.rb +17 -0
  209. data/lib/kowl/templates/tests/rspec/README.md +9 -0
  210. data/lib/kowl/templates/tests/rspec/controllers/admin/application_controller_spec.rb +12 -0
  211. data/lib/kowl/templates/tests/rspec/controllers/admin/users_controller_spec.rb +14 -0
  212. data/lib/kowl/templates/tests/rspec/controllers/pages_controller_spec.rb +10 -0
  213. data/lib/kowl/templates/tests/rspec/features/README.md +15 -0
  214. data/lib/kowl/templates/tests/rspec/features/visitor_sign_up_spec.rb +25 -0
  215. data/lib/kowl/templates/tests/rspec/helpers/application_helper_spec.rb +7 -0
  216. data/lib/kowl/templates/tests/rspec/helpers/pages_helper_spec.rb +15 -0
  217. data/lib/kowl/templates/tests/rspec/models/login_activity_spec.rb +11 -0
  218. data/lib/kowl/templates/tests/rspec/models/user_spec.rb +21 -0
  219. data/lib/kowl/templates/tests/rspec/policies/login_activity_policy_spec.rb +59 -0
  220. data/lib/kowl/templates/tests/rspec/policies/user_policy_spec.rb +56 -0
  221. data/lib/kowl/templates/tests/rspec/rails_helper.rb +72 -0
  222. data/lib/kowl/templates/tests/rspec/requests/pages_spec.rb +11 -0
  223. data/lib/kowl/templates/tests/rspec/spec_helper.rb +96 -0
  224. data/lib/kowl/templates/tests/rspec/support/bullet.rb +17 -0
  225. data/lib/kowl/templates/tests/rspec/support/capybara.rb +37 -0
  226. data/lib/kowl/templates/tests/rspec/support/controller_testing.rb +10 -0
  227. data/lib/kowl/templates/tests/rspec/support/database_cleaner.rb +55 -0
  228. data/lib/kowl/templates/tests/rspec/support/deferred_garbage_collection.rb +32 -0
  229. data/lib/kowl/templates/tests/rspec/support/devise.rb +21 -0
  230. data/lib/kowl/templates/tests/rspec/support/factories.rb +5 -0
  231. data/lib/kowl/templates/tests/rspec/support/formulaic.rb +8 -0
  232. data/lib/kowl/templates/tests/rspec/support/helpers/devise_helpers.rb +56 -0
  233. data/lib/kowl/templates/tests/rspec/support/papertrail.rb +5 -0
  234. data/lib/kowl/templates/tests/rspec/support/pi_ci.rb +6 -0
  235. data/lib/kowl/templates/tests/rspec/support/pundit.rb +6 -0
  236. data/lib/kowl/templates/tests/rspec/support/shoulda.rb +10 -0
  237. data/lib/kowl/templates/tests/rspec/support/sidekiq.rb +10 -0
  238. data/lib/kowl/templates/tests/rspec/support/simplecov.rb +7 -0
  239. data/lib/kowl/templates/tests/rspec/support/warden.rb +8 -0
  240. data/lib/kowl/templates/text_files/AUTHORS.md +4 -0
  241. data/lib/kowl/templates/text_files/CHANGELOG.md.tt +12 -0
  242. data/lib/kowl/templates/text_files/CODE_OF_CONDUCT.md +76 -0
  243. data/lib/kowl/templates/text_files/TODO.md +7 -0
  244. data/lib/kowl/templates/text_files/VERSION +1 -0
  245. data/lib/kowl/templates/text_files/humans.txt.tt +15 -0
  246. data/lib/kowl/templates/text_files/robots.txt.tt +6 -0
  247. data/lib/kowl/templates/text_files/security.txt +6 -0
  248. data/lib/kowl/version.rb +9 -0
  249. data/lib/kowl.rb +18 -0
  250. 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,15 @@
1
+ * text=auto eol=lf
2
+ *.eot -text
3
+ *.gif -text
4
+ *.gz -text
5
+ *.ico -text
6
+ *.jpg -text
7
+ *.mp3 -text
8
+ *.ogg -text
9
+ *.png -text
10
+ *.ttf -text
11
+ *.webm -text
12
+ *.woff -text
13
+ *.woff2 -text
14
+ *.yml text
15
+ spec/fixtures/requests/** -text !eol
@@ -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,3 @@
1
+ {
2
+ "esversion": 6
3
+ }
@@ -0,0 +1,3 @@
1
+ ########################################
2
+ # https://github.com/git/git/blob/master/Documentation/mailmap.txt
3
+ ########################################
@@ -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,7 @@
1
+ # https://github.com/steakknife/spirit_hands
2
+ begin
3
+ require 'spirit_hands'
4
+ rescue LoadError => e
5
+ raise unless e.message =~ /.*such file.*spirit_hands/
6
+ puts 'no SpiritHands'
7
+ end
@@ -0,0 +1,3 @@
1
+ --color
2
+ --format Fuubar
3
+ --require spec_helper
@@ -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,10 @@
1
+ .idea
2
+ .git
3
+ .cache/
4
+ docs/
5
+ node_modules/
6
+ spec/
7
+ storage/
8
+ test/
9
+ tmp/*
10
+ vendor/cache
@@ -0,0 +1,7 @@
1
+ # https://github.com/adrienverge/yamllint
2
+ ---
3
+
4
+ extends: default
5
+ rules:
6
+ line-length: disable
7
+ document-start: disable
@@ -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