occams 1.0.7.2 → 1.0.8

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.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/coveralls.yml +11 -9
  3. data/.github/workflows/rubyonrails.yml +17 -15
  4. data/.gitignore +18 -16
  5. data/CHANGELOG.md +27 -11
  6. data/CONTRIBUTING.md +3 -4
  7. data/Gemfile +7 -5
  8. data/README.md +4 -3
  9. data/app/models/concerns/occams/cms/with_fragments.rb +1 -1
  10. data/app/models/occams/cms/fragment.rb +1 -1
  11. data/app/models/occams/cms/layout.rb +3 -1
  12. data/app/models/occams/cms/revision.rb +1 -1
  13. data/app/views/layouts/occams/admin/cms/_left.html.haml +1 -1
  14. data/bin/rails +3 -3
  15. data/bin/rake +2 -2
  16. data/bin/setup +11 -11
  17. data/config/application.rb +32 -7
  18. data/config/boot.rb +1 -4
  19. data/config/database.yml +30 -1
  20. data/config/environments/development.rb +9 -11
  21. data/config/environments/production.rb +26 -22
  22. data/config/environments/test.rb +16 -7
  23. data/config/initializers/content_security_policy.rb +2 -3
  24. data/config/initializers/filter_parameter_logging.rb +3 -3
  25. data/config/initializers/inflections.rb +0 -1
  26. data/config/initializers/new_framework_defaults_7_1.rb +224 -0
  27. data/config/initializers/permissions_policy.rb +10 -9
  28. data/gemfiles/6.1.gemfile +8 -5
  29. data/gemfiles/7.0.gemfile +7 -5
  30. data/gemfiles/7.1.gemfile +37 -0
  31. data/lib/generators/occams/cms/README +10 -2
  32. data/lib/occams/configuration.rb +1 -1
  33. data/lib/occams/content/tags/asset.rb +2 -2
  34. data/lib/occams/content/tags/audio.rb +2 -2
  35. data/lib/occams/content/tags/breadcrumbs.rb +2 -2
  36. data/lib/occams/content/tags/checkbox.rb +2 -2
  37. data/lib/occams/content/tags/children.rb +2 -2
  38. data/lib/occams/content/tags/date.rb +2 -2
  39. data/lib/occams/content/tags/datetime.rb +2 -2
  40. data/lib/occams/content/tags/file.rb +3 -3
  41. data/lib/occams/content/tags/file_link.rb +3 -3
  42. data/lib/occams/content/tags/files.rb +2 -2
  43. data/lib/occams/content/tags/fragment.rb +2 -2
  44. data/lib/occams/content/tags/helper.rb +2 -2
  45. data/lib/occams/content/tags/markdown.rb +2 -2
  46. data/lib/occams/content/tags/mixins/file_content.rb +1 -1
  47. data/lib/occams/content/tags/number.rb +2 -2
  48. data/lib/occams/content/tags/page_file_link.rb +3 -3
  49. data/lib/occams/content/tags/partial.rb +2 -2
  50. data/lib/occams/content/tags/siblings.rb +3 -2
  51. data/lib/occams/content/tags/snippet.rb +2 -2
  52. data/lib/occams/content/tags/template.rb +2 -2
  53. data/lib/occams/content/tags/text.rb +2 -2
  54. data/lib/occams/content/tags/textarea.rb +3 -2
  55. data/lib/occams/content/tags/wysiwyg.rb +2 -2
  56. data/lib/occams/content/tags.rb +28 -0
  57. data/lib/occams/content.rb +1 -26
  58. data/lib/occams/extensions/acts_as_tree.rb +3 -3
  59. data/lib/occams/extensions/has_revisions.rb +3 -3
  60. data/lib/occams/extensions.rb +8 -0
  61. data/lib/occams/routing.rb +74 -5
  62. data/lib/occams/version.rb +1 -1
  63. data/lib/occams.rb +3 -3
  64. data/occams.gemspec +13 -13
  65. metadata +8 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e9fce10bdb602179a806185f8069a8121d8405e4e9e04839e433096572207342
