occams 1.0.7.3 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/coveralls.yml +11 -9
  3. data/.github/workflows/rubyonrails.yml +18 -15
  4. data/.gitignore +19 -16
  5. data/CHANGELOG.md +29 -12
  6. data/CONTRIBUTING.md +3 -4
  7. data/Gemfile +8 -6
  8. data/README.md +4 -5
  9. data/app/controllers/concerns/occams/reorder_action.rb +3 -0
  10. data/app/controllers/occams/admin/cms/pages_controller.rb +8 -0
  11. data/app/models/concerns/occams/cms/with_fragments.rb +1 -1
  12. data/app/models/occams/cms/fragment.rb +1 -1
  13. data/app/models/occams/cms/layout.rb +3 -1
  14. data/app/models/occams/cms/revision.rb +1 -1
  15. data/app/views/layouts/occams/admin/cms/_left.html.haml +1 -1
  16. data/bin/rails +3 -3
  17. data/bin/rake +2 -2
  18. data/bin/setup +11 -11
  19. data/config/application.rb +23 -6
  20. data/config/boot.rb +1 -4
  21. data/config/database.yml +30 -1
  22. data/config/environments/development.rb +9 -11
  23. data/config/environments/production.rb +26 -22
  24. data/config/environments/test.rb +18 -7
  25. data/config/initializers/content_security_policy.rb +2 -3
  26. data/config/initializers/filter_parameter_logging.rb +3 -3
  27. data/config/initializers/inflections.rb +0 -1
  28. data/config/initializers/new_framework_defaults_7_1.rb +224 -0
  29. data/config/initializers/permissions_policy.rb +10 -9
  30. data/config/locales/en.yml +3 -3
  31. data/gemfiles/6.1.gemfile +7 -4
  32. data/gemfiles/7.0.gemfile +6 -4
  33. data/gemfiles/7.1.gemfile +37 -0
  34. data/lib/generators/occams/cms/README +10 -2
  35. data/lib/occams/configuration.rb +1 -1
  36. data/lib/occams/content/tags/asset.rb +2 -2
  37. data/lib/occams/content/tags/audio.rb +2 -2
  38. data/lib/occams/content/tags/breadcrumbs.rb +2 -2
  39. data/lib/occams/content/tags/checkbox.rb +2 -2
  40. data/lib/occams/content/tags/children.rb +2 -2
  41. data/lib/occams/content/tags/date.rb +2 -2
  42. data/lib/occams/content/tags/datetime.rb +2 -2
  43. data/lib/occams/content/tags/file.rb +3 -3
  44. data/lib/occams/content/tags/file_link.rb +3 -3
  45. data/lib/occams/content/tags/files.rb +2 -2
  46. data/lib/occams/content/tags/fragment.rb +2 -2
  47. data/lib/occams/content/tags/helper.rb +2 -2
  48. data/lib/occams/content/tags/markdown.rb +2 -2
  49. data/lib/occams/content/tags/mixins/file_content.rb +1 -1
  50. data/lib/occams/content/tags/number.rb +2 -2
  51. data/lib/occams/content/tags/page_file_link.rb +3 -3
  52. data/lib/occams/content/tags/partial.rb +2 -2
  53. data/lib/occams/content/tags/siblings.rb +5 -2
  54. data/lib/occams/content/tags/snippet.rb +2 -2
  55. data/lib/occams/content/tags/template.rb +2 -2
  56. data/lib/occams/content/tags/text.rb +2 -2
  57. data/lib/occams/content/tags/textarea.rb +3 -2
  58. data/lib/occams/content/tags/wysiwyg.rb +2 -2
  59. data/lib/occams/content/tags.rb +28 -0
  60. data/lib/occams/content.rb +1 -26
  61. data/lib/occams/extensions/acts_as_tree.rb +3 -3
  62. data/lib/occams/extensions/has_revisions.rb +3 -3
  63. data/lib/occams/extensions.rb +8 -0
  64. data/lib/occams/routing.rb +74 -5
  65. data/lib/occams/version.rb +1 -1
  66. data/lib/occams.rb +3 -3
  67. data/occams.gemspec +13 -13
  68. metadata +9 -7
  69. data/lib/occams/routes/cms.rb +0 -16
  70. data/lib/occams/routes/cms_admin.rb +0 -56
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 97f3c2e83bbf1b0aed1f59775a3bac214997aa5569687460ec48e44ff9c62bd8
4
- data.tar.gz: fcba8bd301c5628533c5d048d4238429d3471f94bbe4d2bf06a8003628635136
3
+ metadata.gz: 4a97f751e8ded8222b0ef73e6f06b6633bdc5a2cef1858872d0e4ccbcdbc56c8
4
+ data.tar.gz: 1c1b034bc1599c94a72e99bf67b5eecb45cdffc35d4bccd2aa1c906780e760a7
5
5
  SHA512:
