':param activties: A list of activities
:returns list: A list of aggregated activities
Runs the group activities (using get group)
Ranks them using the giving ranking function
And returns the sorted activities
**Example** ::
aggregator = ModulusAggregator()
activities = [Activity(1), Activity(2)]
aggregated_activities = aggregator.aggregate(activities)'

def aggregate(self, activities):

    aggregate_dict = self.group_activities(activities)
    aggregated_activities = list(aggregate_dict.values())
    ranked_aggregates = self.rank(aggregated_activities)
    return ranked_aggregates
