Encapsulate serialization in ActiveModel::SerializableResource

Usage: ActiveModel::SerializableResource.serialize(resource, options)
This commit is contained in:
Benjamin Fleischer
2015-06-12 12:26:08 -05:00
parent e1c25e86e3
commit a66df3009a
9 changed files with 228 additions and 46 deletions

View File

@@ -113,11 +113,8 @@ module ActiveModel
private
def load_adapter(options)
adapter_opts, serializer_opts =
options.partition { |k, _| ActionController::Serialization::ADAPTER_OPTION_KEYS.include? k }.map { |h| Hash[h] }
serializer = AlternateBlogSerializer.new(@blog, serializer_opts)
ActiveModel::Serializer::Adapter::FlattenJson.new(serializer, adapter_opts)
options = options.merge(adapter: :flatten_json, serializer: AlternateBlogSerializer)
ActiveModel::SerializableResource.new(@blog, options)
end
end
end