elabs 2.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (404) hide show
  1. checksums.yaml +7 -0
  2. data/.eslintrc.yml +26 -0
  3. data/.gitignore +49 -0
  4. data/.gitlab-ci.yml +93 -0
  5. data/.haml-lint.yml +4 -0
  6. data/.node-version +1 -0
  7. data/.rspec +1 -0
  8. data/.rubocop.yml +59 -0
  9. data/.ruby-version +1 -0
  10. data/.simplecov +5 -0
  11. data/.stylelintrc.yml +218 -0
  12. data/CHANGELOG.md +273 -0
  13. data/CODE_OF_CONDUCT.md +78 -0
  14. data/Gemfile +75 -0
  15. data/Gemfile.lock +376 -0
  16. data/LICENSE +21 -0
  17. data/LICENSES.md +6 -0
  18. data/README.md +41 -0
  19. data/ROADMAP.md +61 -0
  20. data/Rakefile +32 -0
  21. data/app/assets/config/elabs_manifest.js +3 -0
  22. data/app/assets/images/elabs/preview_placeholder.png +0 -0
  23. data/app/assets/images/elabs/preview_placeholder_nsfw.png +0 -0
  24. data/app/assets/javascripts/elabs/application.js +27 -0
  25. data/app/assets/javascripts/elabs/helpers-codemirror.js +29 -0
  26. data/app/assets/javascripts/elabs/helpers-markdown.js +42 -0
  27. data/app/assets/javascripts/elabs/helpers.js +17 -0
  28. data/app/assets/javascripts/elabs/modals.js +19 -0
  29. data/app/assets/javascripts/elabs/tabs.js +32 -0
  30. data/app/assets/stylesheets/elabs/_colors.scss +345 -0
  31. data/app/assets/stylesheets/elabs/_icons.scss +9 -0
  32. data/app/assets/stylesheets/elabs/_variables.scss +13 -0
  33. data/app/assets/stylesheets/elabs/app/_acts.scss +58 -0
  34. data/app/assets/stylesheets/elabs/app/_alerts.scss +3 -0
  35. data/app/assets/stylesheets/elabs/app/_buttons.scss +21 -0
  36. data/app/assets/stylesheets/elabs/app/_comments.scss +1 -0
  37. data/app/assets/stylesheets/elabs/app/_content.scss +10 -0
  38. data/app/assets/stylesheets/elabs/app/_content_uploads.scss +39 -0
  39. data/app/assets/stylesheets/elabs/app/_empty.scss +19 -0
  40. data/app/assets/stylesheets/elabs/app/_errors.scss +9 -0
  41. data/app/assets/stylesheets/elabs/app/_filter_links.scss +27 -0
  42. data/app/assets/stylesheets/elabs/app/_forms.scss +69 -0
  43. data/app/assets/stylesheets/elabs/app/_helpers.scss +3 -0
  44. data/app/assets/stylesheets/elabs/app/_languages.scss +6 -0
  45. data/app/assets/stylesheets/elabs/app/_layout.scss +194 -0
  46. data/app/assets/stylesheets/elabs/app/_licenses.scss +6 -0
  47. data/app/assets/stylesheets/elabs/app/_link-to-top.scss +8 -0
  48. data/app/assets/stylesheets/elabs/app/_medias.scss +12 -0
  49. data/app/assets/stylesheets/elabs/app/_modals.scss +53 -0
  50. data/app/assets/stylesheets/elabs/app/_nsfw.scss +5 -0
  51. data/app/assets/stylesheets/elabs/app/_pagination.scss +16 -0
  52. data/app/assets/stylesheets/elabs/app/_tabs.scss +54 -0
  53. data/app/assets/stylesheets/elabs/app/_tags.scss +6 -0
  54. data/app/assets/stylesheets/elabs/app/_toolbars.scss +3 -0
  55. data/app/assets/stylesheets/elabs/app/_users.scss +6 -0
  56. data/app/assets/stylesheets/elabs/app/admin-members/_forms.scss +6 -0
  57. data/app/assets/stylesheets/elabs/app/admin-members/_indexes.scss +70 -0
  58. data/app/assets/stylesheets/elabs/app/admin-members/_layout.scss +17 -0
  59. data/app/assets/stylesheets/elabs/app/areas/_devise.scss +31 -0
  60. data/app/assets/stylesheets/elabs/app/components/_cards.scss +16 -0
  61. data/app/assets/stylesheets/elabs/app/components/_container.scss +4 -0
  62. data/app/assets/stylesheets/elabs/app/mixins/_classifier-card.scss +16 -0
  63. data/app/assets/stylesheets/elabs/app/mixins/_content-card.scss +58 -0
  64. data/app/assets/stylesheets/elabs/app/mixins/_content-full.scss +39 -0
  65. data/app/assets/stylesheets/elabs/app/mixins/_icon.scss +9 -0
  66. data/app/assets/stylesheets/elabs/application.css +14 -0
  67. data/app/assets/stylesheets/elabs/lib/_codemirror.scss +26 -0
  68. data/app/assets/stylesheets/elabs/lib/fontawesome/_fontawesome.scss +38 -0
  69. data/app/assets/stylesheets/elabs/lib/fontawesome/_fonts.scss +42 -0
  70. data/app/assets/stylesheets/elabs/lib/fontawesome/_icons.scss +1118 -0
  71. data/app/assets/stylesheets/elabs/lib/knacss/_knacss-variables.scss +230 -0
  72. data/app/assets/stylesheets/elabs/lib/knacss/_knacss.scss +59 -0
  73. data/app/assets/stylesheets/elabs/style.scss +72 -0
  74. data/app/controllers/elabs/acts_controller.rb +12 -0
  75. data/app/controllers/elabs/admin/admin_application_controller.rb +19 -0
  76. data/app/controllers/elabs/admin/admin_content_application_controller.rb +66 -0
  77. data/app/controllers/elabs/admin/albums_controller.rb +10 -0
  78. data/app/controllers/elabs/admin/articles_controller.rb +10 -0
  79. data/app/controllers/elabs/admin/languages_controller.rb +77 -0
  80. data/app/controllers/elabs/admin/licenses_controller.rb +77 -0
  81. data/app/controllers/elabs/admin/notes_controller.rb +10 -0
  82. data/app/controllers/elabs/admin/projects_controller.rb +10 -0
  83. data/app/controllers/elabs/admin/reports_controller.rb +34 -0
  84. data/app/controllers/elabs/admin/tags_controller.rb +56 -0
  85. data/app/controllers/elabs/admin/uploads_controller.rb +10 -0
  86. data/app/controllers/elabs/admin/users_controller.rb +43 -0
  87. data/app/controllers/elabs/albums_controller.rb +26 -0
  88. data/app/controllers/elabs/articles_controller.rb +25 -0
  89. data/app/controllers/elabs/auth/callbacks_controller.rb +38 -0
  90. data/app/controllers/elabs/auth/confirmations_controller.rb +43 -0
  91. data/app/controllers/elabs/auth/passwords_controller.rb +47 -0
  92. data/app/controllers/elabs/auth/registrations_controller.rb +70 -0
  93. data/app/controllers/elabs/auth/sessions_controller.rb +36 -0
  94. data/app/controllers/elabs/auth/unlocks_controller.rb +38 -0
  95. data/app/controllers/elabs/concerns/elabs_controller.rb +18 -0
  96. data/app/controllers/elabs/concerns/localizable.rb +11 -0
  97. data/app/controllers/elabs/concerns/reportable.rb +17 -0
  98. data/app/controllers/elabs/content_application_controller.rb +45 -0
  99. data/app/controllers/elabs/elabs_application_controller.rb +95 -0
  100. data/app/controllers/elabs/languages_controller.rb +36 -0
  101. data/app/controllers/elabs/licenses_controller.rb +31 -0
  102. data/app/controllers/elabs/member/albums_controller.rb +11 -0
  103. data/app/controllers/elabs/member/articles_controller.rb +11 -0
  104. data/app/controllers/elabs/member/member_application_controller.rb +12 -0
  105. data/app/controllers/elabs/member/member_content_application_controller.rb +128 -0
  106. data/app/controllers/elabs/member/notes_controller.rb +11 -0
  107. data/app/controllers/elabs/member/preferences_controller.rb +36 -0
  108. data/app/controllers/elabs/member/projects_controller.rb +11 -0
  109. data/app/controllers/elabs/member/uploads_controller.rb +11 -0
  110. data/app/controllers/elabs/member/users_controller.rb +28 -0
  111. data/app/controllers/elabs/notes_controller.rb +25 -0
  112. data/app/controllers/elabs/projects_controller.rb +30 -0
  113. data/app/controllers/elabs/reports_controller.rb +36 -0
  114. data/app/controllers/elabs/tags_controller.rb +36 -0
  115. data/app/controllers/elabs/uploads_controller.rb +24 -0
  116. data/app/controllers/elabs/users_controller.rb +36 -0
  117. data/app/helpers/elabs/acts_helper.rb +22 -0
  118. data/app/helpers/elabs/admin_content_helper.rb +54 -0
  119. data/app/helpers/elabs/application_helper.rb +54 -0
  120. data/app/helpers/elabs/content_filters_helper.rb +97 -0
  121. data/app/helpers/elabs/content_renderer_helper.rb +13 -0
  122. data/app/helpers/elabs/member_content_helper.rb +47 -0
  123. data/app/helpers/elabs/thumbnails_helper.rb +28 -0
  124. data/app/helpers/elabs/time_helper.rb +19 -0
  125. data/app/helpers/elabs/uploads_helper.rb +19 -0
  126. data/app/jobs/elabs/application_job.rb +4 -0
  127. data/app/mailers/elabs/application_mailer.rb +6 -0
  128. data/app/models/elabs/act.rb +7 -0
  129. data/app/models/elabs/album.rb +24 -0
  130. data/app/models/elabs/albums_tag.rb +21 -0
  131. data/app/models/elabs/albums_upload.rb +21 -0
  132. data/app/models/elabs/application_content_record.rb +10 -0
  133. data/app/models/elabs/application_record.rb +5 -0
  134. data/app/models/elabs/article.rb +23 -0
  135. data/app/models/elabs/articles_tag.rb +21 -0
  136. data/app/models/elabs/comment.rb +12 -0
  137. data/app/models/elabs/concerns/actable_entity.rb +52 -0
  138. data/app/models/elabs/concerns/content_entity.rb +70 -0
  139. data/app/models/elabs/concerns/countable_entity.rb +81 -0
  140. data/app/models/elabs/concerns/taggable.rb +33 -0
  141. data/app/models/elabs/language.rb +17 -0
  142. data/app/models/elabs/license.rb +15 -0
  143. data/app/models/elabs/note.rb +21 -0
  144. data/app/models/elabs/notes_tag.rb +21 -0
  145. data/app/models/elabs/preference.rb +9 -0
  146. data/app/models/elabs/project.rb +25 -0
  147. data/app/models/elabs/projects_album.rb +21 -0
  148. data/app/models/elabs/projects_article.rb +21 -0
  149. data/app/models/elabs/projects_note.rb +21 -0
  150. data/app/models/elabs/projects_tag.rb +21 -0
  151. data/app/models/elabs/projects_upload.rb +21 -0
  152. data/app/models/elabs/report.rb +11 -0
  153. data/app/models/elabs/tag.rb +18 -0
  154. data/app/models/elabs/upload.rb +28 -0
  155. data/app/models/elabs/uploads_tag.rb +21 -0
  156. data/app/models/elabs/user.rb +30 -0
  157. data/app/validators/elabs/associated_author_validator.rb +11 -0
  158. data/app/views/elabs/acts/_act.json.jbuilder +2 -0
  159. data/app/views/elabs/acts/_filters.html.haml +3 -0
  160. data/app/views/elabs/acts/index.html.haml +27 -0
  161. data/app/views/elabs/acts/index.json.jbuilder +1 -0
  162. data/app/views/elabs/admin/albums/_album.json.jbuilder +2 -0
  163. data/app/views/elabs/admin/albums/index.html.haml +43 -0
  164. data/app/views/elabs/admin/albums/index.json.jbuilder +1 -0
  165. data/app/views/elabs/admin/articles/_article.json.jbuilder +2 -0
  166. data/app/views/elabs/admin/articles/index.html.haml +41 -0
  167. data/app/views/elabs/admin/articles/index.json.jbuilder +1 -0
  168. data/app/views/elabs/admin/languages/_form.html.haml +18 -0
  169. data/app/views/elabs/admin/languages/_language.json.jbuilder +2 -0
  170. data/app/views/elabs/admin/languages/edit.html.haml +6 -0
  171. data/app/views/elabs/admin/languages/index.html.haml +34 -0
  172. data/app/views/elabs/admin/languages/index.json.jbuilder +1 -0
  173. data/app/views/elabs/admin/languages/new.html.haml +3 -0
  174. data/app/views/elabs/admin/licenses/_form.html.haml +25 -0
  175. data/app/views/elabs/admin/licenses/_license.json.jbuilder +2 -0
  176. data/app/views/elabs/admin/licenses/edit.html.haml +6 -0
  177. data/app/views/elabs/admin/licenses/index.html.haml +42 -0
  178. data/app/views/elabs/admin/licenses/index.json.jbuilder +1 -0
  179. data/app/views/elabs/admin/licenses/new.html.haml +3 -0
  180. data/app/views/elabs/admin/notes/_note.json.jbuilder +2 -0
  181. data/app/views/elabs/admin/notes/index.html.haml +40 -0
  182. data/app/views/elabs/admin/notes/index.json.jbuilder +1 -0
  183. data/app/views/elabs/admin/projects/_project.json.jbuilder +2 -0
  184. data/app/views/elabs/admin/projects/index.html.haml +45 -0
  185. data/app/views/elabs/admin/projects/index.json.jbuilder +1 -0
  186. data/app/views/elabs/admin/reports/index.html.haml +27 -0
  187. data/app/views/elabs/admin/reports/index.json.jbuilder +1 -0
  188. data/app/views/elabs/admin/tags/_form.html.haml +17 -0
  189. data/app/views/elabs/admin/tags/_tag.json.jbuilder +2 -0
  190. data/app/views/elabs/admin/tags/edit.html.haml +6 -0
  191. data/app/views/elabs/admin/tags/index.html.haml +27 -0
  192. data/app/views/elabs/admin/tags/index.json.jbuilder +1 -0
  193. data/app/views/elabs/admin/uploads/_upload.json.jbuilder +2 -0
  194. data/app/views/elabs/admin/uploads/index.html.haml +45 -0
  195. data/app/views/elabs/admin/uploads/index.json.jbuilder +1 -0
  196. data/app/views/elabs/admin/users/_admin_user.json.jbuilder +2 -0
  197. data/app/views/elabs/admin/users/index.html.haml +33 -0
  198. data/app/views/elabs/admin/users/index.json.jbuilder +1 -0
  199. data/app/views/elabs/admin/users/show.html.haml +26 -0
  200. data/app/views/elabs/admin/users/show.json.jbuilder +1 -0
  201. data/app/views/elabs/albums/_album.html.haml +38 -0
  202. data/app/views/elabs/albums/_album.json.jbuilder +2 -0
  203. data/app/views/elabs/albums/_filters.html.haml +8 -0
  204. data/app/views/elabs/albums/index.html.haml +9 -0
  205. data/app/views/elabs/albums/index.json.jbuilder +1 -0
  206. data/app/views/elabs/albums/show.html.haml +60 -0
  207. data/app/views/elabs/albums/show.json.jbuilder +1 -0
  208. data/app/views/elabs/articles/_article.html.haml +30 -0
  209. data/app/views/elabs/articles/_article.json.jbuilder +2 -0
  210. data/app/views/elabs/articles/_filters.html.haml +8 -0
  211. data/app/views/elabs/articles/index.html.haml +9 -0
  212. data/app/views/elabs/articles/index.json.jbuilder +1 -0
  213. data/app/views/elabs/articles/show.html.haml +45 -0
  214. data/app/views/elabs/articles/show.json.jbuilder +1 -0
  215. data/app/views/elabs/auth/confirmations/new.html.haml +26 -0
  216. data/app/views/elabs/auth/passwords/edit.html.haml +31 -0
  217. data/app/views/elabs/auth/passwords/new.html.haml +23 -0
  218. data/app/views/elabs/auth/registrations/edit.html.haml +48 -0
  219. data/app/views/elabs/auth/registrations/new.html.haml +34 -0
  220. data/app/views/elabs/auth/sessions/_new.html.haml +15 -0
  221. data/app/views/elabs/auth/sessions/new.html.haml +8 -0
  222. data/app/views/elabs/auth/shared/_links.html.haml +16 -0
  223. data/app/views/elabs/auth/unlocks/new.html.haml +23 -0
  224. data/app/views/elabs/comments/_comment.json.jbuilder +2 -0
  225. data/app/views/elabs/comments/_comments.html.haml +21 -0
  226. data/app/views/elabs/comments/_form.html.haml +31 -0
  227. data/app/views/elabs/languages/_associations.html.haml +51 -0
  228. data/app/views/elabs/languages/_filters.html.haml +6 -0
  229. data/app/views/elabs/languages/_language.json.jbuilder +2 -0
  230. data/app/views/elabs/languages/index.html.haml +33 -0
  231. data/app/views/elabs/languages/index.json.jbuilder +1 -0
  232. data/app/views/elabs/languages/show.html.haml +38 -0
  233. data/app/views/elabs/languages/show.json.jbuilder +1 -0
  234. data/app/views/elabs/layouts/_empty.html.haml +3 -0
  235. data/app/views/elabs/layouts/_footer.html.haml +6 -0
  236. data/app/views/elabs/layouts/_hidden_entry.html.haml +6 -0
  237. data/app/views/elabs/layouts/_hidden_entry_full.html.haml +6 -0
  238. data/app/views/elabs/layouts/_language_menu.html.haml +2 -0
  239. data/app/views/elabs/layouts/_menu.html.haml +72 -0
  240. data/app/views/elabs/layouts/admin_application.html.haml +21 -0
  241. data/app/views/elabs/layouts/application.html.haml +37 -0
  242. data/app/views/elabs/layouts/lists/_albums.html.haml +10 -0
  243. data/app/views/elabs/layouts/lists/_projects.html.haml +10 -0
  244. data/app/views/elabs/layouts/lists/_tags.html.haml +9 -0
  245. data/app/views/elabs/layouts/mailer.html.haml +8 -0
  246. data/app/views/elabs/layouts/mailer.text.haml +1 -0
  247. data/app/views/elabs/layouts/member_application.html.haml +21 -0
  248. data/app/views/elabs/licenses/_associations.html.haml +51 -0
  249. data/app/views/elabs/licenses/_filters.html.haml +3 -0
  250. data/app/views/elabs/licenses/_license.json.jbuilder +2 -0
  251. data/app/views/elabs/licenses/index.html.haml +27 -0
  252. data/app/views/elabs/licenses/index.json.jbuilder +1 -0
  253. data/app/views/elabs/licenses/show.html.haml +44 -0
  254. data/app/views/elabs/licenses/show.json.jbuilder +1 -0
  255. data/app/views/elabs/member/albums/_album.json.jbuilder +2 -0
  256. data/app/views/elabs/member/albums/_form.html.haml +64 -0
  257. data/app/views/elabs/member/albums/edit.html.haml +6 -0
  258. data/app/views/elabs/member/albums/index.html.haml +49 -0
  259. data/app/views/elabs/member/albums/index.json.jbuilder +1 -0
  260. data/app/views/elabs/member/albums/new.html.haml +3 -0
  261. data/app/views/elabs/member/articles/_article.json.jbuilder +2 -0
  262. data/app/views/elabs/member/articles/_form.html.haml +70 -0
  263. data/app/views/elabs/member/articles/edit.html.haml +6 -0
  264. data/app/views/elabs/member/articles/index.html.haml +47 -0
  265. data/app/views/elabs/member/articles/index.json.jbuilder +1 -0
  266. data/app/views/elabs/member/articles/new.html.haml +3 -0
  267. data/app/views/elabs/member/layouts/_empty.html.haml +4 -0
  268. data/app/views/elabs/member/layouts/_markdown-preview.html.haml +8 -0
  269. data/app/views/elabs/member/notes/_form.html.haml +54 -0
  270. data/app/views/elabs/member/notes/_note.json.jbuilder +2 -0
  271. data/app/views/elabs/member/notes/edit.html.haml +6 -0
  272. data/app/views/elabs/member/notes/index.html.haml +47 -0
  273. data/app/views/elabs/member/notes/index.json.jbuilder +1 -0
  274. data/app/views/elabs/member/notes/new.html.haml +3 -0
  275. data/app/views/elabs/member/preferences/_form.html.haml +20 -0
  276. data/app/views/elabs/member/preferences/edit.html.haml +3 -0
  277. data/app/views/elabs/member/projects/_form.html.haml +71 -0
  278. data/app/views/elabs/member/projects/_project.json.jbuilder +2 -0
  279. data/app/views/elabs/member/projects/edit.html.haml +6 -0
  280. data/app/views/elabs/member/projects/index.html.haml +53 -0
  281. data/app/views/elabs/member/projects/index.json.jbuilder +1 -0
  282. data/app/views/elabs/member/projects/new.html.haml +3 -0
  283. data/app/views/elabs/member/uploads/_form.html.haml +67 -0
  284. data/app/views/elabs/member/uploads/_upload.json.jbuilder +2 -0
  285. data/app/views/elabs/member/uploads/edit.html.haml +6 -0
  286. data/app/views/elabs/member/uploads/index.html.haml +61 -0
  287. data/app/views/elabs/member/uploads/index.json.jbuilder +1 -0
  288. data/app/views/elabs/member/uploads/new.html.haml +3 -0
  289. data/app/views/elabs/member/users/_form.html.haml +38 -0
  290. data/app/views/elabs/notes/_filters.html.haml +7 -0
  291. data/app/views/elabs/notes/_note.html.haml +31 -0
  292. data/app/views/elabs/notes/_note.json.jbuilder +2 -0
  293. data/app/views/elabs/notes/index.html.haml +9 -0
  294. data/app/views/elabs/notes/index.json.jbuilder +1 -0
  295. data/app/views/elabs/notes/show.html.haml +44 -0
  296. data/app/views/elabs/notes/show.json.jbuilder +1 -0
  297. data/app/views/elabs/projects/_associations.html.haml +46 -0
  298. data/app/views/elabs/projects/_filters.html.haml +8 -0
  299. data/app/views/elabs/projects/_project.html.haml +29 -0
  300. data/app/views/elabs/projects/index.html.haml +9 -0
  301. data/app/views/elabs/projects/index.json.jbuilder +1 -0
  302. data/app/views/elabs/projects/show.html.haml +71 -0
  303. data/app/views/elabs/projects/show.json.jbuilder +1 -0
  304. data/app/views/elabs/reports/_form.html.haml +29 -0
  305. data/app/views/elabs/tags/_associations.html.haml +51 -0
  306. data/app/views/elabs/tags/_filters.html.haml +3 -0
  307. data/app/views/elabs/tags/_tag.json.jbuilder +2 -0
  308. data/app/views/elabs/tags/index.html.haml +26 -0
  309. data/app/views/elabs/tags/index.json.jbuilder +1 -0
  310. data/app/views/elabs/tags/show.html.haml +34 -0
  311. data/app/views/elabs/tags/show.json.jbuilder +1 -0
  312. data/app/views/elabs/uploads/_filters.html.haml +7 -0
  313. data/app/views/elabs/uploads/_player.html.haml +10 -0
  314. data/app/views/elabs/uploads/_preview.html.haml +17 -0
  315. data/app/views/elabs/uploads/_upload.html.haml +41 -0
  316. data/app/views/elabs/uploads/_upload.json.jbuilder +2 -0
  317. data/app/views/elabs/uploads/index.html.haml +9 -0
  318. data/app/views/elabs/uploads/index.json.jbuilder +1 -0
  319. data/app/views/elabs/uploads/show.html.haml +58 -0
  320. data/app/views/elabs/uploads/show.json.jbuilder +1 -0
  321. data/app/views/elabs/users/_associations.html.haml +51 -0
  322. data/app/views/elabs/users/_filters.html.haml +4 -0
  323. data/app/views/elabs/users/_user.html.haml +31 -0
  324. data/app/views/elabs/users/_user.json.jbuilder +2 -0
  325. data/app/views/elabs/users/index.html.haml +7 -0
  326. data/app/views/elabs/users/index.json.jbuilder +1 -0
  327. data/app/views/elabs/users/show.html.haml +48 -0
  328. data/app/views/elabs/users/show.json.jbuilder +1 -0
  329. data/bin/rails +14 -0
  330. data/config.ru +5 -0
  331. data/config/brakeman.ignore +124 -0
  332. data/config/brakeman.yml +3 -0
  333. data/config/cucumber.yml +9 -0
  334. data/config/routes.rb +116 -0
  335. data/db/migrate/20180813000000_devise_update_users.rb +15 -0
  336. data/db/migrate/20180813000001_create_languages.rb +16 -0
  337. data/db/migrate/20180813000002_create_tags.rb +14 -0
  338. data/db/migrate/20180813000004_create_licenses.rb +17 -0
  339. data/db/migrate/20180813000005_create_reports.rb +15 -0
  340. data/db/migrate/20180813000006_create_comments.rb +15 -0
  341. data/db/migrate/20180813000007_create_acts.rb +10 -0
  342. data/db/migrate/20180813000008_create_preferences.rb +13 -0
  343. data/db/migrate/20180813000009_create_active_storage_tables.active_storage.rb +26 -0
  344. data/db/migrate/20180813000010_create_albums.rb +23 -0
  345. data/db/migrate/20180813000011_create_articles.rb +23 -0
  346. data/db/migrate/20180813000012_create_notes.rb +21 -0
  347. data/db/migrate/20180813000013_create_uploads.rb +26 -0
  348. data/db/migrate/20180813000014_create_projects.rb +44 -0
  349. data/db/seeds.rb +10 -0
  350. data/db/seeds_development.rb +21 -0
  351. data/db/seeds_production.rb +0 -0
  352. data/docs/contributing.md +52 -0
  353. data/docs/cucumber_terms.md +9 -0
  354. data/docs/migrating.md +4 -0
  355. data/docs/overriding.md +20 -0
  356. data/docs/setup.md +136 -0
  357. data/docs/tips.md +13 -0
  358. data/elabs.gemspec +25 -0
  359. data/lib/assets/javascripts/README-highlight.js.md +39 -0
  360. data/lib/assets/javascripts/codemirror-5.39.2/addon/mode/overlay.js +90 -0
  361. data/lib/assets/javascripts/codemirror-5.39.2/lib/codemirror.js +9684 -0
  362. data/lib/assets/javascripts/codemirror-5.39.2/mode/clike/clike.js +834 -0
  363. data/lib/assets/javascripts/codemirror-5.39.2/mode/css/css.js +832 -0
  364. data/lib/assets/javascripts/codemirror-5.39.2/mode/gfm/gfm.js +129 -0
  365. data/lib/assets/javascripts/codemirror-5.39.2/mode/htmlmixed/htmlmixed.js +152 -0
  366. data/lib/assets/javascripts/codemirror-5.39.2/mode/javascript/javascript.js +896 -0
  367. data/lib/assets/javascripts/codemirror-5.39.2/mode/markdown/markdown.js +882 -0
  368. data/lib/assets/javascripts/codemirror-5.39.2/mode/meta.js +217 -0
  369. data/lib/assets/javascripts/codemirror-5.39.2/mode/xml/xml.js +402 -0
  370. data/lib/assets/javascripts/highlight.js-9.12.0/highlight.pack.js +2 -0
  371. data/lib/assets/javascripts/markdown-it-8.4.2.min.js +1 -0
  372. data/lib/assets/stylesheets/codemirror-5.39.2/lib/codemirror.css +346 -0
  373. data/lib/assets/stylesheets/codemirror-5.39.2/theme/base16-dark.css +38 -0
  374. data/lib/assets/stylesheets/codemirror-5.39.2/theme/base16-light.css +38 -0
  375. data/lib/assets/stylesheets/highlight.js-9.12.0/styles/atelier-sulphurpool-light.css +69 -0
  376. data/lib/elabs.rb +41 -0
  377. data/lib/elabs/engine.rb +5 -0
  378. data/lib/elabs/version.rb +3 -0
  379. data/lib/generators/elabs/assets_generator.rb +36 -0
  380. data/lib/generators/elabs/devise_views_generator.rb +24 -0
  381. data/lib/generators/elabs/install_generator.rb +26 -0
  382. data/lib/generators/elabs/required_assets_generator.rb +26 -0
  383. data/lib/generators/elabs/views_generator.rb +25 -0
  384. data/lib/generators/templates/elabs.rb +25 -0
  385. data/lib/generators/templates/fast_gettext.rb +3 -0
  386. data/lib/tasks/.keep +0 -0
  387. data/lib/tasks/cucumber.rake +75 -0
  388. data/lib/tasks/elabs_tasks.rake +4 -0
  389. data/lib/tasks/factory_bot.rake +14 -0
  390. data/lib/tasks/wipe.rake +31 -0
  391. data/locale/app.pot +1124 -0
  392. data/locale/devise_strings.rb +88 -0
  393. data/locale/en/app.edit.po +1123 -0
  394. data/locale/en/app.po +1123 -0
  395. data/locale/en/app.po.time_stamp +0 -0
  396. data/locale/fr/app.edit.po +1126 -0
  397. data/locale/fr/app.po +1125 -0
  398. data/locale/fr/app.po.time_stamp +0 -0
  399. data/locale/model_attributes.rb +85 -0
  400. data/package.json +22 -0
  401. data/script/cucumber +10 -0
  402. data/tmp/pids/.keep +0 -0
  403. data/yarn.lock +2759 -0
  404. metadata +463 -0
