occams 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/.github/issue_template.md +2 -4
  3. data/CHANGELOG.md +10 -3
  4. data/README.md +0 -1
  5. data/app/controllers/application_controller.rb +0 -2
  6. data/app/controllers/concerns/occams/paginate.rb +0 -2
  7. data/app/controllers/concerns/occams/reorder_action.rb +0 -2
  8. data/app/controllers/occams/admin/base_controller.rb +0 -2
  9. data/app/controllers/occams/admin/cms/base_controller.rb +3 -4
  10. data/app/controllers/occams/admin/cms/categories_controller.rb +0 -2
  11. data/app/controllers/occams/admin/cms/files_controller.rb +4 -7
  12. data/app/controllers/occams/admin/cms/layouts_controller.rb +1 -2
  13. data/app/controllers/occams/admin/cms/pages_controller.rb +4 -5
  14. data/app/controllers/occams/admin/cms/revisions/base_controller.rb +0 -2
  15. data/app/controllers/occams/admin/cms/revisions/layout_controller.rb +0 -2
  16. data/app/controllers/occams/admin/cms/revisions/page_controller.rb +0 -2
  17. data/app/controllers/occams/admin/cms/revisions/snippet_controller.rb +0 -2
  18. data/app/controllers/occams/admin/cms/revisions/translation_controller.rb +0 -2
  19. data/app/controllers/occams/admin/cms/sites_controller.rb +1 -2
  20. data/app/controllers/occams/admin/cms/snippets_controller.rb +1 -2
  21. data/app/controllers/occams/admin/cms/translations_controller.rb +3 -5
  22. data/app/controllers/occams/cms/assets_controller.rb +0 -2
  23. data/app/controllers/occams/cms/base_controller.rb +0 -2
  24. data/app/controllers/occams/cms/content_controller.rb +5 -6
  25. data/app/helpers/occams/admin/cms_helper.rb +0 -2
  26. data/app/helpers/occams/cms_helper.rb +5 -2
  27. data/app/models/concerns/occams/cms/with_categories.rb +5 -7
  28. data/app/models/concerns/occams/cms/with_fragments.rb +7 -9
  29. data/app/models/occams/cms/categorization.rb +2 -4
  30. data/app/models/occams/cms/category.rb +4 -6
  31. data/app/models/occams/cms/file.rb +9 -9
  32. data/app/models/occams/cms/fragment.rb +3 -4
  33. data/app/models/occams/cms/layout.rb +6 -7
  34. data/app/models/occams/cms/page.rb +16 -13
  35. data/app/models/occams/cms/revision.rb +0 -2
  36. data/app/models/occams/cms/site.rb +8 -9
  37. data/app/models/occams/cms/snippet.rb +4 -6
  38. data/app/models/occams/cms/translation.rb +4 -5
  39. data/app/views/layouts/occams/admin/cms/_left.html.haml +4 -0
  40. data/app/views/occams/admin/cms/files/_file.html.haml +1 -1
  41. data/config/application.rb +0 -2
  42. data/config.ru +1 -1
  43. data/lib/generators/occams/cms/assets_generator.rb +0 -2
  44. data/lib/generators/occams/cms/cms_generator.rb +3 -5
  45. data/lib/generators/occams/cms/controllers_generator.rb +0 -2
  46. data/lib/generators/occams/cms/models_generator.rb +0 -2
  47. data/lib/generators/occams/cms/views_generator.rb +0 -2
  48. data/lib/generators/occams/scaffold/scaffold_generator.rb +1 -2
  49. data/lib/occams/access_control/admin_authentication.rb +0 -2
  50. data/lib/occams/access_control/admin_authorization.rb +0 -2
  51. data/lib/occams/access_control/public_authentication.rb +0 -2
  52. data/lib/occams/access_control/public_authorization.rb +0 -2
  53. data/lib/occams/configuration.rb +21 -23
  54. data/lib/occams/content/block.rb +0 -2
  55. data/lib/occams/content/params_parser.rb +9 -11
  56. data/lib/occams/content/renderer.rb +7 -10
  57. data/lib/occams/content/tag.rb +0 -2
  58. data/lib/occams/content/tags/asset.rb +0 -2
  59. data/lib/occams/content/tags/checkbox.rb +0 -2
  60. data/lib/occams/content/tags/date.rb +0 -2
  61. data/lib/occams/content/tags/datetime.rb +0 -2
  62. data/lib/occams/content/tags/file.rb +5 -7
  63. data/lib/occams/content/tags/file_link.rb +1 -2
  64. data/lib/occams/content/tags/files.rb +5 -7
  65. data/lib/occams/content/tags/fragment.rb +0 -2
  66. data/lib/occams/content/tags/helper.rb +0 -2
  67. data/lib/occams/content/tags/markdown.rb +0 -2
  68. data/lib/occams/content/tags/mixins/file_content.rb +1 -2
  69. data/lib/occams/content/tags/number.rb +0 -2
  70. data/lib/occams/content/tags/page_file_link.rb +1 -2
  71. data/lib/occams/content/tags/partial.rb +0 -2
  72. data/lib/occams/content/tags/snippet.rb +0 -2
  73. data/lib/occams/content/tags/template.rb +0 -2
  74. data/lib/occams/content/tags/text.rb +0 -2
  75. data/lib/occams/content/tags/textarea.rb +0 -2
  76. data/lib/occams/content/tags/wysiwyg.rb +0 -2
  77. data/lib/occams/engine.rb +1 -3
  78. data/lib/occams/error.rb +0 -8
  79. data/lib/occams/extensions/acts_as_tree.rb +14 -20
  80. data/lib/occams/extensions/has_revisions.rb +5 -9
  81. data/lib/occams/form_builder.rb +2 -6
  82. data/lib/occams/render_methods.rb +9 -15
  83. data/lib/occams/routes/cms.rb +0 -2
  84. data/lib/occams/routes/cms_admin.rb +1 -3
  85. data/lib/occams/routing.rb +0 -2
  86. data/lib/occams/seeds/file/exporter.rb +2 -4
  87. data/lib/occams/seeds/file/importer.rb +9 -13
  88. data/lib/occams/seeds/layout/exporter.rb +2 -4
  89. data/lib/occams/seeds/layout/importer.rb +3 -5
  90. data/lib/occams/seeds/page/exporter.rb +7 -9
  91. data/lib/occams/seeds/page/importer.rb +3 -5
  92. data/lib/occams/seeds/snippet/exporter.rb +3 -5
  93. data/lib/occams/seeds/snippet/importer.rb +1 -3
  94. data/lib/occams/seeds.rb +1 -7
  95. data/lib/occams/version.rb +1 -3
  96. data/lib/occams/view_hooks.rb +0 -2
  97. data/lib/occams.rb +0 -4
  98. data/lib/tasks/cms_seeds.rake +2 -2
  99. data/occams.gemspec +13 -13
  100. metadata +62 -8
