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,17 @@
1
+ h2 = title('Welcome')
2
+ p.lead
3
+ | Lorem ipsum dolor sit amet, consectetur adipiscing elit.
4
+ | Mauris maximus vulputate gravida.
5
+ | Integer eget mauris at orci molestie porta.
6
+
7
+ p
8
+ | In scelerisque leo vitae lacus commodo, eu tincidunt nisi suscipit.
9
+ | Pellentesque at sapien duiDuis sit amet arcu non ante sodales varius.
10
+ | Fusce nibh nulla, mollis a dolor eu, iaculis pharetra lectus.
11
+ | Sed turpis quam, imperdiet ut faucibus sit amet, efficitur ut nulla.
12
+ | Duis non accumsan lacus.
13
+ | Vestibulum nec diam quis dui convallis rhoncus quis sit amet massa.
14
+ | Maecenas ac est purus. Aliquam erat volutpat.
15
+ | Vestibulum tempus pharetra viverra.
16
+ | Etiam vestibulum et elit in vulputate.
17
+ | Quisque eget elementum purus, id volutpat augue.
@@ -0,0 +1,20 @@
1
+ <section>
2
+ <h2><%= title('Weclome') %></h2>
3
+ <p>
4
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.
5
+ Mauris maximus vulputate gravida.
6
+ Integer eget mauris at orci molestie porta.
7
+ </p>
8
+ <p>
9
+ In scelerisque leo vitae lacus commodo, eu tincidunt nisi suscipit.
10
+ Pellentesque at sapien duiDuis sit amet arcu non ante sodales varius.
11
+ Fusce nibh nulla, mollis a dolor eu, iaculis pharetra lectus.
12
+ Sed turpis quam, imperdiet ut faucibus sit amet, efficitur ut nulla.
13
+ Duis non accumsan lacus.
14
+ Vestibulum nec diam quis dui convallis rhoncus quis sit amet massa.
15
+ Maecenas ac est purus. Aliquam erat volutpat.
16
+ Vestibulum tempus pharetra viverra.
17
+ Etiam vestibulum et elit in vulputate.
18
+ Quisque eget elementum purus, id volutpat augue.
19
+ </p>
20
+ </section>
@@ -0,0 +1,17 @@
1
+ %section
2
+ %h2= title('Weclome')
3
+ %p
4
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.
5
+ Mauris maximus vulputate gravida.
6
+ Integer eget mauris at orci molestie porta.
7
+ %p
8
+ In scelerisque leo vitae lacus commodo, eu tincidunt nisi suscipit.
9
+ Pellentesque at sapien duiDuis sit amet arcu non ante sodales varius.
10
+ Fusce nibh nulla, mollis a dolor eu, iaculis pharetra lectus.
11
+ Sed turpis quam, imperdiet ut faucibus sit amet, efficitur ut nulla.
12
+ Duis non accumsan lacus.
13
+ Vestibulum nec diam quis dui convallis rhoncus quis sit amet massa.
14
+ Maecenas ac est purus. Aliquam erat volutpat.
15
+ Vestibulum tempus pharetra viverra.
16
+ Etiam vestibulum et elit in vulputate.
17
+ Quisque eget elementum purus, id volutpat augue.
@@ -0,0 +1,17 @@
1
+ section
2
+ h2 = title('Weclome')
3
+ p
4
+ | Lorem ipsum dolor sit amet, consectetur adipiscing elit.
5
+ | Mauris maximus vulputate gravida.
6
+ | Integer eget mauris at orci molestie porta.
7
+ p
8
+ | In scelerisque leo vitae lacus commodo, eu tincidunt nisi suscipit.
9
+ | Pellentesque at sapien duiDuis sit amet arcu non ante sodales varius.
10
+ | Fusce nibh nulla, mollis a dolor eu, iaculis pharetra lectus.
11
+ | Sed turpis quam, imperdiet ut faucibus sit amet, efficitur ut nulla.
12
+ | Duis non accumsan lacus.
13
+ | Vestibulum nec diam quis dui convallis rhoncus quis sit amet massa.
14
+ | Maecenas ac est purus. Aliquam erat volutpat.
15
+ | Vestibulum tempus pharetra viverra.
16
+ | Etiam vestibulum et elit in vulputate.
17
+ | Quisque eget elementum purus, id volutpat augue.
@@ -0,0 +1,5 @@
1
+ <footer class="footer">
2
+ <div class="container-fluid">
3
+ <span class="text-muted"><%= app_name.titleize %> &copy; <%= Date.current.strftime('%Y') %></span>
4
+ </div>
5
+ </footer>
@@ -0,0 +1,3 @@
1
+ %footer.footer
2
+ .container-fluid
3
+ %span.text-muted <%= app_name.titleize %> &copy; <%= Date.current.strftime('%Y') %>
@@ -0,0 +1,3 @@
1
+ footer.footer
2
+ .container-fluid
3
+ span.text-muted <%= app_name.titleize %> &copy; <%= Date.current.strftime('%Y') %>
@@ -0,0 +1,7 @@
1
+ <div class="ui vertical footer segment">
2
+ <div class="ui center aligned container">
3
+ <div class="ui horizontal small divided link list">
4
+ <strong><%= app_name.titleize %></strong> &copy; <%= Date.current.strftime('%Y') %>
5
+ </div>
6
+ </div>
7
+ </div>
@@ -0,0 +1,5 @@
1
+ .ui.vertical.footer.segment
2
+ .ui.center.aligned.container
3
+ .ui.horizontal.small.divided.link.list
4
+ %strong <%= app_name.titleize %>
5
+ | &copy; <%= Date.current.strftime('%Y') %>
@@ -0,0 +1,5 @@
1
+ .ui.vertical.footer.segment
2
+ .ui.center.aligned.container
3
+ .ui.horizontal.small.divided.link.list
4
+ strong <%= app_name.titleize %>
5
+ | &copy; <%= Date.current.strftime('%Y') %>
@@ -0,0 +1,51 @@
1
+ <nav class="navbar navbar-expand-lg navbar-light bg-light">
2
+ <%%= link_to '/', class: 'navbar-brand' do %><%= app_name.titleize %><%% end %>
3
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
4
+ <span class="navbar-toggler-icon"></span>
5
+ </button>
6
+ <div class="collapse navbar-collapse" id="navbarNav">
7
+ <ul class="navbar-nav">
8
+ <li class="nav-item active">
9
+ <a class="nav-link" href="/">Home <span class="sr-only">(current)</span></a>
10
+ </li>
11
+ <li class="nav-item">
12
+ <a class="nav-link" href="#">Features</a>
13
+ </li>
14
+ <li class="nav-item">
15
+ <a class="nav-link" href="#">Pricing</a>
16
+ </li>
17
+ <li class="nav-item">
18
+ <a class="nav-link disabled" href="#">Disabled</a>
19
+ </li>
20
+ </ul>
21
+
22
+ <%- unless options[:noauth] -%>
23
+ <ul class="nav navbar-nav ml-auto">
24
+ <%%- if user_signed_in? %>
25
+ <%%- if current_user.staff_member? %>
26
+ <li class="nav-item">
27
+ <%%= link_to 'admin', admin_root_path, class: 'nav-link' %>
28
+ </li>
29
+ <%% end %>
30
+ <li class="nav-item dropdown">
31
+ <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
32
+ <%%= current_user.email %>
33
+ </a>
34
+ <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
35
+ <%%= link_to "#{icon('fas', 'user-circle mr-1')} Edit Account".html_safe, edit_user_registration_path, class: 'dropdown-item' %>
36
+ <%%- if current_user != true_user %>
37
+ <%%= link_to stop_impersonating_users_path, method: :post, class: 'dropdown-item', title: 'Stop impersonating user' do %>
38
+ <%%== "#{icon('fas','theater-masks')} Stop Impersonating" %>
39
+ <%% end %>
40
+ <%%- end %>
41
+ <div class="dropdown-divider"></div>
42
+ <%%= link_to "#{icon('fas', 'sign-out-alt mr-1')} Logout".html_safe, destroy_user_session_path, method: :delete, class: 'dropdown-item' %>
43
+ </div>
44
+ </li>
45
+ <%%- else %>
46
+ <li><%%= link_to('Login', new_user_session_path, class: 'nav-item nav-link') %></li>
47
+ <%%- end %>
48
+ </ul>
49
+ <%- end -%>
50
+ </div>
51
+ </nav>
@@ -0,0 +1,36 @@
1
+ %nav.navbar.navbar-expand-lg.navbar-light.bg-light
2
+ = link_to '/', class: 'navbar-brand' do
3
+ = '<%= app_name.titleize %>'
4
+ %button.navbar-toggler{"aria-controls" => "navbarNav", "aria-expanded" => "false", "aria-label" => "Toggle navigation", "data-target" => "#navbarNav", "data-toggle" => "collapse", :type => "button"}
5
+ %span.navbar-toggler-icon
6
+ #navbarNav.collapse.navbar-collapse
7
+ %ul.navbar-nav
8
+ %li.nav-item.active
9
+ %a.nav-link{:href => "/"}
10
+ Home
11
+ %span.sr-only (current)
12
+ %li.nav-item
13
+ %a.nav-link{:href => "#"} Features
14
+ %li.nav-item
15
+ %a.nav-link{:href => "#"} Pricing
16
+ %li.nav-item
17
+ %a.nav-link.disabled{:href => "#"} Disabled
18
+ <%- unless options[:noauth] -%>
19
+ %ul.nav.navbar-nav.ml-auto
20
+ - if user_signed_in?
21
+ - if current_user.staff_member?
22
+ %li.nav-item
23
+ = link_to 'admin', admin_root_path, class: 'nav-link'
24
+ %li.nav-item.dropdown
25
+ %a#navbarDropdown.nav-link.dropdown-toggle{"aria-expanded" => "false", "aria-haspopup" => "true", "data-toggle" => "dropdown", :href => "#", :role => "button"}
26
+ = current_user.email
27
+ .dropdown-menu.dropdown-menu-right{"aria-labelledby" => "navbarDropdown"}
28
+ = link_to "#{icon('fas', 'user-circle mr-1')} Edit Account".html_safe, edit_user_registration_path, class: 'dropdown-item'
29
+ - if current_user != true_user
30
+ = link_to stop_impersonating_users_path, method: :post, class: 'dropdown-item', title: 'Stop impersonating user' do
31
+ == "#{icon('fas','theater-masks')} Stop Impersonating"
32
+ .dropdown-divider
33
+ = link_to "#{icon('fas', 'sign-out-alt mr-1')} Logout".html_safe, destroy_user_session_path, method: :delete, class: 'dropdown-item'
34
+ - else
35
+ %li= link_to('Login', new_user_session_path, class: 'nav-item nav-link')
36
+ <%- end -%>
@@ -0,0 +1,36 @@
1
+ nav.navbar.navbar-expand-lg.navbar-light.bg-light
2
+ = link_to '/', class: 'navbar-brand' do
3
+ = '<%= app_name.titleize %>'
4
+ button.navbar-toggler aria-controls="navbarNav" aria-expanded="false" aria-label=("Toggle navigation") data-target="#navbarNav" data-toggle="collapse" type="button"
5
+ span.navbar-toggler-icon
6
+ #navbarNav.collapse.navbar-collapse
7
+ ul.navbar-nav
8
+ li.nav-item.active
9
+ a.nav-link href="/"
10
+ | Home
11
+ span.sr-only (current)
12
+ li.nav-item
13
+ a.nav-link href="#" Features
14
+ li.nav-item
15
+ a.nav-link href="#" Pricing
16
+ li.nav-item
17
+ a.nav-link.disabled href="#" Disabled
18
+ <%- unless options[:noauth] -%>
19
+ ul.nav.navbar-nav.ml-auto
20
+ - if user_signed_in?
21
+ - if current_user.staff_member?
22
+ li.nav-item
23
+ = link_to 'admin', admin_root_path, class: 'nav-link'
24
+ li.nav-item.dropdown
25
+ a#navbarDropdown.nav-link.dropdown-toggle aria-expanded="false" aria-haspopup="true" data-toggle="dropdown" href="#" role="button"
26
+ = current_user.email
27
+ .dropdown-menu.dropdown-menu-right aria-labelledby="navbarDropdown"
28
+ = link_to "#{icon('fas', 'user-circle mr-1')} Edit Account".html_safe, edit_user_registration_path, class: 'dropdown-item'
29
+ - if current_user != true_user
30
+ = link_to stop_impersonating_users_path, method: :post, class: 'dropdown-item', title: 'Stop impersonating user' do
31
+ == "#{icon('fas','theater-masks')} Stop Impersonating"
32
+ .dropdown-divider
33
+ = link_to "#{icon('fas', 'sign-out-alt mr-1')} Logout".html_safe, destroy_user_session_path, method: :delete, class: 'dropdown-item'
34
+ - else
35
+ li= link_to('Login', new_user_session_path, class: 'nav-item nav-link')
36
+ <%- end -%>
@@ -0,0 +1,48 @@
1
+ <div class="ui fixed inverted menu">
2
+ <div class="menu">
3
+ <%%= link_to '/', class: 'header item' do %><%= app_name.titleize %><%%- end %>
4
+ <a href="/" class="item">Home</a>
5
+ <div class="ui simple dropdown item">
6
+ Dropdown <i class="dropdown icon"></i>
7
+ <div class="menu">
8
+ <a class="item" href="#">Link Item</a>
9
+ <a class="item" href="#">Link Item</a>
10
+ <div class="divider"></div>
11
+ <div class="header">Header Item</div>
12
+ <div class="item">
13
+ <i class="dropdown icon"></i>
14
+ Sub Menu
15
+ <div class="menu">
16
+ <a class="item" href="#">Link Item</a>
17
+ <a class="item" href="#">Link Item</a>
18
+ </div>
19
+ </div>
20
+ <a class="item" href="#">Link Item</a>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ <%- unless options[:noauth] -%>
25
+ <div class="right menu">
26
+ <%% if user_signed_in? %>
27
+ <%%- if current_user.staff_member? %>
28
+ <%%= link_to 'admin', admin_root_path, class: 'item' %>
29
+ <%%- end -%>
30
+ <div class="ui simple dropdown item">
31
+ <span class="current_user"><%%= current_user.email %></span> <i class="dropdown icon"></i>
32
+ <div class="menu">
33
+ <%%= link_to "#{icon('fas', 'user-circle mr-1')} Edit Account".html_safe, edit_user_registration_path, class: 'item' %>
34
+ <%%- if current_user != true_user %>
35
+ <%%= link_to stop_impersonating_users_path, method: :post, class: 'item', title: 'Stop impersonating user' do %>
36
+ <%%== "#{icon('fas','theater-masks')} Stop Impersonating" %>
37
+ <%% end %>
38
+ <%%- end %>
39
+ <div class="divider"></div>
40
+ <%%= link_to "#{icon('fas', 'sign-out-alt mr-1')} Logout".html_safe, destroy_user_session_path, method: :delete, class: 'item' %>
41
+ </div>
42
+ </div>
43
+ <%% else %>
44
+ <%%= link_to('Login', new_user_session_path, class: 'item') %>
45
+ <%% end %>
46
+ </div>
47
+ <% end %>
48
+ </div>
@@ -0,0 +1,36 @@
1
+ .ui.fixed.inverted.menu
2
+ .menu
3
+ = link_to '<%= app_name.titleize %>', '/', class: 'header item'
4
+ %a.item{:href => "/"} Home
5
+ .ui.simple.dropdown.item
6
+ Dropdown
7
+ %i.dropdown.icon
8
+ .menu
9
+ %a.item{:href => "#"} Link Item
10
+ %a.item{:href => "#"} Link Item
11
+ .divider
12
+ .header Header Item
13
+ .item
14
+ %i.dropdown.icon Sub Menu
15
+ .menu
16
+ %a.item{:href => "#"} Link Item
17
+ %a.item{:href => "#"} Link Item
18
+ %a.item{:href => "#"} Link Item
19
+ <%- unless options[:noauth] -%>
20
+ .right.menu
21
+ - if user_signed_in?
22
+ - if current_user.staff_member?
23
+ = link_to 'admin', admin_root_path, class: 'item'
24
+ .ui.simple.dropdown.item
25
+ %span.current_user= current_user.email
26
+ %i.dropdown.icon
27
+ .menu
28
+ = link_to "#{icon('fas', 'user-circle mr-1')} Edit Account".html_safe, edit_user_registration_path, class: 'item'
29
+ - if current_user != true_user
30
+ = link_to stop_impersonating_users_path, method: :post, class: 'item', title: 'Stop impersonating user' do
31
+ == #{icon('fas','theater-masks')} Stop Impersonating
32
+ .divider
33
+ = link_to "#{icon('fas', 'sign-out-alt mr-1')} Logout".html_safe, destroy_user_session_path, method: :delete, class: 'item'
34
+ - else
35
+ = link_to('Login', new_user_session_path, class: 'item')
36
+ <%- end -%>
@@ -0,0 +1,36 @@
1
+ .ui.fixed.inverted.menu
2
+ .menu
3
+ = link_to '/', class: 'header item' do
4
+ = app_name.titleize
5
+ a.item href="/" Home
6
+ .ui.simple.dropdown.item Dropdown
7
+ i.dropdown.icon
8
+ .menu
9
+ a.item href="#" Link Item
10
+ a.item href="#" Link Item
11
+ .divider
12
+ .header Header Item
13
+ .item
14
+ i.dropdown.icon Sub Menu
15
+ .menu
16
+ a.item href="#" Link Item
17
+ a.item href="#" Link Item
18
+ a.item href="#" Link Item
19
+ <%- unless options[:noauth] %>
20
+ .right.menu
21
+ - if user_signed_in?
22
+ - if current_user.staff_member?
23
+ = link_to 'admin', admin_root_path, class: 'item'
24
+ .ui.simple.dropdown.item
25
+ span.current_user= current_user.email
26
+ i.dropdown.icon
27
+ .menu
28
+ = link_to "#{icon('fas', 'user-circle mr-1')} Edit Account".html_safe, edit_user_registration_path, class: 'item'
29
+ - if current_user != true_user
30
+ = link_to stop_impersonating_users_path, method: :post, class: 'item', title: 'Stop impersonating user' do
31
+ == "#{icon('fas','theater-masks')} Stop Impersonating"
32
+ .divider
33
+ = link_to "#{icon('fas', 'sign-out-alt mr-1')} Logout".html_safe, destroy_user_session_path, method: :delete, class: 'item'
34
+ - else
35
+ = link_to('Login', new_user_session_path, class: 'item')
36
+ <%- end -%>
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Scheduler::PgheroScheduler
4
+ include Sidekiq::Worker
5
+
6
+ sidekiq_options unique: :until_executed, retry: 0
7
+
8
+ def perform
9
+ PgHero.capture_space_stats
10
+ end
11
+ end
@@ -0,0 +1,4 @@
1
+ browsers:
2
+ - "> 1%"
3
+ - "last 2 versions"
4
+ - "IE > 8"
@@ -0,0 +1,43 @@
1
+ default: &default
2
+ adapter: mysql2
3
+ encoding: utf8mb4
4
+ collation: utf8mb4_bin
5
+ reconnect: false
6
+ pool: <%%= ENV.fetch('RAILS_MAX_THREADS') { 5 } %>
7
+ username: <%%= ENV.fetch('DB_USER') { 'root' } %>
8
+ password: <%%= ENV.fetch('DB_PASSWORD') { 'password' } %>
9
+ host: <%%= ENV.fetch('DB_HOST') { 'localhost' } %>
10
+ port: <%= ENV.fetch('DB_PORT') { '3306' } %>
11
+ <% if mysql_socket -%>
12
+ socket: <%= mysql_socket %>
13
+ <% end -%>
14
+
15
+ development:
16
+ <<: *default
17
+ database: <%= app_name %>_development
18
+
19
+ staging:
20
+ <<: *default
21
+ database: <%= app_name %>_staging
22
+
23
+ production:
24
+ <<: *default
25
+ database: <%= app_name %>_production
26
+ username: <%= app_name %>
27
+ password: <%%= ENV['<%= app_name.upcase %>_DATABASE_PASSWORD'] %>
28
+ # https://github.com/ankane/the-ultimate-guide-to-ruby-timeouts/#mysql
29
+ # If you're using maria chance this to (max_statement_time: 5)
30
+ connect_timeout: 1
31
+ read_timeout: 1
32
+ write_timeout: 1
33
+ checkout_timeout: 5
34
+ variables:
35
+ max_execution_time: 5000 # ms, for MySQL 5.7.8 or higher
36
+ max_statement_time: 5 # sec, for MariaDB 10.1.1 or higher
37
+
38
+ # Warning: The database defined as "test" will be erased and
39
+ # re-generated from your development database when you run "rake".
40
+ # Do not set this db to the same as development or production.
41
+ test:
42
+ <<: *default
43
+ database: <%= app_name %>_test
@@ -0,0 +1,29 @@
1
+ default: &default
2
+ adapter: oracle_enhanced
3
+ pool: <%%= ENV.fetch('RAILS_MAX_THREADS') { 5 } %>
4
+ timeout: 5000
5
+ username: <%%= ENV.fetch('DB_USER') { 'system' } %>
6
+ password: <%%= ENV.fetch('DB_PASSWORD') { 'oracle' } %>
7
+ host: <%%= ENV.fetch('DB_HOST') { 'localhost' } %>
8
+ database: <%%= ENV.fetch('DB_SID') { 'xe' } %>
9
+
10
+ development:
11
+ <<: *default
12
+ # database: <%= app_name %>_development
13
+
14
+ staging:
15
+ <<: *default
16
+ # database: <%= app_name %>_staging
17
+
18
+ production:
19
+ <<: *default
20
+ database: <%= app_name %>_production
21
+ username: <%= app_name %>
22
+ password: <%%= ENV['<%= app_name.upcase %>_DATABASE_PASSWORD'] %>
23
+
24
+ # Warning: The database defined as "test" will be erased and
25
+ # re-generated from your development database when you run "rake".
26
+ # Do not set this db to the same as development or production.
27
+ test:
28
+ <<: *default
29
+ database: <%= app_name %>_test
@@ -0,0 +1,37 @@
1
+ default: &default
2
+ adapter: postgresql
3
+ encoding: unicode
4
+ # For details on connection pooling, see Rails configuration guide
5
+ # https://guides.rubyonrails.org/configuring.html#database-pooling
6
+ pool: <%%= ENV.fetch('RAILS_MAX_THREADS') { 5 } %>
7
+ timeout: <%%= ENV.fetch('DB_TIMEOUT', 3).to_i.seconds %>
8
+ username: <%%= ENV.fetch('DB_USER') { 'postgres' } %>
9
+ password: <%%= ENV.fetch('DB_PASSWORD') { 'password' } %>
10
+ host: <%%= ENV.fetch('DB_HOST') { 'localhost' } %>
11
+
12
+ development:
13
+ <<: *default
14
+ database: <%= app_name %>_development
15
+
16
+ staging:
17
+ <<: *default
18
+ database: <%= app_name %>_staging
19
+
20
+ # if you use pgbounder you need to disable prepared_statements -> https://edgeguides.rubyonrails.org/configuring.html#configuring-a-postgresql-database
21
+ production:
22
+ <<: *default
23
+ database: <%= app_name %>_production
24
+ username: <%= app_name %>
25
+ password: <%%= ENV['<%= app_name.upcase %>_DATABASE_PASSWORD'] %>
26
+ # https://github.com/ankane/the-ultimate-guide-to-ruby-timeouts/#statement-timeouts-1
27
+ connect_timeout: 2
28
+ checkout_timeout: 5
29
+ variables:
30
+ statement_timeout: 5000
31
+
32
+ # Warning: The database defined as "test" will be erased and
33
+ # re-generated from your development database when you run "rake".
34
+ # Do not set this db to the same as development or production.
35
+ test:
36
+ <<: *default
37
+ database: <%= app_name %>_test
@@ -0,0 +1,20 @@
1
+ default: &default
2
+ adapter: sqlite3
3
+ pool: <%%= ENV.fetch('RAILS_MAX_THREADS') { 5 } %>
4
+ timeout: 5000
5
+
6
+ development:
7
+ <<: *default
8
+ database: db/development.sqlite3
9
+
10
+ staging:
11
+ <<: *default
12
+ database: db/staging.sqlite3
13
+
14
+ test:
15
+ <<: *default
16
+ database: db/test.sqlite3
17
+
18
+ production:
19
+ <<: *default
20
+ database: db/production.sqlite3
@@ -0,0 +1,28 @@
1
+ default: &default
2
+ adapter: sqlserver
3
+ encoding: utf8
4
+ username: <%%= ENV.fetch('DB_USER') { 'sa' } %>
5
+ password: <%%= ENV.fetch('DB_PASSWORD') { 'password' } %>
6
+ host: <%%= ENV.fetch('DB_HOST') { 'localhost' } %>
7
+
8
+ development:
9
+ <<: *default
10
+ database: <%= app_name %>_development
11
+
12
+ staging:
13
+ <<: *default
14
+ database: <%= app_name %>_staging
15
+
16
+
17
+ production:
18
+ <<: *default
19
+ database: <%= app_name %>_production
20
+ username: <%= app_name %>
21
+ password: <%%= ENV['<%= app_name.upcase %>_DATABASE_PASSWORD'] %>
22
+
23
+ # Warning: The database defined as "test" will be erased and
24
+ # re-generated from your development database when you run "rake".
25
+ # Do not set this db to the same as development or production.
26
+ test:
27
+ <<: *default
28
+ database: <%= app_name %>_test
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ if defined?(Administrate)
4
+ Rails.application.configure do
5
+ config.to_prepare do
6
+ Administrate::ApplicationController.helper <%= app_name.titleize %>::Application.helpers
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ if defined?(Bullet)
4
+ if Rails.env.development?
5
+ Rails.application.config.after_initialize do
6
+ Bullet.enable = true
7
+ Bullet.bullet_logger = true
8
+ Bullet.rails_logger = true
9
+ # Bullet.add_footer = true
10
+ Bullet.unused_eager_loading_enable = false
11
+ end
12
+ end
13
+
14
+ if Rails.env.test?
15
+ Rails.application.config.after_initialize do
16
+ Bullet.enable = true
17
+ Bullet.bullet_logger = true
18
+ Bullet.raise = true # raise an error if n+1 query occurs
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ Devise.setup do |config|
4
+ # ==> Security Extension
5
+ # Configure security extension for devise
6
+
7
+ # Should the password expire (e.g 3.months)
8
+ # config.expire_password_after = false
9
+
10
+ # Need 1 char of A-Z, a-z and 0-9
11
+ config.password_complexity = { digit: 1, lower: 1, symbol: 1, upper: 1 }
12
+
13
+ # How many passwords to keep in archive
14
+ # config.password_archiving_count = 5
15
+
16
+ # Deny old passwords (true, false, number_of_old_passwords_to_check)
17
+ # Examples:
18
+ # config.deny_old_passwords = false # allow old passwords
19
+ # config.deny_old_passwords = true # will deny all the old passwords
20
+ # config.deny_old_passwords = 3 # will deny new passwords that matches with the last 3 passwords
21
+ # config.deny_old_passwords = true
22
+
23
+ # enable email validation for :secure_validatable. (true, false, validation_options)
24
+ # dependency: see https://github.com/devise-security/devise-security/blob/master/README.md#e-mail-validation
25
+ config.email_validation = true
26
+
27
+ # captcha integration for recover form
28
+ # config.captcha_for_recover = true
29
+
30
+ # captcha integration for sign up form
31
+ # config.captcha_for_sign_up = true
32
+
33
+ # captcha integration for sign in form
34
+ # config.captcha_for_sign_in = true
35
+
36
+ # captcha integration for unlock form
37
+ # config.captcha_for_unlock = true
38
+
39
+ # captcha integration for confirmation form
40
+ # config.captcha_for_confirmation = true
41
+
42
+ # Time period for account expiry from last_activity_at
43
+ # config.expire_after = 90.days
44
+ end