comfortable_mexican_sofa 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (216) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +95 -4
  3. data/.travis.yml +2 -1
  4. data/CONTRIBUTING.md +8 -5
  5. data/Gemfile +9 -9
  6. data/Rakefile +1 -1
  7. data/app/assets/javascripts/comfy/admin/cms/base.js.coffee +1 -0
  8. data/app/assets/stylesheets/comfy/admin/cms/base.sass +14 -4
  9. data/app/controllers/application_controller.rb +2 -2
  10. data/app/controllers/comfy/admin/base_controller.rb +1 -1
  11. data/app/controllers/comfy/admin/cms/base_controller.rb +7 -6
  12. data/app/controllers/comfy/admin/cms/categories_controller.rb +2 -1
  13. data/app/controllers/comfy/admin/cms/files_controller.rb +32 -29
  14. data/app/controllers/comfy/admin/cms/layouts_controller.rb +10 -9
  15. data/app/controllers/comfy/admin/cms/pages_controller.rb +31 -27
  16. data/app/controllers/comfy/admin/cms/revisions/base_controller.rb +5 -4
  17. data/app/controllers/comfy/admin/cms/revisions/layout_controller.rb +2 -1
  18. data/app/controllers/comfy/admin/cms/revisions/page_controller.rb +9 -3
  19. data/app/controllers/comfy/admin/cms/revisions/snippet_controller.rb +2 -1
  20. data/app/controllers/comfy/admin/cms/revisions/translation_controller.rb +9 -3
  21. data/app/controllers/comfy/admin/cms/sites_controller.rb +10 -9
  22. data/app/controllers/comfy/admin/cms/snippets_controller.rb +10 -9
  23. data/app/controllers/comfy/admin/cms/translations_controller.rb +15 -14
  24. data/app/controllers/comfy/cms/assets_controller.rb +4 -3
  25. data/app/controllers/comfy/cms/base_controller.rb +12 -11
  26. data/app/controllers/comfy/cms/content_controller.rb +8 -7
  27. data/app/controllers/concerns/comfy/paginate.rb +2 -1
  28. data/app/helpers/comfy/cms_helper.rb +6 -3
  29. data/app/models/comfy/cms/categorization.rb +2 -1
  30. data/app/models/comfy/cms/category.rb +3 -2
  31. data/app/models/comfy/cms/file.rb +9 -7
  32. data/app/models/comfy/cms/fragment.rb +8 -6
  33. data/app/models/comfy/cms/layout.rb +24 -24
  34. data/app/models/comfy/cms/page.rb +51 -32
  35. data/app/models/comfy/cms/revision.rb +2 -1
  36. data/app/models/comfy/cms/site.rb +27 -26
  37. data/app/models/comfy/cms/snippet.rb +7 -5
  38. data/app/models/comfy/cms/translation.rb +6 -4
  39. data/app/models/concerns/comfy/cms/with_categories.rb +9 -7
  40. data/app/models/concerns/comfy/cms/with_fragments.rb +15 -13
  41. data/app/views/comfy/admin/cms/categories/_categories.html.haml +1 -1
  42. data/app/views/comfy/admin/cms/files/_file.html.haml +3 -3
  43. data/app/views/comfy/admin/cms/files/_modal.html.haml +2 -2
  44. data/app/views/comfy/admin/cms/{pages/_fragment_attachments.html.haml → fragments/_form_fragment_attachments.html.haml} +0 -0
  45. data/app/views/comfy/admin/cms/{pages → fragments}/_form_fragments.html.haml +0 -0
  46. data/app/views/comfy/admin/cms/layouts/_index_branch.html.haml +2 -2
  47. data/app/views/comfy/admin/cms/pages/_form.html.haml +7 -7
  48. data/app/views/comfy/admin/cms/pages/_index_branch.html.haml +16 -15
  49. data/app/views/comfy/admin/cms/pages/form_fragments.js.erb +1 -1
  50. data/app/views/comfy/admin/cms/pages/toggle_branch.js.erb +1 -1
  51. data/app/views/comfy/admin/cms/snippets/index.html.haml +3 -3
  52. data/app/views/comfy/admin/cms/translations/_form.html.haml +1 -1
  53. data/app/views/comfy/admin/cms/translations/form_fragments.js.erb +1 -1
  54. data/app/views/layouts/comfy/admin/cms/_body.html.haml +1 -4
  55. data/app/views/layouts/comfy/admin/cms.html.haml +1 -1
  56. data/bin/bundle +3 -0
  57. data/bin/rails +4 -0
  58. data/bin/rake +4 -0
  59. data/bin/setup +36 -0
  60. data/bin/update +31 -0
  61. data/bin/yarn +11 -0
  62. data/comfortable_mexican_sofa.gemspec +14 -14
  63. data/config/application.rb +4 -3
  64. data/config/boot.rb +3 -3
  65. data/config/cms_routes.rb +1 -1
  66. data/config/environment.rb +1 -1
  67. data/config/environments/development.rb +2 -2
  68. data/config/environments/test.rb +1 -1
  69. data/config/initializers/comfortable_mexican_sofa.rb +2 -5
  70. data/config/locales/cs.yml +2 -1
  71. data/config/locales/da.yml +2 -1
  72. data/config/locales/de.yml +2 -1
  73. data/config/locales/en.yml +2 -1
  74. data/config/locales/es.yml +2 -1
  75. data/config/locales/fr.yml +2 -1
  76. data/config/locales/it.yml +2 -1
  77. data/config/locales/ja.yml +2 -1
  78. data/config/locales/nb.yml +2 -1
  79. data/config/locales/nl.yml +2 -1
  80. data/config/locales/pl.yml +2 -1
  81. data/config/locales/pt-BR.yml +2 -1
  82. data/config/locales/ru.yml +2 -1
  83. data/config/locales/sk.yml +2 -1
  84. data/config/locales/sv.yml +2 -1
  85. data/config/locales/tr.yml +2 -1
  86. data/config/locales/uk.yml +2 -1
  87. data/config/locales/zh-CN.yml +2 -1
  88. data/config/locales/zh-TW.yml +2 -1
  89. data/config.ru +1 -1
  90. data/lib/comfortable_mexican_sofa/access_control/admin_authentication.rb +2 -1
  91. data/lib/comfortable_mexican_sofa/access_control/admin_authorization.rb +2 -0
  92. data/lib/comfortable_mexican_sofa/access_control/public_authentication.rb +3 -1
  93. data/lib/comfortable_mexican_sofa/access_control/public_authorization.rb +2 -0
  94. data/lib/comfortable_mexican_sofa/configuration.rb +27 -29
  95. data/lib/comfortable_mexican_sofa/content/block.rb +2 -1
  96. data/lib/comfortable_mexican_sofa/content/params_parser.rb +22 -21
  97. data/lib/comfortable_mexican_sofa/content/renderer.rb +10 -8
  98. data/lib/comfortable_mexican_sofa/content/tag.rb +1 -0
  99. data/lib/comfortable_mexican_sofa/content/tags/asset.rb +4 -3
  100. data/lib/comfortable_mexican_sofa/content/tags/checkbox.rb +3 -2
  101. data/lib/comfortable_mexican_sofa/content/tags/date.rb +4 -3
  102. data/lib/comfortable_mexican_sofa/content/tags/datetime.rb +4 -3
  103. data/lib/comfortable_mexican_sofa/content/tags/file.rb +15 -13
  104. data/lib/comfortable_mexican_sofa/content/tags/file_link.rb +8 -7
  105. data/lib/comfortable_mexican_sofa/content/tags/files.rb +15 -13
  106. data/lib/comfortable_mexican_sofa/content/tags/fragment.rb +7 -6
  107. data/lib/comfortable_mexican_sofa/content/tags/helper.rb +2 -1
  108. data/lib/comfortable_mexican_sofa/content/tags/markdown.rb +5 -4
  109. data/lib/comfortable_mexican_sofa/content/tags/number.rb +4 -3
  110. data/lib/comfortable_mexican_sofa/content/tags/partial.rb +1 -0
  111. data/lib/comfortable_mexican_sofa/content/tags/snippet.rb +3 -2
  112. data/lib/comfortable_mexican_sofa/content/tags/template.rb +1 -0
  113. data/lib/comfortable_mexican_sofa/content/tags/text.rb +4 -3
  114. data/lib/comfortable_mexican_sofa/content/tags/textarea.rb +4 -3
  115. data/lib/comfortable_mexican_sofa/content/tags/wysiwyg.rb +4 -3
  116. data/lib/comfortable_mexican_sofa/content.rb +21 -21
  117. data/lib/comfortable_mexican_sofa/engine.rb +17 -15
  118. data/lib/comfortable_mexican_sofa/error.rb +12 -6
  119. data/lib/comfortable_mexican_sofa/extensions/acts_as_tree.rb +17 -11
  120. data/lib/comfortable_mexican_sofa/extensions/has_revisions.rb +14 -13
  121. data/lib/comfortable_mexican_sofa/form_builder.rb +2 -2
  122. data/lib/comfortable_mexican_sofa/render_methods.rb +74 -76
  123. data/lib/comfortable_mexican_sofa/routes/cms.rb +4 -4
  124. data/lib/comfortable_mexican_sofa/routes/cms_admin.rb +2 -1
  125. data/lib/comfortable_mexican_sofa/routing.rb +4 -2
  126. data/lib/comfortable_mexican_sofa/seeds/file/exporter.rb +7 -6
  127. data/lib/comfortable_mexican_sofa/seeds/file/importer.rb +9 -9
  128. data/lib/comfortable_mexican_sofa/seeds/layout/exporter.rb +8 -7
  129. data/lib/comfortable_mexican_sofa/seeds/layout/importer.rb +11 -10
  130. data/lib/comfortable_mexican_sofa/seeds/page/exporter.rb +25 -23
  131. data/lib/comfortable_mexican_sofa/seeds/page/importer.rb +47 -43
  132. data/lib/comfortable_mexican_sofa/seeds/snippet/exporter.rb +7 -6
  133. data/lib/comfortable_mexican_sofa/seeds/snippet/importer.rb +7 -6
  134. data/lib/comfortable_mexican_sofa/seeds.rb +16 -9
  135. data/lib/comfortable_mexican_sofa/version.rb +4 -2
  136. data/lib/comfortable_mexican_sofa/view_hooks.rb +10 -9
  137. data/lib/comfortable_mexican_sofa.rb +30 -30
  138. data/lib/generators/comfy/cms/assets_generator.rb +6 -4
  139. data/lib/generators/comfy/cms/cms_generator.rb +14 -14
  140. data/lib/generators/comfy/cms/controllers_generator.rb +5 -3
  141. data/lib/generators/comfy/cms/models_generator.rb +5 -3
  142. data/lib/generators/comfy/cms/views_generator.rb +5 -3
  143. data/lib/generators/comfy/scaffold/scaffold_generator.rb +19 -18
  144. data/lib/tasks/cms_seeds.rake +4 -5
  145. data/test/controllers/comfy/admin/cms/base_controller_test.rb +4 -3
  146. data/test/controllers/comfy/admin/cms/categories_controller_test.rb +19 -18
  147. data/test/controllers/comfy/admin/cms/files_controller_test.rb +19 -19
  148. data/test/controllers/comfy/admin/cms/layouts_controller_test.rb +33 -32
  149. data/test/controllers/comfy/admin/cms/pages_controller_test.rb +99 -98
  150. data/test/controllers/comfy/admin/cms/revisions/layout_controller_test.rb +9 -9
  151. data/test/controllers/comfy/admin/cms/revisions/page_controller_test.rb +6 -6
  152. data/test/controllers/comfy/admin/cms/revisions/snippet_controller_test.rb +9 -8
  153. data/test/controllers/comfy/admin/cms/revisions/translation_controller_test.rb +6 -7
  154. data/test/controllers/comfy/admin/cms/sites_controller_test.rb +31 -30
  155. data/test/controllers/comfy/admin/cms/snippets_controller_test.rb +38 -37
  156. data/test/controllers/comfy/admin/cms/translations_controller_test.rb +21 -20
  157. data/test/controllers/comfy/cms/assets_controller_test.rb +14 -13
  158. data/test/controllers/comfy/cms/content_controller_test.rb +58 -57
  159. data/test/gemfiles/Gemfile.rails.5.2 +5 -4
  160. data/test/generators/cms_assets_generator_test.rb +6 -4
  161. data/test/generators/cms_controllers_generator_test.rb +7 -5
  162. data/test/generators/cms_generator_test.rb +12 -10
  163. data/test/generators/cms_models_generator_test.rb +7 -5
  164. data/test/generators/cms_views_generator_test.rb +6 -4
  165. data/test/generators/scaffold_generator_test.rb +18 -16
  166. data/test/helpers/cms_helper_test.rb +5 -2
  167. data/test/integration/access_control_test.rb +29 -20
  168. data/test/integration/i18n_test.rb +8 -7
  169. data/test/integration/js_variables_test.rb +2 -1
  170. data/test/integration/render_cms_test.rb +93 -88
  171. data/test/integration/routing_test.rb +4 -3
  172. data/test/integration/seeds_test.rb +21 -22
  173. data/test/integration/sites_test.rb +26 -25
  174. data/test/integration/view_hooks_test.rb +15 -14
  175. data/test/lib/configuration_test.rb +13 -15
  176. data/test/lib/content/block_test.rb +1 -1
  177. data/test/lib/content/params_parser_test.rb +11 -10
  178. data/test/lib/content/renderer_test.rb +16 -11
  179. data/test/lib/content/tag_test.rb +7 -3
  180. data/test/lib/content/tags/asset_test.rb +4 -3
  181. data/test/lib/content/tags/checkbox_test.rb +2 -1
  182. data/test/lib/content/tags/date_test.rb +2 -1
  183. data/test/lib/content/tags/datetime_test.rb +2 -1
  184. data/test/lib/content/tags/file_link_test.rb +3 -2
  185. data/test/lib/content/tags/file_test.rb +3 -2
  186. data/test/lib/content/tags/files_test.rb +4 -3
  187. data/test/lib/content/tags/fragment_test.rb +2 -1
  188. data/test/lib/content/tags/helper_test.rb +4 -3
  189. data/test/lib/content/tags/markdown_test.rb +2 -1
  190. data/test/lib/content/tags/number_test.rb +2 -1
  191. data/test/lib/content/tags/partial_test.rb +4 -3
  192. data/test/lib/content/tags/snippet_test.rb +2 -1
  193. data/test/lib/content/tags/template_test.rb +2 -1
  194. data/test/lib/content/tags/text_test.rb +2 -1
  195. data/test/lib/content/tags/textarea_test.rb +2 -1
  196. data/test/lib/content/tags/wysiwyg_test.rb +2 -1
  197. data/test/lib/revisions_test.rb +44 -42
  198. data/test/lib/seeds/files_test.rb +30 -29
  199. data/test/lib/seeds/layouts_test.rb +13 -12
  200. data/test/lib/seeds/pages_test.rb +32 -29
  201. data/test/lib/seeds/snippets_test.rb +21 -20
  202. data/test/lib/seeds_test.rb +9 -8
  203. data/test/models/categorization_test.rb +10 -9
  204. data/test/models/category_test.rb +1 -1
  205. data/test/models/file_test.rb +1 -1
  206. data/test/models/fragment_test.rb +11 -10
  207. data/test/models/layout_test.rb +71 -70
  208. data/test/models/page_test.rb +170 -159
  209. data/test/models/site_test.rb +17 -16
  210. data/test/models/snippet_test.rb +1 -0
  211. data/test/models/translation_test.rb +2 -1
  212. data/test/tasks/cms_seeds_test.rb +3 -2
  213. data/test/test_helper.rb +42 -40
  214. metadata +55 -51
  215. data/.rubocop_todo.yml +0 -974
  216. data/script/rails +0 -6