@@ -0,0 +1,273 @@
1
+ # Change Log
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ ## [1.0.0] - 2018-08-09 - First v1 \o/
5
+ ### Added
6
+
7
+ - Updated translations
8
+ - Added methods to access the elabs configuration quickly
9
+
10
+ ### Changed
11
+
12
+ - A lot of methods were returning constant strings. They are now constants.
13
+
14
+ ### Improved
15
+
16
+ - Improved configuration
17
+ - Improved setup
18
+ - Improved README
19
+
20
+ ## [0.15.0] - 2018-08-05 - "Tests improvements"
21
+ ### Added
22
+
23
+ - Shared examples for RSpec controllers tests
24
+ - Completed the maximum of cucumber steps tagged with `@wip`
25
+ - Option to enable sendmail email transport
26
+
27
+ ### Changed
28
+
29
+ - Capybara screenshots are now in `tmp/`
30
+
31
+ ### Improved
32
+
33
+ - Renamed and moved Cucumber's features and steps
34
+ - Refactored some of the existing Cucumber steps
35
+ - Updated all controller tests to use shared examples
36
+
37
+ ### Removed
38
+
39
+ - Removed unused method "validate_related_data" in `content_entity.rb`
40
+
41
+ ### Fixed
42
+
43
+ - Fixed the relation validator which was not working and badly tested
44
+
45
+ ## [0.14.0] - 2018-08-04 - "Markdown preview"
46
+ ### Added
47
+
48
+ - Content textareas are now previewable
49
+
50
+ ### Changed
51
+
52
+ - Replaced RedCarpet by Markdown-it, a JS markdown parser. The choice
53
+ has been made to render content on the client side to have the same
54
+ renderer as in previews. Additionally, Highlight.js was added to
55
+ render code blocks.
56
+
57
+ ## [0.13.0] - 2018-08-03 - "Improvements"
58
+ ### Added
59
+
60
+ - Added Brakeman to CI to check for known vulnerabilities
61
+ - Added HTML5 audio/video previews
62
+ - Created a configuration file for the app's config, `config/elabs.yml`
63
+ - Placeholders when there is no content to display
64
+
65
+ ### Changed
66
+
67
+ ### Improved
68
+
69
+ - Added thumbnails helper with methods returning properties for thumbnail
70
+ generation.
71
+ - Made the generated files variant saved
72
+ - Made counter caches take care of the state of the entity (draft/locked)
73
+ - Refactored 'application_content_record' model in multiple concerns
74
+
75
+ ### Removed
76
+
77
+ - "Pages" controller, as it was not used anymore.
78
+
79
+ ### Fixed
80
+
81
+ - Updated failing steps by specifying username and email: creating an
82
+ user from email only don't allow to target it simply, randomly
83
+ leading to wrong user being clicked on during tests
84
+ - Fixed public content that can be accessed even when it's a draft.
85
+ (locked content are still found, control is made in the view)
86
+
87
+ ## [0.12.0] - 2018-07-30 - "Design"
88
+ ### Added
89
+
90
+ ### Changed
91
+
92
+ - `rake wipe:db` is now `rake wipe:db_seed`. `rake wipe:db` will only drop/create/migrate
93
+ - Created general layout style
94
+ - Created style for public/member/admin views:
95
+ - albums
96
+ - articles
97
+ - notes
98
+ - projects
99
+ - uploads
100
+ - languages/licenses/tags
101
+ - users
102
+ - Added CodeMirror for editable textareas
103
+ - Added helpers and links to filter/order content on indexes
104
+
105
+ ### Improved
106
+
107
+ ### Removed
108
+
109
+ ### Fixed
110
+
111
+ - Fixed scopes "for_relation" which was badly constructed, leading to
112
+ incorrect content being fetched
113
+
114
+ ## [0.11.0] - 2018-07-15 - "Acts": content actions history
115
+ ### Added
116
+
117
+ - Actions on generic content are now logged in the `acts table`
118
+
119
+ ### Changed
120
+
121
+ - "root" route is now `acts#index`
122
+
123
+ ## [0.10.0] - 2018-07-14 - Comment system
124
+ ### Added
125
+
126
+ - Simple comment system
127
+
128
+ ### Improved
129
+
130
+ - Public controllers related to content now extends a
131
+ `ContentApplicationController` instead of the `ApplicationController`
132
+
133
+ ## [0.9.0] - 2018-07-14 - Preferences
134
+ ### Added
135
+
136
+ - Members now have preferences for the default locale and to display
137
+ or not the NSFW content
138
+
139
+ ## [0.8.0] - 2018-07-14 - Toggle SFW/NSFW
140
+ ### Added
141
+
142
+ - NSFW content is hidden
143
+ - Users can now toggle the NSFW content visibility
144
+
145
+ ### Fixed
146
+
147
+ - Updated notes table, setting default values for `sfw` and
148
+ `hidden_in_history` fields
149
+
150
+ ## [0.7.0] - 2018-07-11 - Lock/unlock content
151
+ ### Added
152
+
153
+ - Admin:
154
+ - actions to lock/unlock content
155
+ - Members:
156
+ - actions to publish/unpublish content
157
+
158
+ ### Improved
159
+
160
+ - Admin:
161
+ - all content controllers now extends an unique controller which contains all the shared methods
162
+ - Member
163
+ - all content controllers now extends an unique controller which contains all the shared methods
164
+
165
+ ### Fixed
166
+ - Issues with FactoryBot seems fixed (waiting for the Faker PRs to be merged)
167
+ - Faker PR 1307: [Add a "add_to_previous" method for `UniqueGenerator`](https://github.com/stympy/faker/pull/1307)
168
+ - Faker PR 1302: [Add `Faker::Alphanum` generator](https://github.com/stympy/faker/pull/1302)
169
+
170
+ ## [0.6.0] - 2018-07-09 - Nested content and pagination
171
+ ### Added
172
+
173
+ - List of the 10 last elements related to a given content
174
+ - Pagination for all indexes (except tags and licenses)
175
+ - Filters for nested resources
176
+ - PostgreSQL support (gem and sample config file)
177
+
178
+ ### Changed
179
+
180
+ - Database used on CI is now PostgreSQL
181
+
182
+ ### Improved
183
+
184
+ - Content in development seeds for the administrator
185
+ - Faker's "unique" status is reset before every Cucumber scenario and RSpec examples
186
+ - Installer now copies database configuration files.
187
+
188
+ ### Fixed
189
+
190
+ - Tests failing due to locked database
191
+
192
+ ## [0.5.0] - 2018-06-29 - Relations and counters
193
+ ### Added
194
+
195
+ - Tags support for albums/articles/notes/projects/uploads
196
+ - Relations counts on languages/tags/licenses/albums/projects/users
197
+ - Update tags show view to display the last related content
198
+ - Update languages show view to display the last related content
199
+ - Update licenses show view to display the last related content
200
+
201
+ ### Changed
202
+
203
+ - Changed content's habtm relations to `has_many through`
204
+
205
+ ### Improved
206
+
207
+ - Improved some cucumber steps
208
+
209
+ ## [0.4.0] - 2018-06-29 - CRUD MVC for content
210
+ ### Added
211
+
212
+ - Articles basic MVC for public/member/admin zones
213
+ - Notes basic MVC for public/member/admin zones
214
+ - Uploads basic MVC for public/member/admin zones
215
+ - Albums basic MVC for public/member/admin zones
216
+ - Projects basic MVC for public/member/admin zones
217
+ - Member layout
218
+
219
+ ### Improved
220
+
221
+ - Improved factories to only use Faker, specialization comes after
222
+ - Added `factory_bot:lint` rake task to test factories reusability
223
+
224
+ ## [0.3.1] - 2018-06-17 - Fixes, licenses
225
+ ### Added
226
+
227
+ - Licenses support: Public/admin MVC and cucumber tests
228
+
229
+ ### Improved
230
+
231
+ - Updated controller with missing translation calls
232
+ - Changed Rubocop Metrics/ABCSize to 16 to allow translations in basic actions
233
+
234
+ ### Fixed
235
+
236
+ - Reports required fields
237
+
238
+ ## [0.3.0] - 2018-06-17 - Languages, tags and reports
239
+ ### Added
240
+
241
+ - Language support: Public/admin MVC and cucumber tests
242
+ - Tags support: Public/admin MVC and cucumber tests
243
+ - Admin layout
244
+
245
+ ### Fixed
246
+
247
+ - Simplecov is now configured
248
+
249
+ ## [0.2.1] - 2018-06-12 - Tests
250
+ ### Added
251
+
252
+ - Added Cucumber scenarios and steps to test language switching
253
+
254
+ ### Improved
255
+
256
+ - Removed "fuzzy" comments in french translations
257
+
258
+ ## [0.2.0] - 2018-06-12 - Site translations
259
+ ### Added
260
+
261
+ - Added mechanism to change the website's language using Gettext
262
+ - Created the configuration files
263
+ - Created french translations
264
+
265
+ ## [0.1.0] - 2018-06-11 - Base setup
266
+ ### Added
267
+
268
+ - Readme
269
+ - Changelog
270
+ - Code of conduct
271
+ - Basic Cucumber features, scenarios and tests
272
+ - Devise setups
273
+ - Basic users listing
@@ -0,0 +1,78 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our
7
+ project and our community a harassment-free experience for everyone,
8
+ regardless of age, body size, disability, ethnicity, gender identity and
9
+ expression, level of experience, nationality, personal appearance, race,
10
+ religion, or sexual identity and orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual
26
+ attention or advances
27
+ * Trolling, insulting/derogatory comments, and personal or political
28
+ attacks
29
+ * Public or private harassment
30
+ * Publishing others' private information, such as a physical or
31
+ electronic address, without explicit permission
32
+ * Other conduct which could reasonably be considered inappropriate in a
33
+ professional setting
34
+
35
+ ## Our Responsibilities
36
+
37
+ Project maintainers are responsible for clarifying the standards of
38
+ acceptable behavior and are expected to take appropriate and fair
39
+ corrective action in response to any instances of unacceptable behavior.
40
+
41
+ Project maintainers have the right and responsibility to remove, edit,
42
+ or reject comments, commits, code, wiki edits, issues, and other
43
+ contributions that are not aligned to this Code of Conduct, or to ban
44
+ temporarily or permanently any contributor for other behaviors that they
45
+ deem inappropriate, threatening, offensive, or harmful.
46
+
47
+ ## Scope
48
+
49
+ This Code of Conduct applies both within project spaces and in public
50
+ spaces when an individual is representing the project or its community.
51
+ Examples of representing a project or community include using an
52
+ official project e-mail address, posting via an official social media
53
+ account, or acting as an appointed representative at an online or
54
+ offline event. Representation of a project may be further defined and
55
+ clarified by project maintainers.
56
+
57
+ ## Enforcement
58
+
59
+ Instances of abusive, harassing, or otherwise unacceptable behavior may
60
+ be reported by contacting the project team at info@experimentslabs.com.
61
+ The project team will review and investigate all complaints, and will
62
+ respond in a way that it deems appropriate to the circumstances. The
63
+ project team is obligated to maintain confidentiality with regard to
64
+ the reporter of an incident. Further details of specific enforcement
65
+ policies may be posted separately.
66
+
67
+ Project maintainers who do not follow or enforce the Code of Conduct in
68
+ good faith may face temporary or permanent repercussions as determined
69
+ by other members of the project's leadership.
70
+
71
+ ## Attribution
72
+
73
+ This Code of Conduct is adapted from the
74
+ [Contributor Covenant][homepage], version 1.4, available at
75
+ [http://contributor-covenant.org/version/1/4][version]
76
+
77
+ [homepage]: http://contributor-covenant.org
78
+ [version]: http://contributor-covenant.org/version/1/4/
data/Gemfile ADDED
@@ -0,0 +1,75 @@
1
+ source 'https://rubygems.org'
2
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
+
4
+ # Declare your gem's dependencies in elabs.gemspec.
5
+ # Bundler will treat runtime dependencies like base dependencies, and
6
+ # development dependencies will be added by default to the :development group.
7
+ gemspec
8
+
9
+ # Declare any dependencies that are still in development here instead of in
10
+ # your gemspec. These might include edge Rails or gems from your path or
11
+ # Git. Remember to move these dependencies to your gemspec before releasing
12
+ # your gem to rubygems.org.
13
+
14
+ group :development, :test do
15
+ # -------------------------------------------------------
16
+ # Gems needed for the dummy application
17
+ # -------------------------------------------------------
18
+ # See https://github.com/rails/execjs#readme for more supported runtimes
19
+ gem 'mini_racer', platforms: :ruby
20
+ # Use ActiveStorage variant
21
+ gem 'mini_magick', '~> 4.8'
22
+ # DB
23
+ gem 'pg'
24
+ # Rails and plugins:
25
+ gem 'active_link_to'
26
+ gem 'devise'
27
+ gem 'haml-rails'
28
+ gem 'kaminari'
29
+ gem 'rails', '~> 5.2.1'
30
+ gem 'sass-rails', '~> 5.0'
31
+ # Translations
32
+ gem 'gettext_i18n_rails'
33
+
34
+ # Call 'byebug' anywhere in the code to stop execution and get a debugger console
35
+ gem 'byebug', platforms: %i[mri mingw x64_mingw]
36
+
37
+ # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
38
+ gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby]
39
+ end
40
+
41
+ group :development do
42
+ # Access an interactive console on exception pages or by calling 'console' anywhere in the code.
43
+ gem 'listen', '>= 3.0.5', '< 3.2'
44
+ gem 'web-console', '>= 3.3.0'
45
+ # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
46
+ gem 'spring'
47
+ gem 'spring-watcher-listen', '~> 2.0.0'
48
+ # Locales
49
+ gem 'gettext', '>=3.0.2', require: false
50
+ end
51
+
52
+ group :test do
53
+ # Adds support for Capybara system testing and selenium driver
54
+ gem 'capybara', '>= 2.15', '< 4.0'
55
+ gem 'capybara-screenshot'
56
+ gem 'selenium-webdriver'
57
+ # Easy installation and use of chromedriver to run system tests with Chrome
58
+ gem 'chromedriver-helper'
59
+ # Cucumber
60
+ gem 'cucumber-rails', require: false
61
+ gem 'database_cleaner'
62
+ # Factories
63
+ gem 'factory_bot_rails'
64
+ gem 'faker', git: 'https://github.com/el-cms/faker.git', branch: 'elabs'
65
+ # Linters
66
+ gem 'haml_lint', require: false
67
+ gem 'rubocop'
68
+ # Rspec
69
+ gem 'rails-controller-testing'
70
+ gem 'rspec-rails'
71
+ gem 'ruby_parser', require: false
72
+ gem 'simplecov', require: false
73
+ # Security scanner
74
+ gem 'brakeman'
75
+ end
@@ -0,0 +1,376 @@
1
+ GIT
2
+ remote: https://github.com/el-cms/faker.git
3
+ revision: b776fb025871d0bc9f38a32730d241cff8e159ab
4
+ branch: elabs
5
+ specs:
6
+ faker (1.8.7)
7
+ i18n (>= 0.7)
8
+
9
+ PATH
10
+ remote: .
11
+ specs:
12
+ elabs (2.0.0.pre)
13
+ rails (~> 5.2.1)
14
+
15
+ GEM
16
+ remote: https://rubygems.org/
17
+ specs:
18
+ actioncable (5.2.1)
19
+ actionpack (= 5.2.1)
20
+ nio4r (~> 2.0)
21
+ websocket-driver (>= 0.6.1)
22
+ actionmailer (5.2.1)
23
+ actionpack (= 5.2.1)
24
+ actionview (= 5.2.1)
25
+ activejob (= 5.2.1)
26
+ mail (~> 2.5, >= 2.5.4)
27
+ rails-dom-testing (~> 2.0)
28
+ actionpack (5.2.1)
29
+ actionview (= 5.2.1)
30
+ activesupport (= 5.2.1)
31
+ rack (~> 2.0)
32
+ rack-test (>= 0.6.3)
33
+ rails-dom-testing (~> 2.0)
34
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
35
+ actionview (5.2.1)
36
+ activesupport (= 5.2.1)
37
+ builder (~> 3.1)
38
+ erubi (~> 1.4)
39
+ rails-dom-testing (~> 2.0)
40
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
41
+ active_link_to (1.0.5)
42
+ actionpack
43
+ addressable
44
+ activejob (5.2.1)
45
+ activesupport (= 5.2.1)
46
+ globalid (>= 0.3.6)
47
+ activemodel (5.2.1)
48
+ activesupport (= 5.2.1)
49
+ activerecord (5.2.1)
50
+ activemodel (= 5.2.1)
51
+ activesupport (= 5.2.1)
52
+ arel (>= 9.0)
53
+ activestorage (5.2.1)
54
+ actionpack (= 5.2.1)
55
+ activerecord (= 5.2.1)
56
+ marcel (~> 0.3.1)
57
+ activesupport (5.2.1)
58
+ concurrent-ruby (~> 1.0, >= 1.0.2)
59
+ i18n (>= 0.7, < 2)
60
+ minitest (~> 5.1)
61
+ tzinfo (~> 1.1)
62
+ addressable (2.5.2)
63
+ public_suffix (>= 2.0.2, < 4.0)
64
+ archive-zip (0.11.0)
65
+ io-like (~> 0.3.0)
66
+ arel (9.0.0)
67
+ ast (2.4.0)
68
+ backports (3.11.3)
69
+ bcrypt (3.1.12)
70
+ bindex (0.5.0)
71
+ brakeman (4.3.1)
72
+ builder (3.2.3)
73
+ byebug (10.0.2)
74
+ capybara (3.6.0)
75
+ addressable
76
+ mini_mime (>= 0.1.3)
77
+ nokogiri (~> 1.8)
78
+ rack (>= 1.6.0)
79
+ rack-test (>= 0.6.3)
80
+ xpath (~> 3.1)
81
+ capybara-screenshot (1.0.21)
82
+ capybara (>= 1.0, < 4)
83
+ launchy
84
+ childprocess (0.9.0)
85
+ ffi (~> 1.0, >= 1.0.11)
86
+ chromedriver-helper (1.2.0)
87
+ archive-zip (~> 0.10)
88
+ nokogiri (~> 1.8)
89
+ concurrent-ruby (1.0.5)
90
+ crass (1.0.4)
91
+ cucumber (3.1.2)
92
+ builder (>= 2.1.2)
93
+ cucumber-core (~> 3.2.0)
94
+ cucumber-expressions (~> 6.0.1)
95
+ cucumber-wire (~> 0.0.1)
96
+ diff-lcs (~> 1.3)
97
+ gherkin (~> 5.1.0)
98
+ multi_json (>= 1.7.5, < 2.0)
99
+ multi_test (>= 0.1.2)
100
+ cucumber-core (3.2.0)
101
+ backports (>= 3.8.0)
102
+ cucumber-tag_expressions (~> 1.1.0)
103
+ gherkin (>= 5.0.0)
104
+ cucumber-expressions (6.0.1)
105
+ cucumber-rails (1.6.0)
106
+ capybara (>= 1.1.2, < 4)
107
+ cucumber (>= 3.0.2, < 4)
108
+ mime-types (>= 1.17, < 4)
109
+ nokogiri (~> 1.8)
110
+ railties (>= 4, < 6)
111
+ cucumber-tag_expressions (1.1.1)
112
+ cucumber-wire (0.0.1)
113
+ database_cleaner (1.7.0)
114
+ devise (4.5.0)
115
+ bcrypt (~> 3.0)
116
+ orm_adapter (~> 0.1)
117
+ railties (>= 4.1.0, < 6.0)
118
+ responders
119
+ warden (~> 1.2.3)
120
+ diff-lcs (1.3)
121
+ docile (1.3.1)
122
+ erubi (1.7.1)
123
+ erubis (2.7.0)
124
+ factory_bot (4.11.0)
125
+ activesupport (>= 3.0.0)
126
+ factory_bot_rails (4.11.0)
127
+ factory_bot (~> 4.11.0)
128
+ railties (>= 3.0.0)
129
+ fast_gettext (1.7.0)
130
+ ffi (1.9.25)
131
+ gettext (3.2.9)
132
+ locale (>= 2.0.5)
133
+ text (>= 1.3.0)
134
+ gettext_i18n_rails (1.8.0)
135
+ fast_gettext (>= 0.9.0)
136
+ gherkin (5.1.0)
137
+ globalid (0.4.1)
138
+ activesupport (>= 4.2.0)
139
+ haml (5.0.4)
140
+ temple (>= 0.8.0)
141
+ tilt
142
+ haml-rails (1.0.0)
143
+ actionpack (>= 4.0.1)
144
+ activesupport (>= 4.0.1)
145
+ haml (>= 4.0.6, < 6.0)
146
+ html2haml (>= 1.0.1)
147
+ railties (>= 4.0.1)
148
+ haml_lint (0.28.0)
149
+ haml (>= 4.0, < 5.1)
150
+ rainbow
151
+ rake (>= 10, < 13)
152
+ rubocop (>= 0.50.0)
153
+ sysexits (~> 1.1)
154
+ html2haml (2.2.0)
155
+ erubis (~> 2.7.0)
156
+ haml (>= 4.0, < 6)
157
+ nokogiri (>= 1.6.0)
158
+ ruby_parser (~> 3.5)
159
+ i18n (1.1.0)
160
+ concurrent-ruby (~> 1.0)
161
+ io-like (0.3.0)
162
+ jaro_winkler (1.5.1)
163
+ json (2.1.0)
164
+ kaminari (1.1.1)
165
+ activesupport (>= 4.1.0)
166
+ kaminari-actionview (= 1.1.1)
167
+ kaminari-activerecord (= 1.1.1)
168
+ kaminari-core (= 1.1.1)
169
+ kaminari-actionview (1.1.1)
170
+ actionview
171
+ kaminari-core (= 1.1.1)
172
+ kaminari-activerecord (1.1.1)
173
+ activerecord
174
+ kaminari-core (= 1.1.1)
175
+ kaminari-core (1.1.1)
176
+ launchy (2.4.3)
177
+ addressable (~> 2.3)
178
+ libv8 (6.7.288.46.1)
179
+ listen (3.1.5)
180
+ rb-fsevent (~> 0.9, >= 0.9.4)
181
+ rb-inotify (~> 0.9, >= 0.9.7)
182
+ ruby_dep (~> 1.2)
183
+ locale (2.1.2)
184
+ loofah (2.2.2)
185
+ crass (~> 1.0.2)
186
+ nokogiri (>= 1.5.9)
187
+ mail (2.7.0)
188
+ mini_mime (>= 0.1.1)
189
+ marcel (0.3.2)
190
+ mimemagic (~> 0.3.2)
191
+ method_source (0.9.0)
192
+ mime-types (3.2.2)
193
+ mime-types-data (~> 3.2015)
194
+ mime-types-data (3.2018.0812)
195
+ mimemagic (0.3.2)
196
+ mini_magick (4.8.0)
197
+ mini_mime (1.0.1)
198
+ mini_portile2 (2.3.0)
199
+ mini_racer (0.2.0)
200
+ libv8 (>= 6.3)
201
+ minitest (5.11.3)
202
+ multi_json (1.13.1)
203
+ multi_test (0.1.2)
204
+ nio4r (2.3.1)
205
+ nokogiri (1.8.4)
206
+ mini_portile2 (~> 2.3.0)
207
+ orm_adapter (0.5.0)
208
+ parallel (1.12.1)
209
+ parser (2.5.1.2)
210
+ ast (~> 2.4.0)
211
+ pg (1.1.0)
212
+ powerpack (0.1.2)
213
+ public_suffix (3.0.3)
214
+ rack (2.0.5)
215
+ rack-test (1.1.0)
216
+ rack (>= 1.0, < 3)
217
+ rails (5.2.1)
218
+ actioncable (= 5.2.1)
219
+ actionmailer (= 5.2.1)
220
+ actionpack (= 5.2.1)
221
+ actionview (= 5.2.1)
222
+ activejob (= 5.2.1)
223
+ activemodel (= 5.2.1)
224
+ activerecord (= 5.2.1)
225
+ activestorage (= 5.2.1)
226
+ activesupport (= 5.2.1)
227
+ bundler (>= 1.3.0)
228
+ railties (= 5.2.1)
229
+ sprockets-rails (>= 2.0.0)
230
+ rails-controller-testing (1.0.2)
231
+ actionpack (~> 5.x, >= 5.0.1)
232
+ actionview (~> 5.x, >= 5.0.1)
233
+ activesupport (~> 5.x)
234
+ rails-dom-testing (2.0.3)
235
+ activesupport (>= 4.2.0)
236
+ nokogiri (>= 1.6)
237
+ rails-html-sanitizer (1.0.4)
238
+ loofah (~> 2.2, >= 2.2.2)
239
+ railties (5.2.1)
240
+ actionpack (= 5.2.1)
241
+ activesupport (= 5.2.1)
242
+ method_source
243
+ rake (>= 0.8.7)
244
+ thor (>= 0.19.0, < 2.0)
245
+ rainbow (3.0.0)
246
+ rake (12.3.1)
247
+ rb-fsevent (0.10.3)
248
+ rb-inotify (0.9.10)
249
+ ffi (>= 0.5.0, < 2)
250
+ responders (2.4.0)
251
+ actionpack (>= 4.2.0, < 5.3)
252
+ railties (>= 4.2.0, < 5.3)
253
+ rspec-core (3.8.0)
254
+ rspec-support (~> 3.8.0)
255
+ rspec-expectations (3.8.1)
256
+ diff-lcs (>= 1.2.0, < 2.0)
257
+ rspec-support (~> 3.8.0)
258
+ rspec-mocks (3.8.0)
259
+ diff-lcs (>= 1.2.0, < 2.0)
260
+ rspec-support (~> 3.8.0)
261
+ rspec-rails (3.8.0)
262
+ actionpack (>= 3.0)
263
+ activesupport (>= 3.0)
264
+ railties (>= 3.0)
265
+ rspec-core (~> 3.8.0)
266
+ rspec-expectations (~> 3.8.0)
267
+ rspec-mocks (~> 3.8.0)
268
+ rspec-support (~> 3.8.0)
269
+ rspec-support (3.8.0)
270
+ rubocop (0.58.2)
271
+ jaro_winkler (~> 1.5.1)
272
+ parallel (~> 1.10)
273
+ parser (>= 2.5, != 2.5.1.1)
274
+ powerpack (~> 0.1)
275
+ rainbow (>= 2.2.2, < 4.0)
276
+ ruby-progressbar (~> 1.7)
277
+ unicode-display_width (~> 1.0, >= 1.0.1)
278
+ ruby-progressbar (1.10.0)
279
+ ruby_dep (1.5.0)
280
+ ruby_parser (3.11.0)
281
+ sexp_processor (~> 4.9)
282
+ rubyzip (1.2.1)
283
+ sass (3.5.7)
284
+ sass-listen (~> 4.0.0)
285
+ sass-listen (4.0.0)
286
+ rb-fsevent (~> 0.9, >= 0.9.4)
287
+ rb-inotify (~> 0.9, >= 0.9.7)
288
+ sass-rails (5.0.7)
289
+ railties (>= 4.0.0, < 6)
290
+ sass (~> 3.1)
291
+ sprockets (>= 2.8, < 4.0)
292
+ sprockets-rails (>= 2.0, < 4.0)
293
+ tilt (>= 1.1, < 3)
294
+ selenium-webdriver (3.14.0)
295
+ childprocess (~> 0.5)
296
+ rubyzip (~> 1.2)
297
+ sexp_processor (4.11.0)
298
+ simplecov (0.16.1)
299
+ docile (~> 1.1)
300
+ json (>= 1.8, < 3)
301
+ simplecov-html (~> 0.10.0)
302
+ simplecov-html (0.10.2)
303
+ spring (2.0.2)
304
+ activesupport (>= 4.2)
305
+ spring-watcher-listen (2.0.1)
306
+ listen (>= 2.7, < 4.0)
307
+ spring (>= 1.2, < 3.0)
308
+ sprockets (3.7.2)
309
+ concurrent-ruby (~> 1.0)
310
+ rack (> 1, < 3)
311
+ sprockets-rails (3.2.1)
312
+ actionpack (>= 4.0)
313
+ activesupport (>= 4.0)
314
+ sprockets (>= 3.0.0)
315
+ sysexits (1.2.0)
316
+ temple (0.8.0)
317
+ text (1.3.1)
318
+ thor (0.20.0)
319
+ thread_safe (0.3.6)
320
+ tilt (2.0.8)
321
+ tzinfo (1.2.5)
322
+ thread_safe (~> 0.1)
323
+ unicode-display_width (1.4.0)
324
+ warden (1.2.7)
325
+ rack (>= 1.0)
326
+ web-console (3.6.2)
327
+ actionview (>= 5.0)
328
+ activemodel (>= 5.0)
329
+ bindex (>= 0.4.0)
330
+ railties (>= 5.0)
331
+ websocket-driver (0.7.0)
332
+ websocket-extensions (>= 0.1.0)
333
+ websocket-extensions (0.1.3)
334
+ xpath (3.1.0)
335
+ nokogiri (~> 1.8)
336
+
337
+ PLATFORMS
338
+ ruby
339
+
340
+ DEPENDENCIES
341
+ active_link_to
342
+ brakeman
343
+ byebug
344
+ capybara (>= 2.15, < 4.0)
345
+ capybara-screenshot
346
+ chromedriver-helper
347
+ cucumber-rails
348
+ database_cleaner
349
+ devise
350
+ elabs!
351
+ factory_bot_rails
352
+ faker!
353
+ gettext (>= 3.0.2)
354
+ gettext_i18n_rails
355
+ haml-rails
356
+ haml_lint
357
+ kaminari
358
+ listen (>= 3.0.5, < 3.2)
359
+ mini_magick (~> 4.8)
360
+ mini_racer
361
+ pg
362
+ rails (~> 5.2.1)
363
+ rails-controller-testing
364
+ rspec-rails
365
+ rubocop
366
+ ruby_parser
367
+ sass-rails (~> 5.0)
368
+ selenium-webdriver
369
+ simplecov
370
+ spring
371
+ spring-watcher-listen (~> 2.0.0)
372
+ tzinfo-data
373
+ web-console (>= 3.3.0)
374
+
375
+ BUNDLED WITH
376
+ 1.16.2