4
- data.tar.gz: 96efa1be357c97aa6659ff74cd865a9c4e7732880c0817469e6cee0da1bcb745
3
+ metadata.gz: fcc8760162308f5d0ad46ac82f46fa92be816f9e8c6ee291759709ddc472513e
4
+ data.tar.gz: f67e7efd920a103c3027e0201e824ee95bea38853893688ca7cbd9b0961d9a6d
5
5
  SHA512:
6
- metadata.gz: d681988915ae056de2c763f86927cdd2c51cc2ca121f0b291e59c8a4fe2fa069a5b21cb9e7f5f3719605475da2425165497f2b702242ba9b71043c5dff99b8b5
7
- data.tar.gz: 4bc6d9ac47bd585a3f966e5308d066a423c1eb57e80535f5d2df0eda335273324d5ebf13066d32dd7ea12c027bdaa347b9fc02aea7363229f8849f4efd6c9973
6
+ metadata.gz: aa7e678609d40af0dcd82a99a135f398006120c6b867a51a5814a7295f2540ec9771a21a0e972d64299e552b989b267748d35f8fe0c242b4fb2cc731e0086275
7
+ data.tar.gz: aaab1c6865ad43badee1f359c76fa3e45157f85ecb16f742c309c2ebd5de5430426745155f97fb619568d1d3280b2bdc21b33a9ba48f7e6eed763dcaa47a0ec9
@@ -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,18 @@ 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
+ continue-on-error: [true]
20
21
  name: ${{ format('Tests (Ruby {0}, Rails {1})', matrix.ruby-version, matrix.rails-version) }}
21
22
  runs-on: ubuntu-latest
22
23
  continue-on-error: ${{ matrix.continue-on-error }}
@@ -24,26 +25,27 @@ jobs:
24
25
  BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.rails-version }}.gemfile
25
26
  RAILS_ENV: test
26
27
  SKIP_COV: true
27
-
28
28
  steps:
29
- - uses: actions/checkout@v2
29
+ - name: Checkout source
30
+ uses: actions/checkout@v2
30
31
 
31
- - name: Install Ruby
32
+ - name: Install Ruby ${{ matrix.ruby-version }}
32
33
  uses: ruby/setup-ruby@v1
33
34
  with:
34
35
  ruby-version: ${{ matrix.ruby-version }}
35
- bundler-cache: true
36
36
 
37
- - name: Set up Test DB
38
- run: bin/rails db:migrate RAILS_ENV=test
39
37
  - name: Run tests
40
- run: bin/rake test
38
+ run: |
39
+ bin/bundle install --retry 3 --quiet
40
+ bin/bundle exec rails db:drop
41
+ bin/bundle exec rails db:create
42
+ bin/bundle exec rails db:migrate
43
+ bin/bundle exec rails test:db
41
44
 
42
- - name: Ruby Lint
45
+ - name: Lint the code
43
46
  run: bin/bundle exec rubocop --parallel
44
47
 
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
48
+ - name: Audit for security
49
+ run: |
50
+ bin/bundle exec brakeman -q -w3
51
+ bin/bundle exec bundler-audit --update --gemfile-lock gemfiles/${{ matrix.rails-version }}.gemfile.lock
data/.gitignore CHANGED
@@ -1,22 +1,24 @@
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-journal
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/schema.rb
16
+ db/test.sqlite3*
17
+ Gemfile.lock
18
+ gemfiles/*.gemfile.lock
19
+ log/
20
+ pkg
21
+ public/system/
22
+ rdoc
23
+ tmp/**/*
24
+ vendor/bundle/
data/CHANGELOG.md CHANGED
@@ -1,13 +1,29 @@
1
1
  # Changelog
2
2
 