@@ -16,15 +16,15 @@ class Comfy::Admin::Cms::Revisions::BaseController < Comfy::Admin::Cms::BaseCont
16
16
  end
17
17
 
18
18
  def show
19
- @current_content = @record.revision_fields.inject({}){|c, f| c[f] = @record.send(f); c }
20
- @versioned_content = @record.revision_fields.inject({}){|c, f| c[f] = @revision.data[f]; c }
19
+ @current_content = @record.revision_fields.each_with_object({}) { |f, c| c[f] = @record.send(f) }
20
+ @versioned_content = @record.revision_fields.each_with_object({}) { |f, c| c[f] = @revision.data[f] }
21
21
 
22
22
  render "comfy/admin/cms/revisions/show"
23
23
  end
24
24
 
25
25
  def revert
26
26
  @record.restore_from_revision(@revision)
27
- flash[:success] = I18n.t('comfy.admin.cms.revisions.reverted')
27
+ flash[:success] = I18n.t("comfy.admin.cms.revisions.reverted")
28
28
  redirect_to record_path
29
29
  end
30
30
 
@@ -37,11 +37,12 @@ protected
37
37
  def load_revision
38
38
  @revision = @record.revisions.find(params[:id])
39
39
  rescue ActiveRecord::RecordNotFound
