alchemy_cms 5.2.0 → 6.0.0.b3

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 (289) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +6 -14
  3. data/.gitignore +0 -1
  4. data/.hound.yml +1 -1
  5. data/.rubocop.yml +46 -4
  6. data/CHANGELOG.md +114 -5
  7. data/Gemfile +8 -1
  8. data/README.md +5 -2
  9. data/alchemy_cms.gemspec +78 -65
  10. data/app/assets/javascripts/alchemy/admin.js +0 -2
  11. data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +0 -27
  12. data/app/assets/javascripts/alchemy/alchemy.confirm_dialog.js.coffee +2 -1
  13. data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +1 -1
  14. data/app/assets/javascripts/alchemy/alchemy.dragndrop.js.coffee +0 -25
  15. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +1 -1
  16. data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +2 -0
  17. data/app/assets/javascripts/alchemy/alchemy.fixed_elements.js +1 -1
  18. data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +3 -1
  19. data/app/assets/javascripts/alchemy/alchemy.image_overlay.coffee +1 -1
  20. data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +40 -27
  21. data/app/assets/javascripts/alchemy/templates/node_folder.hbs +1 -1
  22. data/app/assets/stylesheets/alchemy/_extends.scss +15 -2
  23. data/app/assets/stylesheets/alchemy/admin.scss +1 -1
  24. data/app/assets/stylesheets/alchemy/archive.scss +20 -5
  25. data/app/assets/stylesheets/alchemy/buttons.scss +0 -4
  26. data/app/assets/stylesheets/alchemy/elements.scss +73 -61
  27. data/app/assets/stylesheets/alchemy/images.scss +8 -0
  28. data/app/assets/stylesheets/alchemy/node-select.scss +4 -3
  29. data/app/assets/stylesheets/alchemy/page-select.scss +1 -0
  30. data/app/controllers/alchemy/admin/attachments_controller.rb +8 -4
  31. data/app/controllers/alchemy/admin/base_controller.rb +5 -7
  32. data/app/controllers/alchemy/admin/elements_controller.rb +59 -34
  33. data/app/controllers/alchemy/admin/essence_audios_controller.rb +30 -0
  34. data/app/controllers/alchemy/admin/essence_files_controller.rb +0 -14
  35. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +8 -79
  36. data/app/controllers/alchemy/admin/essence_videos_controller.rb +33 -0
  37. data/app/controllers/alchemy/admin/ingredients_controller.rb +30 -0
  38. data/app/controllers/alchemy/admin/layoutpages_controller.rb +0 -1
  39. data/app/controllers/alchemy/admin/pages_controller.rb +7 -22
  40. data/app/controllers/alchemy/admin/pictures_controller.rb +56 -17
  41. data/app/controllers/alchemy/admin/resources_controller.rb +84 -10
  42. data/app/controllers/alchemy/api/elements_controller.rb +13 -4
  43. data/app/controllers/alchemy/api/pages_controller.rb +4 -3
  44. data/app/controllers/concerns/alchemy/admin/archive_overlay.rb +13 -3
  45. data/app/controllers/concerns/alchemy/admin/crop_action.rb +26 -0
  46. data/app/decorators/alchemy/element_editor.rb +26 -1
  47. data/app/decorators/alchemy/ingredient_editor.rb +158 -0
  48. data/app/helpers/alchemy/admin/elements_helper.rb +1 -0
  49. data/app/helpers/alchemy/admin/essences_helper.rb +1 -1
  50. data/app/helpers/alchemy/admin/ingredients_helper.rb +42 -0
  51. data/app/helpers/alchemy/elements_block_helper.rb +23 -6
  52. data/app/helpers/alchemy/elements_helper.rb +12 -5
  53. data/app/helpers/alchemy/pages_helper.rb +3 -11
  54. data/app/jobs/alchemy/base_job.rb +11 -0
  55. data/app/jobs/alchemy/publish_page_job.rb +11 -0
  56. data/app/models/alchemy/attachment.rb +24 -7
  57. data/app/models/alchemy/content.rb +1 -6
  58. data/app/models/alchemy/content/factory.rb +23 -27
  59. data/app/models/alchemy/element.rb +39 -72
  60. data/app/models/alchemy/element/definitions.rb +29 -27
  61. data/app/models/alchemy/element/element_contents.rb +131 -122
  62. data/app/models/alchemy/element/element_essences.rb +111 -98
  63. data/app/models/alchemy/element/element_ingredients.rb +184 -0
  64. data/app/models/alchemy/element/presenters.rb +104 -85
  65. data/app/models/alchemy/elements_repository.rb +126 -0
  66. data/app/models/alchemy/essence_audio.rb +12 -0
  67. data/app/models/alchemy/essence_headline.rb +40 -0
  68. data/app/models/alchemy/essence_picture.rb +4 -116
  69. data/app/models/alchemy/essence_richtext.rb +12 -0
  70. data/app/models/alchemy/essence_video.rb +12 -0
  71. data/app/models/alchemy/image_cropper_settings.rb +87 -0
  72. data/app/models/alchemy/ingredient.rb +183 -0
  73. data/app/models/alchemy/ingredient_validator.rb +97 -0
  74. data/app/models/alchemy/ingredients/audio.rb +29 -0
  75. data/app/models/alchemy/ingredients/boolean.rb +21 -0
  76. data/app/models/alchemy/ingredients/datetime.rb +20 -0
  77. data/app/models/alchemy/ingredients/file.rb +30 -0
  78. data/app/models/alchemy/ingredients/headline.rb +42 -0
  79. data/app/models/alchemy/ingredients/html.rb +19 -0
  80. data/app/models/alchemy/ingredients/link.rb +16 -0
  81. data/app/models/alchemy/ingredients/node.rb +23 -0
  82. data/app/models/alchemy/ingredients/page.rb +23 -0
  83. data/app/models/alchemy/ingredients/picture.rb +41 -0
  84. data/app/models/alchemy/ingredients/richtext.rb +57 -0
  85. data/app/models/alchemy/ingredients/select.rb +10 -0
  86. data/app/models/alchemy/ingredients/text.rb +17 -0
  87. data/app/models/alchemy/ingredients/video.rb +33 -0
  88. data/app/models/alchemy/language.rb +0 -11
  89. data/app/models/alchemy/page.rb +76 -33
  90. data/app/models/alchemy/page/fixed_attributes.rb +53 -51
  91. data/app/models/alchemy/page/page_elements.rb +186 -205
  92. data/app/models/alchemy/page/page_naming.rb +66 -64
  93. data/app/models/alchemy/page/page_natures.rb +139 -142
  94. data/app/models/alchemy/page/page_scopes.rb +117 -102
  95. data/app/models/alchemy/page/publisher.rb +50 -0
  96. data/app/models/alchemy/page/url_path.rb +1 -1
  97. data/app/models/alchemy/page_version.rb +58 -0
  98. data/app/models/alchemy/picture.rb +18 -40
  99. data/app/models/alchemy/picture/calculations.rb +2 -8
  100. data/app/models/alchemy/picture/preprocessor.rb +2 -0
  101. data/app/models/alchemy/picture/transformations.rb +24 -96
  102. data/app/models/concerns/alchemy/picture_thumbnails.rb +181 -0
  103. data/app/models/concerns/alchemy/touch_elements.rb +2 -2
  104. data/app/presenters/alchemy/picture_view.rb +88 -0
  105. data/app/serializers/alchemy/element_serializer.rb +5 -0
  106. data/app/serializers/alchemy/page_tree_serializer.rb +3 -2
  107. data/app/services/alchemy/delete_elements.rb +44 -0
  108. data/app/services/alchemy/duplicate_element.rb +56 -0
  109. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +2 -3
  110. data/app/views/alchemy/admin/attachments/_file_to_assign.html.erb +3 -3
  111. data/app/views/alchemy/admin/attachments/assign.js.erb +11 -0
  112. data/app/views/alchemy/admin/attachments/index.html.erb +2 -3
  113. data/app/views/alchemy/admin/crop.html.erb +36 -0
  114. data/app/views/alchemy/admin/elements/_element.html.erb +14 -10
  115. data/app/views/alchemy/admin/elements/{_element_footer.html.erb → _footer.html.erb} +0 -0
  116. data/app/views/alchemy/admin/elements/{_new_element_form.html.erb → _form.html.erb} +1 -1
  117. data/app/views/alchemy/admin/elements/{_element_header.html.erb → _header.html.erb} +1 -1
  118. data/app/views/alchemy/admin/elements/{_element_toolbar.html.erb → _toolbar.html.erb} +5 -6
  119. data/app/views/alchemy/admin/elements/create.js.erb +1 -1
  120. data/app/views/alchemy/admin/elements/{trash.js.erb → destroy.js.erb} +2 -6
  121. data/app/views/alchemy/admin/elements/fold.js.erb +2 -2
  122. data/app/views/alchemy/admin/elements/new.html.erb +3 -3
  123. data/app/views/alchemy/admin/elements/order.js.erb +0 -17
  124. data/app/views/alchemy/admin/elements/update.js.erb +3 -2
  125. data/app/views/alchemy/admin/essence_audios/edit.html.erb +7 -0
  126. data/app/views/alchemy/admin/essence_pictures/update.js.erb +0 -1
  127. data/app/views/alchemy/admin/essence_videos/edit.html.erb +11 -0
  128. data/app/views/alchemy/admin/ingredients/_audio_fields.html.erb +4 -0
  129. data/app/views/alchemy/admin/ingredients/_file_fields.html.erb +18 -0
  130. data/app/views/alchemy/admin/ingredients/_picture_fields.html.erb +25 -0
  131. data/app/views/alchemy/admin/ingredients/_video_fields.html.erb +8 -0
  132. data/app/views/alchemy/admin/ingredients/edit.html.erb +4 -0
  133. data/app/views/alchemy/admin/layoutpages/edit.html.erb +0 -5
  134. data/app/views/alchemy/admin/nodes/_node.html.erb +2 -2
  135. data/app/views/alchemy/admin/pages/_anchor_link.html.erb +1 -1
  136. data/app/views/alchemy/admin/pages/_external_link.html.erb +1 -1
  137. data/app/views/alchemy/admin/pages/_file_link.html.erb +1 -1
  138. data/app/views/alchemy/admin/pages/_form.html.erb +0 -6
  139. data/app/views/alchemy/admin/pages/_internal_link.html.erb +1 -1
  140. data/app/views/alchemy/admin/pages/_tinymce_custom_config.html.erb +5 -2
  141. data/app/views/alchemy/admin/pages/_toolbar.html.erb +1 -1
  142. data/app/views/alchemy/admin/pages/edit.html.erb +36 -24
  143. data/app/views/alchemy/admin/pages/index.html.erb +2 -9
  144. data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +2 -4
  145. data/app/views/alchemy/admin/partials/_routes.html.erb +7 -11
  146. data/app/views/alchemy/admin/partials/_search_form.html.erb +9 -0
  147. data/app/views/alchemy/admin/pictures/_archive.html.erb +1 -1
  148. data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +1 -1
  149. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +5 -7
  150. data/app/views/alchemy/admin/pictures/_infos.html.erb +0 -1
  151. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +4 -4
  152. data/app/views/alchemy/admin/pictures/assign.js.erb +10 -0
  153. data/app/views/alchemy/admin/pictures/index.html.erb +8 -3
  154. data/app/views/alchemy/admin/resources/_filter.html.erb +12 -0
  155. data/app/views/alchemy/admin/resources/_filter_bar.html.erb +14 -17
  156. data/app/views/alchemy/admin/resources/_form.html.erb +3 -0
  157. data/app/views/alchemy/admin/resources/_table_header.html.erb +15 -0
  158. data/app/views/alchemy/admin/resources/index.html.erb +3 -11
  159. data/app/views/alchemy/essences/_essence_audio_editor.html.erb +4 -0
  160. data/app/views/alchemy/essences/_essence_audio_view.html.erb +15 -0
  161. data/app/views/alchemy/essences/_essence_file_editor.html.erb +15 -6
  162. data/app/views/alchemy/essences/_essence_headline_editor.html.erb +36 -0
  163. data/app/views/alchemy/essences/_essence_headline_view.html.erb +10 -0
  164. data/app/views/alchemy/essences/_essence_link_editor.html.erb +8 -4
  165. data/app/views/alchemy/essences/_essence_picture_editor.html.erb +27 -12
  166. data/app/views/alchemy/essences/_essence_picture_view.html.erb +3 -3
  167. data/app/views/alchemy/essences/_essence_text_editor.html.erb +12 -4
  168. data/app/views/alchemy/essences/_essence_video_editor.html.erb +4 -0
  169. data/app/views/alchemy/essences/_essence_video_view.html.erb +18 -0
  170. data/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb +21 -16
  171. data/app/views/alchemy/essences/shared/_linkable_essence_tools.html.erb +2 -2
  172. data/app/views/alchemy/ingredients/_audio_editor.html.erb +5 -0
  173. data/app/views/alchemy/ingredients/_audio_view.html.erb +14 -0
  174. data/app/views/alchemy/ingredients/_boolean_editor.html.erb +11 -0
  175. data/app/views/alchemy/ingredients/_boolean_view.html.erb +1 -0
  176. data/app/views/alchemy/ingredients/_datetime_editor.html.erb +17 -0
  177. data/app/views/alchemy/ingredients/_datetime_view.html.erb +9 -0
  178. data/app/views/alchemy/ingredients/_file_editor.html.erb +52 -0
  179. data/app/views/alchemy/ingredients/_file_view.html.erb +17 -0
  180. data/app/views/alchemy/ingredients/_headline_editor.html.erb +30 -0
  181. data/app/views/alchemy/ingredients/_headline_view.html.erb +9 -0
  182. data/app/views/alchemy/ingredients/_html_editor.html.erb +8 -0
  183. data/app/views/alchemy/ingredients/_html_view.html.erb +1 -0
  184. data/app/views/alchemy/ingredients/_link_editor.html.erb +24 -0
  185. data/app/views/alchemy/ingredients/_link_view.html.erb +9 -0
  186. data/app/views/alchemy/ingredients/_node_editor.html.erb +26 -0
  187. data/app/views/alchemy/ingredients/_node_view.html.erb +1 -0
  188. data/app/views/alchemy/ingredients/_page_editor.html.erb +25 -0
  189. data/app/views/alchemy/ingredients/_page_view.html.erb +4 -0
  190. data/app/views/alchemy/ingredients/_picture_editor.html.erb +60 -0
  191. data/app/views/alchemy/ingredients/_picture_view.html.erb +5 -0
  192. data/app/views/alchemy/ingredients/_richtext_editor.html.erb +12 -0
  193. data/app/views/alchemy/ingredients/_richtext_view.html.erb +3 -0
  194. data/app/views/alchemy/ingredients/_select_editor.html.erb +30 -0
  195. data/app/views/alchemy/ingredients/_select_view.html.erb +1 -0
  196. data/app/views/alchemy/ingredients/_text_editor.html.erb +20 -0
  197. data/app/views/alchemy/ingredients/_text_view.html.erb +16 -0
  198. data/app/views/alchemy/ingredients/_video_editor.html.erb +5 -0
  199. data/app/views/alchemy/ingredients/_video_view.html.erb +17 -0
  200. data/app/views/alchemy/ingredients/shared/_link_tools.html.erb +20 -0
  201. data/app/views/alchemy/ingredients/shared/_picture_tools.html.erb +57 -0
  202. data/config/brakeman.ignore +66 -159
  203. data/config/initializers/dragonfly.rb +10 -0
  204. data/config/locales/alchemy.en.yml +108 -64
  205. data/config/routes.rb +17 -22
  206. data/db/migrate/20201207131309_create_page_versions.rb +19 -0
  207. data/db/migrate/20201207135820_add_page_version_id_to_alchemy_elements.rb +76 -0
  208. data/db/migrate/20210205143548_rename_public_on_and_public_until_on_alchemy_pages.rb +10 -0
  209. data/db/migrate/20210326105046_add_sanitized_body_to_alchemy_essence_richtexts.rb +7 -0
  210. data/db/migrate/20210406093436_add_alchemy_essence_headlines.rb +12 -0
  211. data/db/migrate/20210506135919_create_essence_audios.rb +19 -0
  212. data/db/migrate/20210506140258_create_essence_videos.rb +23 -0
  213. data/db/migrate/20210508091432_create_alchemy_ingredients.rb +22 -0
  214. data/lib/alchemy/admin/preview_url.rb +2 -0
  215. data/lib/alchemy/deprecation.rb +1 -1
  216. data/lib/alchemy/dragonfly/processors/auto_orient.rb +18 -0
  217. data/lib/alchemy/dragonfly/processors/crop_resize.rb +35 -0
  218. data/lib/alchemy/elements_finder.rb +14 -60
  219. data/lib/alchemy/essence.rb +1 -2
  220. data/lib/alchemy/forms/builder.rb +21 -1
  221. data/lib/alchemy/hints.rb +8 -4
  222. data/lib/alchemy/page_layout.rb +0 -13
  223. data/lib/alchemy/permissions.rb +30 -29
  224. data/lib/alchemy/resource.rb +13 -3
  225. data/lib/alchemy/resource_filter.rb +40 -0
  226. data/lib/alchemy/resources_helper.rb +1 -16
  227. data/lib/alchemy/tasks/tidy.rb +29 -0
  228. data/lib/alchemy/test_support.rb +2 -11
  229. data/lib/alchemy/test_support/essence_shared_examples.rb +0 -1
  230. data/lib/alchemy/test_support/factories/element_factory.rb +8 -8
  231. data/lib/alchemy/test_support/factories/essence_audio_factory.rb +7 -0
  232. data/lib/alchemy/test_support/factories/essence_video_factory.rb +7 -0
  233. data/lib/alchemy/test_support/factories/ingredient_factory.rb +25 -0
  234. data/lib/alchemy/test_support/factories/page_factory.rb +20 -1
  235. data/lib/alchemy/test_support/factories/page_version_factory.rb +23 -0
  236. data/lib/alchemy/test_support/having_crop_action_examples.rb +170 -0
  237. data/lib/alchemy/test_support/having_picture_thumbnails_examples.rb +646 -0
  238. data/lib/alchemy/test_support/shared_ingredient_editor_examples.rb +21 -0
  239. data/lib/alchemy/test_support/shared_ingredient_examples.rb +75 -0
  240. data/lib/alchemy/tinymce.rb +17 -0
  241. data/lib/alchemy/upgrader/six_point_zero.rb +21 -0
  242. data/lib/alchemy/upgrader/tasks/add_page_versions.rb +33 -0
  243. data/lib/alchemy/upgrader/tasks/ingredients_migrator.rb +62 -0
  244. data/lib/alchemy/version.rb +1 -1
  245. data/lib/alchemy_cms.rb +1 -0
  246. data/lib/generators/alchemy/elements/elements_generator.rb +1 -0
  247. data/lib/generators/alchemy/elements/templates/view.html.erb +9 -0
  248. data/lib/generators/alchemy/elements/templates/view.html.haml +9 -0
  249. data/lib/generators/alchemy/elements/templates/view.html.slim +9 -0
  250. data/lib/generators/alchemy/ingredient/ingredient_generator.rb +38 -0
  251. data/lib/generators/alchemy/ingredient/templates/editor.html.erb +14 -0
  252. data/lib/generators/alchemy/ingredient/templates/model.rb.tt +13 -0
  253. data/lib/generators/alchemy/ingredient/templates/view.html.erb +1 -0
  254. data/lib/generators/alchemy/install/templates/dragonfly.rb.tt +1 -1
  255. data/lib/generators/alchemy/menus/templates/node.html.erb +1 -1
  256. data/lib/generators/alchemy/menus/templates/node.html.haml +1 -1
  257. data/lib/generators/alchemy/menus/templates/node.html.slim +1 -1
  258. data/lib/generators/alchemy/menus/templates/wrapper.html.erb +1 -1
  259. data/lib/generators/alchemy/menus/templates/wrapper.html.haml +1 -1
  260. data/lib/generators/alchemy/menus/templates/wrapper.html.slim +1 -1
  261. data/lib/tasks/alchemy/thumbnails.rake +4 -2
  262. data/lib/tasks/alchemy/tidy.rake +12 -0
  263. data/lib/tasks/alchemy/upgrade.rake +26 -0
  264. data/package.json +3 -2
  265. data/package/admin.js +11 -1
  266. data/package/src/__tests__/i18n.spec.js +23 -0
  267. data/package/src/file_editors.js +28 -0
  268. data/package/src/i18n.js +1 -3
  269. data/package/src/image_cropper.js +103 -0
  270. data/package/src/image_loader.js +58 -0
  271. data/package/src/node_tree.js +5 -5
  272. data/package/src/picture_editors.js +169 -0
  273. data/package/src/utils/__tests__/ajax.spec.js +20 -12
  274. data/package/src/utils/ajax.js +8 -3
  275. data/vendor/assets/javascripts/jquery_plugins/jquery.Jcrop.min.js +3 -18
  276. data/vendor/assets/stylesheets/jquery.Jcrop.min.scss +2 -28
  277. metadata +292 -55
  278. data/app/assets/javascripts/alchemy/alchemy.image_cropper.js.coffee +0 -44
  279. data/app/assets/javascripts/alchemy/alchemy.trash_window.js.coffee +0 -30
  280. data/app/assets/stylesheets/alchemy/trash.scss +0 -8
  281. data/app/controllers/alchemy/admin/trash_controller.rb +0 -44
  282. data/app/views/alchemy/admin/attachments/_filter_bar.html.erb +0 -29
  283. data/app/views/alchemy/admin/essence_files/assign.js.erb +0 -3
  284. data/app/views/alchemy/admin/essence_pictures/assign.js.erb +0 -4
  285. data/app/views/alchemy/admin/essence_pictures/crop.html.erb +0 -48
  286. data/app/views/alchemy/admin/pictures/_filter_bar.html.erb +0 -30
  287. data/app/views/alchemy/admin/trash/clear.js.erb +0 -4
  288. data/app/views/alchemy/admin/trash/index.html.erb +0 -31
  289. data/lib/alchemy/test_support/factories.rb +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 80ac30c5b218ae66fdfc00afbaf2185829f52e94b32b76c4b6af8a19c5ec2ac8
