def set_operation(operation, other)
      resources   = set_operation_resources(operation, other)
      other_query = Query.target_query(repository, model, other)
      new_collection(query.send(operation, other_query), resources)
    end
def set_operation(operation, other)
      resources   = set_operation_resources(operation, other)
      other_query = Query.target_query(repository, model, other)
      new_collection(query.send(operation, other_query), resources)
    end
Apply a set operation on self and another collection

 @param [Symbol] operation
   the set operation to apply
 @param [Collection] other
   the other collection to apply the set operation on

 @return [Collection]
   the collection that was created for the set operation

 @api private