@@ -1,17 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Occams::RenderMethods
4
-
5
4
  def self.included(base)
6
5
  # If application controller doesn't have template associated with it
7
6
  # CMS will attempt to find one. This is so you don't have to explicitly
8
7
  # call render cms_page: '/something'
9
8
  base.rescue_from "ActionView::MissingTemplate" do |e|
10
- begin
11
- render cms_page: request.path
12
- rescue Occams::MissingPage, Occams::MissingSite
13
- raise e
14
- end
9
+ render cms_page: request.path
10
+ rescue Occams::MissingPage, Occams::MissingSite
11
+ raise e
15
12
  end
16
13
  end
17
14
 
@@ -39,16 +36,14 @@ module Occams::RenderMethods
39
36
  def render(options = {}, locals = {}, &block)
40
37
  return super unless options.is_a?(Hash)
41
38
 
42
- if (site_identifier = options.delete(:cms_site))
43
- unless (@cms_site = Occams::Cms::Site.find_by_identifier(site_identifier))
44
- raise Occams::MissingSite, site_identifier
45
- end
39
+ if (site_identifier = options.delete(:cms_site)) && !(@cms_site = Occams::Cms::Site.find_by_identifier(site_identifier))
40
+ raise Occams::MissingSite, site_identifier
46
41
  end
47
42
 
48
- if (page_path = options.delete(:cms_page)) || (layout_identifier = options.delete(:cms_layout))
49
- unless @cms_site ||= Occams::Cms::Site.find_site(request.host_with_port.downcase, request.fullpath)
50
- raise Occams::MissingSite, "#{request.host.downcase}/#{request.fullpath}"
51
- end
43
+ if ((page_path = options.delete(:cms_page)) || (layout_identifier = options.delete(:cms_layout))) && !@cms_site ||= Occams::Cms::Site.find_site(
44
+ request.host_with_port.downcase, request.fullpath
45
+ )
46
+ raise Occams::MissingSite, "#{request.host.downcase}/#{request.fullpath}"
52
47
  end