40
- flash[:danger] = I18n.t('comfy.admin.cms.revisions.not_found')
40
+ flash[:danger] = I18n.t("comfy.admin.cms.revisions.not_found")
41
41
  redirect_to record_path
42
42
  end
43
43
 
44
44
  def record_path
45
45
  raise "no implemented"
46
46
  end
47
+
47
48
  end
@@ -5,11 +5,12 @@ private
5
5
  def load_record
6
6
  @record = @site.layouts.find(params[:layout_id])
7
7
  rescue ActiveRecord::RecordNotFound
8
- flash[:danger] = I18n.t('comfy.admin.cms.revisions.record_not_found')
8
+ flash[:danger] = I18n.t("comfy.admin.cms.revisions.record_not_found")
9
9
  redirect_to comfy_admin_cms_site_layouts_path(@site)
10
10
  end
11
11
 
12
12
  def record_path
13
13
  edit_comfy_admin_cms_site_layout_path(@site, @record)
14
14
  end
15
+
15
16
  end
@@ -1,8 +1,13 @@
1
1
  class Comfy::Admin::Cms::Revisions::PageController < Comfy::Admin::Cms::Revisions::BaseController
2
2
 
3
3
  def show
4
- @current_content = @record.fragments.inject({}){|c, b| c[b.identifier] = b.content; c }
5
- @versioned_content = @record.fragments.inject({}){|c, b| c[b.identifier] = @revision.data['fragments_attributes'].detect{|r| r[:identifier] == b.identifier}.try(:[], :content); c }
4
+ @current_content = @record.fragments.each_with_object({}) do |b, c|
5
+ c[b.identifier] = b.content
6
+ end
7
+ @versioned_content = @record.fragments.each_with_object({}) do |b, c|
8
+ d = @revision.data["fragments_attributes"].detect { |r| r[:identifier] == b.identifier }
9
+ c[b.identifier] = d.try(:[], :content)
10
+ end
6
11
 