6
- metadata.gz: baadb59130faf8bcf1f50de653b9eb3238175830331a5fd1c8b899be92f84de23cb218c9a8ca1d5449b4c99793f14c13b6eed8b00130309a0fef50ffafcfc484
7
- data.tar.gz: 237e11025f46b90286420873b9e0bc4278485a7e428bcffb1955ecd9aff13ec583031a4c349f2971f95b1276503dfa21f31f63e3249d6fcf6ed2a76f18330ad7
6
+ metadata.gz: 2da69ad3d5a308ddc27208fba96417b6156029702f24337a76d43711ed9925cfe62b07cf52f413742aca58d0f01bc73391a3d59409936e904d88ab4b95cfe0a3
7
+ data.tar.gz: 9ed1193e3ba2976446bba4c04092b9af3ec39430a54b75db05a4d0f26466b2de8fef6b6725d30e565ec7a82dde7f428c014cf60d9456922b46a414362b0cac4d
@@ -13,7 +13,7 @@ jobs:
13
13
  - "3.2"
14
14
  rails-version:
15
15
  - "7.0"
16
- continue-on-error: [false]
16
+ continue-on-error: [true]
17
17
  name: ${{ format('Coverage (Ruby {0}, Rails {1})', matrix.ruby-version, matrix.rails-version) }}
18
18
  runs-on: ubuntu-latest
19
19
  continue-on-error: ${{ matrix.continue-on-error }}
@@ -23,16 +23,18 @@ jobs:
23
23
  COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
24
24
 
25
25
  steps:
26
- - uses: actions/checkout@v2
26
+ - name: Checkout source
27
+ uses: actions/checkout@v2
27
28
 
28
- - name: Install Ruby
29
+ - name: Install Ruby ${{ matrix.ruby-version }}
29
30
  uses: ruby/setup-ruby@v1
30
31
  with:
31
32
  ruby-version: ${{ matrix.ruby-version }}
32
- bundler-cache: true
33
-
34
- - name: Set up Test DB
35
- run: bin/rails db:migrate RAILS_ENV=test
36
- - name: Run tests
37
- run: bin/rake test
38
33
 
34
+ - name: Run tests, report coverage
35
+ run: |
36
+ bin/bundle install --retry 3 --quiet
37
+ bin/bundle exec rails db:drop
38
+ bin/bundle exec rails db:create
39
+ bin/bundle exec rails db:migrate
40
+ bin/bundle exec rails test:db
@@ -6,17 +6,19 @@ on:
6
6
  pull_request:
7
7
 
8
8
  jobs:
9
- test_lint_audit:
9
+ build_test_lint_audit:
10
10
  strategy:
11
11
  matrix:
12
12
  ruby-version:
13
13
  - "2.7"
14
14
  - "3.1"
15
15
  - "3.2"
16
+ - "3.3"
16
17
  rails-version:
17
18
  - "6.1"
18
19
  - "7.0"
19
- continue-on-error: [false]
20
+ - "7.1"
21
+ continue-on-error: [true]
20
22
  name: ${{ format('Tests (Ruby {0}, Rails {1})', matrix.ruby-version, matrix.rails-version) }}
21
23
  runs-on: ubuntu-latest
22
24
  continue-on-error: ${{ matrix.continue-on-error }}
@@ -24,26 +26,27 @@ jobs:
24
26
  BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.rails-version }}.gemfile
25
27
  RAILS_ENV: test
26
28
  SKIP_COV: true
27
-
28
29
  steps:
29
- - uses: actions/checkout@v2
30
+ - name: Checkout source
31
+ uses: actions/checkout@v2
30
32
 
31
- - name: Install Ruby
33
+ - name: Install Ruby ${{ matrix.ruby-version }}
32
34
  uses: ruby/setup-ruby@v1
33
35
  with:
34
36
  ruby-version: ${{ matrix.ruby-version }}
