alchemy_cms 4.2.0.rc1 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +4 -0
- data/.rubocop.yml +4 -0
- data/CHANGELOG.md +28 -3
- data/Gemfile +1 -1
- data/README.md +1 -1
- data/alchemy_cms.gemspec +5 -6
- data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +3 -3
- data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +1 -1
- data/app/assets/stylesheets/alchemy/buttons.scss +15 -2
- data/app/assets/stylesheets/alchemy/dashboard.scss +2 -0
- data/app/assets/stylesheets/alchemy/elements.scss +129 -127
- data/app/assets/stylesheets/alchemy/frame.scss +9 -29
- data/app/assets/stylesheets/alchemy/navigation.scss +30 -6
- data/app/assets/stylesheets/alchemy/preview_window.scss +4 -0
- data/app/assets/stylesheets/alchemy/spinner.scss +1 -1
- data/app/controllers/alchemy/pages_controller.rb +9 -4
- data/app/helpers/alchemy/base_helper.rb +3 -4
- data/app/models/alchemy/element.rb +1 -1
- data/app/models/alchemy/page/page_scopes.rb +1 -1
- data/app/views/alchemy/admin/dashboard/index.html.erb +1 -1
- data/app/views/alchemy/admin/dashboard/info.html.erb +23 -22
- data/app/views/alchemy/admin/pages/edit.html.erb +10 -10
- data/app/views/alchemy/admin/resources/_form.html.erb +0 -8
- data/app/views/alchemy/admin/resources/_table_header.html.erb +2 -1
- data/app/views/alchemy/essences/_essence_select_editor.html.erb +1 -1
- data/config/locales/alchemy.en.yml +6 -1
- data/lib/alchemy/on_page_layout.rb +1 -1
- data/lib/alchemy/permissions.rb +5 -2
- data/lib/alchemy/resources_helper.rb +12 -10
- data/lib/alchemy/shell.rb +11 -3
- data/lib/alchemy/test_support/factories.rb +3 -1
- data/lib/alchemy/test_support/factories/attachment_factory.rb +2 -0
- data/lib/alchemy/test_support/factories/content_factory.rb +5 -0
- data/lib/alchemy/test_support/factories/dummy_user_factory.rb +2 -0
- data/lib/alchemy/test_support/factories/element_factory.rb +3 -0
- data/lib/alchemy/test_support/factories/essence_file_factory.rb +2 -0
- data/lib/alchemy/test_support/factories/essence_picture_factory.rb +2 -0
- data/lib/alchemy/test_support/factories/essence_text_factory.rb +2 -0
- data/lib/alchemy/test_support/factories/language_factory.rb +2 -0
- data/lib/alchemy/test_support/factories/page_factory.rb +2 -0
- data/lib/alchemy/test_support/factories/picture_factory.rb +2 -0
- data/lib/alchemy/test_support/factories/site_factory.rb +2 -0
- data/lib/alchemy/upgrader/four_point_one.rb +16 -16
- data/lib/alchemy/upgrader/four_point_two.rb +37 -20
- data/lib/alchemy/upgrader/tasks/cells_upgrader.rb +3 -2
- data/lib/alchemy/upgrader/tasks/element_partial_name_variable_updater.rb +28 -0
- data/lib/alchemy/upgrader/tasks/picture_gallery_upgrader.rb +34 -19
- data/lib/alchemy/version.rb +1 -1
- data/lib/tasks/alchemy/upgrade.rake +7 -1
- metadata +32 -14
- data/.teatro.yml +0 -8
data/lib/alchemy/shell.rb
CHANGED
@@ -49,14 +49,22 @@ module Alchemy
|
|
49
49
|
def display_todos
|
50
50
|
return if todos.empty?
|
51
51
|
|
52
|
-
log "\
|
53
|
-
log "
|
52
|
+
log "\n+---------+", :message
|
53
|
+
log "| 📝 TODO |", :message
|
54
|
+
log "+---------+\n", :message
|
55
|
+
puts "\nWe did most of the work for you, but there are still some things left for you to do."
|
54
56
|
todos.each_with_index do |todo, i|
|
55
57
|
title = "\n#{i + 1}. #{todo[0]}"
|
56
58
|
log title, :message
|
57
|
-
puts '
|
59
|
+
puts '=' * title.length
|
60
|
+
puts ""
|
58
61
|
log todo[1], :message
|
59
62
|
end
|
63
|
+
puts ""
|
64
|
+
puts "============================================================"
|
65
|
+
puts "= ✨ Please take a minute and read the notes from above ✨ ="
|
66
|
+
puts "============================================================"
|
67
|
+
puts ""
|
60
68
|
end
|
61
69
|
|
62
70
|
# Prints out the given log message with the color due to its type
|
@@ -1,4 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'factory_bot'
|
4
|
+
require 'alchemy/test_support/factories/element_factory'
|
5
|
+
require 'alchemy/test_support/factories/essence_file_factory'
|
6
|
+
require 'alchemy/test_support/factories/essence_picture_factory'
|
2
7
|
require 'alchemy/test_support/factories/essence_text_factory'
|
3
8
|
|
4
9
|
FactoryBot.define do
|
@@ -11,31 +11,31 @@ module Alchemy
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def alchemy_4_1_todos
|
14
|
-
notice = <<-NOTE
|
14
|
+
notice = <<-NOTE.strip_heredoc
|
15
|
+
ℹ️ Changed tagging provider to Gutentag
|
16
|
+
---------------------------------------
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
+
The automatic updater that just ran updated all existing `acts_as_taggable_on_migrations`,
|
19
|
+
so that they don't blow up if the `acts_as_taggable_on` gem is no longer available.
|
18
20
|
|
19
|
-
|
20
|
-
so that they don't blow up if the `acts_as_taggable_on` gem is no longer available.
|
21
|
+
All your existing tags have been migrated to `Gutentag::Tag`s.
|
21
22
|
|
22
|
-
All your existing tags have been migrated to `Gutentag::Tag`s.
|
23
23
|
|
24
|
-
|
25
|
-
|
24
|
+
⚠️ Removed Rails and non-English translations
|
25
|
+
---------------------------------------------
|
26
26
|
|
27
|
-
|
28
|
-
|
27
|
+
Removed the Rails translations from our translation files and moved all non-english translation
|
28
|
+
files into the newly introduced `alchemy_i18n` gem.
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
If you need more translations than the default English one you can either put `alchemy_i18n`
|
31
|
+
in to your apps `Gemfile` or - recommended - copy only the translation files you need into your
|
32
|
+
apps `config/locales` folder.
|
33
33
|
|
34
|
-
|
35
|
-
|
34
|
+
For the Rails translations either put the `rails-i18n` gem into your apps Gemfile or - recommended -
|
35
|
+
copy only the translation files you need into your apps config/locales folder.
|
36
36
|
|
37
37
|
NOTE
|
38
|
-
todo notice, 'Alchemy v4.1
|
38
|
+
todo notice, 'Alchemy v4.1 TODO'
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
@@ -2,6 +2,7 @@ require_relative 'tasks/picture_gallery_upgrader'
|
|
2
2
|
require_relative 'tasks/picture_gallery_migration'
|
3
3
|
require_relative 'tasks/cells_upgrader'
|
4
4
|
require_relative 'tasks/cells_migration'
|
5
|
+
require_relative 'tasks/element_partial_name_variable_updater'
|
5
6
|
|
6
7
|
module Alchemy
|
7
8
|
class Upgrader::FourPointTwo < Upgrader
|
@@ -26,42 +27,58 @@ module Alchemy
|
|
26
27
|
Alchemy::Upgrader::Tasks::CellsMigration.new.migrate_cells
|
27
28
|
end
|
28
29
|
|
30
|
+
def update_element_views_variable_name
|
31
|
+
desc 'Update element views to use element partial name variable.'
|
32
|
+
Alchemy::Upgrader::Tasks::ElementPartialNameVariableUpdater.new.update_element_views
|
33
|
+
end
|
34
|
+
|
29
35
|
def alchemy_4_2_todos
|
30
|
-
notice = <<-NOTE
|
36
|
+
notice = <<-NOTE.strip_heredoc
|
37
|
+
⚠️ Element's "picture_gallery" feature removed
|
38
|
+
----------------------------------------------
|
39
|
+
|
40
|
+
The `picture_gallery` feature of elements was removed and has been replaced by nestable elements.
|
41
|
+
|
42
|
+
The automatic updater that just ran updated your `config/alchemy/elements.yml`. A backup was made.
|
43
|
+
Nevertheless, you should have a look into it and double check the changes.
|
44
|
+
|
45
|
+
We created nested elements for each gallery picture we found in your database.
|
46
|
+
|
47
|
+
We also updated your element view partials so they have hints about how to render the child elements.
|
48
|
+
|
49
|
+
🚨 PLEASE LOOK INTO YOUR ELEMENT VIEW PARTIALS AND FOLLOW THE INSTRUCTIONS!
|
31
50
|
|
32
|
-
Element's "picture_gallery" feature removed
|
33
|
-
----------------------------------------------
|
34
51
|
|
35
|
-
|
52
|
+
⚠️️ Cells replaced by fixed nestable elements
|
53
|
+
--------------------------------------------
|
36
54
|
|
37
|
-
|
38
|
-
Nevertheless, you should have a look into it and double check the changes.
|
55
|
+
The Cells feature has been replaced by fixed nestable elements.
|
39
56
|
|
40
|
-
|
57
|
+
The automatic updater that just ran updated your `config/alchemy/elements.yml`.
|
58
|
+
Nevertheless, you should have a look into it and double check the changes.
|
41
59
|
|
42
|
-
|
60
|
+
We defined new fixed elements for each cell former defined in `cells.yml`
|
61
|
+
and put its `elements` into the `nestable_elements` collection of the new elements definition.
|
43
62
|
|
44
|
-
|
45
|
-
-----------------------------------------
|
63
|
+
We also updated your element view partials so they render the child elements.
|
46
64
|
|
47
|
-
|
65
|
+
Please review and fix markup, if necessary.
|
48
66
|
|
49
|
-
|
50
|
-
Nevertheless, you should have a look into it and double check the changes.
|
67
|
+
🚨 PLEASE DOUBLE CHECK YOUR ELEMENT PARTIALS AND ADJUST ACCORDINGLY!
|
51
68
|
|
52
|
-
|
53
|
-
and put its `elements` into the `nestable_elements` collection of the new elements definition.
|
69
|
+
As always `git diff` is your friend.
|
54
70
|
|
55
|
-
We also updated your element view partials so they render the child elements.
|
56
71
|
|
57
|
-
|
72
|
+
ℹ️ Element views use element partial name as local variable
|
73
|
+
-----------------------------------------------------------
|
58
74
|
|
59
|
-
|
75
|
+
The local `element` variable in your element views has been replaced by a variable named after the partial.
|
76
|
+
A "article" element has a "_article_view.html.erb" partial and therefore a `article_view` local variable now.
|
60
77
|
|
61
|
-
|
78
|
+
The former `element` variable is still present, though.
|
62
79
|
|
63
80
|
NOTE
|
64
|
-
todo notice, 'Alchemy v4.2
|
81
|
+
todo notice, 'Alchemy v4.2 TODO'
|
65
82
|
end
|
66
83
|
end
|
67
84
|
end
|
@@ -114,8 +114,9 @@ module Alchemy::Upgrader::Tasks
|
|
114
114
|
if Dir.exist? cells_view_folder
|
115
115
|
puts "-- Update cell views"
|
116
116
|
Dir.glob("#{cells_view_folder}/*").each do |view|
|
117
|
-
gsub_file(view, /
|
118
|
-
gsub_file(view, /
|
117
|
+
gsub_file(view, /elements\.published/, 'elements.available')
|
118
|
+
gsub_file(view, /cell\.elements(.+)/, 'element.nested_elements\1')
|
119
|
+
gsub_file(view, /render_elements[\(\s]?:?from_cell:?\s?(=>)?\s?cell\)?/, 'render element.nested_elements.available')
|
119
120
|
gsub_file(view, /cell/, 'element')
|
120
121
|
end
|
121
122
|
else
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'alchemy/upgrader'
|
4
|
+
|
5
|
+
module Alchemy::Upgrader::Tasks
|
6
|
+
class ElementPartialNameVariableUpdater < Thor
|
7
|
+
include Thor::Actions
|
8
|
+
|
9
|
+
no_tasks do
|
10
|
+
def update_element_views
|
11
|
+
puts "-- Update element views local variable to partial name"
|
12
|
+
Dir.glob("#{elements_view_folder}/*_view.*").each do |view|
|
13
|
+
variable_name = File.basename(view).gsub(/^_([\w-]*)\..*$/, '\1')
|
14
|
+
gsub_file(view, /cache\(?element([,\s\w:\-,=>'"\?\/]*)\)?/, "cache(#{variable_name}\\1)")
|
15
|
+
gsub_file(view, /render_essence_view_by_name\(?element([,\s\w:\-,=>'"\?\/]*)\)?/, "render_essence_view_by_name(#{variable_name}\\1)")
|
16
|
+
gsub_file(view, /element_view_for\(?element([,\s\w:\-,=>'"\?\/]*)\)?/, "element_view_for(#{variable_name}\\1)")
|
17
|
+
gsub_file(view, /element\.([\w\?]+)/, "#{variable_name}.\\1")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def elements_view_folder
|
25
|
+
Rails.root.join('app', 'views', 'alchemy', 'elements')
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -91,39 +91,54 @@ module Alchemy::Upgrader::Tasks
|
|
91
91
|
def find_gallery_pictures_rendering
|
92
92
|
puts '5. Find element views that use gallery pictures:'
|
93
93
|
|
94
|
-
erb_snippet =
|
95
|
-
<%- element.nested_elements.available.each do |nested_element| -%>
|
96
|
-
<%= render_element(nested_element) %>
|
97
|
-
<%- end -%>
|
98
|
-
ERB
|
94
|
+
erb_snippet = ' <%= render element.nested_elements.available %>'
|
99
95
|
erb_views = erb_element_partials(:view).select do |view|
|
100
96
|
next if File.read(view).match(GALLERY_PICTURES_ERB_REGEXP).nil?
|
97
|
+
|
101
98
|
inject_into_file view,
|
102
|
-
"<%# TODO:
|
99
|
+
"<%# TODO: Move the content of next block into its nestable element view and `render element.nested_elements.available` instead %>\n",
|
103
100
|
before: GALLERY_PICTURES_ERB_REGEXP
|
104
101
|
true
|
105
102
|
end
|
106
103
|
|
107
|
-
haml_slim_snippet =
|
108
|
-
- element.nested_elements.available.each do |nested_element|
|
109
|
-
= render_element(nested_element)
|
110
|
-
HAMLSLIM
|
104
|
+
haml_slim_snippet = ' = element.nested_elements.available'
|
111
105
|
haml_views = haml_slim_element_partials(:view).select do |view|
|
112
106
|
next if File.read(view).match(GALLERY_PICTURES_HAML_REGEXP).nil?
|
107
|
+
|
113
108
|
inject_into_file view,
|
114
|
-
"-# TODO:
|
109
|
+
"-# TODO: Move the content of next block into its nestable element view and `render element.nested_elements.available` instead\n",
|
115
110
|
before: GALLERY_PICTURES_HAML_REGEXP
|
116
111
|
true
|
117
112
|
end
|
118
113
|
|
119
|
-
if erb_views.any?
|
120
|
-
puts "
|
121
|
-
puts "
|
122
|
-
puts
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
114
|
+
if erb_views.any? || haml_views.any?
|
115
|
+
puts ""
|
116
|
+
puts "⚠️ Found element views that render gallery pictures!\n"
|
117
|
+
puts ""
|
118
|
+
if erb_views.any?
|
119
|
+
puts " Please replace `element.contents.gallery_pictures` with:"
|
120
|
+
puts ""
|
121
|
+
puts erb_snippet
|
122
|
+
puts ""
|
123
|
+
puts " In these files:"
|
124
|
+
puts ""
|
125
|
+
erb_views.each_with_index do |view, index|
|
126
|
+
puts " #{index + 1}. #{view}"
|
127
|
+
end
|
128
|
+
puts ""
|
129
|
+
end
|
130
|
+
if haml_views.any?
|
131
|
+
puts " Please replace `element.contents.gallery_pictures` with:"
|
132
|
+
puts ""
|
133
|
+
puts haml_slim_snippet
|
134
|
+
puts ""
|
135
|
+
puts " In these files:"
|
136
|
+
puts ""
|
137
|
+
haml_views.each_with_index do |view, index|
|
138
|
+
puts " #{index + 1}. #{view}"
|
139
|
+
end
|
140
|
+
puts ""
|
141
|
+
end
|
127
142
|
else
|
128
143
|
puts "- No element views found that render gallery pictures.\n"
|
129
144
|
end
|
data/lib/alchemy/version.rb
CHANGED
@@ -72,7 +72,8 @@ namespace :alchemy do
|
|
72
72
|
'alchemy:upgrade:4.2:convert_picture_galleries',
|
73
73
|
'alchemy:upgrade:4.2:migrate_picture_galleries',
|
74
74
|
'alchemy:upgrade:4.2:convert_cells',
|
75
|
-
'alchemy:upgrade:4.2:migrate_cells'
|
75
|
+
'alchemy:upgrade:4.2:migrate_cells',
|
76
|
+
'alchemy:upgrade:4.2:update_element_partial_name_variable'
|
76
77
|
]
|
77
78
|
|
78
79
|
desc 'Convert `picture_gallery` element definitions to `nestable_elements`.'
|
@@ -95,6 +96,11 @@ namespace :alchemy do
|
|
95
96
|
Alchemy::Upgrader::FourPointTwo.migrate_cells
|
96
97
|
end
|
97
98
|
|
99
|
+
desc 'Update element views to use element partial name variable.'
|
100
|
+
task :update_element_partial_name_variable do
|
101
|
+
Alchemy::Upgrader::FourPointTwo.update_element_views_variable_name
|
102
|
+
end
|
103
|
+
|
98
104
|
task :todo do
|
99
105
|
Alchemy::Upgrader::FourPointTwo.alchemy_4_2_todos
|
100
106
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alchemy_cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.2.0
|
4
|
+
version: 4.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas von Deyen
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2019-
|
16
|
+
date: 2019-05-30 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: active_model_serializers
|
@@ -61,16 +61,22 @@ dependencies:
|
|
61
61
|
name: cancancan
|
62
62
|
requirement: !ruby/object:Gem::Requirement
|
63
63
|
requirements:
|
64
|
-
- - "
|
64
|
+
- - ">="
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: '2.1'
|
67
|
+
- - "<"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '4.0'
|
67
70
|
type: :runtime
|
68
71
|
prerelease: false
|
69
72
|
version_requirements: !ruby/object:Gem::Requirement
|
70
73
|
requirements:
|
71
|
-
- - "
|
74
|
+
- - ">="
|
72
75
|
- !ruby/object:Gem::Version
|
73
76
|
version: '2.1'
|
77
|
+
- - "<"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '4.0'
|
74
80
|
- !ruby/object:Gem::Dependency
|
75
81
|
name: coffee-rails
|
76
82
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,6 +84,9 @@ dependencies:
|
|
78
84
|
- - "~>"
|
79
85
|
- !ruby/object:Gem::Version
|
80
86
|
version: '4.0'
|
87
|
+
- - "<"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '5.0'
|
81
90
|
type: :runtime
|
82
91
|
prerelease: false
|
83
92
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -85,6 +94,9 @@ dependencies:
|
|
85
94
|
- - "~>"
|
86
95
|
- !ruby/object:Gem::Version
|
87
96
|
version: '4.0'
|
97
|
+
- - "<"
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '5.0'
|
88
100
|
- !ruby/object:Gem::Dependency
|
89
101
|
name: dragonfly
|
90
102
|
requirement: !ruby/object:Gem::Requirement
|
@@ -253,16 +265,22 @@ dependencies:
|
|
253
265
|
name: ransack
|
254
266
|
requirement: !ruby/object:Gem::Requirement
|
255
267
|
requirements:
|
256
|
-
- - "
|
268
|
+
- - ">="
|
257
269
|
- !ruby/object:Gem::Version
|
258
|
-
version: '
|
270
|
+
version: '1.8'
|
271
|
+
- - "<"
|
272
|
+
- !ruby/object:Gem::Version
|
273
|
+
version: '3.0'
|
259
274
|
type: :runtime
|
260
275
|
prerelease: false
|
261
276
|
version_requirements: !ruby/object:Gem::Requirement
|
262
277
|
requirements:
|
263
|
-
- - "
|
278
|
+
- - ">="
|
264
279
|
- !ruby/object:Gem::Version
|
265
|
-
version: '
|
280
|
+
version: '1.8'
|
281
|
+
- - "<"
|
282
|
+
- !ruby/object:Gem::Version
|
283
|
+
version: '3.0'
|
266
284
|
- !ruby/object:Gem::Dependency
|
267
285
|
name: request_store
|
268
286
|
requirement: !ruby/object:Gem::Requirement
|
@@ -348,6 +366,7 @@ extra_rdoc_files: []
|
|
348
366
|
files:
|
349
367
|
- ".codeclimate.yml"
|
350
368
|
- ".editorconfig"
|
369
|
+
- ".github/FUNDING.yml"
|
351
370
|
- ".github/ISSUE_TEMPLATE/Bug_report.md"
|
352
371
|
- ".github/ISSUE_TEMPLATE/Feature_request.md"
|
353
372
|
- ".gitignore"
|
@@ -355,7 +374,6 @@ files:
|
|
355
374
|
- ".localeapp/config.rb"
|
356
375
|
- ".rspec"
|
357
376
|
- ".rubocop.yml"
|
358
|
-
- ".teatro.yml"
|
359
377
|
- ".travis.yml"
|
360
378
|
- ".yardopts"
|
361
379
|
- CHANGELOG.md
|
@@ -856,6 +874,7 @@ files:
|
|
856
874
|
- lib/alchemy/upgrader/four_point_two.rb
|
857
875
|
- lib/alchemy/upgrader/tasks/cells_migration.rb
|
858
876
|
- lib/alchemy/upgrader/tasks/cells_upgrader.rb
|
877
|
+
- lib/alchemy/upgrader/tasks/element_partial_name_variable_updater.rb
|
859
878
|
- lib/alchemy/upgrader/tasks/harden_acts_as_taggable_on_migrations.rb
|
860
879
|
- lib/alchemy/upgrader/tasks/picture_gallery_migration.rb
|
861
880
|
- lib/alchemy/upgrader/tasks/picture_gallery_upgrader.rb
|
@@ -968,9 +987,8 @@ post_install_message: |+
|
|
968
987
|
|
969
988
|
Need help? Try:
|
970
989
|
|
971
|
-
*
|
972
|
-
*
|
973
|
-
* irc://irc.freenode.net#alchemy_cms
|
990
|
+
* https://stackoverflow.com/questions/tagged/alchemy-cms
|
991
|
+
* https://slackin.alchemy-cms.com
|
974
992
|
-------------------------------------------------------------
|
975
993
|
|
976
994
|
rdoc_options: []
|
@@ -983,9 +1001,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
983
1001
|
version: 2.3.0
|
984
1002
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
985
1003
|
requirements:
|
986
|
-
- - "
|
1004
|
+
- - ">="
|
987
1005
|
- !ruby/object:Gem::Version
|
988
|
-
version:
|
1006
|
+
version: '0'
|
989
1007
|
requirements:
|
990
1008
|
- ImageMagick (libmagick), v6.6 or greater.
|
991
1009
|
rubygems_version: 3.0.3
|