Sha256: 698fc03b54770b331fa4cfacfc2e5680bc32016edb81a62b02789662656a5071
Contents?: true
Size: 1.52 KB
Versions: 1
Compression:
Stored size: 1.52 KB
Contents
require 'active_model/default_serializer' require 'active_model/serializable' require 'active_model/serializer' module ActiveModel class ArraySerializer include Serializable class << self attr_accessor :_root alias root _root= alias root= _root= end def initialize(object, options={}) @object = object @scope = options[:scope] @root = options.fetch(:root, self.class._root) @meta_key = options[:meta_key] || :meta @meta = options[@meta_key] @each_serializer = options[:each_serializer] @resource_name = options[:resource_name] end attr_accessor :object, :scope, :root, :meta_key, :meta def json_key if root.nil? @resource_name else root end end def serializer_for(item) serializer_class = @each_serializer || Serializer.serializer_for(item) || DefaultSerializer serializer_class.new(item, scope: scope) end def serializable_object @object.map do |item| serializer_for(item).serializable_object end end alias_method :serializable_array, :serializable_object def embedded_in_root_associations @object.each_with_object({}) do |item, hash| serializer_for(item).embedded_in_root_associations.each_pair do |type, objects| if hash.has_key?(type) hash[type].concat(objects).uniq! else hash[type] = objects end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
active_model_serializers-0.9.0.alpha1 | lib/active_model/array_serializer.rb |