diff --git a/docs/rfcs/0000-namespace.md b/docs/rfcs/0000-namespace.md index 9532cae5..da07c4c1 100644 --- a/docs/rfcs/0000-namespace.md +++ b/docs/rfcs/0000-namespace.md @@ -70,7 +70,7 @@ at the first moment. ## Renaming of class and modules When moving some content to the new namespace we can find some names that does -not make much sense like `ActiveModelSerializers::Adapter::JsonApi`. +not make much sense like `ActiveModel::Serializer::Adapter::JsonApi`. Discussion of renaming existing classes / modules and JsonApi objects will happen in separate pull requests, and issues, and in the google doc https://docs.google.com/document/d/1rcrJr0sVcazY2Opd_6Kmv1iIwuHbI84s1P_NzFn-05c/edit?usp=sharing diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index b3d6a1fa..64bff0ec 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -23,8 +23,6 @@ module ActiveModel include Links include Meta include Type - # Deprecated - require 'active_model_serializers/adapter' # @param resource [ActiveRecord::Base, ActiveModelSerializers::Model] # @return [ActiveModel::Serializer] diff --git a/lib/active_model_serializers.rb b/lib/active_model_serializers.rb index 47e14208..e75e30a0 100644 --- a/lib/active_model_serializers.rb +++ b/lib/active_model_serializers.rb @@ -9,6 +9,7 @@ module ActiveModelSerializers autoload :Deserialization autoload :Logging autoload :Test + autoload :Adapter class << self; attr_accessor :logger; end self.logger = ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDOUT)) diff --git a/test/active_model_serializers/adapter_for_test.rb b/test/active_model_serializers/adapter_for_test.rb index 5fe3b857..8dfbc9f3 100644 --- a/test/active_model_serializers/adapter_for_test.rb +++ b/test/active_model_serializers/adapter_for_test.rb @@ -10,6 +10,12 @@ module ActiveModelSerializers ActiveModelSerializers.config.adapter = @previous_adapter end + def test_serializer_adapter_returns_configured__adapter + assert_output(nil, /ActiveModelSerializers::configured_adapter/) do + assert_equal ActiveModelSerializers::Adapter.configured_adapter, ActiveModel::Serializer.adapter + end + end + def test_returns_default_adapter adapter = ActiveModelSerializers::Adapter.configured_adapter assert_equal ActiveModelSerializers::Adapter::Attributes, adapter @@ -24,11 +30,40 @@ module ActiveModelSerializers ActiveModelSerializers.config.adapter = @previous_adapter end + def test_overwrite_adapter_with_camelcased_symbol + ActiveModelSerializers.config.adapter = :JsonApi + + adapter = ActiveModelSerializers::Adapter.configured_adapter + assert_equal ActiveModelSerializers::Adapter::JsonApi, adapter + ensure + ActiveModelSerializers.config.adapter = @previous_adapter + end + + def test_overwrite_adapter_with_string + ActiveModelSerializers.config.adapter = 'json_api' + + adapter = ActiveModelSerializers::Adapter.configured_adapter + assert_equal ActiveModelSerializers::Adapter::JsonApi, adapter + ensure + ActiveModelSerializers.config.adapter = @previous_adapter + end + + def test_overwrite_adapter_with_a_camelcased_string + ActiveModelSerializers.config.adapter = 'JsonApi' + + adapter = ActiveModelSerializers::Adapter.configured_adapter + assert_equal ActiveModelSerializers::Adapter::JsonApi, adapter + ensure + ActiveModelSerializers.config.adapter = @previous_adapter + end + def test_overwrite_adapter_with_class ActiveModelSerializers.config.adapter = ActiveModelSerializers::Adapter::Null adapter = ActiveModelSerializers::Adapter.configured_adapter assert_equal ActiveModelSerializers::Adapter::Null, adapter + ensure + ActiveModelSerializers.config.adapter = @previous_adapter end def test_raises_exception_if_invalid_symbol_given @@ -37,6 +72,8 @@ module ActiveModelSerializers assert_raises UnknownAdapterError do ActiveModelSerializers::Adapter.configured_adapter end + ensure + ActiveModelSerializers.config.adapter = @previous_adapter end def test_raises_exception_if_it_does_not_know_hot_to_infer_adapter @@ -45,6 +82,8 @@ module ActiveModelSerializers assert_raises UnknownAdapterError do ActiveModelSerializers::Adapter.configured_adapter end + ensure + ActiveModelSerializers.config.adapter = @previous_adapter end def test_adapter_class_for_known_adapter