4
- data.tar.gz: 3da61ba5c95787cd3524ffad4e36f774b238fcf0456732a0cf69dac24dcbf0e7
3
+ metadata.gz: c8fcd022eba5fdba4ce96cfe4971344ced0191b6d12d9cbd7bad923b07b7359a
4
+ data.tar.gz: 9dfbf5f590c6c2e8d562bf81daeb8faf3a1358f5f46aeb8857adef4d48fd6181
5
5
  SHA512:
6
- metadata.gz: 690da4b19ddbc96671c403bb616da433c37b35eeb0eee142de4f1ebe957f4f7ad9cd0da1e8e8e9e37cb773fbe1aec858166089673921b1ff463bc1dd0028bf91
7
- data.tar.gz: 9f937fdb379c6df8c64976ec52ae4aef56bf597533e1d3ece0c987ef4604d91dfdb75eb246ce9aa68338d1a1814941f53d982093b378ab8089b3026f8997582b
6
+ metadata.gz: 82cc3e7f0c3b0e8fb8a4d2219d8237d66db02275b878951be1fcc0d12f9a7fdd750415ad45b5af03a05e6abce298c718551541dc80774c689b395d758d39d942
7
+ data.tar.gz: 665d8a15204e872ab41867e1466c4611fec7c46f83d862669c89d3e5c3038f30fa1dfb45fb56d227a71b92c945a9c45de9a5d887bbb726af9d49b5c87121d2c9
@@ -9,12 +9,11 @@ jobs:
9
9
  fail-fast: false
