comfortable_media_surfer 3.1.4 → 3.1.6
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.
- checksums.yaml +4 -4
- data/.github/workflows/claude-code-review.yml +44 -0
- data/.github/workflows/claude.yml +50 -0
- data/.github/workflows/rubyonrails.yml +2 -0
- data/.rubocop.yml +4 -0
- data/CHANGELOG.md +28 -1
- data/Gemfile +6 -5
- data/README.md +1 -1
- data/app/controllers/comfy/admin/cms/base_controller.rb +2 -2
- data/app/controllers/comfy/admin/cms/files_controller.rb +3 -2
- data/app/controllers/comfy/admin/cms/layouts_controller.rb +2 -1
- data/app/controllers/comfy/admin/cms/pages_controller.rb +3 -2
- data/app/controllers/comfy/admin/cms/sites_controller.rb +1 -1
- data/app/controllers/comfy/admin/cms/snippets_controller.rb +2 -1
- data/app/models/comfy/cms/page.rb +2 -2
- data/app/models/comfy/cms/site.rb +1 -1
- data/comfortable_media_surfer.gemspec +1 -2
- data/gemfiles/7.1.gemfile +7 -4
- data/gemfiles/7.2.gemfile +7 -4
- data/gemfiles/8.0.gemfile +7 -4
- data/gemfiles/8.1.gemfile +35 -0
- data/lib/comfortable_media_surfer/content/renderer.rb +2 -2
- data/lib/comfortable_media_surfer/content/tags/children.rb +1 -1
- data/lib/comfortable_media_surfer/form_builder.rb +2 -2
- data/lib/comfortable_media_surfer/routing.rb +7 -1
- data/lib/comfortable_media_surfer/version.rb +1 -1
- data/package-lock.json +611 -1
- data/rakelib/create_release.rake +4 -3
- metadata +11 -22
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4e5be068cf905c6ec8cb3e1e509554abff7e77d8f2c75a21116f5ee3e80c65f9
|
|
4
|
+
data.tar.gz: 723125a4edbd90114426132bf375fe6fd6cc9f501d638e8c48e4caf9a70ad1e7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a515bc875c3f765bff181e36b6eb9b7fd9fd2a6f1ce20b2f31390c5d93c81cab36036fea15fc98948220e8ea754f87021c0a96800833712647815f8058650e89
|
|
7
|
+
data.tar.gz: 50b001c7926e4de6a6a00bbdddf11964bd976d3735e83f604836826fb5c5c1250683260db1864954493421cee08ed9af1765b664dc11050f2f522c0c7fecf00b
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
name: Claude Code Review
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
types: [opened, synchronize, ready_for_review, reopened]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
claude-review:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
pull-requests: write
|
|
13
|
+
issues: write
|
|
14
|
+
id-token: write
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- name: Checkout repository
|
|
18
|
+
uses: actions/checkout@v6
|
|
19
|
+
with:
|
|
20
|
+
fetch-depth: 1
|
|
21
|
+
|
|
22
|
+
- name: Run Claude Code Review
|
|
23
|
+
id: claude-review
|
|
24
|
+
uses: anthropics/claude-code-action@v1
|
|
25
|
+
with:
|
|
26
|
+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
|
27
|
+
prompt: |
|
|
28
|
+
REPO: ${{ github.repository }}
|
|
29
|
+
PR NUMBER: ${{ github.event.pull_request.number }}
|
|
30
|
+
|
|
31
|
+
Please review this pull request with a focus on:
|
|
32
|
+
- Code quality and best practices
|
|
33
|
+
- Potential bugs or issues
|
|
34
|
+
- Security implications
|
|
35
|
+
- Performance considerations
|
|
36
|
+
|
|
37
|
+
Note: The PR branch is already checked out in the current working directory.
|
|
38
|
+
|
|
39
|
+
Use `gh pr comment` for top-level feedback.
|
|
40
|
+
Use `mcp__github_inline_comment__create_inline_comment` to highlight specific code issues.
|
|
41
|
+
Only post GitHub comments - don't submit review text as messages.
|
|
42
|
+
|
|
43
|
+
claude_args: |
|
|
44
|
+
--allowedTools "mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*)"
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
name: Claude Code
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
issue_comment:
|
|
5
|
+
types: [created]
|
|
6
|
+
pull_request_review_comment:
|
|
7
|
+
types: [created]
|
|
8
|
+
issues:
|
|
9
|
+
types: [opened, assigned]
|
|
10
|
+
pull_request_review:
|
|
11
|
+
types: [submitted]
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
claude:
|
|
15
|
+
if: |
|
|
16
|
+
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
|
|
17
|
+
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
|
|
18
|
+
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
|
|
19
|
+
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
permissions:
|
|
22
|
+
contents: read
|
|
23
|
+
pull-requests: read
|
|
24
|
+
issues: read
|
|
25
|
+
id-token: write
|
|
26
|
+
actions: read # Required for Claude to read CI results on PRs
|
|
27
|
+
steps:
|
|
28
|
+
- name: Checkout repository
|
|
29
|
+
uses: actions/checkout@v4
|
|
30
|
+
with:
|
|
31
|
+
fetch-depth: 1
|
|
32
|
+
|
|
33
|
+
- name: Run Claude Code
|
|
34
|
+
id: claude
|
|
35
|
+
uses: anthropics/claude-code-action@v1
|
|
36
|
+
with:
|
|
37
|
+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
|
38
|
+
|
|
39
|
+
# This is an optional setting that allows Claude to read CI results on PRs
|
|
40
|
+
additional_permissions: |
|
|
41
|
+
actions: read
|
|
42
|
+
|
|
43
|
+
# Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
|
|
44
|
+
# prompt: 'Update the pull request description to include a summary of changes.'
|
|
45
|
+
|
|
46
|
+
# Optional: Add claude_args to customize behavior and configuration
|
|
47
|
+
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
|
|
48
|
+
# or https://code.claude.com/docs/en/cli-reference for available options
|
|
49
|
+
# claude_args: '--allowed-tools Bash(gh pr:*)'
|
|
50
|
+
|
|
@@ -13,10 +13,12 @@ jobs:
|
|
|
13
13
|
- "3.2"
|
|
14
14
|
- "3.3"
|
|
15
15
|
- "3.4"
|
|
16
|
+
- "4.0"
|
|
16
17
|
rails-version:
|
|
17
18
|
- "7.1"
|
|
18
19
|
- "7.2"
|
|
19
20
|
- "8.0"
|
|
21
|
+
- "8.1"
|
|
20
22
|
continue-on-error: [true]
|
|
21
23
|
name: ${{ format('Tests (Ruby {0}, Rails {1})', matrix.ruby-version, matrix.rails-version) }}
|
|
22
24
|
runs-on: ubuntu-latest
|
data/.rubocop.yml
CHANGED
|
@@ -5,6 +5,7 @@ require:
|
|
|
5
5
|
AllCops:
|
|
6
6
|
TargetRubyVersion: 3.2
|
|
7
7
|
NewCops: enable
|
|
8
|
+
SuggestExtensions: false
|
|
8
9
|
Exclude:
|
|
9
10
|
- bin/*
|
|
10
11
|
- db/schema.rb
|
|
@@ -49,6 +50,9 @@ Metrics/PerceivedComplexity:
|
|
|
49
50
|
Naming/MethodParameterName:
|
|
50
51
|
Enabled: false
|
|
51
52
|
|
|
53
|
+
Naming/PredicateMethod:
|
|
54
|
+
Enabled: false
|
|
55
|
+
|
|
52
56
|
# -- Style ---------------------------------------------------------------------
|
|
53
57
|
Style/ClassAndModuleChildren:
|
|
54
58
|
Enabled: false
|
data/CHANGELOG.md
CHANGED
|
@@ -12,6 +12,31 @@ For all changes prior to the inception of this project, see the [Release History
|
|
|
12
12
|
|
|
13
13
|
## [Unreleased]
|
|
14
14
|
|
|
15
|
+
## [v3.1.5] - 2026-01-08
|
|
16
|
+
|
|
17
|
+
## Added
|
|
18
|
+
|
|
19
|
+
- Rails 8.1 compatibility
|
|
20
|
+
|
|
21
|
+
## Fixed
|
|
22
|
+
|
|
23
|
+
- Strip possible spaces around exclude page slugs, from [PR](https://github.com/shakacode/comfortable-media-surfer/pull/42)
|
|
24
|
+
|
|
25
|
+
## Changed
|
|
26
|
+
|
|
27
|
+
- gem updates for propshaft, brakeman, rubocop, haml-rails
|
|
28
|
+
|
|
29
|
+
## [v3.1.4] - 2025-07-14
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- removed obsolete JQuery reference
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
|
|
37
|
+
- updated gem versions
|
|
38
|
+
- update README for migration from Occams
|
|
39
|
+
|
|
15
40
|
## [v3.1.3] - 2025-05-29
|
|
16
41
|
|
|
17
42
|
### Fixed
|
|
@@ -90,7 +115,9 @@ First release of `comfortable_media_surfer`. This new gem is a revival of [Comfo
|
|
|
90
115
|
|
|
91
116
|
- Rebranded **ComfortableMexicanSofa** as **ComfortableMediaSurfer** in order to publish new gem (database table names and schema have not changed).
|
|
92
117
|
|
|
93
|
-
[Unreleased]: https://github.com/shakacode/comfortable-media-surfer/compare/v3.1.
|
|
118
|
+
[Unreleased]: https://github.com/shakacode/comfortable-media-surfer/compare/v3.1.5...master
|
|
119
|
+
[v3.1.5]: https://github.com/shakacode/comfortable-media-surfer/compare/v3.1.4...v3.1.5
|
|
120
|
+
[v3.1.4]: https://github.com/shakacode/comfortable-media-surfer/compare/v3.1.3...v3.1.4
|
|
94
121
|
[v3.1.3]: https://github.com/shakacode/comfortable-media-surfer/compare/v3.1.2...v3.1.3
|
|
95
122
|
[v3.1.2]: https://github.com/shakacode/comfortable-media-surfer/compare/v3.1.1...v3.1.2
|
|
96
123
|
[v3.1.1]: https://github.com/shakacode/comfortable-media-surfer/compare/v3.1.0...v3.1.1
|
data/Gemfile
CHANGED
|
@@ -5,14 +5,14 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
|
|
5
5
|
|
|
6
6
|
gemspec
|
|
7
7
|
|
|
8
|
-
gem 'rails', '~> 8.0'
|
|
8
|
+
gem 'rails', '~> 8.1.0'
|
|
9
9
|
|
|
10
10
|
group :development, :test do
|
|
11
11
|
gem 'autoprefixer-rails', '~> 10.4.21.0'
|
|
12
12
|
gem 'byebug', '~> 12.0.0', platforms: %i[mri mingw x64_mingw]
|
|
13
13
|
gem 'gem-release'
|
|
14
14
|
gem 'image_processing', '>= 1.12.0'
|
|
15
|
-
gem 'propshaft', '~> 1.1
|
|
15
|
+
gem 'propshaft', '~> 1.3.1'
|
|
16
16
|
gem 'sqlite3', '>= 2.1'
|
|
17
17
|
# gem 'mysql2', '~> 0.5'
|
|
18
18
|
# gem 'pg', '~> 1.5.4'
|
|
@@ -24,18 +24,19 @@ group :development do
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
group :test do
|
|
27
|
-
gem 'brakeman', '~> 7.0
|
|
27
|
+
gem 'brakeman', '~> 7.1.0'
|
|
28
28
|
gem 'bundler-audit', '~> 0.9.1'
|
|
29
29
|
gem 'coveralls_reborn', '~> 0.29.0', require: false
|
|
30
30
|
gem 'cuprite', '>= 0.15'
|
|
31
|
+
gem 'diffy'
|
|
31
32
|
gem 'equivalent-xml', '~> 0.6.0'
|
|
32
|
-
gem 'minitest', '
|
|
33
|
+
gem 'minitest', '< 6.0.0'
|
|
33
34
|
gem 'minitest-reporters', '>= 1.6.1'
|
|
34
35
|
gem 'mocha', '>= 2.3.0', require: false
|
|
35
36
|
gem 'ostruct'
|
|
36
37
|
gem 'puma'
|
|
37
38
|
gem 'rails-controller-testing', '~> 1.0.5'
|
|
38
|
-
gem 'rubocop', '~> 1.
|
|
39
|
+
gem 'rubocop', '~> 1.81.1', require: false
|
|
39
40
|
gem 'rubocop-minitest'
|
|
40
41
|
gem 'rubocop-rails'
|
|
41
42
|
gem 'simplecov', '~> 0.22.0', require: false
|
data/README.md
CHANGED
|
@@ -144,5 +144,5 @@ ComfortableMediaSurfer can run like any Rails application in development. It's a
|
|
|
144
144
|
|
|
145
145
|
---
|
|
146
146
|
|
|
147
|
-
Copyright 2010-2019 Oleg Khabarov, 2024-
|
|
147
|
+
Copyright 2010-2019 Oleg Khabarov, 2024-2026 ShakaCode LLC
|
|
148
148
|
Released under the [MIT license](LICENSE)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
class Comfy::Admin::Cms::BaseController < Comfy::Admin::BaseController
|
|
4
4
|
before_action :load_admin_site,
|
|
5
|
-
:set_locale
|
|
5
|
+
:set_locale?,
|
|
6
6
|
:load_seeds,
|
|
7
7
|
except: :jump
|
|
8
8
|
|
|
@@ -33,7 +33,7 @@ protected
|
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
-
def set_locale
|
|
36
|
+
def set_locale?
|
|
37
37
|
I18n.locale = ComfortableMediaSurfer.config.admin_locale || @site&.locale
|
|
38
38
|
true
|
|
39
39
|
end
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
class Comfy::Admin::Cms::FilesController < Comfy::Admin::Cms::BaseController
|
|
4
4
|
include ::Comfy::ReorderAction
|
|
5
|
+
|
|
5
6
|
self.reorder_action_resource = ::Comfy::Cms::File
|
|
6
7
|
|
|
7
8
|
include ActionView::Helpers::NumberHelper
|
|
@@ -81,9 +82,9 @@ class Comfy::Admin::Cms::FilesController < Comfy::Admin::Cms::BaseController
|
|
|
81
82
|
rescue ActiveRecord::RecordInvalid
|
|
82
83
|
case params[:source]
|
|
83
84
|
when 'plupload'
|
|
84
|
-
render body: @file.errors.full_messages.to_sentence, status: :
|
|
85
|
+
render body: @file.errors.full_messages.to_sentence, status: :unprocessable_content
|
|
85
86
|
when 'redactor'
|
|
86
|
-
render body: nil, status: :
|
|
87
|
+
render body: nil, status: :unprocessable_content
|
|
87
88
|
else
|
|
88
89
|
flash.now[:danger] = I18n.t('comfy.admin.cms.files.creation_failure')
|
|
89
90
|
render action: :new
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
class Comfy::Admin::Cms::LayoutsController < Comfy::Admin::Cms::BaseController
|
|
4
4
|
include ::Comfy::ReorderAction
|
|
5
|
+
|
|
5
6
|
self.reorder_action_resource = ::Comfy::Cms::Layout
|
|
6
7
|
|
|
7
8
|
before_action :build_layout, only: %i[new create]
|
|
@@ -9,7 +10,7 @@ class Comfy::Admin::Cms::LayoutsController < Comfy::Admin::Cms::BaseController
|
|
|
9
10
|
before_action :authorize
|
|
10
11
|
|
|
11
12
|
def index
|
|
12
|
-
return redirect_to action: :new if @site.layouts.
|
|
13
|
+
return redirect_to action: :new if @site.layouts.none?
|
|
13
14
|
|
|
14
15
|
@layouts = @site.layouts.roots.order(:position)
|
|
15
16
|
end
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
class Comfy::Admin::Cms::PagesController < Comfy::Admin::Cms::BaseController
|
|
4
4
|
include ::Comfy::ReorderAction
|
|
5
|
+
|
|
5
6
|
self.reorder_action_resource = ::Comfy::Cms::Page
|
|
6
7
|
|
|
7
8
|
before_action :check_for_layouts, only: %i[new edit]
|
|
@@ -111,7 +112,7 @@ protected
|
|
|
111
112
|
end
|
|
112
113
|
|
|
113
114
|
def site_has_no_pages?
|
|
114
|
-
@site.pages.
|
|
115
|
+
@site.pages.none?
|
|
115
116
|
end
|
|
116
117
|
|
|
117
118
|
def pages_grouped_by_parent
|
|
@@ -119,7 +120,7 @@ protected
|
|
|
119
120
|
end
|
|
120
121
|
|
|
121
122
|
def check_for_layouts
|
|
122
|
-
return unless @site.layouts.
|
|
123
|
+
return unless @site.layouts.none?
|
|
123
124
|
|
|
124
125
|
flash[:danger] = I18n.t('comfy.admin.cms.pages.layout_not_found')
|
|
125
126
|
redirect_to new_comfy_admin_cms_site_layout_path(@site)
|
|
@@ -9,7 +9,7 @@ class Comfy::Admin::Cms::SitesController < Comfy::Admin::Cms::BaseController
|
|
|
9
9
|
before_action :authorize
|
|
10
10
|
|
|
11
11
|
def index
|
|
12
|
-
return redirect_to action: :new if ::Comfy::Cms::Site.
|
|
12
|
+
return redirect_to action: :new if ::Comfy::Cms::Site.none?
|
|
13
13
|
|
|
14
14
|
@site = ::Comfy::Cms::Site.find_by_id(session[:site_id])
|
|
15
15
|
@sites = ::Comfy::Cms::Site.all
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
class Comfy::Admin::Cms::SnippetsController < Comfy::Admin::Cms::BaseController
|
|
4
4
|
include ::Comfy::ReorderAction
|
|
5
|
+
|
|
5
6
|
self.reorder_action_resource = ::Comfy::Cms::Snippet
|
|
6
7
|
|
|
7
8
|
before_action :build_snippet, only: %i[new create]
|
|
@@ -9,7 +10,7 @@ class Comfy::Admin::Cms::SnippetsController < Comfy::Admin::Cms::BaseController
|
|
|
9
10
|
before_action :authorize
|
|
10
11
|
|
|
11
12
|
def index
|
|
12
|
-
return redirect_to action: :new if @site.snippets.
|
|
13
|
+
return redirect_to action: :new if @site.snippets.none?
|
|
13
14
|
|
|
14
15
|
@snippets = @site.snippets.includes(:categories).for_category(params[:categories]).order(:position)
|
|
15
16
|
end
|
|
@@ -36,7 +36,7 @@ class Comfy::Cms::Page < ActiveRecord::Base
|
|
|
36
36
|
presence: true,
|
|
37
37
|
uniqueness: { scope: :parent_id },
|
|
38
38
|
unless: ->(p) {
|
|
39
|
-
p.site && (p.site.pages.
|
|
39
|
+
p.site && (!p.site.pages.exists? || p.site.pages.root == self)
|
|
40
40
|
}
|
|
41
41
|
validate :validate_target_page
|
|
42
42
|
validate :validate_format_of_unescaped_slug
|
|
@@ -113,7 +113,7 @@ protected
|
|
|
113
113
|
def assign_parent
|
|
114
114
|
return unless site
|
|
115
115
|
|
|
116
|
-
self.parent ||= site.pages.root unless self == site.pages.root || site.pages.
|
|
116
|
+
self.parent ||= site.pages.root unless self == site.pages.root || site.pages.none?
|
|
117
117
|
end
|
|
118
118
|
|
|
119
119
|
def assign_full_path
|
|
@@ -33,7 +33,7 @@ class Comfy::Cms::Site < ActiveRecord::Base
|
|
|
33
33
|
# -- Class Methods -----------------------------------------------------------
|
|
34
34
|
# returning the Comfy::Cms::Site instance based on host and path
|
|
35
35
|
def self.find_site(host, path = nil)
|
|
36
|
-
return Comfy::Cms::Site.first if Comfy::Cms::Site.
|
|
36
|
+
return Comfy::Cms::Site.first if Comfy::Cms::Site.one?
|
|
37
37
|
|
|
38
38
|
cms_site = nil
|
|
39
39
|
|
|
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
|
24
24
|
|
|
25
25
|
spec.add_dependency 'active_link_to', '~> 1.0', '>= 1.0.5'
|
|
26
26
|
spec.add_dependency 'comfy_bootstrap_form', '~> 4.0', '>= 4.0.0'
|
|
27
|
-
spec.add_dependency 'haml-rails', '
|
|
27
|
+
spec.add_dependency 'haml-rails', '>= 2.1', '< 4.0'
|
|
28
28
|
spec.add_dependency 'image_processing', '~> 1.2', '>= 1.12.2'
|
|
29
29
|
spec.add_dependency 'kaminari', '~> 1.2', '>= 1.2.2'
|
|
30
30
|
spec.add_dependency 'kramdown', '~> 2.4', '>= 2.4.0'
|
|
@@ -32,5 +32,4 @@ Gem::Specification.new do |spec|
|
|
|
32
32
|
spec.add_dependency 'mini_magick', '>= 4.12', '< 6.0'
|
|
33
33
|
spec.add_dependency 'rails', '>= 7.0.0'
|
|
34
34
|
spec.add_dependency 'rails-i18n', '>= 6.0.0'
|
|
35
|
-
spec.add_dependency 'sassc-rails', '>= 2.1.2'
|
|
36
35
|
end
|
data/gemfiles/7.1.gemfile
CHANGED
|
@@ -16,16 +16,19 @@ group :development, :test do
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
group :test do
|
|
19
|
-
gem 'brakeman', '~>
|
|
19
|
+
gem 'brakeman', '~> 7.1.0'
|
|
20
20
|
gem 'bundler-audit', '~> 0.9.1'
|
|
21
|
-
gem 'coveralls_reborn', '~> 0.
|
|
21
|
+
gem 'coveralls_reborn', '~> 0.29.0', require: false
|
|
22
22
|
gem 'cuprite', '>= 0.15'
|
|
23
|
+
gem 'diffy'
|
|
23
24
|
gem 'equivalent-xml', '~> 0.6.0'
|
|
24
|
-
gem 'minitest', '
|
|
25
|
+
gem 'minitest', '< 6.0.0'
|
|
25
26
|
gem 'minitest-reporters', '>= 1.6.1'
|
|
26
27
|
gem 'mocha', '>= 2.3.0', require: false
|
|
28
|
+
gem 'ostruct'
|
|
29
|
+
gem 'puma'
|
|
27
30
|
gem 'rails-controller-testing', '~> 1.0.5'
|
|
28
|
-
gem 'rubocop', '~> 1.
|
|
31
|
+
gem 'rubocop', '~> 1.81.1', require: false
|
|
29
32
|
gem 'rubocop-minitest'
|
|
30
33
|
gem 'rubocop-rails'
|
|
31
34
|
gem 'simplecov', '~> 0.22.0', require: false
|
data/gemfiles/7.2.gemfile
CHANGED
|
@@ -16,16 +16,19 @@ group :development, :test do
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
group :test do
|
|
19
|
-
gem 'brakeman', '~>
|
|
19
|
+
gem 'brakeman', '~> 7.1.0'
|
|
20
20
|
gem 'bundler-audit', '~> 0.9.1'
|
|
21
|
-
gem 'coveralls_reborn', '~> 0.
|
|
21
|
+
gem 'coveralls_reborn', '~> 0.29.0', require: false
|
|
22
22
|
gem 'cuprite', '>= 0.15'
|
|
23
|
+
gem 'diffy'
|
|
23
24
|
gem 'equivalent-xml', '~> 0.6.0'
|
|
24
|
-
gem 'minitest', '
|
|
25
|
+
gem 'minitest', '< 6.0.0'
|
|
25
26
|
gem 'minitest-reporters', '>= 1.6.1'
|
|
26
27
|
gem 'mocha', '>= 2.3.0', require: false
|
|
28
|
+
gem 'ostruct'
|
|
29
|
+
gem 'puma'
|
|
27
30
|
gem 'rails-controller-testing', '~> 1.0.5'
|
|
28
|
-
gem 'rubocop', '~> 1.
|
|
31
|
+
gem 'rubocop', '~> 1.81.1', require: false
|
|
29
32
|
gem 'rubocop-minitest'
|
|
30
33
|
gem 'rubocop-rails'
|
|
31
34
|
gem 'simplecov', '~> 0.22.0', require: false
|
data/gemfiles/8.0.gemfile
CHANGED
|
@@ -16,16 +16,19 @@ group :development, :test do
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
group :test do
|
|
19
|
-
gem 'brakeman', '~>
|
|
19
|
+
gem 'brakeman', '~> 7.1.0'
|
|
20
20
|
gem 'bundler-audit', '~> 0.9.1'
|
|
21
|
-
gem 'coveralls_reborn', '~> 0.
|
|
21
|
+
gem 'coveralls_reborn', '~> 0.29.0', require: false
|
|
22
22
|
gem 'cuprite', '>= 0.15'
|
|
23
|
+
gem 'diffy'
|
|
23
24
|
gem 'equivalent-xml', '~> 0.6.0'
|
|
24
|
-
gem 'minitest', '
|
|
25
|
+
gem 'minitest', '< 6.0.0'
|
|
25
26
|
gem 'minitest-reporters', '>= 1.6.1'
|
|
26
27
|
gem 'mocha', '>= 2.3.0', require: false
|
|
28
|
+
gem 'ostruct'
|
|
29
|
+
gem 'puma'
|
|
27
30
|
gem 'rails-controller-testing', '~> 1.0.5'
|
|
28
|
-
gem 'rubocop', '~> 1.
|
|
31
|
+
gem 'rubocop', '~> 1.81.1', require: false
|
|
29
32
|
gem 'rubocop-minitest'
|
|
30
33
|
gem 'rubocop-rails'
|
|
31
34
|
gem 'simplecov', '~> 0.22.0', require: false
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
source 'https://rubygems.org'
|
|
4
|
+
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
|
5
|
+
|
|
6
|
+
gemspec path: '../'
|
|
7
|
+
|
|
8
|
+
gem 'rails', '~> 8.1.0'
|
|
9
|
+
|
|
10
|
+
group :development, :test do
|
|
11
|
+
gem 'autoprefixer-rails', '~> 10.4.16.0'
|
|
12
|
+
gem 'byebug', '~> 11.1.0', platforms: %i[mri mingw x64_mingw]
|
|
13
|
+
gem 'image_processing', '>= 1.12.0'
|
|
14
|
+
gem 'propshaft', '~> 1.1.0'
|
|
15
|
+
gem 'sqlite3', '>= 2.1'
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
group :test do
|
|
19
|
+
gem 'brakeman', '~> 7.1.0'
|
|
20
|
+
gem 'bundler-audit', '~> 0.9.1'
|
|
21
|
+
gem 'coveralls_reborn', '~> 0.29.0', require: false
|
|
22
|
+
gem 'cuprite', '>= 0.15'
|
|
23
|
+
gem 'diffy'
|
|
24
|
+
gem 'equivalent-xml', '~> 0.6.0'
|
|
25
|
+
gem 'minitest', '< 6.0.0'
|
|
26
|
+
gem 'minitest-reporters', '>= 1.6.1'
|
|
27
|
+
gem 'mocha', '>= 2.3.0', require: false
|
|
28
|
+
gem 'ostruct'
|
|
29
|
+
gem 'puma'
|
|
30
|
+
gem 'rails-controller-testing', '~> 1.0.5'
|
|
31
|
+
gem 'rubocop', '~> 1.81.1', require: false
|
|
32
|
+
gem 'rubocop-minitest'
|
|
33
|
+
gem 'rubocop-rails'
|
|
34
|
+
gem 'simplecov', '~> 0.22.0', require: false
|
|
35
|
+
end
|
|
@@ -60,7 +60,7 @@ class ComfortableMediaSurfer::Content::Renderer
|
|
|
60
60
|
nodes = nodes(tokens)
|
|
61
61
|
render(nodes, allow_erb || node.allow_erb?, depth.next)
|
|
62
62
|
end
|
|
63
|
-
end.
|
|
63
|
+
end.join
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
def sanitize_erb(string, allow_erb)
|
|
@@ -106,7 +106,7 @@ class ComfortableMediaSurfer::Content::Renderer
|
|
|
106
106
|
|
|
107
107
|
# This handles {{cms:end}} tag. Stopping collecting block nodes.
|
|
108
108
|
when 'end'
|
|
109
|
-
if nodes.
|
|
109
|
+
if nodes.one?
|
|
110
110
|
raise SyntaxError, 'closing unopened block'
|
|
111
111
|
end
|
|
112
112
|
|
|
@@ -25,7 +25,7 @@ class ComfortableMediaSurfer::Content::Tags::Children < ComfortableMediaSurfer::
|
|
|
25
25
|
@style = ''
|
|
26
26
|
@style = "<style>#children {#{@locals['style']}}</style>\n" if @locals['style']
|
|
27
27
|
@exclude = []
|
|
28
|
-
@exclude = @locals['exclude'].split(',') if @locals['exclude']
|
|
28
|
+
@exclude = @locals['exclude'].split(',').map(&:strip) if @locals['exclude']
|
|
29
29
|
@list = ''
|
|
30
30
|
# ActiveRecord_Associations_CollectionProxy
|
|
31
31
|
@page_children = context.children.order(:position).to_ary
|
|
@@ -31,11 +31,11 @@ class ComfortableMediaSurfer::FormBuilder < ComfyBootstrapForm::FormBuilder
|
|
|
31
31
|
# = form.form_actions do
|
|
32
32
|
# = form.submit
|
|
33
33
|
#
|
|
34
|
-
def form_actions(&
|
|
34
|
+
def form_actions(&)
|
|
35
35
|
content_tag(:div, class: 'form-actions row bg-light') do
|
|
36
36
|
content_tag(:div, class: 'col-lg-8 offset-lg-2') do
|
|
37
37
|
content_tag(:div, class: 'form-group row mb-0') do
|
|
38
|
-
content_tag(:div, class: 'col-sm-10 offset-sm-2', &
|
|
38
|
+
content_tag(:div, class: 'col-sm-10 offset-sm-2', &)
|
|
39
39
|
end
|
|
40
40
|
end
|
|
41
41
|
end
|
|
@@ -8,8 +8,14 @@ module ComfortableMediaSurfer::Routing
|
|
|
8
8
|
namespace :cms, as: :admin_cms, path: path, except: :show do
|
|
9
9
|
get '/', to: 'base#jump'
|
|
10
10
|
|
|
11
|
+
# concern :with_revisions do |options|
|
|
12
|
+
# resources :revisions, options.merge(only: %i[index show]) do
|
|
13
|
+
# patch :revert, on: :member
|
|
14
|
+
# end
|
|
15
|
+
# end
|
|
16
|
+
|
|
11
17
|
concern :with_revisions do |options|
|
|
12
|
-
resources :revisions, options
|
|
18
|
+
resources :revisions, **options, only: %i[index show] do
|
|
13
19
|
patch :revert, on: :member
|
|
14
20
|
end
|
|
15
21
|
end
|