Skip to content

Commit cce31fe

Browse files
mateusnavaMateus Navasamsonjs
authored
fix: Accept nil serializer (#92)
* fix: Accept nil serializer * Obey the law --------- Co-authored-by: Mateus Nava <mateus.nava@corp.globo.com> Co-authored-by: Sami Samhuri <sami@samhuri.net>
1 parent 7f759b6 commit cce31fe

File tree

3 files changed

+21
-6
lines changed

3 files changed

+21
-6
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
### 2.0.1 (Next)
44

5+
* [#92](https://github.com/ruby-grape/grape-active_model_serializers/pull/92): Fix: accept nil serializer - [@mateusnava](https://github.com/mateusnava).
56
* Your contribution here.
67

78
### 2.0.0 (2025/06/02)

lib/grape-active_model_serializers/serializer_resolver.rb

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@ def serializer
1717
def serializer_class
1818
return @serializer_class if defined?(@serializer_class)
1919

20-
@serializer_class = resource_defined_class
21-
@serializer_class ||= collection_class
22-
@serializer_class ||= options[:serializer]
23-
@serializer_class ||= namespace_inferred_class
24-
@serializer_class ||= version_inferred_class
25-
@serializer_class ||= resource_serializer_class
20+
return nil if options.key?(:serializer) && options[:serializer].nil?
21+
22+
@serializer_class = resource_defined_class ||
23+
collection_class ||
24+
options[:serializer] ||
25+
namespace_inferred_class ||
26+
version_inferred_class ||
27+
resource_serializer_class
2628
end
2729

2830
def serializer_options

spec/grape/active_model_serializers/serializer_resolver_spec.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,18 @@
5252
expect(serializer).to be_kind_of(serializer_class)
5353
end
5454

55+
context 'specified nil by options' do
56+
let(:options) {
57+
super().merge(
58+
serializer: nil
59+
)
60+
}
61+
62+
it 'returns nil' do
63+
expect(serializer).to be_nil
64+
end
65+
end
66+
5567
context 'each serializer' do
5668
let(:options) {
5769
super().except(:serializer).merge(

0 commit comments

Comments
 (0)