cybele 1.9.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. checksums.yaml +4 -4
  2. data/.fasterer.yml +5 -0
  3. data/.flayignore +3 -0
  4. data/.gitignore +4 -1
  5. data/.haml-lint.yml +5 -0
  6. data/.poper.yml +7 -0
  7. data/.rubocop.yml +59 -0
  8. data/.ruby-version +1 -1
  9. data/CHANGELOG.md +458 -2
  10. data/Gemfile +2 -0
  11. data/README.md +16 -20
  12. data/Rakefile +1 -1
  13. data/USAGE +12 -0
  14. data/bin/build_app +18 -0
  15. data/bin/build_gem +20 -0
  16. data/bin/cybele +21 -6
  17. data/config.reek +29 -0
  18. data/cybele.gemspec +14 -6
  19. data/example.pronto.yml +8 -0
  20. data/lib/cybele.rb +33 -0
  21. data/lib/cybele/app_builder.rb +43 -510
  22. data/lib/cybele/generators/app_generator.rb +240 -180
  23. data/lib/cybele/helpers.rb +104 -0
  24. data/lib/cybele/helpers/app_files/assets_files.rb +43 -0
  25. data/lib/cybele/helpers/app_files/controller_files.rb +23 -0
  26. data/lib/cybele/helpers/app_files/helper_files.rb +15 -0
  27. data/lib/cybele/helpers/app_files/mailer_files.rb +15 -0
  28. data/lib/cybele/helpers/app_files/model_files.rb +16 -0
  29. data/lib/cybele/helpers/app_files/vendor_files.rb +14 -0
  30. data/lib/cybele/helpers/app_files/view_files.rb +62 -0
  31. data/lib/cybele/helpers/app_files/view_gems.rb +20 -0
  32. data/lib/cybele/helpers/audited.rb +12 -0
  33. data/lib/cybele/helpers/basic_authentication.rb +44 -0
  34. data/lib/cybele/helpers/devise.rb +67 -0
  35. data/lib/cybele/helpers/docker.rb +53 -0
  36. data/lib/cybele/helpers/dotenv.rb +23 -0
  37. data/lib/cybele/helpers/error_pages.rb +37 -0
  38. data/lib/cybele/helpers/general.rb +87 -0
  39. data/lib/cybele/helpers/haml.rb +18 -0
  40. data/lib/cybele/helpers/locale_language.rb +23 -0
  41. data/lib/cybele/helpers/mailer.rb +25 -0
  42. data/lib/cybele/helpers/paperclip.rb +33 -0
  43. data/lib/cybele/helpers/pronto.rb +34 -0
  44. data/lib/cybele/helpers/recipient_interceptor.rb +18 -0
  45. data/lib/cybele/helpers/responders.rb +36 -0
  46. data/lib/cybele/helpers/routes.rb +18 -0
  47. data/lib/cybele/helpers/show_for.rb +20 -0
  48. data/lib/cybele/helpers/sidekiq.rb +37 -0
  49. data/lib/cybele/helpers/simple_form.rb +19 -0
  50. data/lib/cybele/helpers/staging.rb +15 -0
  51. data/lib/cybele/version.rb +5 -3
  52. data/spec/features/cli_help_spec.rb +42 -0
  53. data/spec/features/git_and_git_flow_spec.rb +30 -0
  54. data/spec/features/new_default_project_spec.rb +465 -0
  55. data/spec/features/new_not_default_project_spec.rb +412 -0
  56. data/spec/spec_helper.rb +38 -0
  57. data/spec/support/config_test_helper.rb +36 -0
  58. data/spec/support/cybele_test_helpers.rb +115 -0
  59. data/spec/support/devise_test_helper.rb +45 -0
  60. data/spec/support/dotenv_test_helper.rb +31 -0
  61. data/spec/support/error_pages_test_helper.rb +24 -0
  62. data/spec/support/force_ssl_test_helper.rb +24 -0
  63. data/spec/support/git_ignore_test_helper.rb +10 -0
  64. data/spec/support/locale_language_test_helper.rb +43 -0
  65. data/spec/support/mail_test_helpers.rb +15 -0
  66. data/spec/support/paperclip_test_helper.rb +38 -0
  67. data/spec/support/pronto_test_helpers.rb +41 -0
  68. data/spec/support/responder_test_helper.rb +32 -0
  69. data/templates/Gemfile.erb +59 -0
  70. data/templates/README.md.erb +23 -20
  71. data/templates/VERSION.txt +1 -0
  72. data/templates/app_files/app/assets/javascripts/application.js +81 -0
  73. data/templates/app_files/app/assets/javascripts/hq/application.js +80 -0
  74. data/templates/{app/assets/stylesheets/application.css.sass → app_files/app/assets/stylesheets/application.sass} +27 -16
  75. data/templates/app_files/app/assets/stylesheets/hq/_sidebar.sass +89 -0
  76. data/templates/app_files/app/assets/stylesheets/hq/application.sass +74 -0
  77. data/templates/app_files/app/controllers/concerns/activatable.rb +16 -0
  78. data/templates/{app → app_files/app}/controllers/hq/admins_controller.rb +7 -10
  79. data/templates/app_files/app/controllers/hq/application_controller.rb +13 -0
  80. data/templates/{app → app_files/app}/controllers/hq/audits_controller.rb +3 -3
  81. data/templates/app_files/app/controllers/hq/dashboard_controller.rb +7 -0
  82. data/templates/{app → app_files/app}/controllers/hq/passwords_controller.rb +3 -2
  83. data/templates/app_files/app/controllers/hq/registrations_controller.rb +22 -0
  84. data/templates/{app → app_files/app}/controllers/hq/sessions_controller.rb +5 -4
  85. data/templates/{app → app_files/app}/controllers/hq/users_controller.rb +7 -10
  86. data/templates/app_files/app/controllers/user/application_controller.rb +18 -0
  87. data/templates/app_files/app/controllers/user/dashboard_controller.rb +7 -0
  88. data/templates/{app → app_files/app}/controllers/user/passwords_controller.rb +3 -4
  89. data/templates/app_files/app/controllers/user/profile_controller.rb +30 -0
  90. data/templates/{app → app_files/app}/controllers/user/registrations_controller.rb +7 -8
  91. data/templates/{app → app_files/app}/controllers/user/sessions_controller.rb +5 -6
  92. data/templates/app_files/app/controllers/welcome_controller.rb +9 -0
  93. data/templates/app_files/app/helpers/application_helper.rb.erb +61 -0
  94. data/templates/app_files/app/mailers/admin_mailer.rb +10 -0
  95. data/templates/app_files/app/mailers/application_mailer.rb +6 -0
  96. data/templates/app_files/app/mailers/user_mailer.rb +10 -0
  97. data/templates/app_files/app/models/admin.rb +42 -0
  98. data/templates/app_files/app/models/audit.rb +4 -0
  99. data/templates/app_files/app/models/concerns/password_creatable.rb +39 -0
  100. data/templates/app_files/app/models/user.rb +43 -0
  101. data/templates/app_files/app/vendor/assets/javascripts/footable.min.js +10 -0
  102. data/templates/{vendor → app_files/app/vendor}/assets/javascripts/jquery.datetimepicker.js +0 -0
  103. data/templates/{vendor → app_files/app/vendor}/assets/javascripts/jquery.maskedinput.min.js +0 -0
  104. data/templates/{vendor → app_files/app/vendor}/assets/javascripts/nprogress.js +0 -0
  105. data/templates/{vendor → app_files/app/vendor}/assets/javascripts/trix.js +0 -0
  106. data/templates/app_files/app/vendor/assets/stylesheets/footable.bootstrap.min.css +1 -0
  107. data/templates/{vendor → app_files/app/vendor}/assets/stylesheets/jquery.datetimepicker.css +0 -0
  108. data/templates/{vendor → app_files/app/vendor}/assets/stylesheets/nprogress.css +0 -1
  109. data/templates/{vendor → app_files/app/vendor}/assets/stylesheets/trix.css +0 -0
  110. data/templates/app_files/app/views/admin_mailer/login_info.html.haml +13 -0
  111. data/templates/app_files/app/views/hq/admins/_admin.html.haml +38 -0
  112. data/templates/{app → app_files/app}/views/hq/admins/_blank.html.haml +3 -3
  113. data/templates/app_files/app/views/hq/admins/_filters.html.haml +27 -0
  114. data/templates/app_files/app/views/hq/admins/_form.html.haml +17 -0
  115. data/templates/app_files/app/views/hq/admins/_list.html.haml +20 -0
  116. data/templates/app_files/app/views/hq/admins/edit.html.haml +3 -0
  117. data/templates/app_files/app/views/hq/admins/index.html.haml +18 -0
  118. data/templates/{app → app_files/app}/views/hq/admins/new.html.haml +2 -2
  119. data/templates/{app → app_files/app}/views/hq/admins/show.html.haml +8 -8
  120. data/templates/app_files/app/views/hq/audits/_filters.html.haml +48 -0
  121. data/templates/app_files/app/views/hq/audits/_list.html.haml +47 -0
  122. data/templates/{app → app_files/app}/views/hq/audits/index.html.haml +3 -3
  123. data/templates/app_files/app/views/hq/audits/show.html.haml +8 -0
  124. data/templates/app_files/app/views/hq/dashboard/index.html.haml +13 -0
  125. data/templates/app_files/app/views/hq/passwords/edit.html.haml +24 -0
  126. data/templates/app_files/app/views/hq/passwords/new.html.haml +21 -0
  127. data/templates/app_files/app/views/hq/registrations/edit.html.haml +30 -0
  128. data/templates/app_files/app/views/hq/sessions/new.html.haml +20 -0
  129. data/templates/{app → app_files/app}/views/hq/users/_blank.html.haml +3 -3
  130. data/templates/app_files/app/views/hq/users/_filters.html.haml +26 -0
  131. data/templates/app_files/app/views/hq/users/_form.html.haml +17 -0
  132. data/templates/app_files/app/views/hq/users/_list.html.haml +21 -0
  133. data/templates/app_files/app/views/hq/users/_user.html.haml +38 -0
  134. data/templates/app_files/app/views/hq/users/edit.html.haml +3 -0
  135. data/templates/app_files/app/views/hq/users/index.html.haml +18 -0
  136. data/templates/{app → app_files/app}/views/hq/users/new.html.haml +2 -2
  137. data/templates/{app → app_files/app}/views/hq/users/show.html.haml +8 -9
  138. data/templates/app_files/app/views/layouts/application.html.haml.erb +33 -0
  139. data/templates/app_files/app/views/layouts/hq/application.html.haml.erb +57 -0
  140. data/templates/app_files/app/views/layouts/hq/login.html.haml.erb +47 -0
  141. data/templates/app_files/app/views/layouts/hq/partials/_breadcrumb.html.haml +3 -0
  142. data/templates/app_files/app/views/layouts/hq/partials/_dock.html.haml +95 -0
  143. data/templates/{app/views/layouts/hq/partials/_footer.html.haml.erb → app_files/app/views/layouts/hq/partials/_footer.html.haml} +0 -0
  144. data/templates/app_files/app/views/layouts/hq/partials/_navbar.html.haml +35 -0
  145. data/templates/app_files/app/views/layouts/hq/partials/_toolbar.html.haml +3 -0
  146. data/templates/{app/views/layouts/hq/partials/_trackers.html.haml.erb → app_files/app/views/layouts/hq/partials/_trackers.html.haml} +0 -0
  147. data/templates/app_files/app/views/layouts/mailer.html.haml.erb +255 -0
  148. data/templates/app_files/app/views/layouts/partials/_messages.html.haml +11 -0
  149. data/templates/app_files/app/views/layouts/partials/_navbar.html.haml.erb +37 -0
  150. data/templates/{app/views/layouts/partials/_footer.html.haml.erb → app_files/app/views/layouts/partials/_warnings.html.haml} +0 -0
  151. data/templates/app_files/app/views/user/dashboard/index.html.haml +11 -0
  152. data/templates/app_files/app/views/user/passwords/edit.html.haml +18 -0
  153. data/templates/app_files/app/views/user/passwords/new.html.haml +18 -0
  154. data/templates/{app → app_files/app}/views/user/profile/_form.html.haml +5 -5
  155. data/templates/app_files/app/views/user/profile/edit.html.haml +3 -0
  156. data/templates/app_files/app/views/user/profile/show.html.haml +18 -0
  157. data/templates/app_files/app/views/user/registrations/edit.html.haml +30 -0
  158. data/templates/app_files/app/views/user/registrations/new.html.haml +33 -0
  159. data/templates/app_files/app/views/user/sessions/new.html.haml +15 -0
  160. data/templates/app_files/app/views/user_mailer/login_info.html.haml +13 -0
  161. data/templates/app_files/app/views/welcome/about.html.haml +3 -0
  162. data/templates/app_files/app/views/welcome/contact.html.haml +3 -0
  163. data/templates/app_files/app/views/welcome/index.html.haml.erb +19 -0
  164. data/templates/app_files/bootstrap_Gemfile.erb +4 -0
  165. data/templates/app_files/breadcrumb_Gemfile.erb +4 -0
  166. data/templates/app_files/jquery_Gemfile.erb +4 -0
  167. data/templates/{public → app_files/public}/images/favicon.png +0 -0
  168. data/templates/{public → app_files/public}/images/mail-logo.png +0 -0
  169. data/templates/basic_authentication/basic_authentication.rb +22 -0
  170. data/templates/basic_authentication/basic_authentication_settings.yml.erb +3 -0
  171. data/templates/basic_authentication/include_module.erb +2 -0
  172. data/templates/basic_authentication/no_basic_authentication.erb +2 -0
  173. data/templates/basic_authentication/yes_basic_authentication.erb +2 -0
  174. data/templates/bullet/bullet_settings.rb.erb +9 -0
  175. data/templates/config/config_application.rb.erb +4 -0
  176. data/templates/config/locales/devise.en.yml +99 -0
  177. data/templates/config/locales/devise.tr.yml +97 -0
  178. data/templates/config/locales/en.yml +34 -0
  179. data/templates/config/locales/mailer.en.yml +32 -0
  180. data/templates/config/locales/{email.tr.yml → mailer.tr.yml} +6 -2
  181. data/templates/config/locales/models.en.yml +74 -0
  182. data/templates/config/locales/models.tr.yml +11 -27
  183. data/templates/config/locales/responders.en.yml +15 -0
  184. data/templates/config/locales/responders.tr.yml +3 -2
  185. data/templates/config/locales/show_for.tr.yml +3 -3
  186. data/templates/config/locales/view.en.yml +73 -0
  187. data/templates/config/locales/view.tr.yml +55 -82
  188. data/templates/config/routes.rb.erb +63 -0
  189. data/templates/cybele_gitignore +4 -3
  190. data/templates/devise/devise_authenticate_admin.rb.erb +2 -0
  191. data/templates/devise/devise_before_action_strong_parameter.rb.erb +3 -0
  192. data/templates/devise/devise_mailer.rb.erb +1 -0
  193. data/templates/devise/devise_strong_parameter.rb.erb +13 -0
  194. data/templates/{app/views/devise → devise/devise_views}/confirmations/new.html.haml +4 -1
  195. data/templates/devise/devise_views/mailer/confirmation_instructions.html.haml +5 -0
  196. data/templates/devise/devise_views/mailer/reset_password_instructions.html.haml +7 -0
  197. data/templates/{app/views/devise → devise/devise_views}/mailer/unlock_instructions.html.haml +1 -1
  198. data/templates/devise/devise_views/passwords/edit.html.haml +19 -0
  199. data/templates/devise/devise_views/passwords/new.html.haml +14 -0
  200. data/templates/devise/devise_views/registrations/edit.html.haml +21 -0
  201. data/templates/devise/devise_views/registrations/new.html.haml +32 -0
  202. data/templates/{app/views/devise → devise/devise_views}/sessions/new.html.haml +8 -3
  203. data/templates/devise/devise_views/shared/_links.haml +29 -0
  204. data/templates/{app/views/devise → devise/devise_views}/unlocks/new.html.haml +4 -1
  205. data/templates/devise/seeds.rb.erb +1 -0
  206. data/templates/docker/Dockerfile.erb +48 -0
  207. data/templates/docker/docker-compose.yml.erb +46 -0
  208. data/templates/docker/docker_env_local_sample.erb +6 -0
  209. data/templates/docker/docker_env_local_sample_host.erb +1 -0
  210. data/templates/docker/docker_env_local_sample_sidekiq.erb +2 -0
  211. data/templates/docker/docker_env_staging_production_sidekiq.erb +2 -0
  212. data/templates/docker/start-app.sh.erb +7 -0
  213. data/templates/docker/start-sidekiq.sh.erb +27 -0
  214. data/templates/dotenv/.env.local.erb +5 -0
  215. data/templates/dotenv/.env.production.erb +5 -0
  216. data/templates/dotenv/.env.sample.erb +5 -0
  217. data/templates/dotenv/.env.staging.erb +5 -0
  218. data/templates/dotenv/dotenv_Gemfile.erb +2 -0
  219. data/templates/error_pages/error_control.erb +7 -0
  220. data/templates/error_pages/error_method.erb +10 -0
  221. data/templates/error_pages/error_route.erb.rb +2 -0
  222. data/templates/error_pages/internal_server_error.html.haml +2 -0
  223. data/templates/error_pages/not_found.html.haml +2 -0
  224. data/templates/guardfile/guardfile_settings.rb.erb +49 -0
  225. data/templates/haml/haml_Gemfile.erb +5 -0
  226. data/templates/mailer/.env.local.erb +7 -0
  227. data/templates/mailer/host.rb.erb +2 -0
  228. data/templates/mailer/mailer_settings.yml.erb +8 -0
  229. data/templates/mailer/smtp.rb.erb +10 -0
  230. data/templates/paperclip/paperclip.rb.erb +11 -0
  231. data/templates/paperclip/paperclip_Gemfile.erb +4 -0
  232. data/templates/paperclip/paperclip_env_local.erb +6 -0
  233. data/templates/paperclip/paperclip_env_production.erb +6 -0
  234. data/templates/paperclip/paperclip_env_sample.erb +6 -0
  235. data/templates/paperclip/paperclip_env_staging.erb +6 -0
  236. data/templates/paperclip/paperclip_settings.yml.erb +10 -0
  237. data/templates/postgresql_database.yml.erb +24 -0
  238. data/templates/pronto/.flayignore.erb +5 -0
  239. data/templates/pronto/.haml-lint.yml.erb +5 -0
  240. data/templates/pronto/.rubocop.yml.erb +38 -0
  241. data/templates/pronto/config.reek.erb +42 -0
  242. data/templates/pronto/example.pronto.yml.erb +27 -0
  243. data/templates/pronto/rubo.erb +24 -0
  244. data/templates/recipient_interceptor/recipient_interceptor_settings.yml.erb +4 -0
  245. data/templates/recipient_interceptor/recipient_interceptor_staging.rb.erb +2 -0
  246. data/templates/responders/responders_Gemfile.erb +3 -0
  247. data/templates/ruby-version +1 -1
  248. data/templates/secrets.yml.erb +3 -0
  249. data/templates/settings.yml.erb +1 -0
  250. data/templates/show_for/show_for_Gemfile.erb +3 -0
  251. data/templates/sidekiq/sidekiq.rake.erb +42 -0
  252. data/templates/sidekiq/sidekiq.rb.erb +18 -0
  253. data/templates/sidekiq/sidekiq.yml.erb +18 -0
  254. data/templates/sidekiq/sidekiq_Gemfile.erb +8 -0
  255. data/templates/{Procfile.erb → sidekiq/sidekiq_Procfile.erb} +0 -0
  256. data/templates/sidekiq/sidekiq_application.rb.erb +3 -0
  257. data/templates/sidekiq/sidekiq_routes_mount.erb +8 -0
  258. data/templates/sidekiq/sidekiq_routes_require.erb +3 -0
  259. data/templates/{config/schedule.yml → sidekiq/sidekiq_schedule.yml.erb} +6 -4
  260. data/templates/simple_form/simple_form_Gemfile.erb +3 -0
  261. data/templates/ssl/ssl_env_all.erb +2 -0
  262. metadata +369 -179
  263. data/templates/.env.local.erb +0 -11
  264. data/templates/.env.production.erb +0 -11
  265. data/templates/.env.staging.erb +0 -11
  266. data/templates/app/assets/javascripts/application.js.coffee +0 -81
  267. data/templates/app/assets/javascripts/hq/application.js.coffee +0 -94
  268. data/templates/app/assets/stylesheets/hq/application.css.sass +0 -92
  269. data/templates/app/controllers/application_controller.rb.erb +0 -48
  270. data/templates/app/controllers/concerns/basic_authentication.rb +0 -18
  271. data/templates/app/controllers/hq/application_controller.rb +0 -18
  272. data/templates/app/controllers/hq/cities_controller.rb +0 -54
  273. data/templates/app/controllers/hq/countries_controller.rb +0 -54
  274. data/templates/app/controllers/hq/dashboard_controller.rb +0 -8
  275. data/templates/app/controllers/hq/registrations_controller.rb +0 -21
  276. data/templates/app/controllers/user/dashboard_controller.rb +0 -8
  277. data/templates/app/controllers/user/profile_controller.rb +0 -34
  278. data/templates/app/controllers/user/user_application_controller.rb +0 -26
  279. data/templates/app/controllers/welcome_controller.rb +0 -4
  280. data/templates/app/helpers/application_helper.rb.erb +0 -27
  281. data/templates/app/mailers/admin_mailer.rb +0 -10
  282. data/templates/app/mailers/base_mailer.rb +0 -4
  283. data/templates/app/mailers/user_mailer.rb +0 -10
  284. data/templates/app/models/admin.rb +0 -51
  285. data/templates/app/models/audit.rb +0 -3
  286. data/templates/app/models/city.rb +0 -12
  287. data/templates/app/models/country.rb +0 -12
  288. data/templates/app/models/user.rb +0 -54
  289. data/templates/app/views/admin_mailer/login_info.html.haml +0 -13
  290. data/templates/app/views/devise/mailer/confirmation_instructions.html.haml +0 -6
  291. data/templates/app/views/devise/mailer/reset_password_instructions.html.haml +0 -9
  292. data/templates/app/views/devise/passwords/edit.html.haml +0 -11
  293. data/templates/app/views/devise/passwords/new.html.haml +0 -9
  294. data/templates/app/views/devise/registrations/edit.html.haml +0 -12
  295. data/templates/app/views/devise/registrations/new.html.haml +0 -24
  296. data/templates/app/views/devise/shared/_links.haml +0 -22
  297. data/templates/app/views/errors/internal_server_error.html.haml +0 -2
  298. data/templates/app/views/errors/not_found.html.haml +0 -2
  299. data/templates/app/views/hq/admins/_admin.html.haml +0 -21
  300. data/templates/app/views/hq/admins/_filters.html.haml +0 -20
  301. data/templates/app/views/hq/admins/_form.html.haml +0 -17
  302. data/templates/app/views/hq/admins/_list.html.haml +0 -15
  303. data/templates/app/views/hq/admins/edit.html.haml +0 -3
  304. data/templates/app/views/hq/admins/index.html.haml +0 -18
  305. data/templates/app/views/hq/audits/_filters.html.haml +0 -32
  306. data/templates/app/views/hq/audits/_list.html.haml +0 -37
  307. data/templates/app/views/hq/audits/show.html.haml +0 -5
  308. data/templates/app/views/hq/cities/_blank.html.haml +0 -9
  309. data/templates/app/views/hq/cities/_city.html.haml +0 -12
  310. data/templates/app/views/hq/cities/_filters.html.haml +0 -15
  311. data/templates/app/views/hq/cities/_form.html.haml +0 -15
  312. data/templates/app/views/hq/cities/_list.html.haml +0 -13
  313. data/templates/app/views/hq/cities/edit.html.haml +0 -3
  314. data/templates/app/views/hq/cities/index.html.haml +0 -18
  315. data/templates/app/views/hq/cities/new.html.haml +0 -3
  316. data/templates/app/views/hq/cities/show.html.haml +0 -13
  317. data/templates/app/views/hq/countries/_blank.html.haml +0 -9
  318. data/templates/app/views/hq/countries/_country.html.haml +0 -11
  319. data/templates/app/views/hq/countries/_filters.html.haml +0 -14
  320. data/templates/app/views/hq/countries/_form.html.haml +0 -14
  321. data/templates/app/views/hq/countries/_list.html.haml +0 -12
  322. data/templates/app/views/hq/countries/edit.html.haml +0 -3
  323. data/templates/app/views/hq/countries/index.html.haml +0 -18
  324. data/templates/app/views/hq/countries/new.html.haml +0 -3
  325. data/templates/app/views/hq/countries/show.html.haml +0 -14
  326. data/templates/app/views/hq/dashboard/index.html.haml +0 -8
  327. data/templates/app/views/hq/passwords/edit.html.haml +0 -12
  328. data/templates/app/views/hq/passwords/new.html.haml +0 -9
  329. data/templates/app/views/hq/registrations/edit.html.haml +0 -19
  330. data/templates/app/views/hq/sessions/new.html.haml +0 -11
  331. data/templates/app/views/hq/users/_filters.html.haml +0 -20
  332. data/templates/app/views/hq/users/_form.html.haml +0 -18
  333. data/templates/app/views/hq/users/_list.html.haml +0 -15
  334. data/templates/app/views/hq/users/_user.html.haml +0 -20
  335. data/templates/app/views/hq/users/edit.html.haml +0 -3
  336. data/templates/app/views/hq/users/index.html.haml +0 -18
  337. data/templates/app/views/layouts/application.html.haml.erb +0 -56
  338. data/templates/app/views/layouts/hq/application.html.haml.erb +0 -55
  339. data/templates/app/views/layouts/hq/login.html.haml.erb +0 -35
  340. data/templates/app/views/layouts/hq/partials/_dock.html.haml.erb +0 -36
  341. data/templates/app/views/layouts/hq/partials/_navbar.html.haml.erb +0 -22
  342. data/templates/app/views/layouts/mailer.html.haml.erb +0 -321
  343. data/templates/app/views/layouts/mailer.text.haml +0 -1
  344. data/templates/app/views/layouts/partials/_trackers.html.haml.erb +0 -0
  345. data/templates/app/views/layouts/partials/_warnings.html.haml.erb +0 -3
  346. data/templates/app/views/user/dashboard/index.html.haml +0 -8
  347. data/templates/app/views/user/passwords/edit.html.haml +0 -12
  348. data/templates/app/views/user/passwords/new.html.haml +0 -10
  349. data/templates/app/views/user/profile/edit.html.haml +0 -3
  350. data/templates/app/views/user/profile/show.html.haml +0 -18
  351. data/templates/app/views/user/registrations/edit.html.haml +0 -19
  352. data/templates/app/views/user/sessions/new.html.haml +0 -11
  353. data/templates/app/views/user_mailer/login_info.html.haml +0 -13
  354. data/templates/app/views/welcome/index.html.haml.erb +0 -16
  355. data/templates/config/database.yml.erb +0 -21
  356. data/templates/config/deploy.rb +0 -56
  357. data/templates/config/initializers/devise_async.rb +0 -6
  358. data/templates/config/initializers/disable_xml_params.rb +0 -3
  359. data/templates/config/initializers/mail.rb +0 -13
  360. data/templates/config/initializers/paperclip.rb +0 -10
  361. data/templates/config/initializers/secret_token.erb +0 -25
  362. data/templates/config/initializers/show_for.rb +0 -3
  363. data/templates/config/initializers/sidekiq.rb +0 -13
  364. data/templates/config/initializers/simple_form.rb +0 -142
  365. data/templates/config/initializers/simple_form_bootstrap.rb +0 -207
  366. data/templates/config/routes.erb +0 -51
  367. data/templates/config/settings.yml +0 -0
  368. data/templates/config/settings/production.yml +0 -0
  369. data/templates/config/settings/staging.yml +0 -0
  370. data/templates/config/sidekiq.yml +0 -13
  371. data/templates/cybele_Gemfile +0 -106
  372. data/templates/cybele_version.txt +0 -1
  373. data/templates/env.sample.erb +0 -11
  374. data/templates/lib/application_responder.rb +0 -8
  375. data/templates/lib/data/cities.yml +0 -163
  376. data/templates/lib/tasks/annotate.rake +0 -6
  377. data/templates/lib/tasks/dev.rake +0 -56
  378. data/templates/lib/tasks/sidekiq.rake +0 -26
  379. data/templates/lib/templates/rails/responders_controller/controller.rb +0 -56
  380. data/templates/public/images/missing_cover.png +0 -0
  381. data/templates/public/images/missing_cover@2x.png +0 -0
  382. data/templates/public/images/missing_logo.png +0 -0
  383. data/templates/public/images/missing_logo@2x.png +0 -0
  384. data/templates/public/images/sprite.png +0 -0
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Activatable
4
+ extend ActiveSupport::Concern
5
+
6
+ private
7
+
8
+ def activation_toggle(resource)
9
+ if resource.update(is_active: !resource.is_active)
10
+ i18n_key = "flash.actions.toggle_is_active.#{resource.is_active ? 'active' : 'passive'}"
11
+ flash[:info] = I18n.t(i18n_key, resource_name: resource.class.model_name.human)
12
+ else
13
+ flash[:danger] = I18n.t('flash.messages.error_occurred')
14
+ end
15
+ end
16
+ end
@@ -1,6 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Hq::AdminsController < Hq::ApplicationController
4
+ include Activatable
2
5
 
