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,115 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CybeleTestHelpers
4
+ APP_NAME = 'dummy_app'
5
+
6
+ def remove_project_directory
7
+ FileUtils.rm_rf(project_path)
8
+ end
9
+
10
+ def create_tmp_directory
11
+ FileUtils.mkdir_p(tmp_path)
12
+ end
13
+
14
+ def run_cybele(arguments = nil)
15
+ arguments = "--path=#{root_path} #{arguments}"
16
+ Dir.chdir(tmp_path) do
17
+ Bundler.with_clean_env do
18
+ `
19
+ export DISABLE_SPRING=1;
20
+ #{cybele_bin} #{APP_NAME} #{arguments}
21
+ `
22
+ end
23
+ end
24
+ end
25
+
26
+ def cybele_not_default_parameters
27
+ '--database=sqlite3 --skip-create-database --skip-sidekiq --skip-simple-form --skip-show-for --skip-haml --skip-docker --skip-view-files'
28
+ end
29
+
30
+ def content(file_path)
31
+ IO.read(file_project_path(file_path))
32
+ end
33
+
34
+ def file_project_path(file_path)
35
+ "#{project_path}/#{file_path}"
36
+ end
37
+
38
+ def project_path
39
+ @project_path ||= Pathname.new("#{tmp_path}/#{APP_NAME}")
40
+ end
41
+
42
+ def app_name
43
+ APP_NAME
44
+ end
45
+
46
+ def cybele_help_command
47
+ Dir.chdir(tmp_path) do
48
+ Bundler.with_clean_env do
49
+ `
50
+ #{cybele_bin} -h
51
+ `
52
+ end
53
+ end
54
+ end
55
+
56
+ def cybele_help_run(command: 'ls')
57
+ Dir.chdir("#{tmp_path}/#{app_name}") do
58
+ Bundler.with_clean_env do
59
+ `
60
+ #{command}
61
+ `
62
+ end
63
+ end
64
+ end
65
+
66
+ def setup_app_dependencies
67
+ return unless File.exist?(project_path)
68
+ Dir.chdir(project_path) do
69
+ Bundler.with_clean_env do
70
+ `bundle check || bundle install`
71
+ end
72
+ end
73
+ end
74
+
75
+ def drop_dummy_database
76
+ return unless File.exist?(project_path)
77
+ Dir.chdir(project_path) do
78
+ Bundler.with_clean_env do
79
+ `rake db:drop`
80
+ end
81
+ end
82
+ end
83
+
84
+ def usage_file
85
+ @usage_path ||= File.join(root_path, 'USAGE')
86
+ end
87
+
88
+ def file_exist_test(files)
89
+ files.each do |file|
90
+ expect(File).to exist(file_project_path(file))
91
+ yield file if block_given?
92
+ end
93
+ end
94
+
95
+ def file_not_exist_test(files)
96
+ files.each do |file|
97
+ expect(File).not_to exist(file_project_path(file))
98
+ yield file if block_given?
99
+ end
100
+ end
101
+
102
+ private
103
+
104
+ def tmp_path
105
+ @tmp_path ||= Pathname.new("#{root_path}/tmp")
106
+ end
107
+
108
+ def cybele_bin
109
+ File.join(root_path, 'bin', 'cybele')
110
+ end
111
+
112
+ def root_path
113
+ File.expand_path('../../../', __FILE__)
114
+ end
115
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DeviseTestHelper
4
+ def devise_test
5
+ gemfile_file = content('Gemfile')
6
+ expect(gemfile_file).to match(/^gem 'devise'/)
7
+
8
+ devise_initializers_test
9
+ devise_route_file_test
10
+ devise_model_file_test
11
+ file_control_test
12
+ end
13
+
14
+ private
15
+
16
+ def devise_initializers_test
17
+ initializers_devise = content('config/initializers/devise.rb')
18
+ expect(initializers_devise).to match('mailer')
19
+ expect(initializers_devise).to match('mailer_sender')
20
+
21
+ filter_parameter_logging = content('config/initializers/filter_parameter_logging.rb')
22
+ expect(filter_parameter_logging).to match(':password')
23
+ expect(filter_parameter_logging).to match(':password_confirmation')
24
+ end
25
+
26
+ def devise_route_file_test
27
+ devise_route = content('config/routes.rb')
28
+ expect(devise_route).to match('devise_for :users')
29
+ end
30
+
31
+ def devise_model_file_test # rubocop:disable Metrics/AbcSize
32
+ devise_model_file = content('app/models/user.rb')
33
+ expect(devise_model_file).to match(':database_authenticatable')
34
+ expect(devise_model_file).to match(':registerable')
35
+ expect(devise_model_file).to match(':recoverable')
36
+ expect(devise_model_file).to match(':rememberable')
37
+ expect(devise_model_file).to match(':trackable')
38
+ expect(devise_model_file).to match(':validatable')
39
+ end
40
+
41
+ def file_control_test
42
+ expect(File).to exist(file_project_path('config/locales/devise.en.yml'))
43
+ expect(File).to exist(file_project_path('config/locales/devise.tr.yml'))
44
+ end
45
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DotenvTestHelper
4
+ def dotenv_test
5
+ gemfile_file = content('Gemfile')
6
+ expect(gemfile_file).to match(/^gem 'dotenv-rails'/)
7
+
8
+ env_file_test
9
+ env_staging_file_test
10
+ env_production_file_test
11
+ end
12
+
13
+ private
14
+
15
+ def env_file_test
16
+ %w[.env.sample .env.local .environments/.env.local].each do |env|
17
+ expect(File).to exist(file_project_path(env))
18
+ expect(content(env)).to match('ROOT_PATH=http://localhost:3000')
19
+ end
20
+ end
21
+
22
+ def env_staging_file_test
23
+ env_staging_file = content('.environments/.env.staging')
24
+ expect(env_staging_file).to match('ROOT_PATH=https://staging-dummy_app.herokuapp.com')
25
+ end
26
+
27
+ def env_production_file_test
28
+ env_production_file = content('.environments/.env.production')
29
+ expect(env_production_file).to match('ROOT_PATH=https://dummy_app.herokuapp.com')
30
+ end
31
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ErrorPagesTestHelper
4
+ def error_pages_test
5
+ controller_file_test
6
+ routes_file_test
7
+ end
8
+
9
+ private
10
+
11
+ def controller_file_test # rubocop:disable Metrics/AbcSize
12
+ application_controller_file = content('app/controllers/application_controller.rb')
13
+ expect(application_controller_file).to match('rescue_from Exception')
14
+ expect(application_controller_file).to match('rescue_from ActiveRecord::RecordNotFound')
15
+ expect(application_controller_file).to match('rescue_from ActionController::RoutingError')
16
+ expect(application_controller_file).to match('server_error')
17
+ expect(application_controller_file).to match('page_not_found')
18
+ end
19
+
20
+ def routes_file_test
21
+ route_file = content('config/routes.rb')
22
+ expect(route_file).to match('unmatched_route')
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ForceSSLTestHelper
4
+ def force_ssl_test
5
+ %w[staging production].each do |env|
6
+ expect(content("config/environments/#{env}.rb")).to match('config.force_ssl')
7
+ end
8
+ force_ssl_environment_test
9
+ end
10
+
11
+ private
12
+
13
+ def force_ssl_environment_test
14
+ %w[
15
+ .env.sample
16
+ .environments/.env.local
17
+ .environments/.env.staging
18
+ .environments/.env.production
19
+ ].each do |env|
20
+ expect(File).to exist(file_project_path(env))
21
+ expect(content(env)).to match('RAILS_FORCE_SSL=')
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GitIgnoreTestHelper
4
+ def git_ignore_test
5
+ application_controller_file = content('.gitignore')
6
+ expect(application_controller_file).to match('.DS_Store')
7
+ expect(application_controller_file).to match('.secret')
8
+ expect(application_controller_file).to match('.env')
9
+ end
10
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LocaleLanguageTestHelper
4
+ def locale_language_test
5
+ expect(File).to exist(file_project_path('config/locales/en.yml'))
6
+
7
+ file_content_control_test
8
+ english_file_test
9
+ turkish_file_test
10
+ end
11
+
12
+ private
13
+
14
+ def file_content_control_test
15
+ locale_file = content('config/locales/tr.yml')
16
+ expect(locale_file).to match('phone:')
17
+ expect(locale_file).to match('date:')
18
+ expect(locale_file).to match('time:')
19
+ expect(locale_file).to match('number:')
20
+ end
21
+
22
+ def english_file_test
23
+ locale_file = content('config/locales/mailer.en.yml')
24
+ expect(locale_file).to match('mailer:')
25
+
26
+ locale_file = content('config/locales/models.en.yml')
27
+ expect(locale_file).to match('activerecord:')
28
+
29
+ locale_file = content('config/locales/view.en.yml')
30
+ expect(locale_file).to match('view:')
31
+ end
32
+
33
+ def turkish_file_test
34
+ locale_file = content('config/locales/mailer.tr.yml')
35
+ expect(locale_file).to match('mailer:')
36
+
37
+ locale_file = content('config/locales/models.tr.yml')
38
+ expect(locale_file).to match('activerecord:')
39
+
40
+ locale_file = content('config/locales/view.tr.yml')
41
+ expect(locale_file).to match('view:')
42
+ end
43
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MailTestHelpers
4
+ def mail_test_helper(path) # rubocop:disable Metrics/AbcSize
5
+ file = content(path)
6
+ expect(file).to match('smtp')
7
+ expect(file).to match('address:')
8
+ expect(file).to match('port:')
9
+ expect(file).to match('enable_starttls_auto:')
10
+ expect(file).to match('user_name:')
11
+ expect(file).to match('password:')
12
+ expect(file).to match('authentication:')
13
+ expect(file).to match('host:') unless content('config/settings.yml').present?
14
+ end
15
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PaperclipTestHelper
4
+ def paperclip_test
5
+ gemfile_file = content('Gemfile')
6
+ expect(gemfile_file).to match(/^gem 'paperclip'/)
7
+ expect(gemfile_file).to match(/^gem 'aws-sdk'/)
8
+
9
+ paperclip_env_file_test
10
+ end
11
+
12
+ private
13
+
14
+ def paperclip_env_file_test
15
+ paperclip_aws_key_test('.env.sample')
16
+ paperclip_aws_key_test('.env.local',
17
+ bucket: 'dummy_app-development',
18
+ url: 'dummy_app-development.s3.amazonaws.com')
19
+ paperclip_aws_key_test('.environments/.env.local',
20
+ bucket: 'dummy_app-development',
21
+ url: 'dummy_app-development.s3.amazonaws.com')
22
+ paperclip_aws_key_test('.environments/.env.production',
23
+ bucket: 'dummy_app',
24
+ url: 'dummy_app.s3.amazonaws.com')
25
+ paperclip_aws_key_test('.environments/.env.staging',
26
+ bucket: 'dummy_app-staging',
27
+ url: 'dummy_app-staging.s3.amazonaws.com')
28
+ end
29
+
30
+ def paperclip_aws_key_test(env, bucket: '', url: '')
31
+ expect(File).to exist(file_project_path(env))
32
+ file = content(env)
33
+ expect(file).to match("S3_BUCKET_NAME=#{bucket}")
34
+ expect(file).to match("AWS_RAW_URL=#{url}")
35
+ expect(file).to match('AWS_ACCESS_KEY_ID=')
36
+ expect(file).to match('AWS_SECRET_ACCESS_KEY=')
37
+ end
38
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ProntoTestHelpers
4
+ def pronto_test
5
+ gemfile_file = content('Gemfile')
6
+ pronto_gems.each do |gem|
7
+ expect(gemfile_file).to match(gem)
8
+ end
9
+ file_exist_test(
10
+ %w[
11
+ example.pronto.yml
12
+ .pronto.yml
13
+ .haml-lint.yml
14
+ config.reek
15
+ .rubocop.yml
16
+ bin/rubo
17
+ ]
18
+ )
19
+ pronto_gitignore_test
20
+ end
21
+
22
+ private
23
+
24
+ def pronto_gems
25
+ [
26
+ "gem 'pronto'",
27
+ "gem 'pronto-brakeman'",
28
+ "gem 'pronto-fasterer'",
29
+ "gem 'pronto-flay'",
30
+ "gem 'pronto-haml'",
31
+ "gem 'pronto-poper'",
32
+ "gem 'pronto-reek'",
33
+ "gem 'pronto-rubocop'"
34
+ ]
35
+ end
36
+
37
+ def pronto_gitignore_test
38
+ gemfile_file = content('.gitignore')
39
+ expect(gemfile_file).to match('.pronto.yml')
40
+ end
41
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ResponderTestHelper
4
+ def responder_test
5
+ gemfile_file = content('Gemfile')
6
+ expect(gemfile_file).to match(/^gem 'responders'/)
7
+
8
+ lib_file = content('lib/application_responder.rb')
9
+ expect(lib_file).to match(/^class ApplicationResponder/)
10
+
11
+ controller_file_test
12
+ i18n_file_test
13
+ end
14
+
15
+ private
16
+
17
+ def controller_file_test
18
+ controller_file = content('app/controllers/application_controller.rb')
19
+ expect(controller_file).to match("^require 'application_responder'")
20
+ expect(controller_file).to match('# self.responder = ApplicationResponder')
21
+ expect(controller_file).to match('respond_to :html, :js, :json')
22
+ end
23
+
24
+ def i18n_file_test # rubocop:disable Metrics/AbcSize
25
+ expect(File).to exist(file_project_path('config/locales/responders.en.yml'))
26
+ locale_file = content('config/locales/responders.tr.yml')
27
+ expect(locale_file).not_to match('# alert:')
28
+ expect(locale_file).to match('create:')
29
+ expect(locale_file).to match('update:')
30
+ expect(locale_file).to match('destroy:')
31
+ end
32
+ end
@@ -0,0 +1,59 @@
1
+
2
+ # General requirement
3
+ gem 'thor', '~> 0.19.4'
4
+
5
+ # For never accidentally send emails to real people from staging environment.
6
+ gem 'recipient_interceptor', '~> 0.1.2'
7
+
8
+ # RailsConfig helps you easily manage environment specific Rails settings in an easy and usable manner
9
+ gem 'config', '~> 1.5'
10
+
11
+ # Rollbar is an error tracking service.
12
+ gem 'rollbar', '~> 2.15', '>= 2.15.4'
13
+
14
+ # Ransack is the successor to the MetaSearch gem.
15
+ gem 'ransack', '~> 1.8', '>= 1.8.4'
16
+
17
+ # will_paginate
18
+ gem 'will_paginate', '~> 3.1', '>= 3.1.6'
19
+ gem 'will_paginate-bootstrap', '~> 1.0', '>= 1.0.1'
20
+ gem 'will-paginate-i18n', '~> 0.1.15'
21
+
22
+ # Excell export
23
+ gem 'to_xls', '~> 1.5', '>= 1.5.3'
24
+
25
+ # write_xlsx is a gem to create a new file in the Excel 2007+ XLSX format.
26
+ gem 'write_xlsx', '~> 0.85.1'
27
+
28
+ # Roo can access the contents of various spreadsheet files.
29
+ gem 'roo-xls', '~> 1.1'
30
+ gem 'roo', '~> 2.7', '>= 2.7.1'
31
+
32
+ group :development, :test do
33
+ gem 'better_errors', '~> 2.4'
34
+ gem 'bullet', '~> 5.6', '>= 5.6.1'
35
+ gem 'colorize', '~> 0.8.1'
36
+ gem 'guard', '~> 2.14', '>= 2.14.1'
37
+ gem 'mailtrap', '~> 0.2.1'
38
+ end
39
+
40
+ # Pronto runners
41
+ group :development do
42
+ gem 'pronto', '~> 0.9.5'
43
+ gem 'pronto-brakeman', require: false
44
+ gem 'pronto-fasterer', require: false
45
+ gem 'pronto-flay', require: false
46
+ gem 'pronto-haml', require: false
47
+ gem 'pronto-poper', require: false
48
+ gem 'pronto-reek', require: false
49
+ gem 'pronto-rubocop', require: false
50
+ end
51
+
52
+ # A set of common locale data and translations to internationalize and/or localize your Rails applications.
53
+ gem 'rails-i18n', '~> 5.0', '>= 5.0.4'
54
+
55
+ # Flexible authentication solution for Rails with Warden
56
+ gem 'devise', '~> 4.3'
57
+
58
+ # Audited is an ORM extension that logs all changes to your models
59
+ gem 'audited', '~> 4.5'