Chris@1296: api.array :memberships, api_meta(:total_count => @member_count, :offset => @offset, :limit => @limit) do Chris@1296: @members.each do |membership| Chris@1296: api.membership do Chris@1296: api.id membership.id Chris@1296: api.project :id => membership.project.id, :name => membership.project.name Chris@1296: api.__send__ membership.principal.class.name.underscore, :id => membership.principal.id, :name => membership.principal.name Chris@1296: api.array :roles do Chris@1296: membership.member_roles.each do |member_role| Chris@1296: if member_role.role Chris@1296: attrs = {:id => member_role.role.id, :name => member_role.role.name} Chris@1296: attrs.merge!(:inherited => true) if member_role.inherited_from.present? Chris@1296: api.role attrs Chris@1296: end Chris@1296: end Chris@1296: end Chris@1296: end Chris@1296: end Chris@1296: end