3
- before_action :set_admin, only: [:show, :edit, :update, :destroy, :toggle_is_active]
6
+ before_action :set_admin, only: %i[show edit update destroy toggle_is_active]
4
7
  add_breadcrumb I18n.t('activerecord.models.admins'), :hq_admins_path
5
8
 
6
9
  def index
@@ -15,14 +18,14 @@ class Hq::AdminsController < Hq::ApplicationController
15
18
  end
16
19
 
17
20
  def new
18
- add_breadcrumb t('tooltips.new'), new_hq_admin_path
21
+ add_breadcrumb t('view.tooltips.new'), new_hq_admin_path
19
22
  @admin = Admin.new
20
23
  respond_with(@admin)
21
24
  end
22
25
 
23
26
  def edit
24
27
  add_breadcrumb @admin.name, hq_admin_path(@admin)
25
- add_breadcrumb t('tooltips.edit'), edit_hq_admin_path
28
+ add_breadcrumb t('view.tooltips.edit'), edit_hq_admin_path
26
29
  end
27
30
 
28
31
  def create
@@ -42,13 +45,7 @@ class Hq::AdminsController < Hq::ApplicationController
42
45
  end
43
46
 
44
47
  def toggle_is_active
45
- if @admin.update( is_active: !@admin.is_active )
46
- @admin.is_active ?
47
- flash[:info] = t('flash.actions.toggle_is_active.active', resource_name: Admin.model_name.human) :
48
- flash[:info] = t('flash.actions.toggle_is_active.passive', resource_name: Admin.model_name.human)
49
- else
50
- flash[:danger] = t('flash.messages.error_occurred')
51
- end
48
+ activation_toggle(@admin)
52
49
  respond_with(:hq, @admin, location: request.referer)