53
48
 
54
49
  if page_path
@@ -104,7 +99,6 @@ module Occams::RenderMethods
104
99
 
105
100
  render(options, locals, &block)
106
101
  end
107
-
108
102
  end
109
103
 
110
104
  ActiveSupport.on_load :action_controller_base do
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class ActionDispatch::Routing::Mapper
4
-
5
4
  def occams_route_cms(options = {})
6
5
  Occams.configuration.public_cms_path = options[:path]
7
6
 
@@ -14,5 +13,4 @@ class ActionDispatch::Routing::Mapper
14
13
  end
15
14
  end
16
15
  end
17
-
18
16
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class ActionDispatch::Routing::Mapper
4
-
5
4
  def occams_route_cms_admin(path: "admin")
6
5
  scope module: :occams, as: :occams do
7
6
  scope module: :admin do
@@ -28,7 +27,7 @@ class ActionDispatch::Routing::Mapper
28
27
  concerns :with_form_fragments
29
28
  concerns :with_revisions, controller: "revisions/page"
30
29
 
31
- get :toggle_branch, on: :member
30
+ get :toggle_branch, on: :member
32
31
 
33
32
  resources :translations, except: [:index] do
34
33
  concerns :with_form_fragments
@@ -54,5 +53,4 @@ class ActionDispatch::Routing::Mapper
54
53
  end
55
54
  end
56
55
  end
57
-
58
56
  end
@@ -4,9 +4,7 @@ require_relative "routes/cms_admin"
4
4
  require_relative "routes/cms"
5
5
 
6
6
  class ActionDispatch::Routing::Mapper
7
-
8
7
  def occams_route(identifier, options = {})
9
8
  send("occams_route_#{identifier}", **options)
10
9
  end
11
-
12
10
  end
@@ -2,7 +2,6 @@
2
2
 
3
3
  module Occams::Seeds::File
4
4
  class Exporter < Occams::Seeds::Exporter
5
-
6
5
  def initialize(from, to = from)
7
6
  super
8
7
  self.path = ::File.join(Occams.config.seeds_path, to, "files/")
@@ -17,9 +16,9 @@ module Occams::Seeds::File
17
16
  # writing attributes
18
17
  ::File.open(::File.join(path, "_#{file.attachment.filename}.yml"), "w") do |f|
19
18
  f.write({
20
- "label" => file.label,
19
+ "label" => file.label,
21
20
  "description" => file.description,
22
- "categories" => file.categories.map(&:label)
21
+ "categories" => file.categories.map(&:label)
23
22
  }.to_yaml)
24
23
  end
25
24
 
@@ -38,6 +37,5 @@ module Occams::Seeds::File
38
37
  Occams.logger.info(message)
39
38
  end
40
39
  end
41
-
42
40
  end
43
41
  end
@@ -2,7 +2,6 @@
2
2
 
3
3
  module Occams::Seeds::File
4
4
  class Importer < Occams::Seeds::Importer
5
-
6
5
  def initialize(from, to = from)
7
6
  super
8
7
  self.path = ::File.join(Occams.config.seeds_path, from, "files/")
@@ -19,16 +18,14 @@ module Occams::Seeds::File
19
18
  # We need to track actual file and its attributes
20
19
  fresh_file = false
21
20
 
22
- if File.exist?(attrs_path = File.join(path, "_#{filename}.yml"))
23
- if fresh_seed?(file, attrs_path)
24
- fresh_file = true
21
+ if File.exist?(attrs_path = File.join(path, "_#{filename}.yml")) && fresh_seed?(file, attrs_path)
22
+ fresh_file = true
25
23
 
26
- attrs = YAML.safe_load(File.read(attrs_path))
27
- category_ids = category_names_to_ids(file, attrs.delete("categories"))
28
- file.attributes = attrs.merge(
29
- category_ids: category_ids
30
- )
31
- end
24
+ attrs = YAML.safe_load(File.read(attrs_path))
25
+ category_ids = category_names_to_ids(file, attrs.delete("categories"))
26
+ file.attributes = attrs.merge(
27
+ category_ids: category_ids
28
+ )
32
29
  end
33
30
 
34
31
  if fresh_seed?(file, file_path)
@@ -36,8 +33,8 @@ module Occams::Seeds::File
36
33
 
