active_model_serializers/lib/active_model/serializer/array_serializer.rb
Alexandre de Oliveira bcd3844e58 Stores passed in options in array serializers
This is supported in single serializers. This adds support for passing
options from array serializers to each serializer in it.
2015-03-11 16:14:09 -03:00

33 lines
752 B
Ruby

module ActiveModel
class Serializer
class ArraySerializer
include Enumerable
delegate :each, to: :@objects
attr_reader :meta, :meta_key
def initialize(objects, options = {})
options.merge!(root: nil)
@objects = objects.map do |object|
serializer_class = options.fetch(
:serializer,
ActiveModel::Serializer.serializer_for(object)
)
serializer_class.new(object, options)
end
@meta = options[:meta]
@meta_key = options[:meta_key]
end
def json_key
@objects.first.json_key if @objects.first
end
def root=(root)
@objects.first.root = root if @objects.first
end
end
end
end