Sha256: c41e2de97be7dd1cb4ca4451cd6f93221d8baaa072c3e11559311a7b92906480
Contents?: true
Size: 1018 Bytes
Versions: 1
Compression:
Stored size: 1018 Bytes
Contents
# -*- coding: utf-8 -*- module Yaks class CollectionMapper < Mapper alias collection object # @param [Array] collection # @return [Array] def call(collection) @object = collection attrs = { type: collection_type, members: collection().map do |obj| mapper_for_model(obj).new(context).call(obj) end } attrs[ :collection_rel ] = collection_rel map_attributes( map_links( CollectionResource.new(attrs) ) ) end private def collection_rel if collection_type policy.expand_rel( pluralize( collection_type ) ) else 'collection' end end def collection_type if item_mapper = context[:item_mapper] item_mapper.config.type || policy.derive_type_from_mapper_class(item_mapper) end end def mapper_for_model(model) context.fetch(:item_mapper) do policy.derive_mapper_from_object(model) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
yaks-0.4.3 | lib/yaks/collection_mapper.rb |