10
10
  matrix:
11
11
  rails:
12
- - '5.2'
13
12
  - '6.0'
14
13
  ruby:
15
- - '2.5.x'
16
- - '2.6.x'
17
- - '2.7.x'
14
+ - '2.6.6'
15
+ - '2.7.2'
16
+ - '3.0.0'
18
17
  database:
19
18
  - mysql
20
19
  - postgresql
@@ -46,9 +45,10 @@ jobs:
46
45
  steps:
47
46
  - uses: actions/checkout@v2.3.4
48
47
  - name: Set up Ruby
49
- uses: actions/setup-ruby@v1.1.2
48
+ uses: ruby/setup-ruby@v1
50
49
  with:
51
50
  ruby-version: ${{ matrix.ruby }}
51
+ bundler-cache: true
52
52
  - name: Restore apt cache
53
53
  id: apt-cache
54
54
  uses: actions/cache@v2.1.3
@@ -74,18 +74,10 @@ jobs:
74
74
  - name: Install bundler
75
75
  run: |
76
76
  gem install bundler
77
- - name: Restore Ruby Gems cache
78
- id: cache
79
- uses: actions/cache@v2.1.3
80
- with:
81
- path: vendor/bundle
82
- key: ${{ runner.os }}-bundle-${{ matrix.ruby }}-${{ matrix.rails }}-${{ matrix.database }}-${{ hashFiles('**/Gemfile') }}
83
- restore-keys: |
84
- ${{ runner.os }}-bundle-
85
77
  - name: Install bundle