35
- bundler-cache: true
36
37
 
37
- - name: Set up Test DB
38
- run: bin/rails db:migrate RAILS_ENV=test
39
38
  - name: Run tests
40
- run: bin/rake test
39
+ run: |
40
+ bin/bundle install --retry 3 --quiet
41
+ bin/bundle exec rails db:drop
42
+ bin/bundle exec rails db:create
43
+ bin/bundle exec rails db:migrate
44
+ bin/bundle exec rails test:db
41
45
 
42
- - name: Ruby Lint
46
+ - name: Lint the code
43
47
  run: bin/bundle exec rubocop --parallel
44
48
 
45
- - name: Security audit application code
46
- run: bin/bundle exec brakeman -q -w3
47
-
48
- - name: Security audit dependencies
49
- run: bin/bundle exec bundler-audit --update --gemfile-lock gemfiles/${{ matrix.rails-version }}.gemfile.lock
49
+ - name: Audit for security
50
+ run: |
51
+ bin/bundle exec brakeman -q -w3
52
+ bin/bundle exec bundler-audit --update --gemfile-lock gemfiles/${{ matrix.rails-version }}.gemfile.lock
data/.gitignore CHANGED
@@ -1,22 +1,25 @@
1
1
  .bundle
2
- db/*.sqlite3
3
- log/*.log
4
- tmp/**/*
5
2
  .DS_Store
6
- db/schema.rb
7
- db/development_structure.sql
8
- db/test.sqlite3*
9
- pkg
10
- rdoc
11
- /tmp
12
- public/system/
13
- Gemfile.lock
14
- gemfiles/*.gemfile.lock
15
- .rvmrc
16
- .ruby-version
3
+ .idea
17
4
  .ruby-gemset
5
+ .ruby-version
6
+ .rvmrc
7
+ .vscode
18
8
  /.sass-cache
19
- coverage/
20
9
  /storage
10
+ /tmp
11
+ coverage/
12
+ db/*.sqlite3
21
13
  db/cms_fixtures/test-site/
22
- .idea
14
+ db/development_structure.sql
15
+ db/development.sqlite3*
16
+ db/schema.rb
17
+ db/test.sqlite3*
18
+ Gemfile.lock
19
+ gemfiles/*.gemfile.lock
20
+ log/
21
+ pkg
22
+ public/system/
23
+ rdoc
24
+ tmp/**/*
25
+ vendor/bundle/
data/CHANGELOG.md CHANGED
@@ -1,20 +1,37 @@
1
1
  # Changelog
2
2
 
3
- ## v1.0.7.3 - 10/7/2023
3
+ ## v.1.1.0 13 May 2024
4
+
5
+ - Rails 7.1 compatibility, all tests passing
6
+ - corrected bug in siblings tag to not display links to unpublished pages
7
+ - children lists and sibling navs are updated after page create, update, delete
8
+ - fixed zeitwerk check failures
9
+ - updated README
10
+
11
+ ## v1.0.8 - 29 December 2023
12
+
13
+ - Updated configs, et al. in pursuit of Rails 7.1 compatibility
14
+ - Added explicit coder for serialize commands
15
+ - Added ActiveRecord Adapter (database) info to admin footer
16
+ - Added commented defaults for MySQL and Postgres to database.yml
17
+ - Updated documentation
18
+ - Refactored lib files for better test coverage awareness
19
+
20
+ ## v1.0.7.3 - 7 October 2023
4
21
 
5
22
  - Fixed edge case with siblings tag when current page is excluded
6
23
  - Git ignore all sqlite* files for testing
7
24
  - Small testing refinements
8
25
  - Prep for Rails 7.1 compatibility
9
26
 
10
- ## v1.0.7.2 - 9/27/2023
27
+ ## v1.0.7.2 - 27 September 2023
11
28
 
12
29
  - Pulled will_paginate option out in favor of Kaminari