37
34
  file_handler = File.open(file_path)
38
35
  file.file = {
39
- io: file_handler,
40
- filename: filename,
36
+ io: file_handler,
37
+ filename: filename,
41
38
  content_type: MimeMagic.by_magic(file_handler)
42
39
  }
43
40
  end
@@ -58,6 +55,5 @@ module Occams::Seeds::File
58
55
  # cleaning up
59
56
  site.files.where("id NOT IN (?)", seed_ids).destroy_all
60
57
  end
61
-
62
58
  end
63
59
  end
@@ -2,7 +2,6 @@
2
2
 
3
3
  module Occams::Seeds::Layout
4
4
  class Exporter < Occams::Seeds::Exporter
5
-
6
5
  def initialize(from, to = from)
7
6
  super
8
7
  self.path = ::File.join(Occams.config.seeds_path, to, "layouts/")
@@ -19,9 +18,9 @@ module Occams::Seeds::Layout
19
18
  data = []
20
19
 
21
20
  attrs = {
22
- "label" => layout.label,
21
+ "label" => layout.label,
23
22
  "app_layout" => layout.app_layout,
24
- "position" => layout.position
23
+ "position" => layout.position
25
24
  }.to_yaml
26
25
 
27
26
  data << { header: "attributes", content: attrs }
@@ -35,6 +34,5 @@ module Occams::Seeds::Layout
35
34
  Occams.logger.info(message)
36
35
  end
37
36
  end
38
-
39
37
  end
40
38
  end
@@ -2,7 +2,6 @@
2
2
 
3
3
  module Occams::Seeds::Layout
4
4
  class Importer < Occams::Seeds::Importer
5
-
6
5
  def initialize(from, to = from)
7
6
  super
8
7
  self.path = ::File.join(Occams.config.seeds_path, from, "layouts/")
@@ -36,9 +35,9 @@ module Occams::Seeds::Layout
36
35
  if fresh_seed?(layout, content_path)
37
36
  layout.attributes = attrs.merge(
38
37
  app_layout: attrs["app_layout"] || parent.try(:app_layout),
39
- content: content_hash["content"],
40
- js: content_hash["js"],
41
- css: content_hash["css"]
38
+ content: content_hash["content"],
39
+ js: content_hash["js"],
40
+ css: content_hash["css"]
42
41
  )
43
42
 
44
43
  if layout.save
@@ -57,6 +56,5 @@ module Occams::Seeds::Layout
57
56
  import_layout(layout_path, layout)
58
57
  end
59
58
  end
60
-
61
59
  end
62
60
  end
@@ -2,7 +2,6 @@
2
2
 
3
3
  module Occams::Seeds::Page
4
4
  class Exporter < Occams::Seeds::Exporter
5
-
6
5
  def initialize(from, to = from)
7
6
  super
8
7
  self.path = ::File.join(Occams.config.seeds_path, to, "pages/")
@@ -20,12 +19,12 @@ module Occams::Seeds::Page
20
19
  data = []
21
20
 
22
21
  attrs = {
23
- "label" => page.label,
24
- "layout" => page.layout.try(:identifier),
25
- "target_page" => page.target_page.try(:full_path),
26
- "categories" => page.categories.map(&:label),
22
+ "label" => page.label,
23
+ "layout" => page.layout.try(:identifier),
24
+ "target_page" => page.target_page.try(:full_path),
25
+ "categories" => page.categories.map(&:label),
27
26
  "is_published" => page.is_published,
28
- "position" => page.position
27
+ "position" => page.position
29
28
  }.to_yaml
30
29
 
31
30
  data << { header: "attributes", content: attrs }
@@ -48,8 +47,8 @@ module Occams::Seeds::Page
48
47
  data = []
49
48
 
50
49
  attrs = {
51
- "label" => translation.label,
52
- "layout" => translation.layout.try(:identifier),
50
+ "label" => translation.label,
51
+ "layout" => translation.layout.try(:identifier),
53
52
  "is_published" => page.is_published
54
53
  }.to_yaml
55
54
 
@@ -87,6 +86,5 @@ module Occams::Seeds::Page
87
86
  { header: header, content: content }
88
87
  end
89
88
  end
90
-
91
89
  end
92
90
  end
@@ -2,7 +2,6 @@
2
2
 
3
3
  module Occams::Seeds::Page
4
4
  class Importer < Occams::Seeds::Importer
