Remove SerializableResource.serialize in favor of .new

Per discussion in https://github.com/rails-api/active_model_serializers/issues/1098
This commit is contained in:
Benjamin Fleischer 2015-09-08 23:28:10 -05:00
parent 1388ae82f2
commit 7eddbe418d
2 changed files with 13 additions and 26 deletions

View File

@ -22,21 +22,20 @@ module ActionController
def get_serializer(resource, options = {})
if !use_adapter?
warn 'ActionController::Serialization#use_adapter? has been removed. '\
"Please pass 'adapter: false' or see ActiveSupport::SerializableResource#serialize"
"Please pass 'adapter: false' or see ActiveSupport::SerializableResource.new"
options[:adapter] = false
end
ActiveModel::SerializableResource.serialize(resource, options) do |serializable_resource|
if serializable_resource.serializer?
serializable_resource.serialization_scope ||= serialization_scope
serializable_resource.serialization_scope_name = _serialization_scope
begin
serializable_resource.adapter
rescue ActiveModel::Serializer::ArraySerializer::NoSerializerError
resource
end
else
serializable_resource = ActiveModel::SerializableResource.new(resource, options)
if serializable_resource.serializer?
serializable_resource.serialization_scope ||= serialization_scope
serializable_resource.serialization_scope_name = _serialization_scope
begin
serializable_resource.adapter
rescue ActiveModel::Serializer::ArraySerializer::NoSerializerError
resource
end
else
resource
end
end

View File

@ -3,6 +3,8 @@ module ActiveModel
class SerializableResource
ADAPTER_OPTION_KEYS = Set.new([:include, :fields, :adapter])
# Primary interface to composing a resource with a serializer and adapter.
# @return the serializable_resource, ready for #as_json/#to_json/#serializable_hash.
def initialize(resource, options = {})
@resource = resource
@adapter_opts, @serializer_opts =
@ -11,20 +13,6 @@ module ActiveModel
delegate :serializable_hash, :as_json, :to_json, to: :adapter
# Primary interface to building a serializer (with adapter)
# If no block is given,
# returns the serializable_resource, ready for #as_json/#to_json/#serializable_hash.
# Otherwise, yields the serializable_resource and
# returns the contents of the block
def self.serialize(resource, options = {})
serializable_resource = SerializableResource.new(resource, options)
if block_given?
yield serializable_resource
else
serializable_resource
end
end
def serialization_scope=(scope)
serializer_opts[:scope] = scope
end
@ -76,7 +64,7 @@ module ActiveModel
private
ActiveModelSerializers.silence_warnings do
attr_reader :resource, :adapter_opts, :serializer_opts
attr_reader :resource, :adapter_opts, :serializer_opts
end
end
end