7
12
  render "comfy/admin/cms/revisions/show"
8
13
  end
@@ -12,11 +17,12 @@ private
12
17
  def load_record
13
18
  @record = @site.pages.find(params[:page_id])
14
19
  rescue ActiveRecord::RecordNotFound
15
- flash[:danger] = I18n.t('comfy.admin.cms.revisions.record_not_found')
20
+ flash[:danger] = I18n.t("comfy.admin.cms.revisions.record_not_found")
16
21
  redirect_to comfy_admin_cms_site_pages_path(@site)
17
22
  end
18
23
 
19
24
  def record_path
20
25
  edit_comfy_admin_cms_site_page_path(@site, @record)
21
26
  end
27
+
22
28
  end
@@ -5,11 +5,12 @@ private
5
5
  def load_record
6
6
  @record = @site.snippets.find(params[:snippet_id])
7
7
  rescue ActiveRecord::RecordNotFound
8
- flash[:danger] = I18n.t('comfy.admin.cms.revisions.record_not_found')
8
+ flash[:danger] = I18n.t("comfy.admin.cms.revisions.record_not_found")
9
9
  redirect_to comfy_admin_cms_site_snippets_path(@site)
10
10
  end
11
11
 
12
12
  def record_path
13
13
  edit_comfy_admin_cms_site_snippet_path(@site, @record)
14
14
  end
15
+
15
16
  end
@@ -1,8 +1,13 @@
1
1
  class Comfy::Admin::Cms::Revisions::TranslationController < Comfy::Admin::Cms::Revisions::BaseController
2
2
 
3
3
  def show
4
- @current_content = @record.fragments.inject({}){|c, b| c[b.identifier] = b.content; c }
5
- @versioned_content = @record.fragments.inject({}){|c, b| c[b.identifier] = @revision.data['fragments_attributes'].detect{|r| r[:identifier] == b.identifier}.try(:[], :content); c }
4
+ @current_content = @record.fragments.each_with_object({}) do |b, c|
5
+ c[b.identifier] = b.content
6
+ end
7
+ @versioned_content = @record.fragments.each_with_object({}) do |b, c|
8
+ d = @revision.data["fragments_attributes"].detect { |r| r[:identifier] == b.identifier }
9
+ c[b.identifier] = d.try(:[], :content)
10
+ end
6
11
 
7
12
  render "comfy/admin/cms/revisions/show"
8
13
  end
@@ -13,11 +18,12 @@ private
13
18
  @page = @site.pages.find(params[:page_id])
14
19
  @record = @page.translations.find(params[:translation_id])
15
20
  rescue ActiveRecord::RecordNotFound
16
- flash[:danger] = I18n.t('comfy.admin.cms.revisions.record_not_found')
21
+ flash[:danger] = I18n.t("comfy.admin.cms.revisions.record_not_found")
17
22
  redirect_to comfy_admin_cms_site_pages_path(@site)
18
23
  end
19
24
 
20
25
  def record_path
