lib/rrschedule.rb in rrschedule-0.2.7 vs lib/rrschedule.rb in rrschedule-0.2.8

- old
+ new

@@ -240,9 +240,22 @@ @gt_ps_avail[@cur_gt].delete(@cur_ps) #this playing surface has now been taken and is not available @cur_date ||= next_game_date(self.start_date,@cur_rule.wday) @schedule ||= [] + + #if one of the team has already plays at this gamedate, we change rule + if @schedule.size>0 + games_this_date = @schedule.select{|v| v[:gamedate] == @cur_date} + if games_this_date.select{|g| [game.team_a,game.team_b].include?(g[:team_a]) || [game.team_a,game.team_b].include?(g[:team_b])}.size >0 + @cur_rule_index = (@cur_rule_index < @rules.size-1) ? @cur_rule_index+1 : 0 + @cur_rule = @rules[@cur_rule_index] + reset_resource_availability + @cur_gt = get_best_gt(game) + @cur_ps = get_best_ps(game,@cur_gt) + @cur_date = next_game_date(@cur_date+=1,@cur_rule.wday) + end + end @schedule << {:team_a => game.team_a, :team_b => game.team_b, :gamedate => @cur_date, :ps => @cur_ps, :gt => @cur_gt} x = @gt_ps_avail.reject{|k,v| v.empty?}