86
78
  timeout-minutes: 10
87
79
  run: |
88
- bundle install --jobs 4 --retry 3 --path vendor/bundle
80
+ bundle install --jobs 4 --retry 3
89
81
  - name: Restore node modules cache
90
82
  id: yarn-cache
91
83
  uses: actions/cache@v2.1.3
data/.gitignore CHANGED
@@ -10,7 +10,6 @@ tmp
10
10
  log
11
11
  .sass-cache
12
12
  spec/dummy/.browserslistrc
13
- spec/dummy/app/assets/stylesheets/alchemy/
14
13
  spec/dummy/app/javascript/
15
14
  spec/dummy/babel.config.js
16
15
  spec/dummy/bin/webpack
data/.hound.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  rubocop:
2
2
  config_file: .rubocop.yml
3
- version: 0.80.0
3
+ version: 1.5.2
4
4
  scss:
5
5
  enabled: false
6
6
  coffeescript:
data/.rubocop.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  # Relaxed.Ruby.Style
2
2
 
3
3
  AllCops:
4
- TargetRubyVersion: 2.4
4
+ TargetRubyVersion: 2.5
5
5
  Exclude:
6
6
  - 'bin/rspec'
7
7
  - 'vendor/**/*'
@@ -100,9 +100,6 @@ Layout/MultilineMethodCallBraceLayout:
100
100
  Layout/MultilineMethodCallIndentation:
101
101
  Enabled: false
102
102
 
103
- Layout/MultilineOperationIndentation:
104
- EnforcedStyle: indented
105
-
106
103
  Layout/SpaceBeforeBlockBraces:
107
104
  Enabled: false
108
105
  StyleGuide: http://relaxed.ruby.style/#stylespacebeforeblockbraces
@@ -309,3 +306,48 @@ Naming/PredicateName:
309
306
 
310
307
  Naming/VariableNumber:
311
308
  Enabled: false
309
+
310
+ Lint/DuplicateBranch: # (new in 1.3)
311
+ Enabled: false
312
+
313
+ Lint/DuplicateRegexpCharacterClassElement: # (new in 1.1)
314
+ Enabled: false
315
+
316
+ Lint/EmptyBlock: # (new in 1.1)
317
+ Enabled: false
318
+
319
+ Lint/EmptyClass: # (new in 1.3)
320
+ Enabled: false
321
+
322
+ Lint/NoReturnInBeginEndBlocks: # (new in 1.2)
323
+ Enabled: false
324
+
325
+ Lint/ToEnumArguments: # (new in 1.1)
326
+ Enabled: false
327
+
328
+ Lint/UnexpectedBlockArity: # (new in 1.5)
329
+ Enabled: false
330
+
331
+ Lint/UnmodifiedReduceAccumulator: # (new in 1.1)
332
+ Enabled: false
333
+
334
+ Style/ArgumentsForwarding: # (new in 1.1)
335
+ Enabled: false
336
+
337
+ Style/CollectionCompact: # (new in 1.2)
338
+ Enabled: false
339
+
340
+ Style/DocumentDynamicEvalDefinition: # (new in 1.1)
341
+ Enabled: false
342
+
343
+ Style/NegatedIfElseCondition: # (new in 1.2)
344
+ Enabled: false
345
+
346
+ Style/NilLambda: # (new in 1.3)
347
+ Enabled: false
348
+
349
+ Style/RedundantArgument: # (new in 1.4)
350
+ Enabled: false
351
+
352
+ Style/SwapValues: # (new in 1.1)
353
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,13 +1,122 @@
1
- ## 5.2.0 (2021-05-06)
1
+ ## 6.0.0.b3 (2021-08-12)
2
2
 
