File tree 3 files changed +17
-12
lines changed 3 files changed +17
-12
lines changed Original file line number Diff line number Diff line change @@ -33,15 +33,16 @@ def use_adapter?
33
33
34
34
[ :_render_option_json , :_render_with_renderer_json ] . each do |renderer_method |
35
35
define_method renderer_method do |resource , options |
36
- builder = ActiveModel ::Serializer ::Builder . new ( resource , options )
37
- if builder . serializer?
38
- builder . serialization_scope ||= serialization_scope
39
- builder . serialization_scope_name = _serialization_scope
40
- adapter = builder . adapter
41
- super ( adapter , options )
42
- else
43
- super ( resource , options )
36
+ serializable_resource = ActiveModel ::Serializer ::build ( resource , options ) do | builder |
37
+ if builder . serializer?
38
+ builder . serialization_scope ||= serialization_scope
39
+ builder . serialization_scope_name = _serialization_scope
40
+ builder . adapter
41
+ else
42
+ resource
43
+ end
44
44
end
45
+ super ( serializable_resource , options )
45
46
end
46
47
end
47
48
Original file line number Diff line number Diff line change @@ -31,10 +31,15 @@ def self.inherited(base)
31
31
end
32
32
33
33
# Primary interface to building a serializer (with adapter)
34
+ # If no block is given, returns the adapter, ready for #as_json/#to_json
35
+ # Otherwise, yields the builder and returns the contents of the block
34
36
def self . build ( resource , options = { } )
35
37
builder = Builder . new ( resource , options )
36
- yield builder if block_given?
37
- builder . adapter
38
+ if block_given?
39
+ yield builder
40
+ else
41
+ builder . adapter
42
+ end
38
43
end
39
44
40
45
def self . attributes ( *attrs )
Original file line number Diff line number Diff line change @@ -95,8 +95,7 @@ def test_meta_is_present_on_arrays_with_root
95
95
96
96
def load_adapter ( options )
97
97
options = options . merge ( adapter : :json , serializer : AlternateBlogSerializer )
98
- builder = ActiveModel ::Serializer ::Builder . new ( @blog , options )
99
- builder . adapter
98
+ ActiveModel ::Serializer . build ( @blog , options )
100
99
end
101
100
end
102
101
end
You can’t perform that action at this time.
0 commit comments