3
- ## v1.0.7.2 - 9/27/2023
3
+ ## v1.0.8 - 29 December 2023
4
+
5
+ - Updated configs, et al. in pursuit of Rails 7.1 compatibility
6
+ - Added explicit coder for serialize commands
7
+ - Added ActiveRecord Adapter (database) info to admin footer
8
+ - Added commented defaults for MySQL and Postgres to database.yml
9
+ - Updated documentation
10
+ - Refactored lib files for better test coverage awareness
11
+
12
+ ## v1.0.7.3 - 7 October 2023
13
+
14
+ - Fixed edge case with siblings tag when current page is excluded
15
+ - Git ignore all sqlite* files for testing
16
+ - Small testing refinements
17
+ - Prep for Rails 7.1 compatibility
18
+
19
+ ## v1.0.7.2 - 27 September 2023
4
20
 
5
21
  - Pulled will_paginate option out in favor of Kaminari
6
22
  - Switched CI from Buildkite to [Github actions](https://github.com/avonderluft/occams/actions/workflows/rubyonrails.yml)
7
23
  - Improved test coverage to 99+
8
24
  - Removed backward compatibility to Rails prior to 6.x
9
25
 
10
- ## v1.0.7.1 - 9/22/2023
26
+ ## v1.0.7.1 - 22 September 2023
11
27
 
12
28
  - Addressed deprecations for file type 'image/jpg'
13
29
  - Added github workflow for tests, lints and audits
@@ -15,7 +31,7 @@
15
31
  - Bumped rubocop version to latest
16
32
  - Updated some testing parameters
17
33
 
18
- ## v1.0.7 - 9/12/2023
34
+ ## v1.0.7 - 12 September 2023
19
35
 
20
36
  - Updated coveralls Coverage reporting
21
37
  - Added minitest-reporters for test output
@@ -24,33 +40,33 @@
24
40
  - Lints and 1 typo
25
41
  - Added Build Status and Coveralls Coverage Status to README
26
42
 
27
- ## v1.0.6.1 - 9/5/2023
43
+ ## v1.0.6.1 - 5 September 2023
28
44
 
29
45
  - Fixed siblings and children nav tags which as written had problems creating child pages in the admin panel
30
46
 
31
- ## v1.0.6 - 9/5/2023
47
+ ## v1.0.6 - 5 September 2023
32
48
 
33
49
  - 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
34
50
  - 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
35
51
 
36
- ## v1.0.5 - 8/31/2023
52
+ ## v1.0.5 - 31 August 2023
37
53
 
38
54
  - 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.
39
55
  - Tests added for new tags
40
56
  - TODO: set up CI pipeline
41
57
 
42
- ## v1.0.4 - 8/26/2023
58
+ ## v1.0.4 - 26 August 2023
43
59
 
44
60
  - Added [cms:breadcrumbs Nav tag](https://github.com/avonderluft/occams/wiki/Content-Tags#breadcrumbs)
45
61
  - Added [cms:siblings Nav tag](https://github.com/avonderluft/occams/wiki/Content-Tags#siblings)
46
62
  - Updated [wiki documentation](https://github.com/avonderluft/occams/wiki)
47
63
 
48
- ## v1.0.3 - 8/15/2023
64
+ ## v1.0.3 - 15 August 2023
49
65
 
50
66
  - Added a [cms:audio tag](https://github.com/avonderluft/occams/wiki/Content-Tags#audio) for an embedded audio player
51
67
  - Some formatting of admin menu footer
52
68
 
53
- ## v1.0.2 - 8/14/2023
69
+ ## v1.0.2 - 14 August 2023
54
70
 
55
71
  - Fixed image rendering which rubocop broke in v1.0.1
56
72
  - Show unpublished pages in Rails development mode
@@ -58,14 +74,14 @@
58
74
  - Updated documentation at [Occams Wiki](https://github.com/avonderluft/occams/wiki)
59
75
  - Comprehensive rubocop linting
60
76
 
61
- ## v1.0.1 - 8/7/2023
77
+ ## v1.0.1 - 7 August 2023
62
78
 
63
79
  - Fixed image thumbnail hover for Rails 7
64
80
  - Added display of Rails and Ruby versions along with Occams version at foot of Admin menu
65
81
  - Refined gemspec dependencies
66
82
  - Tweaked with a bunch of rubocop linting
67
83
 
68
- ## v1.0.0 - 8/5/2023
84
+ ## v1.0.0 - 5 August 2023
69
85
 
70
86
  - Copied the original [ComfortableMexicanSofa](https://github.com/comfy/comfortable-mexican-sofa)
71
87
  - 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'
8
+ gem 'rails', '~> 7.0.0'
9
9
 
10
10
  group :development, :test do
11
11
  gem 'autoprefixer-rails', '~> 8.1.0'
12
12
  gem 'byebug', '~> 10.0.0', platforms: %i[mri mingw x64_mingw]
13
- gem 'capybara', '~> 3.39.0'
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
@@ -4,7 +4,7 @@
4
4
  [![Coverage Status](https://coveralls.io/repos/github/avonderluft/occams/badge.svg?branch=main)](https://coveralls.io/github/avonderluft/occams?branch=main)
5
5
  [![Gem Version](https://img.shields.io/gem/v/occams.svg?style=flat)](http://rubygems.org/gems/occams)
6
6
  [![Gem Downloads](https://img.shields.io/gem/dt/occams.svg?style=flat)](http://rubygems.org/gems/occams)
7
- [![GitHub Release Date - Published_At](https://img.shields.io/github/release-date/avonderluft/occams)](https://github.com/avonderluft/occams/releases)
7
+ [![GitHub Release Date - Published_At](https://img.shields.io/github/release-date/avonderluft/occams?label=last%20release&color=seagreen)](https://github.com/avonderluft/occams/releases)
8
8
 
9
9
  ***Prefer Simplicity.***
10
10
 
@@ -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
 
@@ -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,31 @@ 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
+ config.add_autoload_paths_to_load_path = true
18
+
19
+ if Gem::Version.new(Rails.version) >= Gem::Version.new('7.1.0')
20
+ config.active_record.default_column_serializer = YAML
21
+ config.active_record.before_committed_on_all_records = false
22
+ config.active_record.commit_transaction_on_non_local_return = false
23
+ config.active_record.run_after_transaction_callbacks_in_order_defined = false
24
+ config.active_support.message_serializer = :json
25
+ config.active_record.run_commit_callbacks_on_first_saved_instances_in_transaction = true
26
+ # config.active_record.allow_deprecated_singular_associations_name = true
27
+ # config.active_support.raise_on_invalid_cache_expiration_time = false
28
+ # config.active_record.sqlite3_adapter_strict_strings_by_default = false
29
+ # config.active_support.cache_format_version = 7.0
30
+ # Please, add to the `ignore` list any other `lib` subdirectories that do
31
+ # not contain `.rb` files, or that should not be reloaded or eager loaded.
32
+ # Common ones are `templates`, `generators`, or `middleware`, for example.
33
+ config.autoload_lib(ignore: %w[generators])
34
+ end
14
35
 
15
- # Initialize configuration defaults for originally generated Rails version.
16
- config.load_defaults 6.1
36
+ # Making sure we don't load our dev routes as part of the engine
37
+ config.paths['config/routes.rb'] << 'config/cms_routes.rb'
17
38
 
18
39
  # Configuration for the application, engines, and railties goes here.
19
40
  #
@@ -25,11 +46,15 @@ module Occams
25
46
  # Ensuring that all ActiveStorage routes are loaded before out globbing route.
26
47
  config.railties_order = [ActiveStorage::Engine, :main_app, :all]
27
48
 
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
49
  config.i18n.enforce_available_locales = true
32
50
 
33
- config.active_record.yaml_column_permitted_classes = [Symbol, Date, Time, ActiveSupport::TimeWithZone, ActiveSupport::TimeZone]
51
+ config.active_record.yaml_column_permitted_classes = [
52
+ Symbol,
53
+ Date,
54
+ Time,
55
+ ActiveSupport::TimeWithZone,
56
+ ActiveSupport::TimeZone,
57
+ ActiveSupport::SafeBuffer
58
+ ]
34
59
  end
35
60
  end
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