53
50
  end
54
51
 
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Hq::ApplicationController < ApplicationController
4
+ before_action :set_audit_user
5
+ layout 'hq/application'
6
+ self.responder = ApplicationResponder
7
+
8
+ private
9
+
10
+ def set_audit_user
11
+ Audited.current_user_method = :current_admin
12
+ end
13
+ end
@@ -1,16 +1,16 @@
1
- class Hq::AuditsController < Hq::ApplicationController
1
+ # frozen_string_literal: true
2
2
 
3
+ class Hq::AuditsController < Hq::ApplicationController
3
4
  add_breadcrumb I18n.t('activerecord.models.audits'), :hq_audits_path
4
5
 
5
6
  def index
6
7
  @search = Audit.includes(:user).reorder('id DESC').search(params[:q])
7
8
  @audits = @search.result(distinct: true).paginate(page: params[:page])
8
- @auditable_types = Audited::Adapters::ActiveRecord::Audit.select('auditable_type').group('auditable_type').reorder('')
9
+ @auditable_types = Audit.select('auditable_type').group('auditable_type').reorder('')
9
10
  end
10
11
 
11
12
  def show
12
13
  @audit = Audit.find(params[:id])
13
14
  add_breadcrumb @audit.id, hq_audit_path(id: @audit)