13
30
  - Switched CI from Buildkite to [Github actions](https://github.com/avonderluft/occams/actions/workflows/rubyonrails.yml)
14
31
  - Improved test coverage to 99+
15
32
  - Removed backward compatibility to Rails prior to 6.x
16
33
 
17
- ## v1.0.7.1 - 9/22/2023
34
+ ## v1.0.7.1 - 22 September 2023
18
35
 
19
36
  - Addressed deprecations for file type 'image/jpg'
20
37
  - Added github workflow for tests, lints and audits
@@ -22,7 +39,7 @@
22
39
  - Bumped rubocop version to latest
23
40
  - Updated some testing parameters
24
41
 
25
- ## v1.0.7 - 9/12/2023
42
+ ## v1.0.7 - 12 September 2023
26
43
 
27
44
  - Updated coveralls Coverage reporting
28
45
  - Added minitest-reporters for test output
@@ -31,33 +48,33 @@
31
48
  - Lints and 1 typo
32
49
  - Added Build Status and Coveralls Coverage Status to README
33
50
 
34
- ## v1.0.6.1 - 9/5/2023
51
+ ## v1.0.6.1 - 5 September 2023
35
52
 
36
53
  - Fixed siblings and children nav tags which as written had problems creating child pages in the admin panel
37
54
 
38
- ## v1.0.6 - 9/5/2023
55
+ ## v1.0.6 - 5 September 2023
39
56
 
40
57
  - Fixed [cms:siblings Nav tag](https://github.com/avonderluft/occams/wiki/Content-Tags#siblings) to handle edge case when page(s) are excluded by the `exclude` parameter
41
58
  - Added [cms:children Nav tag](https://github.com/avonderluft/occams/wiki/Content-Tags#children) to render unordered list of links for children of current page
42
59
 
43
- ## v1.0.5 - 8/31/2023
60
+ ## v1.0.5 - 31 August 2023
44
61
 
45
62
  - All tests now green on Rails 6.1 and 7.0, each tested with rubies 2.7.8, 3.1.4 and 3.2.2.
46
63
  - Tests added for new tags
47
64
  - TODO: set up CI pipeline
48
65
 
49
- ## v1.0.4 - 8/26/2023
66
+ ## v1.0.4 - 26 August 2023
50
67
 
51
68
  - Added [cms:breadcrumbs Nav tag](https://github.com/avonderluft/occams/wiki/Content-Tags#breadcrumbs)
52
69
  - Added [cms:siblings Nav tag](https://github.com/avonderluft/occams/wiki/Content-Tags#siblings)
53
70
  - Updated [wiki documentation](https://github.com/avonderluft/occams/wiki)
54
71
 
55
- ## v1.0.3 - 8/15/2023
72
+ ## v1.0.3 - 15 August 2023
56
73
 
57
74
  - Added a [cms:audio tag](https://github.com/avonderluft/occams/wiki/Content-Tags#audio) for an embedded audio player
58
75
  - Some formatting of admin menu footer
59
76
 
60
- ## v1.0.2 - 8/14/2023
77
+ ## v1.0.2 - 14 August 2023
61
78
 
62
79
  - Fixed image rendering which rubocop broke in v1.0.1
63
80
  - Show unpublished pages in Rails development mode
@@ -65,14 +82,14 @@
65
82
  - Updated documentation at [Occams Wiki](https://github.com/avonderluft/occams/wiki)
66
83
  - Comprehensive rubocop linting
67
84
 
68
- ## v1.0.1 - 8/7/2023
85
+ ## v1.0.1 - 7 August 2023
69
86
 
70
87
  - Fixed image thumbnail hover for Rails 7
71
88
  - Added display of Rails and Ruby versions along with Occams version at foot of Admin menu
72
89
  - Refined gemspec dependencies
73
90
  - Tweaked with a bunch of rubocop linting
74
91
 
75
- ## v1.0.0 - 8/5/2023
92
+ ## v1.0.0 - 5 August 2023
76
93
 
77
94
  - Copied the original [ComfortableMexicanSofa](https://github.com/comfy/comfortable-mexican-sofa)
78
95
  - Added the changes from [Restarone's fork](https://github.com/restarone/comfortable-mexican-sofa) (23 commits)
data/CONTRIBUTING.md CHANGED
@@ -24,12 +24,11 @@ Fork the project. Optionally, create a branch you want to work on.
24
24
  - Tests please, but nothing complicated. UnitTest / Fixtures all the way. Make sure all tests pass.
25
25
  - Run `bundle exec rubocop` and fix any issues raised.
26
26
 
27
- ### 4. Make a pull request
27
+ ### 4. Create a pull request
28
28
 
29
29
  - If you never done it before read this: https://help.github.com/articles/using-pull-requests
30
- - When PR is submitted check if TravisCI ran all tests successfully and Rubocop didn't raise any issues
30
+ - When PR is submitted check if [Github Actions](https://github.com/avonderluft/occams/actions) ran all tests successfully and Rubocop didn't raise any issues
31
31
 
32
32
  ### 5. Done!
33
33
 
34
- If everything is good your changes will be merged into master branch. Eventually
35
- a new version of gem will be published.
34
+ If everything looks good, we will review your changes to be merged into the main branch, and publish a new version of the gem.
data/Gemfile CHANGED
@@ -5,16 +5,15 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
5
5
 
6
6
  gemspec
7
7
 
8
- gem 'rails', '~> 7.0.0'
8
+ gem 'rails', '~> 7.1.2'
9
9
 
10
10
  group :development, :test do
11
11
  gem 'autoprefixer-rails', '~> 8.1.0'
12
- gem 'byebug', '~> 10.0.0', platforms: %i[mri mingw x64_mingw]
13
- gem 'capybara', '~> 3.39.0'
12
+ gem 'byebug', '~> 11.1.0', platforms: %i[mri mingw x64_mingw]
14
13
  gem 'image_processing', '>= 1.2'
15
- gem 'kaminari', '~> 1.2', '>= 1.2.2'
16
- gem 'selenium-webdriver', '~> 4.9.0'
17
- gem 'sqlite3', '~> 1.4.2'
14
+ gem 'sqlite3', '~> 1.6.7'
15
+ # gem 'mysql2', '~> 0.5'
16
+ # gem 'pg', '~> 1.5.4'
18
17
  end
19
18
 
20
19
  group :development do
@@ -25,12 +24,15 @@ end
25
24
  group :test do
26
25
  gem 'brakeman', '~> 5.4.1'
27
26
  gem 'bundler-audit', '~> 0.9.1'
27
+ gem 'capybara', '~> 3.39.0'
28
28
  gem 'coveralls_reborn', '~> 0.28.0', require: false
29
+ gem 'cuprite', '~> 0.14.3'
29
30
  gem 'diffy', '~> 3.4.2'
30
31
  gem 'equivalent-xml', '~> 0.6.0'
31
32
  gem 'minitest', '~> 5.20.0'
32
33
  gem 'minitest-reporters', '~> 1.6.1'
33
34
  gem 'mocha', '~> 2.1.0', require: false
35
+ gem 'puma', '~> 6.4.0'
34
36
  gem 'rails-controller-testing', '~> 1.0.5'
35
37
  gem 'rubocop', '~> 1.56.0', require: false
36
38
  gem 'simplecov', '~> 0.22.0', require: false
data/README.md CHANGED
@@ -47,8 +47,9 @@ ocCaM'S, pronounced "AH-kums" is a nod to [Occam's Razor](https://en.wikipedia.o
47
47
 
48
48
  ## Compatibility
49
49
 
50
- - [Test suite](https://github.com/avonderluft/occams/actions/workflows/rubyonrails.yml) on Ruby 2.7, 3.1 and 3.2 with Rails 6.1 and 7.0+
51
- - On Ruby 3.2, Rails 7+ is recommended, since performance is noticably better than 6
50
+ - [Test suite](https://github.com/avonderluft/occams/actions/workflows/rubyonrails.yml) on Ruby >= 2.7 with Rails >= 6.1
51
+ - On Ruby 3.2, Rails 7.x + is recommended, since performance is noticably better than on 6.x
52
+ - Sites do run on Rails 7.1, e.g. [GKNT](https://gknt.org/), but some tests fail in [Github Actions](https://github.com/avonderluft/occams/actions). Your mileage may vary.
52
53
 
53
54
  ## Installation
54
55
 
@@ -97,8 +98,6 @@ Once you have a layout, you may start creating pages and populating content. It'
97
98
 
98
99
  ## Documentation
99
100
 
100
- [Occams](https://github.com/avonderluft/occams)
101
-
102
101
  For more information on how to use this CMS please refer to the [Wiki](https://github.com/avonderluft/occams/wiki). Section that might be of interest is the entry
103
102
  on [Content Tags](https://github.com/comfy/avonderluft/occams/Content-Tags).
104
103
 
@@ -119,5 +118,5 @@ For more detail see [CONTRIBUTING](CONTRIBUTING.md)
119
118
  - Thanks to [Roman Almeida](https://github.com/nasmorn) for contributing OEM License for [Redactor Text Editor](http://imperavi.com/redactor)
120
119
 
121
120
  ---
122
- - [Occams](https://github.com/avonderluft/occams) Copyright 2023 Andrew vonderLuft, following Comfy, released under the [MIT license](LICENSE)
121
+ - [Occams](https://github.com/avonderluft/occams) Copyright 2023-2024 Andrew vonderLuft, following Comfy, released under the [MIT license](LICENSE)
123
122
  - [ComfortableMexicanSofa](https://github.com/comfy/comfortable-mexican-sofa) Copyright 2010-2019 Oleg Khabarov. Released under the [MIT license](LICENSE)
@@ -12,6 +12,9 @@ module Occams::ReorderAction
12
12
  (params.permit(order: [])[:order] || []).each_with_index do |id, index|
13
13
  resource_class.where(id: id).update_all(position: index)
14
14
  end
15
+ if resource_class == ::Occams::Cms::Page
16
+ Occams::Cms::Page.all.each(&:save!)
17
+ end
15
18
  head :ok
16
19
  end
17
20
  end
@@ -35,8 +35,14 @@ class Occams::Admin::Cms::PagesController < Occams::Admin::Cms::BaseController
35
35
  render
36
36
  end
37
37
 
38
+ def update_family
39
+ @page.siblings.each(&:save!) if @page.siblings
40
+ @page.parent.save! if @page.parent
41
+ end
42
+
38
43
  def create
39
44
  @page.save!
45
+ update_family
40
46
  flash[:success] = I18n.t('occams.admin.cms.pages.created')
41
47
  redirect_to action: :edit, id: @page
42
48
  rescue ActiveRecord::RecordInvalid
@@ -46,6 +52,7 @@ class Occams::Admin::Cms::PagesController < Occams::Admin::Cms::BaseController
46
52
 
47
53
  def update
48
54
  @page.save!
55
+ update_family
49
56
  flash[:success] = I18n.t('occams.admin.cms.pages.updated')
50
57
  redirect_to action: :edit, id: @page
51
58
  rescue ActiveRecord::RecordInvalid
@@ -55,6 +62,7 @@ class Occams::Admin::Cms::PagesController < Occams::Admin::Cms::BaseController
55
62
 
56
63
  def destroy
57
64
  @page.destroy
65
+ update_family
58
66
  flash[:success] = I18n.t('occams.admin.cms.pages.deleted')
59
67
  redirect_to action: :index
60
68
  end
@@ -77,7 +77,7 @@ module Occams::Cms::WithFragments
77
77
  # duplicate tags on the layout. That's wierd (but still works).
78
78
  def fragment_nodes
79
79
  nodes
80
- .select { |n| n.is_a?(Occams::Content::Tag::Fragment) }
80
+ .select { |n| n.is_a?(Occams::Content::Tags::Fragment) }
81
81
  .uniq(&:identifier)
82
82
  end
83
83
 
@@ -5,7 +5,7 @@ class Occams::Cms::Fragment < ActiveRecord::Base
5
5
 
6
6
  has_many_attached :attachments
7
7
 
8
- serialize :content
8
+ serialize :content, coder: Psych
9
9
 
10
10
  attr_reader :files
11
11
 
@@ -3,6 +3,8 @@
3
3
  class Occams::Cms::Layout < ActiveRecord::Base
4
4
  self.table_name = 'occams_cms_layouts'
5
5
 
6
+ require_relative '../../../../lib/occams/extensions/acts_as_tree'
7
+
6
8
  cms_acts_as_tree
7
9
  cms_has_revisions_for :content, :css, :js
8
10
 
@@ -67,7 +69,7 @@ class Occams::Cms::Layout < ActiveRecord::Base
67
69
  tokens = renderer.tokenize(content)
68
70
 
69
71
  if parent
70
- fragment_tags = Occams::Content::Tag::Fragment.subclasses.map do |c|
72
+ fragment_tags = Occams::Content::Tags::Fragment.subclasses.map do |c|
71
73
  Occams::Content::Renderer.tags.key(c)
72
74
  end
73
75
 
@@ -3,7 +3,7 @@
3
3
  class Occams::Cms::Revision < ActiveRecord::Base
4
4
  self.table_name = 'occams_cms_revisions'
5
5
 
6
- serialize :data
6
+ serialize :data, coder: Psych
7
7
 
8
8
  # -- Relationships --------------------------------------------------------
9
9
  belongs_to :record, polymorphic: true
@@ -42,5 +42,5 @@
42
42
  = link_to 'Ruby', 'https://www.ruby-lang.org', target: '_blank'
43
43
  %span.version= RUBY_VERSION
44
44
  %br
45
- = Rails.env.upcase
45
+ = Rails.env.upcase + ' - ' + ActiveRecord::Base.connection.adapter_name
46
46
 
data/bin/rails CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- APP_PATH = File.expand_path('../config/application', __dir__)
3
- require_relative '../config/boot'
4
- require 'rails/commands'
2
+ APP_PATH = File.expand_path("../config/application", __dir__)
3
+ require_relative "../config/boot"
4
+ require "rails/commands"
data/bin/rake CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- require_relative '../config/boot'
3
- require 'rake'
2
+ require_relative "../config/boot"
3
+ require "rake"
4
4
  Rake.application.run
data/bin/setup CHANGED
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
- require 'fileutils'
2
+ require "fileutils"
3
3
 
4
4
  # path to your application root.
5
- APP_ROOT = File.expand_path('..', __dir__)
5
+ APP_ROOT = File.expand_path("..", __dir__)
6
6
 
7
7
  def system!(*args)
8
- system(*args) || abort("\n== Command #{args} failed ==")
8
+ system(*args, exception: true)
9
9
  end
10
10
 
11
11
  FileUtils.chdir APP_ROOT do
@@ -13,21 +13,21 @@ FileUtils.chdir APP_ROOT do
13
13
  # This script is idempotent, so that you can run it at any time and get an expectable outcome.
14
14
  # Add necessary setup steps to this file.
15
15
 
16
- puts '== Installing dependencies =='
17
- system! 'gem install bundler --conservative'
18
- system('bundle check') || system!('bundle install')
16
+ puts "== Installing dependencies =="
17
+ system! "gem install bundler --conservative"
18
+ system("bundle check") || system!("bundle install")
19
19
 
20
20
  # puts "\n== Copying sample files =="
21
- # unless File.exist?('config/database.yml')
22
- # FileUtils.cp 'config/database.yml.sample', 'config/database.yml'
21
+ # unless File.exist?("config/database.yml")
22
+ # FileUtils.cp "config/database.yml.sample", "config/database.yml"
23
23
  # end
24
24
 
25
25
  puts "\n== Preparing database =="
26
- system! 'bin/rails db:setup'
26
+ system! "bin/rails db:prepare"
27
27
 
28
28
  puts "\n== Removing old logs and tempfiles =="
29
- system! 'bin/rails log:clear tmp:clear'
29
+ system! "bin/rails log:clear tmp:clear"
30
30
 
31
31
  puts "\n== Restarting application server =="
32
- system! 'bin/rails restart'
32
+ system! "bin/rails restart"
33
33
  end
@@ -10,10 +10,30 @@ Bundler.require(*Rails.groups)
10
10
 
11
11
  module Occams
12
12
  class Application < Rails::Application
13
- require_relative '../lib/occams'
13
+ # Load defaults based on Rails major/minor version
14
+ config.load_defaults Rails.version.scan(%r{^\d+\.\d+}).first.to_f
15
+
16
+ # Rails 7.1 compatibility - See config/initializers/new_framework_defaults_7_1.rb
17
+ if Gem::Version.new(Rails.version) >= Gem::Version.new('7.1.0')
18
+ config.active_record.default_column_serializer = YAML
19
+ config.active_record.before_committed_on_all_records = false
20
+ config.active_record.commit_transaction_on_non_local_return = false
21
+ config.active_record.run_after_transaction_callbacks_in_order_defined = false
22
+ config.active_support.message_serializer = :json
23
+ config.active_record.run_commit_callbacks_on_first_saved_instances_in_transaction = true
24
+ # config.active_record.allow_deprecated_singular_associations_name = true
25
+ # config.active_support.raise_on_invalid_cache_expiration_time = false
26
+ # config.active_record.sqlite3_adapter_strict_strings_by_default = false
27
+ # config.active_support.cache_format_version = 7.0
28
+ # Please, add to the `ignore` list any other `lib` subdirectories that do
29
+ # not contain `.rb` files, or that should not be reloaded or eager loaded.
30
+ # Common ones are `templates`, `generators`, or `middleware`, for example.
31
+ config.add_autoload_paths_to_load_path = false
32
+ config.autoload_lib(ignore: %w[generators])
33
+ end
14
34
 
15
- # Initialize configuration defaults for originally generated Rails version.
16
- config.load_defaults 6.1
35
+ # Making sure we don't load our dev routes as part of the engine
36
+ config.paths['config/routes.rb'] << 'config/cms_routes.rb'
17
37
 
18
38
  # Configuration for the application, engines, and railties goes here.
19
39
  #
@@ -25,9 +45,6 @@ module Occams
25
45
  # Ensuring that all ActiveStorage routes are loaded before out globbing route.
26
46
  config.railties_order = [ActiveStorage::Engine, :main_app, :all]
27
47
 
28
- # Making sure we don't load our dev routes as part of the engine
29
- config.paths['config/routes.rb'] << 'config/cms_routes.rb'
30
-
31
48
  config.i18n.enforce_available_locales = true
32
49
 
33
50
  config.active_record.yaml_column_permitted_classes = [
data/config/boot.rb CHANGED
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Set up gems listed in the Gemfile.
4
3
  ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
5
4
 
6
- require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
7
-
8
- File.exist? ENV.fetch('BUNDLE_GEMFILE')
5
+ require 'bundler/setup' # Set up gems listed in the Gemfile.
data/config/database.yml CHANGED
@@ -8,4 +8,33 @@ test:
8
8
  adapter: sqlite3
9
9
  database: db/test.sqlite3
10
10
  pool: 5
11
- timeout: 10000
11
+ timeout: 10000
12
+
13
+ # default: &default
14
+ # adapter: mysql2
15
+ # encoding: utf8mb4
16
+ # pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
17
+ # username: root
18
+ # password:
19
+ # socket: /tmp/mysql.sock
20
+ #
21
+ # development:
22
+ # <<: *default
23
+ # database: occams_dev
24
+ #
25
+ # test:
26
+ # <<: *default
27
+ # database: occams_test
28
+
29
+ # default: &default
30
+ # adapter: postgresql
31
+ # encoding: unicode
32
+ # pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
33
+ #
34
+ # development:
35
+ # <<: *default
36
+ # database: occams_dev
37
+ #
38
+ # test:
39
+ # <<: *default
40
+ # database: occams_test
@@ -8,7 +8,7 @@ defined?(Occams::Application) && Occams::Application.configure do
8
8
  # In the development environment your application's code is reloaded any time
9
9
  # it changes. This slows down response time but is perfect for development
10
10
  # since you don't have to restart the web server when you make code changes.
11
- config.cache_classes = false
11
+ config.enable_reloading = true
12
12
 
13
13
  # Do not eager load code on boot.
14
14
  config.eager_load = false
@@ -55,22 +55,15 @@ defined?(Occams::Application) && Occams::Application.configure do
55
55
  # Raise an error on page load if there are pending migrations.
56
56
  config.active_record.migration_error = :page_load
57
57
 
58
- # Debug mode disables concatenation and preprocessing of assets.
59
- # This option may cause significant delays in view rendering with a large
60
- # number of complex assets.
61
- config.assets.debug = true
62
-
63
58
  # Highlight code that triggered database queries in logs.
64
59
  config.active_record.verbose_query_logs = true
65
60
 
61
+ # Highlight code that enqueued background job in logs.
62
+ config.active_job.verbose_enqueue_logs = true
63
+
66
64
  # Suppress logger output for asset requests.
67
65
  config.assets.quiet = true
68
66
 
69
- # Use an evented file watcher to asynchronously detect changes in source code,
70
- # routes, locales, etc. This feature depends on the listen gem.
71
- config.file_watcher = ActiveSupport::EventedFileUpdateChecker
72
-
73
- config.active_job.queue_adapter = :inline
74
67
  # Raises error for missing translations.
75
68
  # config.i18n.raise_on_missing_translations = true
76
69
 
@@ -79,4 +72,9 @@ defined?(Occams::Application) && Occams::Application.configure do
79
72
 
80
73
  # Uncomment if you wish to allow Action Cable access from any origin.
81
74
  # config.action_cable.disable_request_forgery_protection = true
75
+
76
+ if Gem::Version.new(Rails.version) >= Gem::Version.new('7.1.0')
77
+ # Raise error when a before_action's only/except options reference missing actions
78
+ config.action_controller.raise_on_missing_callback_actions = true
79
+ end
82
80
  end