Skip to content

Commit 020db79

Browse files
committed
Merge pull request #1501 from domitian/testcases-documentation-fix
Added testcases for serializable_resource and fixed a documentation error regarding adapter key constant
2 parents a18c99f + 68f09e5 commit 020db79

File tree

4 files changed

+12
-3
lines changed

4 files changed

+12
-3
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
Breaking changes:
44
Features:
55
Fixes:
6+
- [#1501](https://github.com/rails-api/active_model_serializers/pull/1501) Adds tests for SerializableResource::use_adapter?,doc typos (@domitian)
67
- [#1488](https://github.com/rails-api/active_model_serializers/pull/1488) Require ActiveSupport's string inflections (@nate00)
78
Misc:
89

docs/ARCHITECTURE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,15 @@ High-level overview:
5656
- `:each_serializer` specifies the serializer for each resource in the collection.
5757
- For a single resource, the `:serializer` option is the resource serializer.
5858
- Options are partitioned in serializer options and adapter options. Keys for adapter options are specified by
59-
[`ADAPTER_OPTIONS`](https://github.com/rails-api/active_model_serializers/blob/master/lib/active_model/serializable_resource.rb#L4).
59+
[`ADAPTER_OPTION_KEYS`](https://github.com/rails-api/active_model_serializers/blob/master/lib/active_model/serializable_resource.rb#L4).
6060
The remaining options are serializer options.
6161

6262
Details:
6363

6464
1. **ActionController::Serialization**
6565
1. `serializable_resource = ActiveModel::SerializableResource.new(resource, options)`
6666
1. `options` are partitioned into `adapter_opts` and everything else (`serializer_opts`).
67-
The adapter options keys for the are defined by `ADAPTER_OPTIONS`.
67+
The `adapter_opts` keys are defined in `ActiveModel::SerializableResource::ADAPTER_OPTION_KEYS`.
6868
1. **ActiveModel::SerializableResource**
6969
1. `if serializable_resource.serializer?` (there is a serializer for the resource, and an adapter is used.)
7070
- Where `serializer?` is `use_adapter? && !!(serializer)`

lib/active_model/serializer.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def self.serializers_cache
6767

6868
# @api private
6969
# Find a serializer from a class and caches the lookup.
70-
# Preferentially retuns:
70+
# Preferentially returns:
7171
# 1. class name appended with "Serializer"
7272
# 2. try again with superclass, if present
7373
# 3. nil

test/serializable_resource_test.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,13 @@ def test_serializable_resource_delegates_as_json_to_the_adapter
2323
options = nil
2424
assert_equal @adapter.as_json(options), @serializable_resource.as_json(options)
2525
end
26+
27+
def test_use_adapter_with_adapter_option
28+
assert ActiveModel::SerializableResource.new(@resource, { adapter: 'json' }).use_adapter?
29+
end
30+
31+
def test_use_adapter_with_adapter_option_as_false
32+
refute ActiveModel::SerializableResource.new(@resource, { adapter: false }).use_adapter?
33+
end
2634
end
2735
end

0 commit comments

Comments
 (0)