14
15
  end
15
-
16
16
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Hq::DashboardController < Hq::ApplicationController
4
+ add_breadcrumb I18n.t('view.dock.dashboard'), :hq_dashboard_index_path
5
+
6
+ def index; end
7
+ end
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Hq::PasswordsController < Devise::PasswordsController
2
4
  layout 'hq/login'
3
5
 
4
6
  private
5
7
 
6
- def after_resetting_password_path_for(resource)
8
+ def after_resetting_password_path_for(_resource)
7
9
  hq_root_path
8
10
  end
9
-
10
11
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Hq::RegistrationsController < Devise::RegistrationsController
4
+ layout 'hq/application'
5
+ before_action :authenticate_admin!
6
+ before_action :redirect_admin, only: %i[new create destroy]
7
+ add_breadcrumb I18n.t('view.dock.dashboard'), :hq_dashboard_index_path
8
+
9
+ def edit
10
+ add_breadcrumb I18n.t('view.title.edit', resource_name: Admin.model_name.human)
11
+ end
12
+
13
+ private
14
+
15
+ def redirect_admin
16
+ redirect_to hq_root_path
17
+ end
18
+
19
+ def after_update_path_for(_resource)
20
+ hq_root_path
21
+ end
22
+ end
@@ -1,16 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Hq::SessionsController < Devise::SessionsController
2
4
  layout 'hq/login'