5
-
6
5
  # tracking target page linking. Since we might be linking to something that
7
6
  # doesn't exist yet, we'll defer linking to the end of import
8
7
  attr_accessor :target_pages
@@ -157,7 +156,7 @@ module Occams::Seeds::Page
157
156
  tag, identifier = frag_header.split
158
157
  frag_hash = {
159
158
  identifier: identifier,
160
- tag: tag
159
+ tag: tag
161
160
  }
162
161
 
163
162
  # tracking fragments that need removing later
@@ -190,8 +189,8 @@ module Occams::Seeds::Page
190
189
  files = frag_content.split("\n").collect do |filename|
191
190
  file_handler = File.open(File.join(path, filename))
192
191
  {
193
- io: file_handler,
194
- filename: filename,
192
+ io: file_handler,
193
+ filename: filename,
195
194
  content_type: MimeMagic.by_magic(file_handler)
196
195
  }
197
196
  end
@@ -214,6 +213,5 @@ module Occams::Seeds::Page
214
213
  end
215
214
  end
216
215
  end
217
-
218
216
  end
219
217
  end
@@ -2,7 +2,6 @@
2
2
 
3
3
  module Occams::Seeds::Snippet
4
4
  class Exporter < Occams::Seeds::Exporter
5
-
6
5
  def initialize(from, to = from)
7
6
  super
8
7
  self.path = ::File.join(Occams.config.seeds_path, to, "snippets/")
@@ -13,9 +12,9 @@ module Occams::Seeds::Snippet
13
12
 
14
13
  site.snippets.each do |snippet|
15
14
  attrs = {
16
- "label" => snippet.label,
17
- "categories" => snippet.categories.map(&:label),
18
- "position" => snippet.position
15
+ "label" => snippet.label,
16
+ "categories" => snippet.categories.map(&:label),
17
+ "position" => snippet.position
19
18
  }.to_yaml
20
19
 
21
20
  data = []
@@ -29,6 +28,5 @@ module Occams::Seeds::Snippet
29
28
  Occams.logger.info(message)
30
29
  end
31
30
  end
32
-
33
31
  end
34
32
  end
@@ -2,7 +2,6 @@
2
2
 
3
3
  module Occams::Seeds::Snippet
4
4
  class Importer < Occams::Seeds::Importer
5
-
6
5
  def initialize(from, to = from)
7
6
  super
8
7
  self.path = ::File.join(Occams.config.seeds_path, from, "snippets/")
@@ -26,7 +25,7 @@ module Occams::Seeds::Snippet
26
25
 
27
26
  snippet.attributes = attrs.merge(
28
27
  category_ids: category_ids,
29
- content: content_hash["content"]
28
+ content: content_hash["content"]
30
29
  )
31
30
 
32
31
  if snippet.save
@@ -46,6 +45,5 @@ module Occams::Seeds::Snippet
46
45
  # cleaning up
47
46
  site.snippets.where("id NOT IN (?)", seed_ids).destroy_all
48
47
  end
49
-
50
48
  end
51
49
  end
data/lib/occams/seeds.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Occams::Seeds
4
-
5
4
  SEED_CLASSES = %w[Layout Page Snippet File].freeze
6
5
 
7
6
  class Error < StandardError; end
@@ -9,7 +8,6 @@ module Occams::Seeds
9
8
  require "mimemagic"
10
9
 
11
10
  class Importer
12
-
13
11
  attr_accessor :site,
14
12
  :path,
15
13
  :from,
@@ -60,17 +58,15 @@ module Occams::Seeds
60
58
  def category_names_to_ids(record, names)
61
59
  [names].flatten.map do |name|
62
60
  category = site.categories.find_or_create_by(
63
- label: name,
61
+ label: name,
64
62
  categorized_type: record.class.to_s
65
63
  )
66
64
  category.id
67
65
  end
68
66
  end
69
-
70
67
  end
71
68
 
72
69
  class Exporter
73
-
74
70
  attr_accessor :site,
75
71
  :path,
76
72
  :from,
@@ -112,7 +108,5 @@ module Occams::Seeds
112
108
  FileUtils.rm_rf(path)
113
109
  FileUtils.mkdir_p(path)
114
110
  end
115
-
116
111
  end
117
-
118
112
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Occams
4
-
5
- VERSION = "1.0.0"
6
-
4
+ VERSION = "1.0.1"
7
5
  end
@@ -3,7 +3,6 @@
3
3
  # This mechanism is used by 3rd party plugins.
