From 4f31ebdbd08b33a5a2244688950767fb7365f3ca Mon Sep 17 00:00:00 2001 From: Pulkit Goyal Date: Mon, 11 Nov 2024 05:34:05 +0100 Subject: [PATCH] Support Rails 8 --- .github/workflows/ci.yml | 6 ++++++ Gemfile | 4 +++- lib/active_model_serializers/adapter/base.rb | 3 ++- test/action_controller/json_api/linked_test.rb | 2 +- .../register_jsonapi_renderer_test_isolated.rb | 4 ++-- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 74ecea0b1..e5a589bd8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,12 @@ jobs: matrix: include: # Recent Rubies and Rails + - ruby-version: '3.3' + rails-version: '8.0' + - ruby-version: '3.2' + rails-version: '8.0' + - ruby-version: '3.2' + rails-version: '7.2' - ruby-version: '3.2' rails-version: '7.1' - ruby-version: '3.1' diff --git a/Gemfile b/Gemfile index e30d1d431..523bb85b9 100644 --- a/Gemfile +++ b/Gemfile @@ -60,7 +60,9 @@ end group :test do platforms(*(@windows_platforms + [:ruby])) do - if version == 'master' || version >= '6' + if version >= '8' + gem 'sqlite3', '~> 2.1' + elsif version == 'master' || version >= '6' gem 'sqlite3', '< 1.6' else gem 'sqlite3', '~> 1.3.13' diff --git a/lib/active_model_serializers/adapter/base.rb b/lib/active_model_serializers/adapter/base.rb index 9d5f4b6a1..8063f9b4e 100644 --- a/lib/active_model_serializers/adapter/base.rb +++ b/lib/active_model_serializers/adapter/base.rb @@ -74,7 +74,8 @@ def fragment_cache(cached_hash, non_cached_hash) # see https://github.com/rails-api/active_model_serializers/pull/965 # When options is +nil+, sets it to +{}+ def serialization_options(options) - options ||= {} # rubocop:disable Lint/UselessAssignment + options ||= {} + options.frozen? ? options.dup : options end def root diff --git a/test/action_controller/json_api/linked_test.rb b/test/action_controller/json_api/linked_test.rb index 69d8974d7..a5e396f1b 100644 --- a/test/action_controller/json_api/linked_test.rb +++ b/test/action_controller/json_api/linked_test.rb @@ -88,7 +88,7 @@ def render_collection_with_include setup do @routes = Rails.application.routes.draw do - ActiveSupport::Deprecation.silence do + (Rails.try(:deprecator) || ActiveSupport::Deprecation).silence do match ':action', to: LinkedTestController, via: [:get, :post] end end diff --git a/test/active_model_serializers/register_jsonapi_renderer_test_isolated.rb b/test/active_model_serializers/register_jsonapi_renderer_test_isolated.rb index a5460aa38..2a5b3980d 100644 --- a/test/active_model_serializers/register_jsonapi_renderer_test_isolated.rb +++ b/test/active_model_serializers/register_jsonapi_renderer_test_isolated.rb @@ -66,7 +66,7 @@ class WithoutRenderer < JsonApiRendererTest make_basic_app Rails.application.routes.draw do - ActiveSupport::Deprecation.silence do + (Rails.try(:deprecator) || ActiveSupport::Deprecation).silence do match ':action', to: TestController, via: [:get, :post] end end @@ -112,7 +112,7 @@ class WithRenderer < JsonApiRendererTest make_basic_app Rails.application.routes.draw do - ActiveSupport::Deprecation.silence do + (Rails.try(:deprecator) || ActiveSupport::Deprecation).silence do match ':action', to: TestController, via: [:get, :post] end end