3
5
 
4
6
  private
5
7
 
6
8
  # Overwriting the sign_out redirect path method
7
- def after_sign_in_path_for(resource_or_scope)
9
+ def after_sign_in_path_for(_resource_or_scope)
8
10
  hq_root_path
9
11
  end
10
12
 
11
13
  # Overwriting the sign_out redirect path method
12
- def after_sign_out_path_for(resource_or_scope)
14
+ def after_sign_out_path_for(_resource_or_scope)
13
15
  new_admin_session_path
14
16
  end
15
-
16
- end
17
+ end
@@ -1,6 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Hq::UsersController < Hq::ApplicationController
4
+ include Activatable
2
5
 
3
- before_action :set_user, only: [:show, :edit, :update, :destroy, :toggle_is_active]
6
+ before_action :set_user, only: %i[show edit update destroy toggle_is_active]
4
7
  add_breadcrumb I18n.t('activerecord.models.users'), :hq_users_path
5
8
 
6
9
  def index
@@ -15,14 +18,14 @@ class Hq::UsersController < Hq::ApplicationController
15
18
  end
16
19
 
17
20
  def new
18
- add_breadcrumb t('tooltips.new'), new_hq_user_path
21
+ add_breadcrumb t('view.tooltips.new'), new_hq_user_path
19
22
  @user = User.new