4
4
  # Normally you'd use partials from your own app
5
5
  module Occams::ViewHooks
6
-
7
6
  # Array of declared hooks
8
7
  def self.hooks
9
8
  @hooks ||= {}
@@ -31,5 +30,4 @@ module Occams::ViewHooks
31
30
  def self.remove(name)
32
31
  hooks.delete(name)
33
32
  end
34
-
35
33
  end
data/lib/occams.rb CHANGED
@@ -31,9 +31,7 @@ require_relative "occams/extensions/has_revisions"
31
31
  require_relative "occams/content"
32
32
 
33
33
  module Occams
34
-
35
34
  class << self
36
-
37
35
  attr_writer :logger
38
36
 
39
37
  # Modify CMS configuration
@@ -54,7 +52,5 @@ module Occams
54
52
  def logger
55
53
  @logger ||= Rails.logger
56
54
  end
57
-
58
55
  end
59
-
60
56
  end
@@ -13,7 +13,7 @@ namespace :occams do
13
13
 
14
14
  # changing so that logger is going straight to screen
15
15
  logger = Occams.logger
16
- Occams.logger = Logger.new(STDOUT)
16
+ Occams.logger = Logger.new($stdout)
17
17
 
18
18
  Occams::Seeds::Importer.new(from, to).import!(classes)
19
19
 
@@ -30,7 +30,7 @@ namespace :occams do
30
30
 
31
31
  # changing so that logger is going straight to screen
32
32
  logger = Occams.logger
33
- Occams.logger = Logger.new(STDOUT)
33
+ Occams.logger = Logger.new($stdout)
34
34
 
35
35
  Occams::Seeds::Exporter.new(from, to).export!(classes)
36
36
 
data/occams.gemspec CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |s|
9
9
  s.authors = ["Andrew vonderLuft"]
10
10
  s.email = ["wonder@hey.com"]
11
11
  s.homepage = "http://github.com/avonderluft/occams"
12
- s.summary = "Rails 6.0+ CMS Engine"
13
- s.description = "Occams is a powerful Rails 6.0+ CMS Engine"
12
+ s.summary = "Rails 6-7+ CMS Engine"
13
+ s.description = "Occams is a powerful Rails 6-7+ CMS Engine"
14
14
  s.license = "MIT"
15
15
 
16
16
  s.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -19,15 +19,15 @@ Gem::Specification.new do |s|
19
19
 
20
20
  s.required_ruby_version = ">= 2.7.0"
21
21
 
22
- s.add_dependency "active_link_to", ">= 1.0.5"
23
- s.add_dependency "comfy_bootstrap_form", ">= 4.0.0"
24
- s.add_dependency "haml-rails", ">= 2.1.0"
25
- s.add_dependency "image_processing", ">= 1.12.2"
26
- s.add_dependency "jquery-rails", ">= 4.6.0"
27
- s.add_dependency "kramdown", ">= 2.4.0"
28
- s.add_dependency "mimemagic", ">= 0.4.3"
29
- s.add_dependency "mini_magick", ">= 4.12.0"
30
- s.add_dependency "rails", ">= 6.1.7"
31
- s.add_dependency "rails-i18n", ">= 6.0.0"
32
- s.add_dependency "sassc-rails", ">= 2.0.0"
22
+ s.add_runtime_dependency "active_link_to", "~> 1.0", ">= 1.0.5"
23
+ s.add_runtime_dependency "comfy_bootstrap_form", "~> 4.0", ">= 4.0.0"
24
+ s.add_runtime_dependency "haml-rails", "~> 2.1", ">= 2.1.0"
25
+ s.add_runtime_dependency "image_processing", "~> 1.12", ">= 1.12.2"
26
+ s.add_runtime_dependency "jquery-rails", "~> 4.6", ">= 4.6.0"
27
+ s.add_runtime_dependency "kramdown", "~> 2.4", ">= 2.4.0"
28
+ s.add_runtime_dependency "mimemagic", "~> 0.4", ">= 0.4.3"
29
+ s.add_runtime_dependency "mini_magick", "~> 4.12", ">= 4.12.0"
30
+ s.add_dependency "rails", ">= 6.1.7.4"
31
+ s.add_runtime_dependency "rails-i18n", ">= 6.0.0"
32
+ s.add_runtime_dependency "sassc-rails", "~> 2.1", ">= 2.1.2"
33
33
  end