Split root construction and serialization logic

This commit is contained in:
Santiago Pastorino
2013-10-29 19:39:27 -02:00
parent 49ab359a34
commit 1eea008336
3 changed files with 18 additions and 11 deletions

View File

@@ -14,9 +14,7 @@ module ActiveModel
def initialize(object, options={})
@object = object
@root = options[:root]
@root = self.class._root if @root.nil?
@root = options[:resource_name] if @root.nil?
@root = options.fetch(:root, self.class._root)
@meta_key = options[:meta_key] || :meta
@meta = options[@meta_key]
@each_serializer = options[:each_serializer]
@@ -24,6 +22,14 @@ module ActiveModel
end
attr_accessor :object, :root, :meta_key, :meta
def json_key
if root.nil?
@options[:resource_name]
else
root
end
end
def serializable_array
@object.map do |item|
serializer = @each_serializer || Serializer.serializer_for(item) || DefaultSerializer