kowl 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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