21
26
  edit_comfy_admin_cms_site_page_translation_path(@site, @page, @record)
22
27
  end
28
+
23
29
  end
@@ -3,12 +3,12 @@ class Comfy::Admin::Cms::SitesController < Comfy::Admin::Cms::BaseController
3
3
  skip_before_action :load_admin_site,
4
4
  :load_seeds
5
5
 
6
- before_action :build_site, only: [:new, :create]
7
- before_action :load_site, only: [:edit, :update, :destroy]
6
+ before_action :build_site, only: %i[new create]
7
+ before_action :load_site, only: %i[edit update destroy]
8
8
  before_action :authorize
9
9
 
10
10
  def index
11
- return redirect_to action: :new if ::Comfy::Cms::Site.count == 0
11
+ return redirect_to action: :new if ::Comfy::Cms::Site.count.zero?
12
12
  @site = ::Comfy::Cms::Site.find_by_id(session[:site_id])
13
13
  @sites ||= ::Comfy::Cms::Site.all
14
14
  end
@@ -23,25 +23,25 @@ class Comfy::Admin::Cms::SitesController < Comfy::Admin::Cms::BaseController
23
23
 
24
24
  def create
25
25
  @site.save!
26
- flash[:success] = I18n.t('comfy.admin.cms.sites.created')
26
+ flash[:success] = I18n.t("comfy.admin.cms.sites.created")
27
27
  redirect_to comfy_admin_cms_site_layouts_path(@site)
28
28
  rescue ActiveRecord::RecordInvalid
29
- flash.now[:danger] = I18n.t('comfy.admin.cms.sites.creation_failure')
29
+ flash.now[:danger] = I18n.t("comfy.admin.cms.sites.creation_failure")
30
30
  render action: :new
31
31
  end
32
32
 
33
33
  def update
34
34
  @site.update_attributes!(site_params)
35
- flash[:success] = I18n.t('comfy.admin.cms.sites.updated')
35
+ flash[:success] = I18n.t("comfy.admin.cms.sites.updated")
36
36
  redirect_to action: :edit, id: @site
37
37
  rescue ActiveRecord::RecordInvalid
38
- flash.now[:danger] = I18n.t('comfy.admin.cms.sites.update_failure')
38
+ flash.now[:danger] = I18n.t("comfy.admin.cms.sites.update_failure")
39
39
  render action: :edit
40
40
  end
41
41
 
42
42
  def destroy
43
43
  @site.destroy
44
- flash[:success] = I18n.t('comfy.admin.cms.sites.deleted')
44
+ flash[:success] = I18n.t("comfy.admin.cms.sites.deleted")
45
45
  redirect_to action: :index
46
46
  end
47
47
 
@@ -56,11 +56,12 @@ protected
56
56
  @site = ::Comfy::Cms::Site.find(params[:id])
57
57
  I18n.locale = ComfortableMexicanSofa.config.admin_locale || @site.locale
58
58
  rescue ActiveRecord::RecordNotFound
59
- flash[:danger] = I18n.t('comfy.admin.cms.sites.not_found')
59
+ flash[:danger] = I18n.t("comfy.admin.cms.sites.not_found")
60
60
  redirect_to action: :index
61
61
  end
62
62
 
63
63
  def site_params
64
64
  params.fetch(:site, {}).permit!
65
65
  end
66
+
66
67
  end
@@ -1,11 +1,11 @@
1
1
  class Comfy::Admin::Cms::SnippetsController < Comfy::Admin::Cms::BaseController
2
2
 
3
- before_action :build_snippet, only: [:new, :create]
4
- before_action :load_snippet, only: [:edit, :update, :destroy]
3
+ before_action :build_snippet, only: %i[new create]
4
+ before_action :load_snippet, only: %i[edit update destroy]
5
5
  before_action :authorize
6
6
 
7
7
  def index
8
- return redirect_to action: :new if @site.snippets.count == 0
8
+ return redirect_to action: :new if @site.snippets.count.zero?
9
9
  @snippets = @site.snippets.includes(:categories).for_category(params[:categories]).order(:position)
10
10
  end
11
11
 
@@ -19,25 +19,25 @@ class Comfy::Admin::Cms::SnippetsController < Comfy::Admin::Cms::BaseController
19
19
 
20
20
  def create
21
21
  @snippet.save!
22
- flash[:success] = I18n.t('comfy.admin.cms.snippets.created')
22
+ flash[:success] = I18n.t("comfy.admin.cms.snippets.created")
23
23
  redirect_to action: :edit, id: @snippet
24
24
  rescue ActiveRecord::RecordInvalid
25
- flash.now[:danger] = I18n.t('comfy.admin.cms.snippets.creation_failure')
25
+ flash.now[:danger] = I18n.t("comfy.admin.cms.snippets.creation_failure")
26
26
  render action: :new
27
27
  end
28
28
 
29
29
  def update
30
30
  @snippet.update_attributes!(snippet_params)
31
- flash[:success] = I18n.t('comfy.admin.cms.snippets.updated')
31
+ flash[:success] = I18n.t("comfy.admin.cms.snippets.updated")
32
32
  redirect_to action: :edit, id: @snippet
33
33
  rescue ActiveRecord::RecordInvalid
34
- flash.now[:danger] = I18n.t('comfy.admin.cms.snippets.update_failure')
34
+ flash.now[:danger] = I18n.t("comfy.admin.cms.snippets.update_failure")
35
35
  render action: :edit
36
36
  end
37
37
 
38
38
  def destroy
39
39
  @snippet.destroy
