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,104 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cybele
4
+ module Helpers
5
+ private
6
+
7
+ # Change relative_path file content
8
+ # @param [String] relative_path
9
+ # @param [String] find
10
+ # @param [String] replace
11
+ # Example:
12
+ # replace_in_file 'app/controllers/application_controller.rb',
13
+ # 'respond_to :html',
14
+ # 'respond_to :html, :js, :json'
15
+ def replace_in_file(relative_path, find, replace)
16
+ path = File.join(destination_root, relative_path)
17
+ contents = IO.read(path)
18
+ raise "#{find.inspect} not found in #{relative_path}" unless contents.gsub!(find, replace)
19
+ File.open(path, 'w') { |file| file.write(contents) }
20
+ end
21
+
22
+ # Read template file content
23
+ # @param [String] template_file
24
+ # Example:
25
+ # template_content('error_pages/error_method.erb')
26
+ def template_content(template_file)
27
+ File.read(File.expand_path(find_in_source_paths(template_file)))
28
+ end
29
+
30
+ # Change <%= app_name %> string with app_name
31
+ # @param [Array] files
32
+ # Example:
33
+ # configure_app_name(%w[config/settings.yml])
34
+ def configure_app_name(files)
35
+ files.each do |file|
36
+ gsub_file file, /<%= app_name %>/, app_name
37
+ end
38
+ end
39
+
40
+ # Add template content to app_file
41
+ # @param [String] app_file
42
+ # @param [String] template_file
43
+ # Example:
44
+ # append_template_to_file('env.sample', 'basic_authentication/no_basic_authentication.erb')
45
+ def append_template_to_file(app_file, template_file)
46
+ append_file(app_file, template_content(template_file))
47
+ end
48
+
49
+ # Add template content to multiple app_files
50
+ # @param [Hash] files
51
+ # { app_file => template_file }
52
+ # Example:
53
+ # append_template_to_files('config/settings.yml' => 'paperclip/paperclip_settings.yml.erb')
54
+ def append_template_to_files(files)
55
+ files.each do |app_file, template_file|
56
+ append_file(app_file, template_content(template_file))
57
+ end
58
+ end
59
+
60
+ # Remove app files
61
+ # @param [Array] app_files
62
+ # %w[app_file]
63
+ # Example:
64
+ # remove_files(%w[app/views/welcome/index.html.erb])
65
+ def remove_files(app_files)
66
+ app_files.each do |app_file|
67
+ remove_file app_file, force: true
68
+ end
69
+ end
70
+
71
+ # Create app file from templates
72
+ # @param [Hash] files
73
+ # { template_file => app_file }
74
+ # Example:
75
+ # files_to_template('dotenv/env.sample.erb' => 'env.sample')
76
+ def files_to_template(files)
77
+ files.each do |template_file, app_file|
78
+ template template_file, app_file, force: true
79
+ end
80
+ end
81
+
82
+ # Copy template file to app directory
83
+ # @param [Hash] files
84
+ # { template_file => app_file }
85
+ # Example:
86
+ # copy_file 'config/locales/tr.yml', 'config/locales/tr.yml'
87
+ def copy_files(files)
88
+ files.each do |template_file, app_file|
89
+ copy_file template_file, app_file
90
+ end
91
+ end
92
+
93
+ # Copy directory to app directory
94
+ # @param [Hash] dirs
95
+ # { template_dir => app_dir }
96
+ # Example:
97
+ # dirs_to_directory('app_files/app/views/hq' => 'app/views/hq')
98
+ def dirs_to_directory(dirs)
99
+ dirs.each do |template_dir, app_dir|
100
+ directory template_dir, app_dir
101
+ end
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cybele
4
+ module Helpers
5
+ module AppFiles
6
+ module AssetsFiles
7
+ def customize_assets_files
8
+ javascript_files
9
+ stylesheet_files
10
+ end
11
+
12
+ def javascript_files
13
+ # Javascript Assets files
14
+ remove_file 'app/assets/javascripts/application.js', force: true
15
+
16
+ template 'app_files/app/assets/javascripts/application.js',
17
+ 'app/assets/javascripts/application.js',
18
+ force: true
19
+
20
+ template 'app_files/app/assets/javascripts/hq/application.js',
21
+ 'app/assets/javascripts/hq/application.js',
22
+ force: true
23
+ end
24
+
25
+ def stylesheet_files
26
+ # Css Assets files
27
+ remove_file 'app/assets/stylesheets/application.css', force: true
28
+
29
+ template 'app_files/app/assets/stylesheets/application.sass',
30
+ 'app/assets/stylesheets/application.sass',
31
+ force: true
32
+
33
+ template 'app_files/app/assets/stylesheets/hq/application.sass',
34
+ 'app/assets/stylesheets/hq/application.sass',
35
+ force: true
36
+
37
+ copy_file 'app_files/app/assets/stylesheets/hq/_sidebar.sass',
38
+ 'app/assets/stylesheets/hq/_sidebar.sass'
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cybele
4
+ module Helpers
5
+ module AppFiles
6
+ module ControllerFiles
7
+ def customize_controller_files
8
+ # Controller concern files
9
+ directory 'app_files/app/controllers/concerns', 'app/controllers/concerns'
10
+
11
+ # Hq controller files
12
+ directory 'app_files/app/controllers/hq', 'app/controllers/hq'
13
+
14
+ # User controller files
15
+ directory 'app_files/app/controllers/user', 'app/controllers/user'
16
+
17
+ # Welcome controller
18
+ copy_file 'app_files/app/controllers/welcome_controller.rb', 'app/controllers/welcome_controller.rb'
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cybele
4
+ module Helpers
5
+ module AppFiles
6
+ module HelperFiles
7
+ def customize_helper_files
8
+ # Helper files
9
+ remove_file 'app/helpers/application_helper.rb', force: true
10
+ template 'app_files/app/helpers/application_helper.rb.erb', 'app/helpers/application_helper.rb'
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cybele
4
+ module Helpers
5
+ module AppFiles
6
+ module MailerFiles
7
+ def customize_mailer_files
8
+ # Model files
9
+ remove_file 'app/mailers/application_mailer.rb', force: true
10
+ directory 'app_files/app/mailers', 'app/mailers'
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cybele
4
+ module Helpers
5
+ module AppFiles
6
+ module ModelFiles
7
+ def customize_model_files
8
+ # Model files
9
+ remove_file 'app/models/admin.rb', force: true
10
+ remove_file 'app/models/user.rb', force: true
11
+ directory 'app_files/app/models', 'app/models'
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cybele
4
+ module Helpers
5
+ module AppFiles
6
+ module VendorFiles
7
+ def customize_vendor_files
8
+ # javascript and stylesheet files in vendor
9
+ directory 'app_files/app/vendor/assets', 'vendor/assets'
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cybele
4
+ module Helpers
5
+ module AppFiles
6
+ module ViewFiles
7
+ def customize_view_files_with_option
8
+ # View files with option
9
+ dirs_to_directory(
10
+ 'app_files/app/views/hq' => 'app/views/hq',
11
+ 'app_files/app/views/user' => 'app/views/user',
12
+ 'app_files/app/views/layouts/hq' => 'app/views/layouts/hq',
13
+ 'app_files/app/views/layouts/partials' => 'app/views/layouts/partials',
14
+ 'app_files/app/views/welcome' => 'app/views/welcome',
15
+ 'app_files/public' => 'public'
16
+ )
17
+ replace_erb_with_haml
18
+ end
19
+
20
+ def customize_default_view_files
21
+ # Default view files
22
+ dirs_to_directory(
23
+ 'app_files/app/views/admin_mailer' => 'app/views/admin_mailer',
24
+ 'app_files/app/views/user_mailer' => 'app/views/user_mailer'
25
+ )
26
+ end
27
+
28
+ private
29
+
30
+ def remove_erb_files(template_files)
31
+ remove_file 'app/views/layouts/mailer.html.erb',
32
+ force: true
33
+ remove_files(template_files)
34
+ end
35
+
36
+ # rubocop:disable Metrics/MethodLength
37
+ # rubocop:disable Metrics/LineLength
38
+ def replace_erb_with_haml
39
+ template_files = %w[
40
+ app/views/welcome/index.html.haml.erb
41
+ app/views/layouts/mailer.html.haml.erb
42
+ app/views/layouts/application.html.haml.erb
43
+ app/views/layouts/partials/_navbar.html.haml.erb
44
+ app/views/layouts/hq/application.html.haml.erb
45
+ app/views/layouts/hq/login.html.haml.erb
46
+ ]
47
+ remove_erb_files(template_files)
48
+ files_to_template(
49
+ 'app_files/app/views/welcome/index.html.haml.erb' => 'app/views/welcome/index.html.haml',
50
+ 'app_files/app/views/layouts/mailer.html.haml.erb' => 'app/views/layouts/mailer.html.haml',
51
+ 'app_files/app/views/layouts/application.html.haml.erb' => 'app/views/layouts/application.html.haml',
52
+ 'app_files/app/views/layouts/partials/_navbar.html.haml.erb' => 'app/views/layouts/partials/_navbar.html.haml',
53
+ 'app_files/app/views/layouts/hq/application.html.haml.erb' => 'app/views/layouts/hq/application.html.haml',
54
+ 'app_files/app/views/layouts/hq/login.html.haml.erb' => 'app/views/layouts/hq/login.html.haml'
55
+ )
56
+ end
57
+ # rubocop:enable Metrics/MethodLength
58
+ # rubocop:enable Metrics/LineLength
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cybele
4
+ module Helpers
5
+ module AppFiles
6
+ module ViewGems
7
+ def add_required_view_gems
8
+ files = %w[
9
+ app_files/bootstrap_Gemfile.erb
10
+ app_files/breadcrumb_Gemfile.erb
11
+ app_files/jquery_Gemfile.erb
12
+ ]
13
+ files.each do |file|
14
+ append_template_to_file('Gemfile', file)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cybele
4
+ module Helpers
5
+ module Audited
6
+ def configure_audited
7
+ # Generate Audited
8
+ generate 'audited:install'
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cybele
4
+ module Helpers
5
+ module BasicAuthentication
6
+ def configure_basic_authentication
7
+ create_basic_authentication_files
8
+ add_to_settings_yml
9
+ add_to_dotenv_files
10
+ include_basic_authentication_module
11
+ configure_app_name(['config/settings.yml'])
12
+ end
13
+
14
+ private
15
+
16
+ def create_basic_authentication_files
17
+ # Concern file
18
+ template 'basic_authentication/basic_authentication.rb',
19
+ 'app/controllers/concerns/basic_authentication.rb',
20
+ force: true
21
+ end
22
+
23
+ def add_to_settings_yml
24
+ # Add basic authentication settings to the config/settings.yml file
25
+ append_template_to_file 'config/settings.yml',
26
+ 'basic_authentication/basic_authentication_settings.yml.erb'
27
+ end
28
+
29
+ def add_to_dotenv_files
30
+ # Add basic authentication env to the all env files
31
+ append_template_to_file('.env.sample', 'basic_authentication/no_basic_authentication.erb')
32
+ append_template_to_file('.env.local', 'basic_authentication/no_basic_authentication.erb')
33
+ append_template_to_file('.env.staging', 'basic_authentication/yes_basic_authentication.erb')
34
+ append_template_to_file('.env.production', 'basic_authentication/no_basic_authentication.erb')
35
+ end
36
+
37
+ def include_basic_authentication_module
38
+ inject_into_file 'app/controllers/application_controller.rb',
39
+ template_content('basic_authentication/include_module.erb'),
40
+ after: 'class ApplicationController < ActionController::Base'
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cybele
4
+ module Helpers
5
+ module Devise
6
+ def generate_devise_settings
7
+ generate 'devise:install'
8
+ gsub_file 'config/initializers/filter_parameter_logging.rb', /:password/,
9
+ ':password, :password_confirmation'
10
+ gsub_file 'config/initializers/devise.rb',
11
+ /please-change-me-at-config-initializers-devise@example.com/, "no-reply@#{app_name}.com"
12
+ inject_into_file 'config/initializers/devise.rb', after: "# config.mailer = 'Devise::Mailer'\n" do
13
+ template_content('devise/devise_mailer.rb.erb')
14
+ end
15
+ end
16
+
17
+ def generate_devise_models
18
+ generate 'devise User name:string surname:string is_active:boolean time_zone:string'
19
+ generate 'devise Admin name:string surname:string is_active:boolean time_zone:string'
20
+ configure_devise_locale_files
21
+ devise_seeds
22
+ configure_app_name(%w[db/seeds.rb])
23
+ add_default_value_to_migrations
24
+ end
25
+
26
+ def generate_devise_views
27
+ directory 'devise/devise_views', 'app/views/devise'
28
+ end
29
+
30
+ def add_devise_authenticate_admin
31
+ inject_into_file 'app/controllers/hq/application_controller.rb',
32
+ template_content('devise/devise_authenticate_admin.rb.erb'),
33
+ after: 'class Hq::ApplicationController < ApplicationController'
34
+ end
35
+
36
+ def add_devise_strong_parameter
37
+ inject_into_file 'app/controllers/application_controller.rb',
38
+ template_content('devise/devise_strong_parameter.rb.erb'),
39
+ after: 'protect_from_forgery with: :exception'
40
+
41
+ inject_into_file 'app/controllers/application_controller.rb',
42
+ template_content('devise/devise_before_action_strong_parameter.rb.erb'),
43
+ after: 'class ApplicationController < ActionController::Base'
44
+ end
45
+
46
+ private
47
+
48
+ def configure_devise_locale_files
49
+ remove_file 'config/locales/devise.en.yml', force: true
50
+ copy_file 'config/locales/devise.en.yml', 'config/locales/devise.en.yml'
51
+ copy_file 'config/locales/devise.tr.yml', 'config/locales/devise.tr.yml'
52
+ end
53
+
54
+ def devise_seeds
55
+ inject_into_file 'db/seeds.rb', after: "# Character.create(name: 'Luke', movie: movies.first)\n" do
56
+ template_content('devise/seeds.rb.erb')
57
+ end
58
+ end
59
+
60
+ def add_default_value_to_migrations
61
+ Dir.glob('db/migrate/*devise_create*.rb') do |file|
62
+ replace_in_file file, 't.boolean :is_active', 't.boolean :is_active, default: true'
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end