20
23
  respond_with(@user)
21
24
  end
22
25
 
23
26
  def edit
24
27
  add_breadcrumb @user.name, hq_user_path(@user)
25
- add_breadcrumb t('tooltips.edit'), edit_hq_user_path
28
+ add_breadcrumb t('view.tooltips.edit'), edit_hq_user_path
26
29
  end
27
30
 
28
31
  def create
@@ -42,13 +45,7 @@ class Hq::UsersController < Hq::ApplicationController
42
45
  end
43
46
 
44
47
  def toggle_is_active
45
- if @user.update( is_active: !@user.is_active )
46
- @user.is_active ?
47
- flash[:info] = t('flash.actions.toggle_is_active.active', resource_name: User.model_name.human) :
48
- flash[:info] = t('flash.actions.toggle_is_active.passive', resource_name: User.model_name.human)
49
- else
50
- flash[:danger] = t('flash.messages.error_occurred')
51
- end
48
+ activation_toggle(@user)
52
49
  respond_with(:hq, @user, location: request.referer)
53
50
  end
54
51
 
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ class User::ApplicationController < ApplicationController
4
+ layout 'application'
5
+ before_action :authenticate_user!
6
+ before_action :set_user_time_zone
7
+ self.responder = ApplicationResponder
8
+
9
+ protected
10
+
11
+ def set_user_time_zone
12
+ time_zone = current_user.time_zone
13
+ Time.zone = time_zone if time_zone.present?
14
+
15
+ # Set audit current user
16
+ Audited.current_user_method = :current_user
17
+ end
18
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class User::DashboardController < User::ApplicationController
4
+ add_breadcrumb I18n.t('view.dock.dashboard'), :user_dashboard_index_path
5
+
6
+ def index; end
7
+ end
@@ -1,10 +1,9 @@
1
- class User::PasswordsController < Devise::PasswordsController
2
- # layout 'user/login'
1
+ # frozen_string_literal: true
3
2
 
