mirror of
https://github.com/samsonjs/grape-active_model_serializers.git
synced 2026-04-27 14:57:43 +00:00
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>
This commit is contained in:
parent
7f759b6560
commit
cce31fe187
3 changed files with 21 additions and 6 deletions
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
### 2.0.1 (Next)
|
### 2.0.1 (Next)
|
||||||
|
|
||||||
|
* [#92](https://github.com/ruby-grape/grape-active_model_serializers/pull/92): Fix: accept nil serializer - [@mateusnava](https://github.com/mateusnava).
|
||||||
* Your contribution here.
|
* Your contribution here.
|
||||||
|
|
||||||
### 2.0.0 (2025/06/02)
|
### 2.0.0 (2025/06/02)
|
||||||
|
|
|
||||||
|
|
@ -17,12 +17,14 @@ module Grape
|
||||||
def serializer_class
|
def serializer_class
|
||||||
return @serializer_class if defined?(@serializer_class)
|
return @serializer_class if defined?(@serializer_class)
|
||||||
|
|
||||||
@serializer_class = resource_defined_class
|
return nil if options.key?(:serializer) && options[:serializer].nil?
|
||||||
@serializer_class ||= collection_class
|
|
||||||
@serializer_class ||= options[:serializer]
|
@serializer_class = resource_defined_class ||
|
||||||
@serializer_class ||= namespace_inferred_class
|
collection_class ||
|
||||||
@serializer_class ||= version_inferred_class
|
options[:serializer] ||
|
||||||
@serializer_class ||= resource_serializer_class
|
namespace_inferred_class ||
|
||||||
|
version_inferred_class ||
|
||||||
|
resource_serializer_class
|
||||||
end
|
end
|
||||||
|
|
||||||
def serializer_options
|
def serializer_options
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,18 @@ describe Grape::ActiveModelSerializers::SerializerResolver do
|
||||||
expect(serializer).to be_kind_of(serializer_class)
|
expect(serializer).to be_kind_of(serializer_class)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'specified nil by options' do
|
||||||
|
let(:options) {
|
||||||
|
super().merge(
|
||||||
|
serializer: nil
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
it 'returns nil' do
|
||||||
|
expect(serializer).to be_nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'each serializer' do
|
context 'each serializer' do
|
||||||
let(:options) {
|
let(:options) {
|
||||||
super().except(:serializer).merge(
|
super().except(:serializer).merge(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue