cybele 1.9.2 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.fasterer.yml +5 -0
- data/.flayignore +3 -0
- data/.gitignore +4 -1
- data/.haml-lint.yml +5 -0
- data/.poper.yml +7 -0
- data/.rubocop.yml +59 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +458 -2
- data/Gemfile +2 -0
- data/README.md +16 -20
- data/Rakefile +1 -1
- data/USAGE +12 -0
- data/bin/build_app +18 -0
- data/bin/build_gem +20 -0
- data/bin/cybele +21 -6
- data/config.reek +29 -0
- data/cybele.gemspec +14 -6
- data/example.pronto.yml +8 -0
- data/lib/cybele.rb +33 -0
- data/lib/cybele/app_builder.rb +43 -510
- data/lib/cybele/generators/app_generator.rb +240 -180
- data/lib/cybele/helpers.rb +104 -0
- data/lib/cybele/helpers/app_files/assets_files.rb +43 -0
- data/lib/cybele/helpers/app_files/controller_files.rb +23 -0
- data/lib/cybele/helpers/app_files/helper_files.rb +15 -0
- data/lib/cybele/helpers/app_files/mailer_files.rb +15 -0
- data/lib/cybele/helpers/app_files/model_files.rb +16 -0
- data/lib/cybele/helpers/app_files/vendor_files.rb +14 -0
- data/lib/cybele/helpers/app_files/view_files.rb +62 -0
- data/lib/cybele/helpers/app_files/view_gems.rb +20 -0
- data/lib/cybele/helpers/audited.rb +12 -0
- data/lib/cybele/helpers/basic_authentication.rb +44 -0
- data/lib/cybele/helpers/devise.rb +67 -0
- data/lib/cybele/helpers/docker.rb +53 -0
- data/lib/cybele/helpers/dotenv.rb +23 -0
- data/lib/cybele/helpers/error_pages.rb +37 -0
- data/lib/cybele/helpers/general.rb +87 -0
- data/lib/cybele/helpers/haml.rb +18 -0
- data/lib/cybele/helpers/locale_language.rb +23 -0
- data/lib/cybele/helpers/mailer.rb +25 -0
- data/lib/cybele/helpers/paperclip.rb +33 -0
- data/lib/cybele/helpers/pronto.rb +34 -0
- data/lib/cybele/helpers/recipient_interceptor.rb +18 -0
- data/lib/cybele/helpers/responders.rb +36 -0
- data/lib/cybele/helpers/routes.rb +18 -0
- data/lib/cybele/helpers/show_for.rb +20 -0
- data/lib/cybele/helpers/sidekiq.rb +37 -0
- data/lib/cybele/helpers/simple_form.rb +19 -0
- data/lib/cybele/helpers/staging.rb +15 -0
- data/lib/cybele/version.rb +5 -3
- data/spec/features/cli_help_spec.rb +42 -0
- data/spec/features/git_and_git_flow_spec.rb +30 -0
- data/spec/features/new_default_project_spec.rb +465 -0
- data/spec/features/new_not_default_project_spec.rb +412 -0
- data/spec/spec_helper.rb +38 -0
- data/spec/support/config_test_helper.rb +36 -0
- data/spec/support/cybele_test_helpers.rb +115 -0
- data/spec/support/devise_test_helper.rb +45 -0
- data/spec/support/dotenv_test_helper.rb +31 -0
- data/spec/support/error_pages_test_helper.rb +24 -0
- data/spec/support/force_ssl_test_helper.rb +24 -0
- data/spec/support/git_ignore_test_helper.rb +10 -0
- data/spec/support/locale_language_test_helper.rb +43 -0
- data/spec/support/mail_test_helpers.rb +15 -0
- data/spec/support/paperclip_test_helper.rb +38 -0
- data/spec/support/pronto_test_helpers.rb +41 -0
- data/spec/support/responder_test_helper.rb +32 -0
- data/templates/Gemfile.erb +59 -0
- data/templates/README.md.erb +23 -20
- data/templates/VERSION.txt +1 -0
- data/templates/app_files/app/assets/javascripts/application.js +81 -0
- data/templates/app_files/app/assets/javascripts/hq/application.js +80 -0
- data/templates/{app/assets/stylesheets/application.css.sass → app_files/app/assets/stylesheets/application.sass} +27 -16
- data/templates/app_files/app/assets/stylesheets/hq/_sidebar.sass +89 -0
- data/templates/app_files/app/assets/stylesheets/hq/application.sass +74 -0
- data/templates/app_files/app/controllers/concerns/activatable.rb +16 -0
- data/templates/{app → app_files/app}/controllers/hq/admins_controller.rb +7 -10
- data/templates/app_files/app/controllers/hq/application_controller.rb +13 -0
- data/templates/{app → app_files/app}/controllers/hq/audits_controller.rb +3 -3
- data/templates/app_files/app/controllers/hq/dashboard_controller.rb +7 -0
- data/templates/{app → app_files/app}/controllers/hq/passwords_controller.rb +3 -2
- data/templates/app_files/app/controllers/hq/registrations_controller.rb +22 -0
- data/templates/{app → app_files/app}/controllers/hq/sessions_controller.rb +5 -4
- data/templates/{app → app_files/app}/controllers/hq/users_controller.rb +7 -10
- data/templates/app_files/app/controllers/user/application_controller.rb +18 -0
- data/templates/app_files/app/controllers/user/dashboard_controller.rb +7 -0
- data/templates/{app → app_files/app}/controllers/user/passwords_controller.rb +3 -4
- data/templates/app_files/app/controllers/user/profile_controller.rb +30 -0
- data/templates/{app → app_files/app}/controllers/user/registrations_controller.rb +7 -8
- data/templates/{app → app_files/app}/controllers/user/sessions_controller.rb +5 -6
- data/templates/app_files/app/controllers/welcome_controller.rb +9 -0
- data/templates/app_files/app/helpers/application_helper.rb.erb +61 -0
- data/templates/app_files/app/mailers/admin_mailer.rb +10 -0
- data/templates/app_files/app/mailers/application_mailer.rb +6 -0
- data/templates/app_files/app/mailers/user_mailer.rb +10 -0
- data/templates/app_files/app/models/admin.rb +42 -0
- data/templates/app_files/app/models/audit.rb +4 -0
- data/templates/app_files/app/models/concerns/password_creatable.rb +39 -0
- data/templates/app_files/app/models/user.rb +43 -0
- data/templates/app_files/app/vendor/assets/javascripts/footable.min.js +10 -0
- data/templates/{vendor → app_files/app/vendor}/assets/javascripts/jquery.datetimepicker.js +0 -0
- data/templates/{vendor → app_files/app/vendor}/assets/javascripts/jquery.maskedinput.min.js +0 -0
- data/templates/{vendor → app_files/app/vendor}/assets/javascripts/nprogress.js +0 -0
- data/templates/{vendor → app_files/app/vendor}/assets/javascripts/trix.js +0 -0
- data/templates/app_files/app/vendor/assets/stylesheets/footable.bootstrap.min.css +1 -0
- data/templates/{vendor → app_files/app/vendor}/assets/stylesheets/jquery.datetimepicker.css +0 -0
- data/templates/{vendor → app_files/app/vendor}/assets/stylesheets/nprogress.css +0 -1
- data/templates/{vendor → app_files/app/vendor}/assets/stylesheets/trix.css +0 -0
- data/templates/app_files/app/views/admin_mailer/login_info.html.haml +13 -0
- data/templates/app_files/app/views/hq/admins/_admin.html.haml +38 -0
- data/templates/{app → app_files/app}/views/hq/admins/_blank.html.haml +3 -3
- data/templates/app_files/app/views/hq/admins/_filters.html.haml +27 -0
- data/templates/app_files/app/views/hq/admins/_form.html.haml +17 -0
- data/templates/app_files/app/views/hq/admins/_list.html.haml +20 -0
- data/templates/app_files/app/views/hq/admins/edit.html.haml +3 -0
- data/templates/app_files/app/views/hq/admins/index.html.haml +18 -0
- data/templates/{app → app_files/app}/views/hq/admins/new.html.haml +2 -2
- data/templates/{app → app_files/app}/views/hq/admins/show.html.haml +8 -8
- data/templates/app_files/app/views/hq/audits/_filters.html.haml +48 -0
- data/templates/app_files/app/views/hq/audits/_list.html.haml +47 -0
- data/templates/{app → app_files/app}/views/hq/audits/index.html.haml +3 -3
- data/templates/app_files/app/views/hq/audits/show.html.haml +8 -0
- data/templates/app_files/app/views/hq/dashboard/index.html.haml +13 -0
- data/templates/app_files/app/views/hq/passwords/edit.html.haml +24 -0
- data/templates/app_files/app/views/hq/passwords/new.html.haml +21 -0
- data/templates/app_files/app/views/hq/registrations/edit.html.haml +30 -0
- data/templates/app_files/app/views/hq/sessions/new.html.haml +20 -0
- data/templates/{app → app_files/app}/views/hq/users/_blank.html.haml +3 -3
- data/templates/app_files/app/views/hq/users/_filters.html.haml +26 -0
- data/templates/app_files/app/views/hq/users/_form.html.haml +17 -0
- data/templates/app_files/app/views/hq/users/_list.html.haml +21 -0
- data/templates/app_files/app/views/hq/users/_user.html.haml +38 -0
- data/templates/app_files/app/views/hq/users/edit.html.haml +3 -0
- data/templates/app_files/app/views/hq/users/index.html.haml +18 -0
- data/templates/{app → app_files/app}/views/hq/users/new.html.haml +2 -2
- data/templates/{app → app_files/app}/views/hq/users/show.html.haml +8 -9
- data/templates/app_files/app/views/layouts/application.html.haml.erb +33 -0
- data/templates/app_files/app/views/layouts/hq/application.html.haml.erb +57 -0
- data/templates/app_files/app/views/layouts/hq/login.html.haml.erb +47 -0
- data/templates/app_files/app/views/layouts/hq/partials/_breadcrumb.html.haml +3 -0
- data/templates/app_files/app/views/layouts/hq/partials/_dock.html.haml +95 -0
- data/templates/{app/views/layouts/hq/partials/_footer.html.haml.erb → app_files/app/views/layouts/hq/partials/_footer.html.haml} +0 -0
- data/templates/app_files/app/views/layouts/hq/partials/_navbar.html.haml +35 -0
- data/templates/app_files/app/views/layouts/hq/partials/_toolbar.html.haml +3 -0
- data/templates/{app/views/layouts/hq/partials/_trackers.html.haml.erb → app_files/app/views/layouts/hq/partials/_trackers.html.haml} +0 -0
- data/templates/app_files/app/views/layouts/mailer.html.haml.erb +255 -0
- data/templates/app_files/app/views/layouts/partials/_messages.html.haml +11 -0
- data/templates/app_files/app/views/layouts/partials/_navbar.html.haml.erb +37 -0
- data/templates/{app/views/layouts/partials/_footer.html.haml.erb → app_files/app/views/layouts/partials/_warnings.html.haml} +0 -0
- data/templates/app_files/app/views/user/dashboard/index.html.haml +11 -0
- data/templates/app_files/app/views/user/passwords/edit.html.haml +18 -0
- data/templates/app_files/app/views/user/passwords/new.html.haml +18 -0
- data/templates/{app → app_files/app}/views/user/profile/_form.html.haml +5 -5
- data/templates/app_files/app/views/user/profile/edit.html.haml +3 -0
- data/templates/app_files/app/views/user/profile/show.html.haml +18 -0
- data/templates/app_files/app/views/user/registrations/edit.html.haml +30 -0
- data/templates/app_files/app/views/user/registrations/new.html.haml +33 -0
- data/templates/app_files/app/views/user/sessions/new.html.haml +15 -0
- data/templates/app_files/app/views/user_mailer/login_info.html.haml +13 -0
- data/templates/app_files/app/views/welcome/about.html.haml +3 -0
- data/templates/app_files/app/views/welcome/contact.html.haml +3 -0
- data/templates/app_files/app/views/welcome/index.html.haml.erb +19 -0
- data/templates/app_files/bootstrap_Gemfile.erb +4 -0
- data/templates/app_files/breadcrumb_Gemfile.erb +4 -0
- data/templates/app_files/jquery_Gemfile.erb +4 -0
- data/templates/{public → app_files/public}/images/favicon.png +0 -0
- data/templates/{public → app_files/public}/images/mail-logo.png +0 -0
- data/templates/basic_authentication/basic_authentication.rb +22 -0
- data/templates/basic_authentication/basic_authentication_settings.yml.erb +3 -0
- data/templates/basic_authentication/include_module.erb +2 -0
- data/templates/basic_authentication/no_basic_authentication.erb +2 -0
- data/templates/basic_authentication/yes_basic_authentication.erb +2 -0
- data/templates/bullet/bullet_settings.rb.erb +9 -0
- data/templates/config/config_application.rb.erb +4 -0
- data/templates/config/locales/devise.en.yml +99 -0
- data/templates/config/locales/devise.tr.yml +97 -0
- data/templates/config/locales/en.yml +34 -0
- data/templates/config/locales/mailer.en.yml +32 -0
- data/templates/config/locales/{email.tr.yml → mailer.tr.yml} +6 -2
- data/templates/config/locales/models.en.yml +74 -0
- data/templates/config/locales/models.tr.yml +11 -27
- data/templates/config/locales/responders.en.yml +15 -0
- data/templates/config/locales/responders.tr.yml +3 -2
- data/templates/config/locales/show_for.tr.yml +3 -3
- data/templates/config/locales/view.en.yml +73 -0
- data/templates/config/locales/view.tr.yml +55 -82
- data/templates/config/routes.rb.erb +63 -0
- data/templates/cybele_gitignore +4 -3
- data/templates/devise/devise_authenticate_admin.rb.erb +2 -0
- data/templates/devise/devise_before_action_strong_parameter.rb.erb +3 -0
- data/templates/devise/devise_mailer.rb.erb +1 -0
- data/templates/devise/devise_strong_parameter.rb.erb +13 -0
- data/templates/{app/views/devise → devise/devise_views}/confirmations/new.html.haml +4 -1
- data/templates/devise/devise_views/mailer/confirmation_instructions.html.haml +5 -0
- data/templates/devise/devise_views/mailer/reset_password_instructions.html.haml +7 -0
- data/templates/{app/views/devise → devise/devise_views}/mailer/unlock_instructions.html.haml +1 -1
- data/templates/devise/devise_views/passwords/edit.html.haml +19 -0
- data/templates/devise/devise_views/passwords/new.html.haml +14 -0
- data/templates/devise/devise_views/registrations/edit.html.haml +21 -0
- data/templates/devise/devise_views/registrations/new.html.haml +32 -0
- data/templates/{app/views/devise → devise/devise_views}/sessions/new.html.haml +8 -3
- data/templates/devise/devise_views/shared/_links.haml +29 -0
- data/templates/{app/views/devise → devise/devise_views}/unlocks/new.html.haml +4 -1
- data/templates/devise/seeds.rb.erb +1 -0
- data/templates/docker/Dockerfile.erb +48 -0
- data/templates/docker/docker-compose.yml.erb +46 -0
- data/templates/docker/docker_env_local_sample.erb +6 -0
- data/templates/docker/docker_env_local_sample_host.erb +1 -0
- data/templates/docker/docker_env_local_sample_sidekiq.erb +2 -0
- data/templates/docker/docker_env_staging_production_sidekiq.erb +2 -0
- data/templates/docker/start-app.sh.erb +7 -0
- data/templates/docker/start-sidekiq.sh.erb +27 -0
- data/templates/dotenv/.env.local.erb +5 -0
- data/templates/dotenv/.env.production.erb +5 -0
- data/templates/dotenv/.env.sample.erb +5 -0
- data/templates/dotenv/.env.staging.erb +5 -0
- data/templates/dotenv/dotenv_Gemfile.erb +2 -0
- data/templates/error_pages/error_control.erb +7 -0
- data/templates/error_pages/error_method.erb +10 -0
- data/templates/error_pages/error_route.erb.rb +2 -0
- data/templates/error_pages/internal_server_error.html.haml +2 -0
- data/templates/error_pages/not_found.html.haml +2 -0
- data/templates/guardfile/guardfile_settings.rb.erb +49 -0
- data/templates/haml/haml_Gemfile.erb +5 -0
- data/templates/mailer/.env.local.erb +7 -0
- data/templates/mailer/host.rb.erb +2 -0
- data/templates/mailer/mailer_settings.yml.erb +8 -0
- data/templates/mailer/smtp.rb.erb +10 -0
- data/templates/paperclip/paperclip.rb.erb +11 -0
- data/templates/paperclip/paperclip_Gemfile.erb +4 -0
- data/templates/paperclip/paperclip_env_local.erb +6 -0
- data/templates/paperclip/paperclip_env_production.erb +6 -0
- data/templates/paperclip/paperclip_env_sample.erb +6 -0
- data/templates/paperclip/paperclip_env_staging.erb +6 -0
- data/templates/paperclip/paperclip_settings.yml.erb +10 -0
- data/templates/postgresql_database.yml.erb +24 -0
- data/templates/pronto/.flayignore.erb +5 -0
- data/templates/pronto/.haml-lint.yml.erb +5 -0
- data/templates/pronto/.rubocop.yml.erb +38 -0
- data/templates/pronto/config.reek.erb +42 -0
- data/templates/pronto/example.pronto.yml.erb +27 -0
- data/templates/pronto/rubo.erb +24 -0
- data/templates/recipient_interceptor/recipient_interceptor_settings.yml.erb +4 -0
- data/templates/recipient_interceptor/recipient_interceptor_staging.rb.erb +2 -0
- data/templates/responders/responders_Gemfile.erb +3 -0
- data/templates/ruby-version +1 -1
- data/templates/secrets.yml.erb +3 -0
- data/templates/settings.yml.erb +1 -0
- data/templates/show_for/show_for_Gemfile.erb +3 -0
- data/templates/sidekiq/sidekiq.rake.erb +42 -0
- data/templates/sidekiq/sidekiq.rb.erb +18 -0
- data/templates/sidekiq/sidekiq.yml.erb +18 -0
- data/templates/sidekiq/sidekiq_Gemfile.erb +8 -0
- data/templates/{Procfile.erb → sidekiq/sidekiq_Procfile.erb} +0 -0
- data/templates/sidekiq/sidekiq_application.rb.erb +3 -0
- data/templates/sidekiq/sidekiq_routes_mount.erb +8 -0
- data/templates/sidekiq/sidekiq_routes_require.erb +3 -0
- data/templates/{config/schedule.yml → sidekiq/sidekiq_schedule.yml.erb} +6 -4
- data/templates/simple_form/simple_form_Gemfile.erb +3 -0
- data/templates/ssl/ssl_env_all.erb +2 -0
- metadata +369 -179
- data/templates/.env.local.erb +0 -11
- data/templates/.env.production.erb +0 -11
- data/templates/.env.staging.erb +0 -11
- data/templates/app/assets/javascripts/application.js.coffee +0 -81
- data/templates/app/assets/javascripts/hq/application.js.coffee +0 -94
- data/templates/app/assets/stylesheets/hq/application.css.sass +0 -92
- data/templates/app/controllers/application_controller.rb.erb +0 -48
- data/templates/app/controllers/concerns/basic_authentication.rb +0 -18
- data/templates/app/controllers/hq/application_controller.rb +0 -18
- data/templates/app/controllers/hq/cities_controller.rb +0 -54
- data/templates/app/controllers/hq/countries_controller.rb +0 -54
- data/templates/app/controllers/hq/dashboard_controller.rb +0 -8
- data/templates/app/controllers/hq/registrations_controller.rb +0 -21
- data/templates/app/controllers/user/dashboard_controller.rb +0 -8
- data/templates/app/controllers/user/profile_controller.rb +0 -34
- data/templates/app/controllers/user/user_application_controller.rb +0 -26
- data/templates/app/controllers/welcome_controller.rb +0 -4
- data/templates/app/helpers/application_helper.rb.erb +0 -27
- data/templates/app/mailers/admin_mailer.rb +0 -10
- data/templates/app/mailers/base_mailer.rb +0 -4
- data/templates/app/mailers/user_mailer.rb +0 -10
- data/templates/app/models/admin.rb +0 -51
- data/templates/app/models/audit.rb +0 -3
- data/templates/app/models/city.rb +0 -12
- data/templates/app/models/country.rb +0 -12
- data/templates/app/models/user.rb +0 -54
- data/templates/app/views/admin_mailer/login_info.html.haml +0 -13
- data/templates/app/views/devise/mailer/confirmation_instructions.html.haml +0 -6
- data/templates/app/views/devise/mailer/reset_password_instructions.html.haml +0 -9
- data/templates/app/views/devise/passwords/edit.html.haml +0 -11
- data/templates/app/views/devise/passwords/new.html.haml +0 -9
- data/templates/app/views/devise/registrations/edit.html.haml +0 -12
- data/templates/app/views/devise/registrations/new.html.haml +0 -24
- data/templates/app/views/devise/shared/_links.haml +0 -22
- data/templates/app/views/errors/internal_server_error.html.haml +0 -2
- data/templates/app/views/errors/not_found.html.haml +0 -2
- data/templates/app/views/hq/admins/_admin.html.haml +0 -21
- data/templates/app/views/hq/admins/_filters.html.haml +0 -20
- data/templates/app/views/hq/admins/_form.html.haml +0 -17
- data/templates/app/views/hq/admins/_list.html.haml +0 -15
- data/templates/app/views/hq/admins/edit.html.haml +0 -3
- data/templates/app/views/hq/admins/index.html.haml +0 -18
- data/templates/app/views/hq/audits/_filters.html.haml +0 -32
- data/templates/app/views/hq/audits/_list.html.haml +0 -37
- data/templates/app/views/hq/audits/show.html.haml +0 -5
- data/templates/app/views/hq/cities/_blank.html.haml +0 -9
- data/templates/app/views/hq/cities/_city.html.haml +0 -12
- data/templates/app/views/hq/cities/_filters.html.haml +0 -15
- data/templates/app/views/hq/cities/_form.html.haml +0 -15
- data/templates/app/views/hq/cities/_list.html.haml +0 -13
- data/templates/app/views/hq/cities/edit.html.haml +0 -3
- data/templates/app/views/hq/cities/index.html.haml +0 -18
- data/templates/app/views/hq/cities/new.html.haml +0 -3
- data/templates/app/views/hq/cities/show.html.haml +0 -13
- data/templates/app/views/hq/countries/_blank.html.haml +0 -9
- data/templates/app/views/hq/countries/_country.html.haml +0 -11
- data/templates/app/views/hq/countries/_filters.html.haml +0 -14
- data/templates/app/views/hq/countries/_form.html.haml +0 -14
- data/templates/app/views/hq/countries/_list.html.haml +0 -12
- data/templates/app/views/hq/countries/edit.html.haml +0 -3
- data/templates/app/views/hq/countries/index.html.haml +0 -18
- data/templates/app/views/hq/countries/new.html.haml +0 -3
- data/templates/app/views/hq/countries/show.html.haml +0 -14
- data/templates/app/views/hq/dashboard/index.html.haml +0 -8
- data/templates/app/views/hq/passwords/edit.html.haml +0 -12
- data/templates/app/views/hq/passwords/new.html.haml +0 -9
- data/templates/app/views/hq/registrations/edit.html.haml +0 -19
- data/templates/app/views/hq/sessions/new.html.haml +0 -11
- data/templates/app/views/hq/users/_filters.html.haml +0 -20
- data/templates/app/views/hq/users/_form.html.haml +0 -18
- data/templates/app/views/hq/users/_list.html.haml +0 -15
- data/templates/app/views/hq/users/_user.html.haml +0 -20
- data/templates/app/views/hq/users/edit.html.haml +0 -3
- data/templates/app/views/hq/users/index.html.haml +0 -18
- data/templates/app/views/layouts/application.html.haml.erb +0 -56
- data/templates/app/views/layouts/hq/application.html.haml.erb +0 -55
- data/templates/app/views/layouts/hq/login.html.haml.erb +0 -35
- data/templates/app/views/layouts/hq/partials/_dock.html.haml.erb +0 -36
- data/templates/app/views/layouts/hq/partials/_navbar.html.haml.erb +0 -22
- data/templates/app/views/layouts/mailer.html.haml.erb +0 -321
- data/templates/app/views/layouts/mailer.text.haml +0 -1
- data/templates/app/views/layouts/partials/_trackers.html.haml.erb +0 -0
- data/templates/app/views/layouts/partials/_warnings.html.haml.erb +0 -3
- data/templates/app/views/user/dashboard/index.html.haml +0 -8
- data/templates/app/views/user/passwords/edit.html.haml +0 -12
- data/templates/app/views/user/passwords/new.html.haml +0 -10
- data/templates/app/views/user/profile/edit.html.haml +0 -3
- data/templates/app/views/user/profile/show.html.haml +0 -18
- data/templates/app/views/user/registrations/edit.html.haml +0 -19
- data/templates/app/views/user/sessions/new.html.haml +0 -11
- data/templates/app/views/user_mailer/login_info.html.haml +0 -13
- data/templates/app/views/welcome/index.html.haml.erb +0 -16
- data/templates/config/database.yml.erb +0 -21
- data/templates/config/deploy.rb +0 -56
- data/templates/config/initializers/devise_async.rb +0 -6
- data/templates/config/initializers/disable_xml_params.rb +0 -3
- data/templates/config/initializers/mail.rb +0 -13
- data/templates/config/initializers/paperclip.rb +0 -10
- data/templates/config/initializers/secret_token.erb +0 -25
- data/templates/config/initializers/show_for.rb +0 -3
- data/templates/config/initializers/sidekiq.rb +0 -13
- data/templates/config/initializers/simple_form.rb +0 -142
- data/templates/config/initializers/simple_form_bootstrap.rb +0 -207
- data/templates/config/routes.erb +0 -51
- data/templates/config/settings.yml +0 -0
- data/templates/config/settings/production.yml +0 -0
- data/templates/config/settings/staging.yml +0 -0
- data/templates/config/sidekiq.yml +0 -13
- data/templates/cybele_Gemfile +0 -106
- data/templates/cybele_version.txt +0 -1
- data/templates/env.sample.erb +0 -11
- data/templates/lib/application_responder.rb +0 -8
- data/templates/lib/data/cities.yml +0 -163
- data/templates/lib/tasks/annotate.rake +0 -6
- data/templates/lib/tasks/dev.rake +0 -56
- data/templates/lib/tasks/sidekiq.rake +0 -26
- data/templates/lib/templates/rails/responders_controller/controller.rb +0 -56
- data/templates/public/images/missing_cover.png +0 -0
- data/templates/public/images/missing_cover@2x.png +0 -0
- data/templates/public/images/missing_logo.png +0 -0
- data/templates/public/images/missing_logo@2x.png +0 -0
- data/templates/public/images/sprite.png +0 -0
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -13,8 +13,8 @@ western colonies from around the 6th century BCE.
|
|
13
13
|
|
14
14
|
Before generating your application, you will need:
|
15
15
|
|
16
|
-
* Ruby ~> 2.3
|
17
|
-
* Rails ~> 4
|
16
|
+
* Ruby ~> 2.3.5
|
17
|
+
* Rails ~> 5.1.4
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
@@ -24,30 +24,21 @@ First you should install the cybele gem than you can use it for creating new gem
|
|
24
24
|
gem install cybele
|
25
25
|
cybele project_name
|
26
26
|
```
|
27
|
+
|
27
28
|
|
28
29
|
When the initialization is completed, there will be some required settings.
|
29
30
|
|
30
31
|
* Set .env.local variables
|
31
|
-
*
|
32
|
-
*
|
33
|
-
* Change username and password in config/settings.yml
|
34
|
-
* In public folder run this command ln -s ../VERSION.txt VERSION.txt
|
35
|
-
|
36
|
-
We are using sidekiq with redis-server for background jobs.
|
37
|
-
Before the run application look our env.sample file. It should be in project root directory with this name .env.local
|
38
|
-
```bash
|
39
|
-
bundle
|
40
|
-
redis-server
|
41
|
-
rake sidekiq:start
|
42
|
-
rake db:create
|
43
|
-
rake db:migrate
|
44
|
-
rake dev:seed
|
45
|
-
rails s
|
46
|
-
```
|
32
|
+
* If you don't want to use Rollbar in development environment, you can disable for development environment in config/initializers/rollbar.rb
|
33
|
+
* Change username and passwords in config/settings.yml
|
47
34
|
|
48
35
|
## What cybele do and included?
|
49
36
|
|
50
|
-
Let's look
|
37
|
+
Let's look options
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
cybele --help
|
41
|
+
```
|
51
42
|
|
52
43
|
## Bugs and Feedback
|
53
44
|
|
@@ -55,6 +46,11 @@ If you discover any bugs or want to drop a line, feel free to create an issue on
|
|
55
46
|
|
56
47
|
http://github.com/lab2023/cybele/issues
|
57
48
|
|
49
|
+
## Development
|
50
|
+
* Clone project
|
51
|
+
* Run: brew install cmake
|
52
|
+
* Run: bundle
|
53
|
+
|
58
54
|
## Contributing
|
59
55
|
|
60
56
|
Cybele uses [rDoc](http://rubydoc.info/gems/cybele) and [SemVer](http://semver.org/), and takes it seriously.
|
@@ -78,4 +74,4 @@ Once you've made your great commits:
|
|
78
74
|
|
79
75
|
## License
|
80
76
|
|
81
|
-
Copyright © 2013-2015 [lab2023 - information technologies](http://lab2023.com)
|
77
|
+
Copyright © 2013-2015 [lab2023 - information technologies](http://lab2023.com)
|
data/Rakefile
CHANGED
data/USAGE
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
Description:
|
2
|
+
Cybele is a Rails template with Lab2023 standard
|
3
|
+
defaults.
|
4
|
+
|
5
|
+
For full details check our GitHub project:
|
6
|
+
https://github.com/kebab-project/cybele
|
7
|
+
|
8
|
+
Example:
|
9
|
+
cybele ~/Workplace/blog
|
10
|
+
|
11
|
+
This generates a Rails installation in ~/Workplace/blog configured
|
12
|
+
with our preferred defaults.
|
data/bin/build_app
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
# Build cybele gem
|
4
|
+
echo "Build cybele gem"
|
5
|
+
./bin/build_gem
|
6
|
+
|
7
|
+
# Remove dummy_app_3
|
8
|
+
echo "Remove dummy_app_3"
|
9
|
+
rm -rf tmp/dummy_app_3
|
10
|
+
|
11
|
+
# Disable spring
|
12
|
+
export DISABLE_SPRING=1
|
13
|
+
# or you can run this command
|
14
|
+
# ps ax | grep spring | grep dummy_app_3 | cut -f1 -d' ' | xargs kill
|
15
|
+
|
16
|
+
# Create dummy_app_3
|
17
|
+
echo "Create dummy_app_3"
|
18
|
+
cybele tmp/dummy_app_3 --skip-create-database
|
data/bin/build_gem
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
# Remove previous built file
|
4
|
+
echo "Remove previous built file"
|
5
|
+
rm -rf cybele-2.*.gem
|
6
|
+
|
7
|
+
# Build gemspec
|
8
|
+
echo "Build gemspec"
|
9
|
+
gem build cybele.gemspec
|
10
|
+
|
11
|
+
# Install built gem file
|
12
|
+
echo "Install gem"
|
13
|
+
gem install cybele-2.*.gem
|
14
|
+
|
15
|
+
# Show cybele help
|
16
|
+
echo "Show cybele help"
|
17
|
+
cybele --help
|
18
|
+
|
19
|
+
# Print cybele version
|
20
|
+
echo "Cybele version: `cybele -v`"
|
data/bin/cybele
CHANGED
@@ -1,9 +1,24 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
|
-
require
|
4
|
-
require File.expand_path(File.join('..', 'lib', 'cybele', 'app_builder'), File.dirname(__FILE__))
|
4
|
+
require 'pathname'
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
source_path = (Pathname.new(__FILE__).dirname + '../lib').expand_path
|
7
|
+
$LOAD_PATH << source_path
|
8
|
+
|
9
|
+
require 'cybele'
|
10
|
+
|
11
|
+
if ARGV.empty?
|
12
|
+
puts 'Please provide a path for the new application'
|
13
|
+
puts
|
14
|
+
puts 'See --help for more info'
|
15
|
+
exit 0
|
16
|
+
elsif %w[-v --version].include? ARGV[0]
|
17
|
+
puts Cybele::VERSION
|
18
|
+
exit 0
|
19
|
+
end
|
20
|
+
|
21
|
+
root = File.expand_path(File.join('..', 'templates'), File.dirname(__FILE__))
|
22
|
+
Cybele::AppGenerator.source_root root
|
23
|
+
Cybele::AppGenerator.source_paths << Rails::Generators::AppGenerator.source_root << root
|
24
|
+
Cybele::AppGenerator.start
|
data/config.reek
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
"lib/cybele/":
|
2
|
+
IrresponsibleModule:
|
3
|
+
enabled: false
|
4
|
+
"templates/":
|
5
|
+
IrresponsibleModule:
|
6
|
+
enabled: false
|
7
|
+
"templates/app_files/app/controllers/":
|
8
|
+
InstanceVariableAssumption:
|
9
|
+
enabled: false
|
10
|
+
IrresponsibleModule:
|
11
|
+
enabled: false
|
12
|
+
"templates/app_files/app/mailers":
|
13
|
+
InstanceVariableAssumption:
|
14
|
+
enabled: false
|
15
|
+
IrresponsibleModule:
|
16
|
+
enabled: false
|
17
|
+
|
18
|
+
DuplicateMethodCall:
|
19
|
+
enabled: false
|
20
|
+
|
21
|
+
FeatureEnvy:
|
22
|
+
enabled: false
|
23
|
+
|
24
|
+
UtilityFunction:
|
25
|
+
public_methods_only: true
|
26
|
+
|
27
|
+
TooManyStatements:
|
28
|
+
enabled: true
|
29
|
+
max_statements: 6
|
data/cybele.gemspec
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
lib = File.expand_path('../lib', __FILE__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require File.expand_path('../lib/cybele/version', __FILE__)
|
5
6
|
require 'date'
|
7
|
+
require 'English'
|
6
8
|
|
7
9
|
Gem::Specification.new do |spec|
|
8
10
|
spec.required_ruby_version = ">= #{Cybele::RUBY_VERSION}"
|
@@ -11,19 +13,25 @@ Gem::Specification.new do |spec|
|
|
11
13
|
spec.version = Cybele::VERSION
|
12
14
|
spec.authors = %w[lab2023]
|
13
15
|
spec.email = %w[info@lab2023.com]
|
14
|
-
spec.description =
|
15
|
-
spec.summary =
|
16
|
+
spec.description = 'Rails 5.x App template'
|
17
|
+
spec.summary = 'Rails 5.x template with responder, simple form, haml, exception notification, etc etc ...'
|
16
18
|
spec.homepage = 'https://github.com/kebab-project/cybele'
|
17
19
|
spec.license = 'MIT'
|
18
20
|
spec.date = Date.today.strftime('%Y-%m-%d')
|
19
|
-
spec.files = `git ls-files`.split(
|
21
|
+
spec.files = `git ls-files`.split($RS)
|
20
22
|
spec.executables = %w[cybele]
|
21
23
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
22
24
|
spec.require_paths = %w[lib]
|
23
25
|
|
24
|
-
spec.add_development_dependency 'rake'
|
25
26
|
spec.add_dependency 'bundler', '~> 1.5'
|
26
|
-
spec.
|
27
|
+
spec.add_runtime_dependency 'rails', '~> 5.0', Cybele::RAILS_VERSION
|
28
|
+
spec.add_development_dependency 'pronto', '~> 0.9.5'
|
29
|
+
spec.add_development_dependency 'pronto-fasterer', '~> 0.9.0'
|
30
|
+
spec.add_development_dependency 'pronto-flay', '~> 0.9.0'
|
31
|
+
spec.add_development_dependency 'pronto-reek', '~> 0.9.0'
|
32
|
+
spec.add_development_dependency 'pronto-rubocop', '~> 0.9.0'
|
33
|
+
spec.add_development_dependency 'rspec', '~> 3.5'
|
34
|
+
spec.add_development_dependency 'thor', '~> 0.19.4'
|
27
35
|
|
28
36
|
spec.extra_rdoc_files = %w[README.md MIT-LICENSE]
|
29
37
|
end
|
data/example.pronto.yml
ADDED
data/lib/cybele.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'cybele/version'
|
4
|
+
require 'cybele/generators/app_generator'
|
5
|
+
require 'cybele/helpers'
|
6
|
+
require 'cybele/helpers/staging'
|
7
|
+
require 'cybele/helpers/sidekiq'
|
8
|
+
require 'cybele/helpers/responders'
|
9
|
+
require 'cybele/helpers/simple_form'
|
10
|
+
require 'cybele/helpers/dotenv'
|
11
|
+
require 'cybele/helpers/show_for'
|
12
|
+
require 'cybele/helpers/recipient_interceptor'
|
13
|
+
require 'cybele/helpers/haml'
|
14
|
+
require 'cybele/helpers/locale_language'
|
15
|
+
require 'cybele/helpers/mailer'
|
16
|
+
require 'cybele/helpers/paperclip'
|
17
|
+
require 'cybele/helpers/devise'
|
18
|
+
require 'cybele/helpers/docker'
|
19
|
+
require 'cybele/helpers/error_pages'
|
20
|
+
require 'cybele/helpers/audited'
|
21
|
+
require 'cybele/helpers/routes'
|
22
|
+
require 'cybele/helpers/general'
|
23
|
+
require 'cybele/helpers/basic_authentication'
|
24
|
+
require 'cybele/helpers/app_files/assets_files'
|
25
|
+
require 'cybele/helpers/app_files/controller_files'
|
26
|
+
require 'cybele/helpers/app_files/model_files'
|
27
|
+
require 'cybele/helpers/app_files/vendor_files'
|
28
|
+
require 'cybele/helpers/app_files/mailer_files'
|
29
|
+
require 'cybele/helpers/app_files/helper_files'
|
30
|
+
require 'cybele/helpers/app_files/view_files'
|
31
|
+
require 'cybele/helpers/app_files/view_gems'
|
32
|
+
require 'cybele/helpers/pronto'
|
33
|
+
require 'cybele/app_builder'
|
data/lib/cybele/app_builder.rb
CHANGED
@@ -1,57 +1,35 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
class AppBuilder < Rails::AppBuilder
|
4
|
-
|
5
|
-
def readme
|
6
|
-
template 'README.md.erb', 'README.md', force: true
|
7
|
-
end
|
8
|
-
|
9
|
-
def remove_readme_rdoc
|
10
|
-
remove_file 'README.rdoc', force: true
|
11
|
-
end
|
12
|
-
|
13
|
-
def replace_gemfile
|
14
|
-
remove_file 'Gemfile', force: true
|
15
|
-
copy_file 'cybele_Gemfile', 'Gemfile'
|
16
|
-
end
|
17
|
-
|
18
|
-
def add_editorconfig
|
19
|
-
copy_file 'editorconfig', '.editorconfig'
|
20
|
-
end
|
21
|
-
|
22
|
-
def add_ruby_version
|
23
|
-
copy_file 'ruby-version', '.ruby-version'
|
24
|
-
end
|
25
|
-
|
26
|
-
def add_disable_xml_params
|
27
|
-
copy_file 'config/initializers/disable_xml_params.rb', 'config/initializers/disable_xml_params.rb'
|
28
|
-
end
|
29
|
-
|
30
|
-
def add_paperclip_aws
|
31
|
-
copy_file 'config/initializers/paperclip.rb', 'config/initializers/paperclip.rb'
|
32
|
-
end
|
33
|
-
|
34
|
-
def replace_erb_with_haml
|
35
|
-
remove_file 'app/views/layouts/application.html.erb', force: true
|
36
|
-
template 'app/views/layouts/application.html.haml.erb', 'app/views/layouts/application.html.haml', force: true
|
37
|
-
end
|
38
|
-
|
39
|
-
def install_responder_gem
|
40
|
-
copy_file 'lib/application_responder.rb', 'lib/application_responder.rb'
|
41
|
-
remove_file 'app/controllers/application_controller.rb', force: true
|
42
|
-
copy_file 'app/controllers/application_controller.rb', 'app/controllers/application_controller.rb'
|
43
|
-
copy_file 'app/controllers/concerns/basic_authentication.rb', 'app/controllers/concerns/basic_authentication.rb'
|
44
|
-
copy_file 'lib/templates/rails/responders_controller/controller.rb', 'lib/templates/rails/responders_controller/controller.rb'
|
45
|
-
copy_file 'config/locales/responders.tr.yml', 'config/locales/responders.tr.yml'
|
46
|
-
end
|
47
|
-
|
48
|
-
def replace_database_yml
|
49
|
-
template 'config/database.yml.erb', 'config/database.yml', force: true
|
50
|
-
end
|
1
|
+
# frozen_string_literal: true
|
51
2
|
|
52
|
-
|
53
|
-
|
54
|
-
|
3
|
+
module Cybele
|
4
|
+
class AppBuilder < Rails::AppBuilder # rubocop:disable Metrics/ClassLength
|
5
|
+
include Cybele::Helpers
|
6
|
+
include Cybele::Helpers::Staging
|
7
|
+
include Cybele::Helpers::Sidekiq
|
8
|
+
include Cybele::Helpers::Responders
|
9
|
+
include Cybele::Helpers::SimpleForm
|
10
|
+
include Cybele::Helpers::Dotenv
|
11
|
+
include Cybele::Helpers::RecipientInterceptor
|
12
|
+
include Cybele::Helpers::ShowFor
|
13
|
+
include Cybele::Helpers::Haml
|
14
|
+
include Cybele::Helpers::LocaleLanguage
|
15
|
+
include Cybele::Helpers::Mailer
|
16
|
+
include Cybele::Helpers::Paperclip
|
17
|
+
include Cybele::Helpers::Devise
|
18
|
+
include Cybele::Helpers::ErrorPages
|
19
|
+
include Cybele::Helpers::Audited
|
20
|
+
include Cybele::Helpers::Routes
|
21
|
+
include Cybele::Helpers::BasicAuthentication
|
22
|
+
include Cybele::Helpers::AppFiles::AssetsFiles
|
23
|
+
include Cybele::Helpers::AppFiles::ControllerFiles
|
24
|
+
include Cybele::Helpers::AppFiles::ModelFiles
|
25
|
+
include Cybele::Helpers::AppFiles::VendorFiles
|
26
|
+
include Cybele::Helpers::AppFiles::MailerFiles
|
27
|
+
include Cybele::Helpers::AppFiles::HelperFiles
|
28
|
+
include Cybele::Helpers::AppFiles::ViewFiles
|
29
|
+
include Cybele::Helpers::AppFiles::ViewGems
|
30
|
+
include Cybele::Helpers::Docker
|
31
|
+
include Cybele::Helpers::Pronto
|
32
|
+
include Cybele::Helpers::General
|
55
33
|
|
56
34
|
def setup_gitignore_files
|
57
35
|
remove_file '.gitignore', force: true
|
@@ -59,7 +37,7 @@ module Cybele
|
|
59
37
|
end
|
60
38
|
|
61
39
|
def setup_gitignore_folders
|
62
|
-
%w
|
40
|
+
%w[
|
63
41
|
app/assets/images
|
64
42
|
db/migrate
|
65
43
|
spec/support
|
@@ -68,467 +46,22 @@ module Cybele
|
|
68
46
|
spec/views
|
69
47
|
spec/controllers
|
70
48
|
spec/helpers
|
71
|
-
|
49
|
+
].each do |dir|
|
72
50
|
empty_directory_with_keep_file dir
|
73
51
|
end
|
74
52
|
end
|
75
53
|
|
76
|
-
def
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
config.i18n.fallbacks = true
|
84
|
-
config.active_job.queue_adapter = :sidekiq
|
85
|
-
RUBY
|
86
|
-
inject_into_file 'config/application.rb', config, after: '# config.i18n.default_locale = :de'
|
87
|
-
end
|
88
|
-
|
89
|
-
def convert_application_js_to_coffee
|
90
|
-
remove_file 'app/assets/javascripts/application.js', force: true
|
91
|
-
copy_file 'app/assets/javascripts/application.js.coffee', 'app/assets/javascripts/application.js.coffee'
|
92
|
-
end
|
93
|
-
|
94
|
-
def convert_application_css_to_sass
|
95
|
-
remove_file 'app/assets/stylesheets/application.css', force: true
|
96
|
-
copy_file 'app/assets/stylesheets/application.css.sass', 'app/assets/stylesheets/application.css.sass'
|
97
|
-
end
|
98
|
-
|
99
|
-
def copy_vendor_assets
|
100
|
-
directory 'vendor/assets', 'vendor/assets'
|
101
|
-
end
|
102
|
-
|
103
|
-
def configure_smtp
|
104
|
-
remove_file 'config/settings/production.yml', force: true
|
105
|
-
copy_file 'config/settings/production.yml', 'config/settings/production.yml'
|
106
|
-
copy_file 'config/settings/staging.yml', 'config/settings/staging.yml'
|
107
|
-
|
108
|
-
config = <<-RUBY
|
109
|
-
Mail.register_interceptor RecipientInterceptor.new(Settings.email.sandbox, subject_prefix: '[STAGING]')
|
110
|
-
RUBY
|
111
|
-
configure_environment 'staging', config
|
112
|
-
|
113
|
-
config = <<-RUBY
|
114
|
-
config.action_mailer.delivery_method = :smtp
|
115
|
-
config.action_mailer.raise_delivery_errors = false
|
116
|
-
config.action_mailer.smtp_settings = {
|
117
|
-
address: Settings.smtp.address,
|
118
|
-
port: Settings.smtp.port,
|
119
|
-
enable_starttls_auto: Settings.smtp.enable_starttls_auto,
|
120
|
-
user_name: Settings.smtp.user_name,
|
121
|
-
password: Settings.smtp.password,
|
122
|
-
authentication: Settings.smtp.authentication
|
123
|
-
}
|
124
|
-
RUBY
|
125
|
-
configure_environment 'production', config
|
126
|
-
configure_environment 'staging', config
|
127
|
-
end
|
128
|
-
|
129
|
-
def configure_bullet
|
130
|
-
config = <<-RUBY
|
131
|
-
config.after_initialize do
|
132
|
-
Bullet.enable = true
|
133
|
-
Bullet.alert = true
|
134
|
-
Bullet.bullet_logger = true
|
135
|
-
Bullet.console = true
|
136
|
-
Bullet.rails_logger = true
|
137
|
-
Bullet.add_footer = false
|
138
|
-
end
|
139
|
-
RUBY
|
140
|
-
configure_environment 'development', config
|
141
|
-
end
|
142
|
-
|
143
|
-
def setup_staging_environment
|
144
|
-
run 'cp config/environments/production.rb config/environments/staging.rb'
|
145
|
-
config = <<-YML
|
146
|
-
email:
|
147
|
-
sandbox: sandbox@#{app_name}.com
|
148
|
-
noreply: no-reply@#{app_name}.com
|
149
|
-
admin: admin@#{app_name}.com
|
150
|
-
|
151
|
-
basic_auth:
|
152
|
-
username: #{app_name}
|
153
|
-
password: #{app_name}
|
154
|
-
|
155
|
-
sidekiq:
|
156
|
-
username: #{app_name}
|
157
|
-
password: #{app_name}
|
158
|
-
|
159
|
-
root_path: <%= ENV['ROOT_PATH'] %>
|
160
|
-
|
161
|
-
smtp:
|
162
|
-
address: <%= ENV['SMTP_ADDRESS'] %>
|
163
|
-
port: 587
|
164
|
-
enable_starttls_auto: true
|
165
|
-
user_name: <%= ENV['SMTP_USER_NAME'] %>
|
166
|
-
password: <%= ENV['SMTP_PASSWORD'] %>
|
167
|
-
authentication: 'plain'
|
168
|
-
|
169
|
-
AWS:
|
170
|
-
S3:
|
171
|
-
bucket: <%= ENV['S3_BUCKET_NAME'] %>
|
172
|
-
access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
|
173
|
-
secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
|
174
|
-
aws_url: http://<%= ENV['AWS_RAW_URL'] %>
|
175
|
-
aws_raw_url: <%= ENV['AWS_RAW_URL'] %>
|
176
|
-
# Bucket region should be ireland for this setting
|
177
|
-
end_point: s3-eu-west-1.amazonaws.com
|
178
|
-
YML
|
179
|
-
prepend_file 'config/settings.yml', config
|
180
|
-
end
|
181
|
-
|
182
|
-
def configure_action_mailer
|
183
|
-
action_mailer_host 'development'
|
184
|
-
action_mailer_host 'staging'
|
185
|
-
action_mailer_host 'production'
|
186
|
-
end
|
187
|
-
|
188
|
-
def setup_letter_opener
|
189
|
-
config = <<-RUBY
|
190
|
-
config.action_mailer.delivery_method = :letter_opener
|
191
|
-
RUBY
|
192
|
-
configure_environment 'development', config
|
193
|
-
end
|
194
|
-
|
195
|
-
def generate_rspec
|
196
|
-
generate 'rspec:install'
|
197
|
-
end
|
198
|
-
|
199
|
-
def generate_capybara
|
200
|
-
inject_into_file 'spec/spec_helper.rb', after: "require 'rspec/autorun'" do <<-CODE
|
201
|
-
require 'capybara/rspec'
|
202
|
-
CODE
|
203
|
-
end
|
204
|
-
inject_into_file 'spec/spec_helper.rb', after: ' config.order = "random"' do <<-CODE
|
205
|
-
# Capybara DSL
|
206
|
-
config.include Capybara::DSL
|
207
|
-
CODE
|
208
|
-
end
|
209
|
-
end
|
210
|
-
|
211
|
-
def generate_factory_girl
|
212
|
-
inject_into_file 'spec/spec_helper.rb', after: ' config.include Capybara::DSL' do <<-CODE
|
213
|
-
# Factory girl
|
214
|
-
config.include FactoryGirl::Syntax::Methods
|
215
|
-
CODE
|
216
|
-
end
|
217
|
-
end
|
218
|
-
|
219
|
-
def generate_simple_form
|
220
|
-
generate 'simple_form:install --bootstrap --force'
|
221
|
-
copy_file 'config/locales/simple_form.tr.yml', 'config/locales/simple_form.tr.yml'
|
222
|
-
copy_file 'config/locales/tr.yml', 'config/locales/tr.yml'
|
223
|
-
end
|
224
|
-
|
225
|
-
def generate_exception_notification
|
226
|
-
generate 'exception_notification:install'
|
227
|
-
generate 'rollbar your_token'
|
228
|
-
end
|
229
|
-
|
230
|
-
def add_exception_notification_to_environments
|
231
|
-
config = <<-CODE
|
232
|
-
config.middleware.use ExceptionNotification::Rack,
|
233
|
-
email: {
|
234
|
-
email_prefix: "[#{app_name}]",
|
235
|
-
sender_address: %{"Notifier" <notifier@#{app_name}.com>},
|
236
|
-
exception_recipients: %w{your_email@address.com}
|
237
|
-
}
|
238
|
-
CODE
|
239
|
-
configure_environment('production', config)
|
240
|
-
configure_environment('staging', config)
|
241
|
-
inject_into_file 'config/initializers/exception_notification.rb', before: 'config.add_notifier :email, {' do <<-RUBY
|
242
|
-
unless Rails.env == 'development'
|
243
|
-
RUBY
|
244
|
-
end
|
245
|
-
inject_into_file 'config/initializers/exception_notification.rb', before: '# Campfire notifier sends notifications to your Campfire room.' do <<-RUBY
|
246
|
-
end
|
247
|
-
RUBY
|
248
|
-
end
|
249
|
-
end
|
250
|
-
|
251
|
-
def generate_rails_config
|
252
|
-
generate 'rails_config:install'
|
253
|
-
end
|
254
|
-
|
255
|
-
def generate_devise_settings
|
256
|
-
generate 'devise:install'
|
257
|
-
gsub_file 'config/initializers/filter_parameter_logging.rb', /:password/, ':password, :password_confirmation'
|
258
|
-
gsub_file 'config/initializers/devise.rb', /please-change-me-at-config-initializers-devise@example.com/, "no-reply@#{app_name}.com"
|
259
|
-
inject_into_file 'config/initializers/devise.rb', after: "# config.mailer = 'Devise::Mailer'\n" do <<-RUBY
|
260
|
-
Devise::Mailer.layout 'mailer'
|
261
|
-
RUBY
|
262
|
-
end
|
263
|
-
end
|
264
|
-
|
265
|
-
def generate_devise_user
|
266
|
-
generate 'devise User name:string surname:string is_active:boolean time_zone:string'
|
267
|
-
generate_devise_strong_parameters('user')
|
268
|
-
remove_file 'config/locales/devise.en.yml', force: true
|
269
|
-
end
|
270
|
-
|
271
|
-
def generate_devise_views
|
272
|
-
directory 'app/views/devise', 'app/views/devise'
|
273
|
-
end
|
274
|
-
|
275
|
-
def generate_welcome_page
|
276
|
-
copy_file 'app/controllers/welcome_controller.rb', 'app/controllers/welcome_controller.rb'
|
277
|
-
template 'app/views/welcome/index.html.haml.erb', 'app/views/welcome/index.html.haml', force: true
|
278
|
-
end
|
279
|
-
|
280
|
-
def setup_namespaces
|
281
|
-
generate 'devise Admin name:string surname:string is_active:boolean time_zone:string'
|
282
|
-
|
283
|
-
directory 'app/controllers/hq', 'app/controllers/hq'
|
284
|
-
directory 'app/views/hq', 'app/views/hq'
|
285
|
-
|
286
|
-
# User controllers
|
287
|
-
directory 'app/controllers/user', 'app/controllers/user'
|
288
|
-
directory 'app/views/user', 'app/views/user'
|
289
|
-
|
290
|
-
end
|
291
|
-
|
292
|
-
def create_hierapolis_theme
|
293
|
-
remove_file 'lib/templates/rails/responders_controller/controller.rb', force: true
|
294
|
-
remove_file 'lib/templates/haml/scaffold/_form.html.haml', force: true
|
295
|
-
generate 'hierapolis:install'
|
296
|
-
end
|
297
|
-
|
298
|
-
def replace_simple_form_wrapper
|
299
|
-
remove_file 'config/initializers/simple_form.rb', force: true
|
300
|
-
remove_file 'config/initializers/simple_form_bootstrap.rb', force: true
|
301
|
-
|
302
|
-
copy_file 'config/initializers/simple_form.rb', 'config/initializers/simple_form.rb'
|
303
|
-
copy_file 'config/initializers/simple_form_bootstrap.rb', 'config/initializers/simple_form_bootstrap.rb'
|
304
|
-
end
|
305
|
-
|
306
|
-
def setup_capistrano
|
307
|
-
run 'bundle exec cap install'
|
308
|
-
end
|
309
|
-
|
310
|
-
def setup_capistrano_settings
|
311
|
-
run 'rm config/deploy.rb'
|
312
|
-
# Copy teplates/config/deploy.rb to app directory
|
313
|
-
copy_file 'config/deploy.rb', 'config/deploy.rb'
|
314
|
-
# Change my_app_name string in the deploy.rb file with app_name that is created
|
315
|
-
gsub_file 'config/deploy.rb', /my_app_name/, "#{app_name}"
|
316
|
-
|
317
|
-
inject_into_file 'Capfile', after: "require 'capistrano/deploy'\n" do <<-RUBY
|
318
|
-
require 'capistrano/rails'
|
319
|
-
require 'capistrano/bundler'
|
320
|
-
require 'sshkit/sudo'
|
321
|
-
require 'capistrano/maintenance'
|
322
|
-
RUBY
|
323
|
-
end
|
324
|
-
|
325
|
-
append_to_file 'config/deploy/production.rb' do
|
326
|
-
'server "example.com", user: "#{fetch(:local_user)}", roles: %w{app db web}, primary: true, port: 22
|
327
|
-
set :rails_env, "production"
|
328
|
-
set :branch, "master"
|
329
|
-
set :project_domain, "example.com"'
|
330
|
-
end
|
331
|
-
append_to_file 'config/deploy/staging.rb' do
|
332
|
-
'server "staging.example.com", user: "#{fetch(:local_user)}", roles: %w{app db web}, primary: true, port: 22
|
333
|
-
set :rails_env, "staging"
|
334
|
-
set :branch, "develop"
|
335
|
-
set :project_domain, "staging.example.com"'
|
336
|
-
end
|
337
|
-
end
|
338
|
-
|
339
|
-
def setup_recipes
|
340
|
-
generate 'recipes_matic:install'
|
341
|
-
end
|
342
|
-
|
343
|
-
def setup_client_side_validations
|
344
|
-
generate 'client_side_validations:install'
|
345
|
-
end
|
346
|
-
|
347
|
-
def update_secret_token
|
348
|
-
remove_file 'config/initializers/secret_token.rb', force: true
|
349
|
-
template 'config/initializers/secret_token.erb', 'config/initializers/secret_token.rb'
|
350
|
-
end
|
351
|
-
|
352
|
-
def setup_show_for
|
353
|
-
copy_file 'config/initializers/show_for.rb', 'config/initializers/show_for.rb'
|
354
|
-
end
|
355
|
-
|
356
|
-
def create_dev_rake
|
357
|
-
end
|
358
|
-
|
359
|
-
def custom_exception_page
|
360
|
-
copy_file 'app/views/errors/internal_server_error.html.haml', 'app/views/errors/internal_server_error.html.haml'
|
361
|
-
end
|
362
|
-
|
363
|
-
def custom_404
|
364
|
-
copy_file 'app/views/errors/not_found.html.haml', 'app/views/errors/not_found.html.haml'
|
365
|
-
end
|
366
|
-
|
367
|
-
def add_seeds
|
368
|
-
inject_into_file 'db/seeds.rb', after: "# Mayor.create(name: 'Emanuel', city: cities.first)\n" do <<-RUBY
|
369
|
-
Admin.create(email: "admin@#{app_name}.com", name: 'Admin', surname: 'Admin', password: '12341234', password_confirmation: '12341234')
|
370
|
-
RUBY
|
371
|
-
end
|
372
|
-
end
|
373
|
-
|
374
|
-
# Copy files
|
375
|
-
def copy_files
|
376
|
-
|
377
|
-
# Locale files
|
378
|
-
say 'Coping files..'
|
379
|
-
remove_file 'config/locales/en.yml', force: true
|
380
|
-
remove_file 'config/locales/simple_form.en.yml', force: true
|
381
|
-
copy_file 'config/locales/models.tr.yml', 'config/locales/models.tr.yml'
|
382
|
-
copy_file 'config/locales/show_for.tr.yml', 'config/locales/show_for.tr.yml'
|
383
|
-
copy_file 'config/locales/simple_form.tr.yml', 'config/locales/simple_form.tr.yml'
|
384
|
-
copy_file 'config/locales/view.tr.yml', 'config/locales/view.tr.yml'
|
385
|
-
copy_file 'config/locales/email.tr.yml', 'config/locales/email.tr.yml'
|
386
|
-
|
387
|
-
# Model files
|
388
|
-
remove_file 'app/models/admin.rb', force: true
|
389
|
-
remove_file 'app/models/user.rb', force: true
|
390
|
-
remove_file 'app/models/city.rb', force: true
|
391
|
-
remove_file 'app/models/country.rb', force: true
|
392
|
-
directory 'app/models', 'app/models'
|
393
|
-
|
394
|
-
# Helper files
|
395
|
-
remove_file 'app/helpers/application_helper.rb', force: true
|
396
|
-
template 'app/helpers/application_helper.rb.erb', 'app/helpers/application_helper.rb'
|
397
|
-
|
398
|
-
# Route file
|
399
|
-
say 'Restore routes.rb'
|
400
|
-
remove_file 'config/routes.rb', force: true
|
401
|
-
template 'config/routes.erb', 'config/routes.rb'
|
402
|
-
|
403
|
-
# Hq layout files
|
404
|
-
say 'Set hq layouts'
|
405
|
-
remove_file 'app/views/layouts/hq/application.html.haml', force: true
|
406
|
-
template 'app/views/layouts/hq/application.html.haml.erb', 'app/views/layouts/hq/application.html.haml', force: true
|
407
|
-
remove_file 'app/views/layouts/login.html.haml', force: true
|
408
|
-
template 'app/views/layouts/hq/login.html.haml.erb', 'app/views/layouts/hq/login.html.haml', force: true
|
409
|
-
remove_file 'app/views/layouts/hq/partials/_navbar.haml', force: true
|
410
|
-
template 'app/views/layouts/hq/partials/_navbar.html.haml.erb', 'app/views/layouts/hq/partials/_navbar.html.haml', force: true
|
411
|
-
remove_file 'app/views/layouts/hq/partials/_dock.haml', force: true
|
412
|
-
template 'app/views/layouts/hq/partials/_dock.html.haml.erb', 'app/views/layouts/hq/partials/_dock.html.haml', force: true
|
413
|
-
remove_file 'app/views/layouts/hq/partials/_footer.haml', force: true
|
414
|
-
template 'app/views/layouts/hq/partials/_footer.html.haml.erb', 'app/views/layouts/hq/partials/_footer.html.haml', force: true
|
415
|
-
remove_file 'app/views/layouts/hq/partials/_trackers.haml', force: true
|
416
|
-
template 'app/views/layouts/hq/partials/_trackers.html.haml.erb', 'app/views/layouts/hq/partials/_trackers.html.haml', force: true
|
417
|
-
|
418
|
-
# Mailer layout files
|
419
|
-
template 'app/views/layouts/mailer.html.haml.erb', 'app/views/layouts/mailer.html.haml', force: true
|
420
|
-
copy_file 'app/views/layouts/mailer.text.haml', 'app/views/layouts/mailer.text.haml'
|
421
|
-
|
422
|
-
# Assets files
|
423
|
-
remove_file 'app/assets/javascripts/application.js', force: true
|
424
|
-
remove_file 'app/assets/stylesheets/application.css', force: true
|
425
|
-
|
426
|
-
# Hq assets files
|
427
|
-
remove_file 'app/assets/javascripts/hq/application.js.coffee', force: true
|
428
|
-
remove_file 'app/assets/stylesheets/hq/application.css.sass', force: true
|
429
|
-
copy_file 'app/assets/javascripts/hq/application.js.coffee','app/assets/javascripts/hq/application.js.coffee'
|
430
|
-
copy_file 'app/assets/stylesheets/hq/application.css.sass', 'app/assets/stylesheets/hq/application.css.sass'
|
431
|
-
|
432
|
-
# Partial files in layouts folder
|
433
|
-
remove_file 'app/views/layouts/partials/_footer.haml', force: true
|
434
|
-
template 'app/views/layouts/partials/_footer.html.haml.erb', 'app/views/layouts/partials/_footer.html.haml', force: true
|
435
|
-
remove_file 'app/views/layouts/partials/_trackers.haml', force: true
|
436
|
-
template 'app/views/layouts/partials/_trackers.html.haml.erb', 'app/views/layouts/partials/_trackers.html.haml', force: true
|
437
|
-
template 'app/views/layouts/partials/_warnings.html.haml.erb', 'app/views/layouts/partials/_warnings.html.haml', force: true
|
438
|
-
|
439
|
-
# Root folder files
|
440
|
-
copy_file 'cybele_version.txt', 'VERSION.txt'
|
441
|
-
directory 'public/images', 'public/images'
|
442
|
-
template '.env.local.erb', '.env.local', force: true
|
443
|
-
template '.env.production.erb', '.env.production', force: true
|
444
|
-
template '.env.staging.erb', '.env.staging', force: true
|
445
|
-
template 'env.sample.erb', 'env.sample', force: true
|
446
|
-
template 'Procfile.erb', 'Procfile', force: true
|
447
|
-
|
448
|
-
# Library files
|
449
|
-
directory 'lib/tasks', 'lib/tasks'
|
450
|
-
directory 'lib/data', 'lib/data'
|
451
|
-
|
452
|
-
# Config files
|
453
|
-
copy_file 'config/initializers/sidekiq.rb', 'config/initializers/sidekiq.rb'
|
454
|
-
copy_file 'config/initializers/devise_async.rb', 'config/initializers/devise_async.rb'
|
455
|
-
copy_file 'config/schedule.yml', 'config/schedule.yml'
|
456
|
-
copy_file 'config/sidekiq.yml', 'config/sidekiq.yml'
|
457
|
-
remove_file 'config/settings.local.yml', force: true
|
458
|
-
|
459
|
-
# Mailer files
|
460
|
-
directory 'app/mailers', 'app/mailers'
|
461
|
-
directory 'app/views/admin_mailer', 'app/views/admin_mailer'
|
462
|
-
directory 'app/views/user_mailer', 'app/views/user_mailer'
|
463
|
-
|
464
|
-
# Controllers
|
465
|
-
remove_file 'app/controllers/application_controller.rb', force: true
|
466
|
-
template 'app/controllers/application_controller.rb.erb', 'app/controllers/application_controller.rb', force: true
|
467
|
-
end
|
468
|
-
|
469
|
-
def git_commands
|
54
|
+
def git_and_git_flow_commands
|
55
|
+
run 'mkdir .environments'
|
56
|
+
run 'mv .env.local .environments/'
|
57
|
+
run 'mv .env.production .environments/'
|
58
|
+
run 'mv .env.staging .environments/'
|
59
|
+
run 'ln -s .environments/.env.local .env.local'
|
60
|
+
run 'cd .environments && git init && git add . && git commit -m "Env initialized" && cd ..'
|
470
61
|
git :init
|
62
|
+
git flow: 'init -d -f'
|
63
|
+
git add: '.'
|
64
|
+
git commit: '-m "Project initialized"'
|
471
65
|
end
|
472
|
-
|
473
|
-
def create_location_models
|
474
|
-
generate 'model Country name:string'
|
475
|
-
generate 'model City name:string country:references'
|
476
|
-
generate 'audited:install'
|
477
|
-
end
|
478
|
-
|
479
|
-
def create_jobs_helper_lib
|
480
|
-
create_file "lib/jobs_helper.rb", <<-CODE
|
481
|
-
# Get system admin
|
482
|
-
def system_admin
|
483
|
-
admin = Admin.where(email: "system@#{app_name}.com").first
|
484
|
-
if admin.nil?
|
485
|
-
password = Devise.friendly_token.first(12)
|
486
|
-
admin = Admin.create(name: 'System', surname: 'System', email: "system@#{app_name}.com", password: password, password_confirmation: password)
|
487
|
-
end
|
488
|
-
admin
|
489
|
-
end
|
490
|
-
CODE
|
491
|
-
end
|
492
|
-
|
493
|
-
private
|
494
|
-
|
495
|
-
def action_mailer_host(rails_env)
|
496
|
-
config = <<-RUBY
|
497
|
-
# Mail Setting
|
498
|
-
config.action_mailer.default_url_options = { host: ENV['ROOT_PATH'] }
|
499
|
-
RUBY
|
500
|
-
configure_environment(rails_env, config)
|
501
|
-
end
|
502
|
-
|
503
|
-
def configure_environment(rails_env, config)
|
504
|
-
inject_into_file("config/environments/#{rails_env}.rb", "\n#{config}", before: "\nend")
|
505
|
-
end
|
506
|
-
|
507
|
-
def generate_devise_strong_parameters(model_name)
|
508
|
-
create_sanitizer_lib(model_name)
|
509
|
-
create_sanitizer_initializer(model_name)
|
510
|
-
end
|
511
|
-
|
512
|
-
def create_sanitizer_lib(model_name)
|
513
|
-
create_file "lib/#{model_name.parameterize}_sanitizer.rb", <<-CODE
|
514
|
-
class #{model_name.classify}::ParameterSanitizer < Devise::ParameterSanitizer
|
515
|
-
private
|
516
|
-
def sign_up
|
517
|
-
default_params.permit(:name, :surname, :email, :password, :password_confirmation, :time_zone) # TODO add other params here
|
518
|
-
end
|
519
|
-
end
|
520
|
-
CODE
|
521
|
-
end
|
522
|
-
|
523
|
-
def create_sanitizer_initializer(model_name)
|
524
|
-
path = "#"
|
525
|
-
path << "{Rails.application.root}"
|
526
|
-
path << "/lib/#{model_name.parameterize}_sanitizer.rb"
|
527
|
-
initializer 'sanitizers.rb', <<-CODE
|
528
|
-
require "#{path}"
|
529
|
-
CODE
|
530
|
-
end
|
531
|
-
|
532
|
-
|
533
66
|
end
|
534
67
|
end
|