3
+ class User::PasswordsController < Devise::PasswordsController
4
4
  private
5
5
 
6
- def after_resetting_password_path_for(resource)
6
+ def after_resetting_password_path_for(_resource)
7
7
  user_root_path
8
8
  end
9
-
10
9
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ class User::ProfileController < User::ApplicationController
4
+ before_action :set_profile, only: %i[show edit update]
5
+ add_breadcrumb I18n.t('view.dock.profile'), :user_profile_path
6
+
7
+ def show
8
+ add_breadcrumb @profile.full_name, user_profile_path
9
+ respond_with(:user, @profile)
10
+ end
11
+
12
+ def edit
13
+ add_breadcrumb t('view.tooltips.edit'), edit_user_profile_path
14
+ end
15
+
16
+ def update
17
+ @profile.update(profile_params)
18
+ respond_with(:user, @profile, location: user_profile_path)
19
+ end
20
+
21
+ private
22
+
23
+ def set_profile
24
+ @profile = current_user
25
+ end
26
+
27
+ def profile_params
28
+ params.require(:user).permit(:name, :surname, :time_zone)
29
+ end
30
+ end
@@ -1,11 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class User::RegistrationsController < Devise::RegistrationsController
2
- # layout 'user/application'
3
- before_action :authenticate_user!, except: [:new, :create]
4
- before_action :redirect_user, only: [:destroy]
4
+ before_action :authenticate_user!, except: %i[new create]
5
+ before_action :redirect_user, only: %i[destroy]
5
6
  add_breadcrumb I18n.t('activerecord.models.user'), :user_root_path