3
- - Backport #2049 to 5.2 [#2086](https://github.com/AlchemyCMS/alchemy_cms/pull/2086) ([rickythefox](https://github.com/rickythefox))
4
- - hotfix and deprecate page_active? helper [#2073](https://github.com/AlchemyCMS/alchemy_cms/pull/2073) ([robinboening](https://github.com/robinboening))
3
+ ### Fixes
5
4
 
6
- ## 5.2.0.rc1 (2021-02-17)
5
+ - Simplify ingredient creation [#2171](https://github.com/AlchemyCMS/alchemy_cms/pull/2171) ([tvdeyen](https://github.com/tvdeyen))
6
+ - Return ingredients value if element asked for ingredient [#2170](https://github.com/AlchemyCMS/alchemy_cms/pull/2170) ([tvdeyen](https://github.com/tvdeyen))
7
+ - Fix ingredient form field DOM ids [#2167](https://github.com/AlchemyCMS/alchemy_cms/pull/2167) ([tvdeyen](https://github.com/tvdeyen))
8
+ - Ensure resource table ends before the filter/tag sidebar [#2166](https://github.com/AlchemyCMS/alchemy_cms/pull/2166) ([robinboening](https://github.com/robinboening))
9
+ - Return fully namespaced ingredient constant [#2164](https://github.com/AlchemyCMS/alchemy_cms/pull/2164) ([tvdeyen](https://github.com/tvdeyen))
10
+ - (Re)-init Tinymce for elements with ingredients [#2163](https://github.com/AlchemyCMS/alchemy_cms/pull/2163) ([tvdeyen](https://github.com/tvdeyen))
11
+
12
+ ## 6.0.0.b2 (2021-08-05)
13
+
14
+ ### Features
15
+
16
+ - Add datepicker simple form input [#2162](https://github.com/AlchemyCMS/alchemy_cms/pull/2162) ([tvdeyen](https://github.com/tvdeyen))
17
+ - Feature flexible resource filters [#2091](https://github.com/AlchemyCMS/alchemy_cms/pull/2091) ([robinboening](https://github.com/robinboening))
7
18
 
8
19
  ### Changes
9
20
 
10
- - Change Factory loading mechanism to FactoryBots supported mechanism [#2030](https://github.com/AlchemyCMS/alchemy_cms/pull/2030) ([mamhoff](https://github.com/mamhoff))
21
+ - Require alchemy/version [#2159](https://github.com/AlchemyCMS/alchemy_cms/pull/2159) ([tvdeyen](https://github.com/tvdeyen))
22
+ - Make ingredient examples usable without elements.yml [#2158](https://github.com/AlchemyCMS/alchemy_cms/pull/2158) ([tvdeyen](https://github.com/tvdeyen))
23
+ - Fix ingredient migrator (again) [#2155](https://github.com/AlchemyCMS/alchemy_cms/pull/2155) ([tvdeyen](https://github.com/tvdeyen))
24
+ - Respect additional essence attributes during ingredients migration [#2154](https://github.com/AlchemyCMS/alchemy_cms/pull/2154) ([tvdeyen](https://github.com/tvdeyen))
25
+ - Improve cache key defaults for menus [#2153](https://github.com/AlchemyCMS/alchemy_cms/pull/2153) ([oneiros](https://github.com/oneiros))
26
+ - Make element preview text work with ingredients [#2152](https://github.com/AlchemyCMS/alchemy_cms/pull/2152) ([tvdeyen](https://github.com/tvdeyen))
27
+ - Do not leak all records for guest users in API controllers [#2145](https://github.com/AlchemyCMS/alchemy_cms/pull/2145) ([tvdeyen](https://github.com/tvdeyen))
28
+
29
+ ### Misc
30
+
31
+ - [ruby - main] Upgrade shoulda-matchers to version 5.0.0 [#2161](https://github.com/AlchemyCMS/alchemy_cms/pull/2161) ([depfu](https://github.com/apps/depfu))
32
+
33
+ ## 6.0.0.b1 (2021-07-05)
34
+
35
+ ### Features
36
+
37
+ - Import essence video and audio from extension [#2089](https://github.com/AlchemyCMS/alchemy_cms/pull/2089) ([tvdeyen](https://github.com/tvdeyen))
38
+ - Introduce ingredients as new content structure [#2061](https://github.com/AlchemyCMS/alchemy_cms/pull/2061) ([tvdeyen](https://github.com/tvdeyen))
39
+ - Alchemy essence headline [#2060](https://github.com/AlchemyCMS/alchemy_cms/pull/2060) ([mamhoff](https://github.com/mamhoff))
40
+ - Add Page Versions [#2022](https://github.com/AlchemyCMS/alchemy_cms/pull/2022) ([tvdeyen](https://github.com/tvdeyen))
41
+
42
+ ### Changes
43
+
44
+ - Link dialog changes can be submitted by enter [#2144](https://github.com/AlchemyCMS/alchemy_cms/pull/2144) ([tvdeyen](https://github.com/tvdeyen))
45
+ - Extract Thumbnails and CropAction concerns [#2141](https://github.com/AlchemyCMS/alchemy_cms/pull/2141) ([tvdeyen](https://github.com/tvdeyen))
46
+ - generate picture thumbnails only for pictures with convertible format [#2129](https://github.com/AlchemyCMS/alchemy_cms/pull/2129) ([afdev82](https://github.com/afdev82))
47
+ - Only crop image if cropping is enabled [#2143](https://github.com/AlchemyCMS/alchemy_cms/pull/2143) ([tvdeyen](https://github.com/tvdeyen))
48
+ - expose translations in global Alchemy js object, #2113 [#2114](https://github.com/AlchemyCMS/alchemy_cms/pull/2114) ([afdev82](https://github.com/afdev82))
49
+ - Only return pages for current site in API [#2111](https://github.com/AlchemyCMS/alchemy_cms/pull/2111) ([tvdeyen](https://github.com/tvdeyen))
50
+ - Add crop_resize Dragonfly processor [#2109](https://github.com/AlchemyCMS/alchemy_cms/pull/2109) ([tvdeyen](https://github.com/tvdeyen))
51
+ - Auto-orient images based on their EXIF data [#2107](https://github.com/AlchemyCMS/alchemy_cms/pull/2107) ([tvdeyen](https://github.com/tvdeyen))
52
+ - Allow flatten as argument for Dragonfly encode [#2106](https://github.com/AlchemyCMS/alchemy_cms/pull/2106) ([tvdeyen](https://github.com/tvdeyen))
53
+ - Deprecate image format methods [#2103](https://github.com/AlchemyCMS/alchemy_cms/pull/2103) ([tvdeyen](https://github.com/tvdeyen))
54
+ - Do not attempt to generate thumbs for svg files (fixes upload of svg files) [#2090](https://github.com/AlchemyCMS/alchemy_cms/pull/2090) ([oneiros](https://github.com/oneiros))
55
+ - Trigger publish targets after page published [#2088](https://github.com/AlchemyCMS/alchemy_cms/pull/2088) ([tvdeyen](https://github.com/tvdeyen))
56
+ - Add collection option for resource relations [#2084](https://github.com/AlchemyCMS/alchemy_cms/pull/2084) ([robinboening](https://github.com/robinboening))
57
+ - Remove deprecated helper method page_active? [#2074](https://github.com/AlchemyCMS/alchemy_cms/pull/2074) ([robinboening](https://github.com/robinboening))
58
+ - Handle json requests in error handler [#2071](https://github.com/AlchemyCMS/alchemy_cms/pull/2071) ([tvdeyen](https://github.com/tvdeyen))
59
+ - Background page publishing [#2067](https://github.com/AlchemyCMS/alchemy_cms/pull/2067) ([tvdeyen](https://github.com/tvdeyen))
60
+ - Faster element duplication [#2066](https://github.com/AlchemyCMS/alchemy_cms/pull/2066) ([mamhoff](https://github.com/mamhoff))
61
+ - Parse params in ajax.get as query string [#2070](https://github.com/AlchemyCMS/alchemy_cms/pull/2070) ([tvdeyen](https://github.com/tvdeyen))
62
+ - Assign, crop and remove files and pictures client side [#2069](https://github.com/AlchemyCMS/alchemy_cms/pull/2069) ([tvdeyen](https://github.com/tvdeyen))
63
+ - Allow copying contents when they're not in the elements.yml [#2068](https://github.com/AlchemyCMS/alchemy_cms/pull/2068) ([mamhoff](https://github.com/mamhoff))
64
+ - Delete nested elements quickly [#2065](https://github.com/AlchemyCMS/alchemy_cms/pull/2065) ([mamhoff](https://github.com/mamhoff))
65
+ - Quickly delete elements when deleting a page version [#2064](https://github.com/AlchemyCMS/alchemy_cms/pull/2064) ([mamhoff](https://github.com/mamhoff))
66
+ - Fast element deletion [#2063](https://github.com/AlchemyCMS/alchemy_cms/pull/2063) ([mamhoff](https://github.com/mamhoff))
67
+ - Touch Elements only after update [#2062](https://github.com/AlchemyCMS/alchemy_cms/pull/2062) ([mamhoff](https://github.com/mamhoff))
68
+ - Convert "Visit page" button to "Link to new tab" [#2058](https://github.com/AlchemyCMS/alchemy_cms/pull/2058) ([mamhoff](https://github.com/mamhoff))
69
+ - Allow creating an EssenceRichtext without a content [#2057](https://github.com/AlchemyCMS/alchemy_cms/pull/2057) ([mamhoff](https://github.com/mamhoff))
70
+ - Allow instantiating a content on an unpersisted valid element [#2056](https://github.com/AlchemyCMS/alchemy_cms/pull/2056) ([mamhoff](https://github.com/mamhoff))
71
+ - Sanitized richtext body [#2055](https://github.com/AlchemyCMS/alchemy_cms/pull/2055) ([mamhoff](https://github.com/mamhoff))
72
+ - Only require the Rails gems we actually need [#2054](https://github.com/AlchemyCMS/alchemy_cms/pull/2054) ([tvdeyen](https://github.com/tvdeyen))
73
+ - Create new contents on demand [#2049](https://github.com/AlchemyCMS/alchemy_cms/pull/2049) ([tvdeyen](https://github.com/tvdeyen))
74
+ - Add Elements repository [#2039](https://github.com/AlchemyCMS/alchemy_cms/pull/2039) ([tvdeyen](https://github.com/tvdeyen))
75
+ - Render site layout with block [#2038](https://github.com/AlchemyCMS/alchemy_cms/pull/2038) ([henvo](https://github.com/henvo))
76
+ - Add namespace for Tree related routes [#2037](https://github.com/AlchemyCMS/alchemy_cms/pull/2037) ([dhiraj14](https://github.com/dhiraj14))
77
+ - Tidy Rake task to remove duplicate legacy URLs [#2036](https://github.com/AlchemyCMS/alchemy_cms/pull/2036) ([pelargir](https://github.com/pelargir))
78
+ - Change Factory loading mechanism to FactoryBots supported mechanism [#2029](https://github.com/AlchemyCMS/alchemy_cms/pull/2029) ([mamhoff](https://github.com/mamhoff))
79
+ - Add rake task to remove trashed elements [#2025](https://github.com/AlchemyCMS/alchemy_cms/pull/2025) ([tvdeyen](https://github.com/tvdeyen))
80
+ - Do not include unpublished pages in breadcrumb [#2020](https://github.com/AlchemyCMS/alchemy_cms/pull/2020) ([tvdeyen](https://github.com/tvdeyen))
81
+ - Respect Language public status for page public status [#2017](https://github.com/AlchemyCMS/alchemy_cms/pull/2017) ([tvdeyen](https://github.com/tvdeyen))
82
+ - Use at least Ruby 2.5 [#2014](https://github.com/AlchemyCMS/alchemy_cms/pull/2014) ([tvdeyen](https://github.com/tvdeyen))
83
+ - Drop Rails 5.2 support [#2013](https://github.com/AlchemyCMS/alchemy_cms/pull/2013) ([tvdeyen](https://github.com/tvdeyen))
84
+ - Remove page layout change of persisted pages [#1991](https://github.com/AlchemyCMS/alchemy_cms/pull/1991) ([tvdeyen](https://github.com/tvdeyen))
85
+ - Remove element trash [#1987](https://github.com/AlchemyCMS/alchemy_cms/pull/1987) ([tvdeyen](https://github.com/tvdeyen))
86
+ - Remove elements fallbacks [#1983](https://github.com/AlchemyCMS/alchemy_cms/pull/1983) ([tvdeyen](https://github.com/tvdeyen))
87
+
88
+ ### Misc
89
+
90
+ - Fixes i18n Jest specs [#2120](https://github.com/AlchemyCMS/alchemy_cms/pull/2120) ([tvdeyen](https://github.com/tvdeyen))
91
+ - Allow to update element without tags [#2150](https://github.com/AlchemyCMS/alchemy_cms/pull/2150) ([tvdeyen](https://github.com/tvdeyen))
92
+ - fix: call paging on jquery tabs only after initializing them [#2146](https://github.com/AlchemyCMS/alchemy_cms/pull/2146) ([robinboening](https://github.com/robinboening))
93
+ - Image cropper destroy [#2139](https://github.com/AlchemyCMS/alchemy_cms/pull/2139) ([tvdeyen](https://github.com/tvdeyen))
94
+ - Fix URL for dragonfly configuration reference [#2128](https://github.com/AlchemyCMS/alchemy_cms/pull/2128) ([afdev82](https://github.com/afdev82))
95
+ - Link dialog UI fixes [#2112](https://github.com/AlchemyCMS/alchemy_cms/pull/2112) ([tvdeyen](https://github.com/tvdeyen))
96
+ - [js] Upgrade babel-jest to version 27.0.1 [#2110](https://github.com/AlchemyCMS/alchemy_cms/pull/2110) ([depfu](https://github.com/apps/depfu))
97
+ - Fix node select height [#2102](https://github.com/AlchemyCMS/alchemy_cms/pull/2102) ([tvdeyen](https://github.com/tvdeyen))
98
+ - [ruby - main] Upgrade execjs to version 2.8.1 [#2100](https://github.com/AlchemyCMS/alchemy_cms/pull/2100) ([depfu](https://github.com/apps/depfu))
99
+ - Fix Essence Picture View (#2083) [#2099](https://github.com/AlchemyCMS/alchemy_cms/pull/2099) ([afdev82](https://github.com/afdev82))
100
+ - Pass crop parameter in default EssencePicture#picture_url_options [#2098](https://github.com/AlchemyCMS/alchemy_cms/pull/2098) ([mamhoff](https://github.com/mamhoff))
101
+ - [main] Fix execjs to 2.7.0 for developers and CI [#2095](https://github.com/AlchemyCMS/alchemy_cms/pull/2095) ([mamhoff](https://github.com/mamhoff))
102
+ - Fix alchemy:generate:thumbnails task [#2092](https://github.com/AlchemyCMS/alchemy_cms/pull/2092) ([afdev82](https://github.com/afdev82))
103
+ - Use symbols in polymorphic routes for resources [#2087](https://github.com/AlchemyCMS/alchemy_cms/pull/2087) ([tvdeyen](https://github.com/tvdeyen))
104
+ - Fix the height of node select [#2081](https://github.com/AlchemyCMS/alchemy_cms/pull/2081) ([tvdeyen](https://github.com/tvdeyen))
105
+ - Preview url fixes [#2079](https://github.com/AlchemyCMS/alchemy_cms/pull/2079) ([tvdeyen](https://github.com/tvdeyen))
106
+ - Use count over select.count in UrlPath class [#2078](https://github.com/AlchemyCMS/alchemy_cms/pull/2078) ([tvdeyen](https://github.com/tvdeyen))
107
+ - Use the fast DuplicateElement service in Page.copy [#2077](https://github.com/AlchemyCMS/alchemy_cms/pull/2077) ([tvdeyen](https://github.com/tvdeyen))
108
+ - Fix page versioning issues [#2076](https://github.com/AlchemyCMS/alchemy_cms/pull/2076) ([tvdeyen](https://github.com/tvdeyen))
109
+ - Fix add nested element with multiple nestable elements [#2052](https://github.com/AlchemyCMS/alchemy_cms/pull/2052) ([tvdeyen](https://github.com/tvdeyen))
110
+ - Destroy public version if public checkbox is unset [#2050](https://github.com/AlchemyCMS/alchemy_cms/pull/2050) ([tvdeyen](https://github.com/tvdeyen))
111
+ - Fixes paste element and create element with autogenerated nested elements [#2046](https://github.com/AlchemyCMS/alchemy_cms/pull/2046) ([tvdeyen](https://github.com/tvdeyen))
112
+ - Fix page re-publishing for page with nested elements [#2043](https://github.com/AlchemyCMS/alchemy_cms/pull/2043) ([tvdeyen](https://github.com/tvdeyen))
113
+ - Update rubocop config and stick version [#2042](https://github.com/AlchemyCMS/alchemy_cms/pull/2042) ([tvdeyen](https://github.com/tvdeyen))
114
+ - Fix factory loading [#2041](https://github.com/AlchemyCMS/alchemy_cms/pull/2041) ([tvdeyen](https://github.com/tvdeyen))
115
+ - Fix element re-ordering [#2028](https://github.com/AlchemyCMS/alchemy_cms/pull/2028) ([tvdeyen](https://github.com/tvdeyen))
116
+ - Fix typo in element destroy confirm notice [#2026](https://github.com/AlchemyCMS/alchemy_cms/pull/2026) ([tvdeyen](https://github.com/tvdeyen))
117
+ - Fix constants reloading in page and element concerns [#2024](https://github.com/AlchemyCMS/alchemy_cms/pull/2024) ([tvdeyen](https://github.com/tvdeyen))
118
+ - Fix delete element confirm dialog [#2023](https://github.com/AlchemyCMS/alchemy_cms/pull/2023) ([tvdeyen](https://github.com/tvdeyen))
119
+ - Build for Ruby 3 [#1990](https://github.com/AlchemyCMS/alchemy_cms/pull/1990) ([tvdeyen](https://github.com/tvdeyen))
11
120
 
12
121
  ## 5.2.0.b1 (2021-02-11)
13
122
 
data/Gemfile CHANGED
@@ -13,7 +13,14 @@ gem "mysql2", "~> 0.5.1" if ENV["DB"] == "mysql"
13
13
  gem "pg", "~> 1.0" if ENV["DB"] == "postgresql"
14
14
 
15
15
  group :development, :test do
16
+ # execjs 2.8 removes deprecation warnings but also breaks a number of dependent projects.
17
+ # in our case the culprit is `handlebars-assets`. The changes between 2.7.0 and 2.8.0 are
18
+ # minimal, but breaking.
19
+ gem "execjs", "= 2.8.1"
20
+
16
21
  if ENV["GITHUB_ACTIONS"]
22
+ # Necessary because GH Actions gem cache does not have this "Bundled with Ruby" gem installed
23
+ gem "rexml", "~> 3.2.4"
17
24
  gem "sassc", "~> 2.4.0" # https://github.com/sass/sassc-ruby/issues/146
18
25
  else
19
26
  gem "launchy"
@@ -22,7 +29,7 @@ group :development, :test do
22
29
  gem "yard"
23
30
  gem "redcarpet"
24
31
  gem "pry-byebug"
25
- gem "rubocop", "~> 1.9.0", require: false
32
+ gem "rubocop", "1.5.2", require: false
26
33
  gem "listen"
27
34
  gem "localeapp", "~> 3.0", require: false
28
35
  gem "dotenv", "~> 2.2"
data/README.md CHANGED
@@ -51,8 +51,9 @@ or visit the existing demo at https://alchemy-demo.herokuapp.com
51
51
 
52
52
  ## 🚂 Rails Version
53
53
 
54
- **This version of AlchemyCMS runs with Rails 5.2 and Rails 6.0**
54
+ **This version of AlchemyCMS runs with Rails 6.0**
55
55
 
56
+ * For a Rails 5.2 compatible version use the [`5.2-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/5.2-stable).
56
57
  * For a Rails 5.0 or 5.1 compatible version use the [`4.5-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/4.5-stable).
57
58
  * For a Rails 4.2 compatible version use the [`3.6-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/3.6-stable).
58
59
  * For a Rails 4.0/4.1 compatible version use the [`3.1-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/3.1-stable).
@@ -64,7 +65,9 @@ or visit the existing demo at https://alchemy-demo.herokuapp.com
64
65
 
65
66
  ## 💎 Ruby Version
66
67
 
67
- Alchemy runs with Ruby >= 2.3.0.
68
+ Alchemy runs with Ruby >= 2.5.0.
69
+
70
+ For a Ruby 2.4 compatible version use the [`5.2-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/5.2-stable).
68
71
 
69
72
  For a Ruby 2.2 compatible version use the [`4.1-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/4.1-stable).
70
73
 
data/alchemy_cms.gemspec CHANGED
@@ -1,80 +1,93 @@
1
- # coding: utf-8
2
- lib = File.expand_path('lib', __dir__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path("lib", __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'alchemy/version'
5
+ require "alchemy/version"
5
6
 
6
7
  Gem::Specification.new do |gem|
7
- gem.name = 'alchemy_cms'
8
- gem.version = Alchemy::VERSION
9
- gem.platform = Gem::Platform::RUBY
10
- gem.authors = ['Thomas von Deyen', 'Robin Boening', 'Marc Schettke', 'Hendrik Mans', 'Carsten Fregin', 'Martin Meyerhoff']
11
- gem.email = ['hello@alchemy-cms.com']
12
- gem.homepage = 'https://alchemy-cms.com'
13
- gem.summary = 'A powerful, userfriendly and flexible CMS for Rails'
14
- gem.description = 'Alchemy is a powerful, userfriendly and flexible Rails CMS.'
15
- gem.requirements << 'ImageMagick (libmagick), v6.6 or greater.'
16
- gem.required_ruby_version = '>= 2.3.0'
17
- gem.license = 'BSD New'
18
- gem.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^spec/}) }
19
- gem.require_paths = ['lib']
8
+ gem.name = "alchemy_cms"
9
+ gem.version = Alchemy::VERSION
10
+ gem.platform = Gem::Platform::RUBY
11
+ gem.authors = ["Thomas von Deyen", "Robin Boening", "Marc Schettke", "Hendrik Mans", "Carsten Fregin", "Martin Meyerhoff"]
12
+ gem.email = ["hello@alchemy-cms.com"]
13
+ gem.homepage = "https://alchemy-cms.com"
14
+ gem.summary = "A powerful, userfriendly and flexible CMS for Rails"
15
+ gem.description = "Alchemy is a powerful, userfriendly and flexible Rails CMS."
16
+ gem.requirements << "ImageMagick (libmagick), v6.6 or greater."
17
+ gem.required_ruby_version = ">= 2.5.0"
18
+ gem.license = "BSD New"
19
+ gem.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^spec/}) }
20
+ gem.require_paths = ["lib"]
21
+
22
+ %w[
23
+ actionmailer
24
+ actionpack
25
+ actionview
26
+ activejob
27
+ activemodel
28
+ activerecord
29
+ activesupport
30
+ railties
31
+ ].each do |rails_gem|
32
+ gem.add_runtime_dependency rails_gem, [">= 6.0", "< 6.1"]
33
+ end
20
34
 
21
- gem.add_runtime_dependency 'active_model_serializers', ['~> 0.10.0']
22
- gem.add_runtime_dependency 'acts_as_list', ['>= 0.3', '< 2']
23
- gem.add_runtime_dependency 'awesome_nested_set', ['~> 3.1']
24
- gem.add_runtime_dependency 'cancancan', ['>= 2.1', '< 4.0']
25
- gem.add_runtime_dependency 'coffee-rails', ['>= 4.0', '< 6.0']
26
- gem.add_runtime_dependency 'dragonfly', ['~> 1.0', '>= 1.0.7']
27
- gem.add_runtime_dependency 'dragonfly_svg', ['~> 0.0.4']
28
- gem.add_runtime_dependency 'gutentag', ['~> 2.2', '>= 2.2.1']
29
- gem.add_runtime_dependency 'handlebars_assets', ['~> 0.23']
30
- gem.add_runtime_dependency 'jquery-rails', ['~> 4.0', '>= 4.0.4']
31
- gem.add_runtime_dependency 'jquery-ui-rails', ['~> 6.0']
32
- gem.add_runtime_dependency 'kaminari', ['~> 1.1']
33
- gem.add_runtime_dependency 'originator', ['~> 3.1']
34
- gem.add_runtime_dependency 'non-stupid-digest-assets', ['~> 1.0.8']
35
- gem.add_runtime_dependency 'rails', ['>= 5.2.0', '< 6.1']
36
- gem.add_runtime_dependency 'ransack', ['>= 1.8', '< 2.4.2'] # 2.4.2 dropped Ruby 2.5 support in a patch level release
37
- gem.add_runtime_dependency 'request_store', ['~> 1.2']
38
- gem.add_runtime_dependency 'responders', ['>= 2.0', '< 4.0']
39
- gem.add_runtime_dependency 'sassc-rails', ['~> 2.1']
40
- gem.add_runtime_dependency 'simple_form', ['>= 4.0', '< 6']
41
- gem.add_runtime_dependency 'sprockets', ['>= 3.0', '< 5']
42
- gem.add_runtime_dependency 'turbolinks', ['>= 2.5']
43
- gem.add_runtime_dependency 'webpacker', ['>= 4.0', '< 6']
35
+ gem.add_runtime_dependency "active_model_serializers", ["~> 0.10.0"]
36
+ gem.add_runtime_dependency "acts_as_list", [">= 0.3", "< 2"]
37
+ gem.add_runtime_dependency "awesome_nested_set", ["~> 3.1"]
38
+ gem.add_runtime_dependency "cancancan", [">= 2.1", "< 4.0"]
39
+ gem.add_runtime_dependency "coffee-rails", [">= 4.0", "< 6.0"]
40
+ gem.add_runtime_dependency "dragonfly", ["~> 1.4"]
41
+ gem.add_runtime_dependency "dragonfly_svg", ["~> 0.0.4"]
42
+ gem.add_runtime_dependency "gutentag", ["~> 2.2", ">= 2.2.1"]
43
+ gem.add_runtime_dependency "handlebars_assets", ["~> 0.23"]
44
+ gem.add_runtime_dependency "jquery-rails", ["~> 4.0", ">= 4.0.4"]
45
+ gem.add_runtime_dependency "jquery-ui-rails", ["~> 6.0"]
46
+ gem.add_runtime_dependency "kaminari", ["~> 1.1"]
47
+ gem.add_runtime_dependency "originator", ["~> 3.1"]
48
+ gem.add_runtime_dependency "non-stupid-digest-assets", ["~> 1.0.8"]
49
+ gem.add_runtime_dependency "ransack", [">= 1.8", "< 2.4.2"] # 2.4.2 dropped Ruby 2.5 support in a patch level release
50
+ gem.add_runtime_dependency "request_store", ["~> 1.2"]
51
+ gem.add_runtime_dependency "responders", [">= 2.0", "< 4.0"]
52
+ gem.add_runtime_dependency "sassc-rails", ["~> 2.1"]
53
+ gem.add_runtime_dependency "simple_form", [">= 4.0", "< 6"]
54
+ gem.add_runtime_dependency "sprockets", [">= 3.0", "< 5"]
55
+ gem.add_runtime_dependency "turbolinks", [">= 2.5"]
56
+ gem.add_runtime_dependency "webpacker", [">= 4.0", "< 6"]
44
57
 
45
- gem.add_development_dependency 'capybara', ['~> 3.0']
46
- gem.add_development_dependency 'capybara-screenshot', ['~> 1.0']
47
- gem.add_development_dependency 'factory_bot_rails', ['~> 6.0']
48
- gem.add_development_dependency 'puma', ['~> 5.0']
49
- gem.add_development_dependency 'rails-controller-testing', ['~> 1.0']
50
- gem.add_development_dependency 'rspec-activemodel-mocks', ['~> 1.0']
51
- gem.add_development_dependency 'rspec-rails', ['>= 4.0.0.beta2']
52
- gem.add_development_dependency 'simplecov', ['~> 0.20']
53
- gem.add_development_dependency 'webdrivers', ['~> 4.0']
54
- gem.add_development_dependency 'webmock', ['~> 3.3']
55
- gem.add_development_dependency 'shoulda-matchers', ['~> 4.0']
56
- gem.add_development_dependency 'timecop', ['~> 0.9']
58
+ gem.add_development_dependency "capybara", ["~> 3.0"]
59
+ gem.add_development_dependency "capybara-screenshot", ["~> 1.0"]
60
+ gem.add_development_dependency "factory_bot_rails", ["~> 6.0"]
61
+ gem.add_development_dependency "puma", ["~> 5.0"]
62
+ gem.add_development_dependency "rails-controller-testing", ["~> 1.0"]
63
+ gem.add_development_dependency "rspec-activemodel-mocks", ["~> 1.0"]
64
+ gem.add_development_dependency "rspec-rails", [">= 4.0.0.beta2"]
65
+ gem.add_development_dependency "simplecov", ["~> 0.20"]
66
+ gem.add_development_dependency "webdrivers", ["~> 4.0"]
67
+ gem.add_development_dependency "webmock", ["~> 3.3"]
68
+ gem.add_development_dependency "shoulda-matchers", ["~> 5.0"]
69
+ gem.add_development_dependency "timecop", ["~> 0.9"]
57
70
 
58
- gem.post_install_message = <<-MSG
59
- -------------------------------------------------------------
60
- Thank you for installing Alchemy CMS
61
- -------------------------------------------------------------
71
+ gem.post_install_message = <<~MSG
72
+ -------------------------------------------------------------
73
+ Thank you for installing Alchemy CMS
74
+ -------------------------------------------------------------
62
75
 
63
- - Complete the installation in an existing Rails application:
76
+ - Complete the installation in an existing Rails application:
64
77
 
65
- $ bin/rake alchemy:install
78
+ $ bin/rake alchemy:install
66
79
 
67
- - Complete the upgrade of an existing Alchemy installation:
80
+ - Complete the upgrade of an existing Alchemy installation:
68
81
 
69
- $ bin/rake alchemy:upgrade
82
+ $ bin/rake alchemy:upgrade
70
83
 
71
- and follow the onscreen instructions.
84
+ and follow the onscreen instructions.
72
85
 
73
- Need help? Try:
86
+ Need help? Try:
74
87
 
75
- * https://stackoverflow.com/questions/tagged/alchemy-cms
76
- * https://slackin.alchemy-cms.com
77
- -------------------------------------------------------------
88
+ * https://stackoverflow.com/questions/tagged/alchemy-cms
89
+ * https://slackin.alchemy-cms.com
90
+ -------------------------------------------------------------
78
91
 
79
- MSG
92
+ MSG
80
93
  end