40
- flash[:success] = I18n.t('comfy.admin.cms.snippets.deleted')
40
+ flash[:success] = I18n.t("comfy.admin.cms.snippets.deleted")
41
41
  redirect_to action: :index
42
42
  end
43
43
 
@@ -57,11 +57,12 @@ protected
57
57
  def load_snippet
58
58
  @snippet = @site.snippets.find(params[:id])
59
59
  rescue ActiveRecord::RecordNotFound
60
- flash[:danger] = I18n.t('comfy.admin.cms.snippets.not_found')
60
+ flash[:danger] = I18n.t("comfy.admin.cms.snippets.not_found")
61
61
  redirect_to action: :index
62
62
  end
63
63
 
64
64
  def snippet_params
65
65
  params.fetch(:snippet, {}).permit!
66
66
  end
67
+
67
68
  end
@@ -3,10 +3,10 @@ class Comfy::Admin::Cms::TranslationsController < Comfy::Admin::Cms::BaseControl
3
3
  helper_method :translation_select_options
4
4
 
5
5
  before_action :load_page
6
- before_action :build_translation, only: [:new, :create]
7
- before_action :load_translation, only: [:edit, :update, :destroy]
6
+ before_action :build_translation, only: %i[new create]
7
+ before_action :load_translation, only: %i[edit update destroy]
8
8
  before_action :authorize
9
- before_action :preview_translation, only: [:create, :update]
9
+ before_action :preview_translation, only: %i[create update]
10
10
 
11
11
  def new
12
12
  render
@@ -18,25 +18,25 @@ class Comfy::Admin::Cms::TranslationsController < Comfy::Admin::Cms::BaseControl
18
18
 
19
19
  def create
20
20
  @translation.save!
21
- flash[:success] = I18n.t('comfy.admin.cms.translations.created')
21
+ flash[:success] = I18n.t("comfy.admin.cms.translations.created")
22
22
  redirect_to action: :edit, id: @translation
23
23
  rescue ActiveRecord::RecordInvalid
24
- flash.now[:danger] = I18n.t('comfy.admin.cms.translations.creation_failure')
24
+ flash.now[:danger] = I18n.t("comfy.admin.cms.translations.creation_failure")
25
25
  render action: :new
26
26
  end
27
27
 
28
28
  def update
29
29
  @translation.update_attributes!(translation_params)
30
- flash[:success] = I18n.t('comfy.admin.cms.translations.updated')
30
+ flash[:success] = I18n.t("comfy.admin.cms.translations.updated")
31
31
  redirect_to action: :edit, id: @translation
32
32
  rescue ActiveRecord::RecordInvalid
33
- flash.now[:danger] = I18n.t('comfy.admin.cms.translations.update_failure')
33
+ flash.now[:danger] = I18n.t("comfy.admin.cms.translations.update_failure")
34
34
  render action: :edit
35
35
  end
36
36
 
37
37
  def destroy
38
38
  @translation.destroy
39
- flash[:success] = I18n.t('comfy.admin.cms.translations.deleted')
39
+ flash[:success] = I18n.t("comfy.admin.cms.translations.deleted")
40
40
  redirect_to edit_comfy_admin_cms_site_page_path(@site, @page)
41
41
  end
42
42
 
@@ -50,13 +50,13 @@ private
50
50
  def translation_select_options
51
51
  all = ComfortableMexicanSofa.config.locales
52
52
  taken = @page.translations.pluck(:locale) + [@site.locale] - [@translation.locale]
53
- all.except(*taken).map{|k, v| ["#{v} (#{k})", k]}
53
+ all.except(*taken).map { |k, v| ["#{v} (#{k})", k] }
54
54
  end
55
55
 
56
56
  def load_page
57
57
  @page = @site.pages.find(params[:page_id])
58
58
  rescue ActiveRecord::RecordNotFound
59
- flash[:danger] = I18n.t('comfy.admin.cms.pages.not_found')
59
+ flash[:danger] = I18n.t("comfy.admin.cms.pages.not_found")
60
60
  redirect_to comfy_admin_cms_site_pages_path(@site)
61
61
  end
62
62
 
@@ -69,7 +69,7 @@ private
69
69
  @translation = @page.translations.find(params[:id])
70
70
  @translation.attributes = translation_params
71
71
  rescue ActiveRecord::RecordNotFound
72
- flash[:danger] = I18n.t('comfy.admin.cms.translations.not_found')
72
+ flash[:danger] = I18n.t("comfy.admin.cms.translations.not_found")
73
73
  redirect_to edit_comfy_admin_cms_site_page_path(@site, @page)
74
74
  end
75
75
 
@@ -79,7 +79,7 @@ private
79
79
 
80
80
  def preview_translation
81
81
  if params[:preview]
82
- layout = @translation.layout.app_layout.blank?? false : @translation.layout.app_layout
82
+ layout = @translation.layout.app_layout.blank? ? false : @translation.layout.app_layout
83
83
  @cms_site = @page.site
84
84
  @cms_layout = @translation.layout
85
85
  @cms_page = @page
@@ -89,10 +89,11 @@ private
89
89
  I18n.locale = @translation.locale
90
90
 
91
91
  # Chrome chokes on content with iframes. Issue #434
92
- response.headers['X-XSS-Protection'] = '0'
92
+ response.headers["X-XSS-Protection"] = "0"
93
93
 
94
94
  # raise
95
- render inline: @translation.render, layout: layout, content_type: 'text/html'
95
+ render inline: @translation.render, layout: layout, content_type: "text/html"
96
96
  end
97
97
  end
98
+
98
99
  end
@@ -8,11 +8,11 @@ class Comfy::Cms::AssetsController < Comfy::Cms::BaseController
8
8
  after_action :set_cache_control_header
