diff --git a/CHANGELOG.md b/CHANGELOG.md index 721f42ac0..71614c68c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ Breaking changes: Features: Fixes: +- [#1501](https://github.com/rails-api/active_model_serializers/pull/1501) Adds tests for SerializableResource::use_adapter?,doc typos (@domitian) - [#1488](https://github.com/rails-api/active_model_serializers/pull/1488) Require ActiveSupport's string inflections (@nate00) Misc: diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 46f1fbfd2..25bb88a4f 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -56,7 +56,7 @@ High-level overview: - `:each_serializer` specifies the serializer for each resource in the collection. - For a single resource, the `:serializer` option is the resource serializer. - Options are partitioned in serializer options and adapter options. Keys for adapter options are specified by - [`ADAPTER_OPTIONS`](https://github.com/rails-api/active_model_serializers/blob/master/lib/active_model/serializable_resource.rb#L4). + [`ADAPTER_OPTION_KEYS`](https://github.com/rails-api/active_model_serializers/blob/master/lib/active_model/serializable_resource.rb#L4). The remaining options are serializer options. Details: @@ -64,7 +64,7 @@ Details: 1. **ActionController::Serialization** 1. `serializable_resource = ActiveModel::SerializableResource.new(resource, options)` 1. `options` are partitioned into `adapter_opts` and everything else (`serializer_opts`). - The adapter options keys for the are defined by `ADAPTER_OPTIONS`. + The `adapter_opts` keys are defined in `ActiveModel::SerializableResource::ADAPTER_OPTION_KEYS`. 1. **ActiveModel::SerializableResource** 1. `if serializable_resource.serializer?` (there is a serializer for the resource, and an adapter is used.) - Where `serializer?` is `use_adapter? && !!(serializer)` diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 714ff65d4..21b53cfcc 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -67,7 +67,7 @@ def self.serializers_cache # @api private # Find a serializer from a class and caches the lookup. - # Preferentially retuns: + # Preferentially returns: # 1. class name appended with "Serializer" # 2. try again with superclass, if present # 3. nil diff --git a/test/serializable_resource_test.rb b/test/serializable_resource_test.rb index 62bc5d91c..339b22a59 100644 --- a/test/serializable_resource_test.rb +++ b/test/serializable_resource_test.rb @@ -23,5 +23,13 @@ def test_serializable_resource_delegates_as_json_to_the_adapter options = nil assert_equal @adapter.as_json(options), @serializable_resource.as_json(options) end + + def test_use_adapter_with_adapter_option + assert ActiveModel::SerializableResource.new(@resource, { adapter: 'json' }).use_adapter? + end + + def test_use_adapter_with_adapter_option_as_false + refute ActiveModel::SerializableResource.new(@resource, { adapter: false }).use_adapter? + end end end