6
7
 
7
- def edit
8
- end
8
+ def edit; end
9
9
 
10
10
  private
11
11
 
@@ -13,8 +13,7 @@ class User::RegistrationsController < Devise::RegistrationsController
13
13
  redirect_to user_root_path
14
14
  end
15
15
 
16
- def after_update_path_for(resource)
16
+ def after_update_path_for(_resource)
17
17
  user_root_path
18
18
  end
19
-
20
- end
19
+ end
@@ -1,16 +1,15 @@
1
- class User::SessionsController < Devise::SessionsController
2
- # layout 'user/login'
1
+ # frozen_string_literal: true
3
2
 
3
+ class User::SessionsController < Devise::SessionsController
4
4
  private
5
5
 
6
6
  # Overwriting the sign_out redirect path method
7
- def after_sign_in_path_for(resource_or_scope)
7
+ def after_sign_in_path_for(_resource_or_scope)
8
8
  user_root_path
9
9
  end
10
10
 
11
11
  # Overwriting the sign_out redirect path method
12
- def after_sign_out_path_for(resource_or_scope)
12
+ def after_sign_out_path_for(_resource_or_scope)
13
13
  new_user_session_path
14
14
  end
15
-
16
- end
15
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ class WelcomeController < ApplicationController
4
+ def index; end
5
+
6
+ def about; end
7
+
8
+ def contact; end
9
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ApplicationHelper
4
+ def devise_model_map(model_name)
5
+ model_name.map { |obj| ["#{obj.email} - #{obj.full_name}", obj.id] }
6
+ end
7
+
8
+ def active_users
9
+ devise_model_map(User.active)
10
+ end
11
+
12
+ def users
13
+ devise_model_map(User.all)
14
+ end
15
+
16
+ def admins
17
+ devise_model_map(Admin.all)
18
+ end
19
+
20
+ def audit_users
21
+ [[t('activerecord.models.admin'), 'Admin'], [t('activerecord.models.user'), 'User']]
22
+ end
23
+
24
+ def blankable(contents, search)
25
+ render partial: contents.size.zero? ? 'blank' : 'list', locals: { contents: contents, search: search }
26
+ end
27
+
28
+ def auditable_types_collection(auditable_types)
29
+ auditable_types.map do |type|
30
+ [t("activerecord.models.#{type.auditable_type.try(:underscore)}"), type.auditable_type]
31
+ end
32
+ end
33
+
34
+ def query_present?(array)
35
+ query = params[:q]
36
+ return false unless query.present?
37
+ query = query.permit!.to_h
38
+ query.any? do |key, value|
39
+ key.to_s.in?(array) && value.present?
40
+ end
41
+ end
42
+
43
+ def actions_collection
44
+ %w[create update destroy].map do |action|
45
+ [t("actions.#{action}"), action]
46
+ end
47
+ end
48
+
49
+ # :reek:TooManyStatements
50
+ def css_class(paths, exist: '', not_exist: '')
51
+ r_path = request.path
52
+ if paths.is_a? Array
53
+ paths.each do |path|
54
+ return exist if r_path.include?(path)
55
+ end
56
+ return not_exist
57
+ end
58
+ return r_path == paths ? exist : not_exist if paths.is_a? String
59
+ raise NotImplementedError
60
+ end
61
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AdminMailer < ApplicationMailer
4
+ def login_info(admin_id, password)
5
+ @admin = Admin.find admin_id
6
+ @password = password
7
+ subject = t('mailer.admin.login_info.title')
8
+ mail(to: @admin.email, subject: subject)
9
+ end
10
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ApplicationMailer < ActionMailer::Base
4
+ default from: Settings.email.noreply
5
+ layout 'mailer'
6
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ class UserMailer < ApplicationMailer
4
+ def login_info(user_id, password)
5
+ @user = User.find(user_id)
6
+ @password = password
7
+ subject = t('mailer.user.login_info.title')
8
+ mail(to: @user.email, subject: subject)
9
+ end
10
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Admin < ApplicationRecord
4
+ include PasswordCreatable
5
+
6
+ # Scopes
7
+ scope :active, -> { where(is_active: true) }
8
+
9
+ # Include default devise modules. Others available are:
10
+ # :confirmable, :lockable, :timeoutable and :omniauthable
11
+ devise :database_authenticatable,
12
+ :recoverable,
13
+ :rememberable,
14
+ :trackable,
15
+ :validatable
16
+
17
+ # Send devise emails with background job
18
+ def send_devise_notification(notification, *args)
19
+ devise_mailer.send(notification, self, *args).deliver_later
20
+ end
21
+
22
+ # Helpers
23
+ audited except: [:password]
24
+
25
+ # Validations
26
+ validates_presence_of :name, :email, :surname
27
+ validates :email, uniqueness: true
28
+
29
+ def active_for_authentication?
30
+ super && is_active
31
+ end
32
+
33
+ def full_name
34
+ "#{name} #{surname}"
35
+ end
36
+
37
+ private
38
+
39
+ def login_info_mailer
40
+ AdminMailer
41
+ end
42
+ end