9
9
 
10
10
  def render_css
11
- render body: @cms_layout.css, content_type: 'text/css'
11
+ render body: @cms_layout.css, content_type: "text/css"
12
12
  end
13
13
 
14
14
  def render_js
15
- render body: @cms_layout.js, content_type: 'application/javascript'
15
+ render body: @cms_layout.js, content_type: "application/javascript"
16
16
  end
17
17
 
18
18
  protected
@@ -31,7 +31,8 @@ protected
31
31
 
32
32
  def set_cache_control_header
33
33
  if params[:cache_buster].present?
34
- response.headers['Cache-Control'] = "public, max-age=#{1.year.to_i}"
34
+ response.headers["Cache-Control"] = "public, max-age=#{1.year.to_i}"
35
35
  end
36
36
  end
37
+
37
38
  end
@@ -5,24 +5,25 @@ class Comfy::Cms::BaseController < ApplicationController
5
5
  protected
6
6
 
7
7
  def load_cms_site
8
- @cms_site ||= if params[:site_id]
9
- ::Comfy::Cms::Site.find_by_id(params[:site_id])
10
- else
11
- ::Comfy::Cms::Site.find_site(request.host_with_port.downcase, request.fullpath)
12
- end
8
+ @cms_site ||=
9
+ if params[:site_id]
10
+ ::Comfy::Cms::Site.find_by_id(params[:site_id])
11
+ else
12
+ ::Comfy::Cms::Site.find_site(request.host_with_port.downcase, request.fullpath)
13
+ end
13
14
 
14
15
  if @cms_site
15
16
  if @cms_site.path.present? && !params[:site_id]
