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.
- checksums.yaml +7 -0
- data/LICENSE +7 -0
- data/README.md +383 -0
- data/bin/console +14 -0
- data/bin/kowl +106 -0
- data/bin/setup +13 -0
- data/lib/kowl/actions.rb +240 -0
- data/lib/kowl/docker.rb +447 -0
- data/lib/kowl/generators/README.md +5 -0
- data/lib/kowl/generators/action_generator.rb +113 -0
- data/lib/kowl/generators/admin_generator.rb +114 -0
- data/lib/kowl/generators/assets_generator.rb +188 -0
- data/lib/kowl/generators/base.rb +40 -0
- data/lib/kowl/generators/circleci_generator.rb +11 -0
- data/lib/kowl/generators/config_generator.rb +180 -0
- data/lib/kowl/generators/controller_generator.rb +64 -0
- data/lib/kowl/generators/database_generator.rb +42 -0
- data/lib/kowl/generators/decorators_generator.rb +16 -0
- data/lib/kowl/generators/docker_generator.rb +40 -0
- data/lib/kowl/generators/dotfiles_generator.rb +73 -0
- data/lib/kowl/generators/libs_generator.rb +19 -0
- data/lib/kowl/generators/mailer_generator.rb +58 -0
- data/lib/kowl/generators/misc_generator.rb +20 -0
- data/lib/kowl/generators/overrides/app_base.rb +15 -0
- data/lib/kowl/generators/overrides/app_builder.rb +58 -0
- data/lib/kowl/generators/overrides/app_generator.rb +249 -0
- data/lib/kowl/generators/pages_generator.rb +46 -0
- data/lib/kowl/generators/routes_generator.rb +20 -0
- data/lib/kowl/generators/sidekiq_generator.rb +31 -0
- data/lib/kowl/generators/staging_generator.rb +14 -0
- data/lib/kowl/generators/test_generator.rb +42 -0
- data/lib/kowl/generators/text_files_generator.rb +41 -0
- data/lib/kowl/generators/users_and_auth_generator.rb +143 -0
- data/lib/kowl/generators/uuid_generator.rb +39 -0
- data/lib/kowl/generators/views_and_helpers_generator.rb +104 -0
- data/lib/kowl/geodb.rb +96 -0
- data/lib/kowl/helpers.rb +139 -0
- data/lib/kowl/templates/Gemfile.erb.tt +253 -0
- data/lib/kowl/templates/README.md.erb +33 -0
- data/lib/kowl/templates/app/assets/javascripts/semantic.js.tt +26 -0
- data/lib/kowl/templates/app/assets/stylesheets/administrate/application.scss +44 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/_custom_styling.scss +38 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/application-mailer.scss +1 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/application.scss +14 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/components/_alerts.scss +7 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/components/_errors.scss +28 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/components/_navbar.scss +17 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/variables.scss +6 -0
- data/lib/kowl/templates/app/assets/stylesheets/semantic/_custom_styling.scss +20 -0
- data/lib/kowl/templates/app/assets/stylesheets/semantic/application.scss +24 -0
- data/lib/kowl/templates/app/controllers/admin/application_controller.rb +29 -0
- data/lib/kowl/templates/app/controllers/admin/login_activities_controller.rb +29 -0
- data/lib/kowl/templates/app/controllers/admin/users_controller.rb +37 -0
- data/lib/kowl/templates/app/controllers/concerns/auth/authentication.rb +18 -0
- data/lib/kowl/templates/app/controllers/concerns/auth/authorization.rb +20 -0
- data/lib/kowl/templates/app/controllers/concerns/auth/error_handlers.rb +27 -0
- data/lib/kowl/templates/app/controllers/concerns/noauth/error_handlers.rb +25 -0
- data/lib/kowl/templates/app/controllers/users_controller.rb +17 -0
- data/lib/kowl/templates/app/dashboards/login_activity_dashboard.rb.tt +59 -0
- data/lib/kowl/templates/app/dashboards/rich_text_body_dashboard.rb.tt +17 -0
- data/lib/kowl/templates/app/dashboards/user_dashboard.rb.tt +60 -0
- data/lib/kowl/templates/app/fields/gravatar_field.rb +10 -0
- data/lib/kowl/templates/app/fields/rich_text_area_field.rb +8 -0
- data/lib/kowl/templates/app/inputs/rich_text_area_input.rb +11 -0
- data/lib/kowl/templates/app/javascript/administrate/components/date_time_picker.js.tt +32 -0
- data/lib/kowl/templates/app/javascript/administrate/components/table.js.tt +49 -0
- data/lib/kowl/templates/app/javascript/administrate/index.js +3 -0
- data/lib/kowl/templates/app/javascript/packs/administrate.js.tt +21 -0
- data/lib/kowl/templates/app/javascript/packs/semantic.js +11 -0
- data/lib/kowl/templates/app/mailers/application_mailer.rb +7 -0
- data/lib/kowl/templates/app/mailers/devise_mailer.rb +5 -0
- data/lib/kowl/templates/app/models/login_activity.rb.tt +29 -0
- data/lib/kowl/templates/app/models/user.rb.tt +72 -0
- data/lib/kowl/templates/app/policies/application_policy.rb +38 -0
- data/lib/kowl/templates/app/policies/login_activity_policy.rb +35 -0
- data/lib/kowl/templates/app/policies/user_policy.rb +43 -0
- data/lib/kowl/templates/app/views/admin/templates/navigation.erb.tt +23 -0
- data/lib/kowl/templates/app/views/admin/views/application/_javascript.html.erb +21 -0
- data/lib/kowl/templates/app/views/admin/views/users/_collection.html.erb +102 -0
- data/lib/kowl/templates/app/views/admin/views/users/_form.html.erb +46 -0
- data/lib/kowl/templates/app/views/admin/views/users/edit.html.erb +36 -0
- data/lib/kowl/templates/app/views/admin/views/users/index.html.erb +66 -0
- data/lib/kowl/templates/app/views/fields/gravatar_field/_form.html.erb +6 -0
- data/lib/kowl/templates/app/views/fields/gravatar_field/_index.html.erb +1 -0
- data/lib/kowl/templates/app/views/fields/gravatar_field/_show.html.erb +1 -0
- data/lib/kowl/templates/app/views/fields/rich_text_area_field/_form.html.erb +6 -0
- data/lib/kowl/templates/app/views/fields/rich_text_area_field/_index.html.erb +1 -0
- data/lib/kowl/templates/app/views/fields/rich_text_area_field/_show.html.erb +1 -0
- data/lib/kowl/templates/app/views/layouts/admin.html.erb.tt +47 -0
- data/lib/kowl/templates/app/views/layouts/devise_mailer.html.erb +14 -0
- data/lib/kowl/templates/app/views/pages/welcome/bootstrap.html.erb +18 -0
- data/lib/kowl/templates/app/views/pages/welcome/bootstrap.html.haml +17 -0
- data/lib/kowl/templates/app/views/pages/welcome/bootstrap.html.slim +17 -0
- data/lib/kowl/templates/app/views/pages/welcome/default.html.erb +0 -0
- data/lib/kowl/templates/app/views/pages/welcome/default.html.haml +0 -0
- data/lib/kowl/templates/app/views/pages/welcome/default.html.slim +0 -0
- data/lib/kowl/templates/app/views/pages/welcome/semantic.html.erb +20 -0
- data/lib/kowl/templates/app/views/pages/welcome/semantic.html.haml +17 -0
- data/lib/kowl/templates/app/views/pages/welcome/semantic.html.slim +17 -0
- data/lib/kowl/templates/app/views/shared/footer/bootstrap.html.erb.tt +5 -0
- data/lib/kowl/templates/app/views/shared/footer/bootstrap.html.haml.tt +3 -0
- data/lib/kowl/templates/app/views/shared/footer/bootstrap.html.slim.tt +3 -0
- data/lib/kowl/templates/app/views/shared/footer/semantic.html.erb.tt +7 -0
- data/lib/kowl/templates/app/views/shared/footer/semantic.html.haml.tt +5 -0
- data/lib/kowl/templates/app/views/shared/footer/semantic.html.slim.tt +5 -0
- data/lib/kowl/templates/app/views/shared/navigation/bootstrap.html.erb.tt +51 -0
- data/lib/kowl/templates/app/views/shared/navigation/bootstrap.html.haml.tt +36 -0
- data/lib/kowl/templates/app/views/shared/navigation/bootstrap.html.slim.tt +36 -0
- data/lib/kowl/templates/app/views/shared/navigation/semantic.html.erb.tt +48 -0
- data/lib/kowl/templates/app/views/shared/navigation/semantic.html.haml.tt +36 -0
- data/lib/kowl/templates/app/views/shared/navigation/semantic.html.slim.tt +36 -0
- data/lib/kowl/templates/app/workers/scheduler/pghero_scheduler.rb +11 -0
- data/lib/kowl/templates/config/autoprefixer.yml +4 -0
- data/lib/kowl/templates/config/db/mysql.yml.tt +43 -0
- data/lib/kowl/templates/config/db/oracle.yml.tt +29 -0
- data/lib/kowl/templates/config/db/postgresql.yml.tt +37 -0
- data/lib/kowl/templates/config/db/sqlite3.yml.tt +20 -0
- data/lib/kowl/templates/config/db/sqlserver.yml.tt +28 -0
- data/lib/kowl/templates/config/initializers/administrate.rb.tt +9 -0
- data/lib/kowl/templates/config/initializers/bullet.rb +21 -0
- data/lib/kowl/templates/config/initializers/devise-security.rb +44 -0
- data/lib/kowl/templates/config/initializers/devise_argon2.rb +29 -0
- data/lib/kowl/templates/config/initializers/faker.rb +6 -0
- data/lib/kowl/templates/config/initializers/generators.rb.tt +31 -0
- data/lib/kowl/templates/config/initializers/geocoder.rb +10 -0
- data/lib/kowl/templates/config/initializers/letter_opener.rb +13 -0
- data/lib/kowl/templates/config/initializers/lockbox.rb +11 -0
- data/lib/kowl/templates/config/initializers/logging.rb +6 -0
- data/lib/kowl/templates/config/initializers/lograge.rb +7 -0
- data/lib/kowl/templates/config/initializers/logstop.rb +4 -0
- data/lib/kowl/templates/config/initializers/middleware.rb +9 -0
- data/lib/kowl/templates/config/initializers/oj.rb +7 -0
- data/lib/kowl/templates/config/initializers/pagy.rb.tt +16 -0
- data/lib/kowl/templates/config/initializers/postmark.rb +8 -0
- data/lib/kowl/templates/config/initializers/rack_attack.rb.tt +71 -0
- data/lib/kowl/templates/config/initializers/sass.rb +5 -0
- data/lib/kowl/templates/config/initializers/sidekiq.rb +11 -0
- data/lib/kowl/templates/config/initializers/simpleform/semantic.rb +225 -0
- data/lib/kowl/templates/config/initializers/slim.rb +6 -0
- data/lib/kowl/templates/config/initializers/sparkpost.rb +13 -0
- data/lib/kowl/templates/config/routes.rb.tt +28 -0
- data/lib/kowl/templates/config/sidekiq.yml.tt +17 -0
- data/lib/kowl/templates/db/migrations/create_action_text_tables.action_text.rb.tt +16 -0
- data/lib/kowl/templates/db/migrations/create_active_storage_tables.active_storage.rb.tt +29 -0
- data/lib/kowl/templates/db/migrations/devise.rb.tt +59 -0
- data/lib/kowl/templates/db/migrations/login_activities.rb.tt +41 -0
- data/lib/kowl/templates/db/seeds.rb.tt +14 -0
- data/lib/kowl/templates/docker/Dockerfile.alpine.tt +92 -0
- data/lib/kowl/templates/docker/Dockerfile.debian.tt +133 -0
- data/lib/kowl/templates/docker/docker-compose.yml.tt +55 -0
- data/lib/kowl/templates/docker/mysql/Dockerfile.tt +15 -0
- data/lib/kowl/templates/dotfiles/Aptfile.tt +34 -0
- data/lib/kowl/templates/dotfiles/Brewfile.tt +49 -0
- data/lib/kowl/templates/dotfiles/Procfile.tt +12 -0
- data/lib/kowl/templates/dotfiles/codeclimate.yml +76 -0
- data/lib/kowl/templates/dotfiles/coffeelint.json +10 -0
- data/lib/kowl/templates/dotfiles/coffeelintignore +15 -0
- data/lib/kowl/templates/dotfiles/dockerignore +23 -0
- data/lib/kowl/templates/dotfiles/editorconfig +13 -0
- data/lib/kowl/templates/dotfiles/env.tt +58 -0
- data/lib/kowl/templates/dotfiles/erb-lint.yml +10 -0
- data/lib/kowl/templates/dotfiles/erdconfig.tt +24 -0
- data/lib/kowl/templates/dotfiles/eslintignore +20 -0
- data/lib/kowl/templates/dotfiles/eslintrc.js +31 -0
- data/lib/kowl/templates/dotfiles/fasterer.yml +14 -0
- data/lib/kowl/templates/dotfiles/foreman +1 -0
- data/lib/kowl/templates/dotfiles/gitattributes +15 -0
- data/lib/kowl/templates/dotfiles/gitignore +69 -0
- data/lib/kowl/templates/dotfiles/haml-lint.yml +23 -0
- data/lib/kowl/templates/dotfiles/jsbeautifyrc +15 -0
- data/lib/kowl/templates/dotfiles/jshintrc +3 -0
- data/lib/kowl/templates/dotfiles/mailmap +3 -0
- data/lib/kowl/templates/dotfiles/nvmrc +1 -0
- data/lib/kowl/templates/dotfiles/prettierignore +21 -0
- data/lib/kowl/templates/dotfiles/prettierrc.js +62 -0
- data/lib/kowl/templates/dotfiles/pryrc +7 -0
- data/lib/kowl/templates/dotfiles/rspec +3 -0
- data/lib/kowl/templates/dotfiles/rubocop.yml.tt +78 -0
- data/lib/kowl/templates/dotfiles/scss-lint.yml +132 -0
- data/lib/kowl/templates/dotfiles/simplecov +19 -0
- data/lib/kowl/templates/dotfiles/slim-lint.yml +23 -0
- data/lib/kowl/templates/dotfiles/slugignore +10 -0
- data/lib/kowl/templates/dotfiles/yamllint +7 -0
- data/lib/kowl/templates/dotfiles/yarnclean +46 -0
- data/lib/kowl/templates/lib/tasks/stats.rake +42 -0
- data/lib/kowl/templates/tests/factories/README.md +0 -0
- data/lib/kowl/templates/tests/factories/login_activity.rb +11 -0
- data/lib/kowl/templates/tests/factories/user.rb +11 -0
- data/lib/kowl/templates/tests/minitest/README.md +3 -0
- data/lib/kowl/templates/tests/minitest/application_system_test_case.rb +7 -0
- data/lib/kowl/templates/tests/minitest/controllers/pages_controller_test.rb +10 -0
- data/lib/kowl/templates/tests/minitest/models/login_activity_test.rb +8 -0
- data/lib/kowl/templates/tests/minitest/models/user_test.rb +15 -0
- data/lib/kowl/templates/tests/minitest/policies/login_activity_policy_test.rb +7 -0
- data/lib/kowl/templates/tests/minitest/policies/user_policy_test.rb +7 -0
- data/lib/kowl/templates/tests/minitest/support/capybara.rb +38 -0
- data/lib/kowl/templates/tests/minitest/support/database_cleaner.rb +20 -0
- data/lib/kowl/templates/tests/minitest/support/database_cleaner_support.rb +15 -0
- data/lib/kowl/templates/tests/minitest/support/deferred_garbage_collection.rb +21 -0
- data/lib/kowl/templates/tests/minitest/support/devise.rb +16 -0
- data/lib/kowl/templates/tests/minitest/support/factories.rb +6 -0
- data/lib/kowl/templates/tests/minitest/support/formulaic.rb +8 -0
- data/lib/kowl/templates/tests/minitest/support/helpers/devise_helper.rb +57 -0
- data/lib/kowl/templates/tests/minitest/support/papertrail.rb +17 -0
- data/lib/kowl/templates/tests/minitest/support/pundit.rb +0 -0
- data/lib/kowl/templates/tests/minitest/support/shoulda.rb +11 -0
- data/lib/kowl/templates/tests/minitest/support/simplecov.rb +8 -0
- data/lib/kowl/templates/tests/minitest/test_helper.rb +17 -0
- data/lib/kowl/templates/tests/rspec/README.md +9 -0
- data/lib/kowl/templates/tests/rspec/controllers/admin/application_controller_spec.rb +12 -0
- data/lib/kowl/templates/tests/rspec/controllers/admin/users_controller_spec.rb +14 -0
- data/lib/kowl/templates/tests/rspec/controllers/pages_controller_spec.rb +10 -0
- data/lib/kowl/templates/tests/rspec/features/README.md +15 -0
- data/lib/kowl/templates/tests/rspec/features/visitor_sign_up_spec.rb +25 -0
- data/lib/kowl/templates/tests/rspec/helpers/application_helper_spec.rb +7 -0
- data/lib/kowl/templates/tests/rspec/helpers/pages_helper_spec.rb +15 -0
- data/lib/kowl/templates/tests/rspec/models/login_activity_spec.rb +11 -0
- data/lib/kowl/templates/tests/rspec/models/user_spec.rb +21 -0
- data/lib/kowl/templates/tests/rspec/policies/login_activity_policy_spec.rb +59 -0
- data/lib/kowl/templates/tests/rspec/policies/user_policy_spec.rb +56 -0
- data/lib/kowl/templates/tests/rspec/rails_helper.rb +72 -0
- data/lib/kowl/templates/tests/rspec/requests/pages_spec.rb +11 -0
- data/lib/kowl/templates/tests/rspec/spec_helper.rb +96 -0
- data/lib/kowl/templates/tests/rspec/support/bullet.rb +17 -0
- data/lib/kowl/templates/tests/rspec/support/capybara.rb +37 -0
- data/lib/kowl/templates/tests/rspec/support/controller_testing.rb +10 -0
- data/lib/kowl/templates/tests/rspec/support/database_cleaner.rb +55 -0
- data/lib/kowl/templates/tests/rspec/support/deferred_garbage_collection.rb +32 -0
- data/lib/kowl/templates/tests/rspec/support/devise.rb +21 -0
- data/lib/kowl/templates/tests/rspec/support/factories.rb +5 -0
- data/lib/kowl/templates/tests/rspec/support/formulaic.rb +8 -0
- data/lib/kowl/templates/tests/rspec/support/helpers/devise_helpers.rb +56 -0
- data/lib/kowl/templates/tests/rspec/support/papertrail.rb +5 -0
- data/lib/kowl/templates/tests/rspec/support/pi_ci.rb +6 -0
- data/lib/kowl/templates/tests/rspec/support/pundit.rb +6 -0
- data/lib/kowl/templates/tests/rspec/support/shoulda.rb +10 -0
- data/lib/kowl/templates/tests/rspec/support/sidekiq.rb +10 -0
- data/lib/kowl/templates/tests/rspec/support/simplecov.rb +7 -0
- data/lib/kowl/templates/tests/rspec/support/warden.rb +8 -0
- data/lib/kowl/templates/text_files/AUTHORS.md +4 -0
- data/lib/kowl/templates/text_files/CHANGELOG.md.tt +12 -0
- data/lib/kowl/templates/text_files/CODE_OF_CONDUCT.md +76 -0
- data/lib/kowl/templates/text_files/TODO.md +7 -0
- data/lib/kowl/templates/text_files/VERSION +1 -0
- data/lib/kowl/templates/text_files/humans.txt.tt +15 -0
- data/lib/kowl/templates/text_files/robots.txt.tt +6 -0
- data/lib/kowl/templates/text_files/security.txt +6 -0
- data/lib/kowl/version.rb +9 -0
- data/lib/kowl.rb +18 -0
- metadata +404 -0
@@ -0,0 +1,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.
|
File without changes
|
File without changes
|
File without changes
|
@@ -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,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,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,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
|