Skip to content

Commit 7eddbe4

Browse files
committed
Remove SerializableResource.serialize in favor of .new
Per discussion in #1098
1 parent 1388ae8 commit 7eddbe4

File tree

2 files changed

+13
-26
lines changed

2 files changed

+13
-26
lines changed

lib/action_controller/serialization.rb

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,20 @@ def serialization_scope
2222
def get_serializer(resource, options = {})
2323
if !use_adapter?
2424
warn 'ActionController::Serialization#use_adapter? has been removed. '\
25-
"Please pass 'adapter: false' or see ActiveSupport::SerializableResource#serialize"
25+
"Please pass 'adapter: false' or see ActiveSupport::SerializableResource.new"
2626
options[:adapter] = false
2727
end
28-
ActiveModel::SerializableResource.serialize(resource, options) do |serializable_resource|
29-
if serializable_resource.serializer?
30-
serializable_resource.serialization_scope ||= serialization_scope
31-
serializable_resource.serialization_scope_name = _serialization_scope
32-
begin
33-
serializable_resource.adapter
34-
rescue ActiveModel::Serializer::ArraySerializer::NoSerializerError
35-
resource
36-
end
37-
else
28+
serializable_resource = ActiveModel::SerializableResource.new(resource, options)
29+
if serializable_resource.serializer?
30+
serializable_resource.serialization_scope ||= serialization_scope
31+
serializable_resource.serialization_scope_name = _serialization_scope
32+
begin
33+
serializable_resource.adapter
34+
rescue ActiveModel::Serializer::ArraySerializer::NoSerializerError
3835
resource
3936
end
37+
else
38+
resource
4039
end
4140
end
4241

lib/active_model/serializable_resource.rb

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ module ActiveModel
33
class SerializableResource
44
ADAPTER_OPTION_KEYS = Set.new([:include, :fields, :adapter])
55

6+
# Primary interface to composing a resource with a serializer and adapter.
7+
# @return the serializable_resource, ready for #as_json/#to_json/#serializable_hash.
68
def initialize(resource, options = {})
79
@resource = resource
810
@adapter_opts, @serializer_opts =
@@ -11,20 +13,6 @@ def initialize(resource, options = {})
1113

1214
delegate :serializable_hash, :as_json, :to_json, to: :adapter
1315

14-
# Primary interface to building a serializer (with adapter)
15-
# If no block is given,
16-
# returns the serializable_resource, ready for #as_json/#to_json/#serializable_hash.
17-
# Otherwise, yields the serializable_resource and
18-
# returns the contents of the block
19-
def self.serialize(resource, options = {})
20-
serializable_resource = SerializableResource.new(resource, options)
21-
if block_given?
22-
yield serializable_resource
23-
else
24-
serializable_resource
25-
end
26-
end
27-
2816
def serialization_scope=(scope)
2917
serializer_opts[:scope] = scope
3018
end
@@ -76,7 +64,7 @@ def serializer?
7664
private
7765

7866
ActiveModelSerializers.silence_warnings do
79-
attr_reader :resource, :adapter_opts, :serializer_opts
67+
attr_reader :resource, :adapter_opts, :serializer_opts
8068
end
8169
end
8270
end

0 commit comments

Comments
 (0)