16
- if params[:cms_path] && params[:cms_path].match(/\A#{@cms_site.path}/)
17
- params[:cms_path].gsub!(/\A#{@cms_site.path}/, '')
18
- params[:cms_path] && params[:cms_path].gsub!(/\A\//, '')
17
+ if params[:cms_path] && params[:cms_path].match(%r{\A#{@cms_site.path}})
18
+ params[:cms_path].gsub!(%r{\A#{@cms_site.path}}, "")
19
+ params[:cms_path] && params[:cms_path].gsub!(%r{\A/}, "")
19
20
  else
20
- raise ActionController::RoutingError.new('Site Not Found')
21
+ raise ActionController::RoutingError, "Site Not Found"
21
22
  end
22
23
  end
23
24
  else
24
- raise ActionController::RoutingError.new('Site Not Found')
25
+ raise ActionController::RoutingError, "Site Not Found"
25
26
  end
26
27
  end
27
28
 
28
- end
29
+ end
@@ -18,14 +18,14 @@ class Comfy::Cms::ContentController < Comfy::Cms::BaseController
18
18
  else
19
19
  respond_to do |format|
20
20
  format.html { render_page }
21
- format.json {
21
+ format.json do
22
22
  json_page = @cms_page.as_json(except: [:content_cache])
23
- json_page.merge!(content: render_to_string(
23
+ json_page[:content] = render_to_string(
24
24
  inline: @cms_page.content_cache,
25
25
  layout: false
26
- ))
26
+ )
27
27
  render json: json_page
28
- }
28
+ end
29
29
  end
30
30
  end
31
31
  end
@@ -41,13 +41,13 @@ protected
41
41
 
42
42
  # it's possible to control mimetype of a page by creating a `mime_type` field
43
43
  def mime_type
44
- mime_block = @cms_page.fragments.detect{|f| f.identifier == "mime_type"}
44
+ mime_block = @cms_page.fragments.detect { |f| f.identifier == "mime_type" }
45
45
  mime_block && mime_block.content || "text/html"
46
46
  end
47
47
 
48
48
  def app_layout
49
49
  return false if request.xhr? || !@cms_layout
50
- @cms_layout.app_layout.present?? @cms_layout.app_layout : false
50
+ @cms_layout.app_layout.present? ? @cms_layout.app_layout : false
51
51
  end
52
52
 
53
53
  def load_seeds
@@ -63,7 +63,7 @@ protected
63
63
  render_page(:not_found)
64
64
  else
65
65
  message = "Page Not Found at: \"#{params[:cms_path]}\""
66
- raise ActionController::RoutingError.new(message)
66
+ raise ActionController::RoutingError, message
67
67
  end
68
68
  end
69
69
  end
@@ -86,4 +86,5 @@ protected
86
86
  rescue ActiveRecord::RecordNotFound
87
87
  nil
88
88
  end
89
+
89
90
  end
@@ -10,4 +10,5 @@ module Comfy::Paginate
10
10
  scope
11
11
  end
12
12
  end
13
- end
13
+
14
+ end
@@ -7,7 +7,7 @@ module Comfy
7
7
  # cms_fragment_content(:left_column, CmsPage.first)
8
8
  # cms_fragment_content(:left_column) # if @cms_page is present
9
9
  def cms_fragment_content(identifier, page = @cms_page)
10
- frag = page && page.fragments.detect{|f| f.identifier == identifier.to_s}
10
+ frag = page && page.fragments.detect { |f| f.identifier == identifier.to_s }
11
11
  return "" unless frag
12
12
  case frag.tag
13
13
  when "date", "datetime"
@@ -25,7 +25,7 @@ module Comfy
25
25
  # it only if you know you got more stuff in the fragment content other than
26
26
  # text because this is a potentially expensive call.
27
27
  def cms_fragment_render(identifier, page = @cms_page)
28
- node = page.fragment_nodes.detect{|n| n.identifier == identifier.to_s}
28
+ node = page.fragment_nodes.detect { |n| n.identifier == identifier.to_s }
29
29
  return "" unless node
30
30
  render inline: page.render([node])
31
31
  end
@@ -35,7 +35,10 @@ module Comfy
35
35
  # cms_snippet_content(:my_snippet)
36
36
  def cms_snippet_content(identifier, cms_site = @cms_site)
37
37
  unless cms_site
38
- host, path = request.host_with_port.downcase, request.fullpath if respond_to?(:request) && request
38
+ if respond_to?(:request) && request
39
+ host = request.host_with_port.downcase
40
+ path = request.fullpath
41
+ end
39
42
  cms_site = Comfy::Cms::Site.find_site(host, path)
40
43
  end
41
44
  snippet = cms_site && cms_site.snippets.find_by_identifier(identifier)
@@ -1,4 +1,5 @@
1
1
  class Comfy::Cms::Categorization < ActiveRecord::Base
2
+
2
3
  self.table_name = "comfy_cms_categorizations"
3
4
 
4
5
  # -- Relationships -----------------------------------------------------------
@@ -8,6 +9,6 @@ class Comfy::Cms::Categorization < ActiveRecord::Base
8
9
 
9
10
  # -- Validations -------------------------------------------------------------
10
11
  validates :category_id,
11
- uniqueness: { scope: [:categorized_type, :categorized_id] }
12
+ uniqueness: { scope: %i[categorized_type categorized_id] }
12
13
 
13
14
  end
@@ -1,4 +1,5 @@
1
1
  class Comfy::Cms::Category < ActiveRecord::Base
2
+
2
3
  self.table_name = "comfy_cms_categories"
3
4
 
4
5
  # -- Relationships --------------------------------------------------------
@@ -9,12 +10,12 @@ class Comfy::Cms::Category < ActiveRecord::Base
9
10
  # -- Validations ----------------------------------------------------------
10
11
  validates :label,
11
12
  presence: true,
12
- uniqueness: { scope: [:categorized_type, :site_id] }
13
+ uniqueness: { scope: %i[categorized_type site_id] }
13
14
  validates :categorized_type,
14
15
  presence: true
15
16
 
16
17
  # -- Scopes ---------------------------------------------------------------
17
- scope :of_type, lambda { |type|
18
+ scope :of_type, ->(type) {
18
19
  where(categorized_type: type)
19
20
  }
20
21
 
@@ -1,13 +1,14 @@
1
1
  class Comfy::Cms::File < ActiveRecord::Base
2
- self.table_name = 'comfy_cms_files'
2
+
3
+ self.table_name = "comfy_cms_files"
3
4
 
4
5
  include Comfy::Cms::WithCategories
5
6
 
6
7
  VARIANT_SIZE = {
7
- redactor: {resize: "100x75^", gravity: "center", crop: "100x75+0+0"},
8
- thumb: {resize: "200x150^", gravity: "center", crop: "200x150+0+0"},
9
- icon: {resize: "28x28^", gravity: "center", crop: "28x28+0+0"}
10
- }
8
+ redactor: { resize: "100x75^", gravity: "center", crop: "100x75+0+0" },
9
+ thumb: { resize: "200x150^", gravity: "center", crop: "200x150+0+0" },
10
+ icon: { resize: "28x28^", gravity: "center", crop: "28x28+0+0" }
11
+ }.freeze
11
12
 
12
13
  # temporary place to store attachment
13
14
  attr_accessor :file
@@ -35,7 +36,7 @@ class Comfy::Cms::File < ActiveRecord::Base
35
36
  def label
36
37
  l = read_attribute(:label)
37
38
  return l if l.present?
38
- attachment.attached?? attachment.filename.to_s : nil
39
+ attachment.attached? ? attachment.filename.to_s : nil
39
40
  end
40
41
 
41
42
  protected
@@ -47,6 +48,7 @@ protected
47
48
 
48
49
  def process_attachment
49
50
  return if @file.blank?
50
- self.attachment.attach(@file)
51
+ attachment.attach(@file)
51
52
  end
53
+
52
54
  end
@@ -1,5 +1,6 @@
1
1
  class Comfy::Cms::Fragment < ActiveRecord::Base
2
- self.table_name = 'comfy_cms_fragments'
2
+
3
+ self.table_name = "comfy_cms_fragments"
3
4
 
4
5
  has_many_attached :attachments
5
6
 
@@ -17,7 +18,7 @@ class Comfy::Cms::Fragment < ActiveRecord::Base
17
18
  # -- Validations -------------------------------------------------------------
18
19
  validates :identifier,
19
20
  presence: true,
20
- uniqueness: {scope: :record}
21
+ uniqueness: { scope: :record }
21
22
 
22
23
  # -- Instance Methods --------------------------------------------------------
23
24
 
@@ -38,18 +39,19 @@ protected
38
39
 
39
40
  def remove_attachments
40
41
  return unless @file_ids_destroy.present?
41
- self.attachments.where(id: @file_ids_destroy).destroy_all
42
+ attachments.where(id: @file_ids_destroy).destroy_all
42
43
  end
43
44
 
44
45
  def add_attachments
45
46
  return if @files.blank?
46
47
 
47
48
  # If we're dealing with a single file
48
- if self.tag == "file"
49
+ if tag == "file"
49
50
  @files = [@files.first]
50
- self.attachments.purge_later if self.attachments
51
+ attachments.purge_later if attachments
51
52
  end
52
53
 
53
- self.attachments.attach(@files)
54
+ attachments.attach(@files)
54
55
  end
56
+
55
57
  end