diff --git a/app/models/tournament.rb b/app/models/tournament.rb index 886518e..c3e094d 100644 --- a/app/models/tournament.rb +++ b/app/models/tournament.rb @@ -36,7 +36,7 @@ class Tournament < ActiveRecord::Base end def generateMatchups - @matches = Tournamentmatchgen.new.genMatches(self) + @matches = Tournamentmatchgen.new(self).genMatches() end def destroyAllMatches @@ -44,6 +44,3 @@ class Tournament < ActiveRecord::Base end end - - - diff --git a/app/models/tournamentmatchgen.rb b/app/models/tournamentmatchgen.rb index e518363..4f8428d 100644 --- a/app/models/tournamentmatchgen.rb +++ b/app/models/tournamentmatchgen.rb @@ -1,35 +1,45 @@ class Tournamentmatchgen - def genMatches(tournament) - if tournament.tournament_type == "Pool to bracket" - @matches = poolToBracket(tournament) + + def initialize(tournament) + @tournament = tournament + @matches = @tournament.matches + end + + def genMatches + if @tournament.tournament_type == "Pool to bracket" + @matches = poolToBracket() end return @matches end - def poolToBracket(tournament) - tournament.destroyAllMatches + def poolToBracket + destroyMatches() + @tournament.weights.sort_by{|x|[x.max]}.each do |w| + buildTournamentWeights(w) + end + @matches = Boutgen.new.assignBouts(@matches,@tournament.weights) + @matches = Losernamegen.new.assignLoserNames(@matches,@tournament.weights) + saveMatches + return @matches + end + + def destroyMatches + @tournament.destroyAllMatches @matches = [] - tournament.weights.sort_by{|x|[x.max]}.each do |w| - buildTournamentWeights(tournament.id, w) - end - @matches = Boutgen.new.assignBouts(@matches,tournament.weights) - @matches = Losernamegen.new.assignLoserNames(@matches,tournament.weights) - saveMatches(tournament,@matches) - return @matches end - def buildTournamentWeights(tournament_id, weight) + def buildTournamentWeights(weight) @wrestlers = weight.wrestlers - @matches = Pool.new.generatePools(weight, tournament_id, @matches) + @matches = Pool.new.generatePools(weight, @tournament.id, @matches) @weight_matches = @matches.select{|m| m.weight_id == weight.id } @last_match = @weight_matches.sort_by{|m| m.round}.last @highest_round = @last_match.round @matches = Poolbracket.new.generateBracketMatches(@matches, weight, @highest_round) end - def saveMatches(tournament,matches) - matches.each do |m| - m.tournament_id = tournament.id + def saveMatches + @matches.each do |m| + m.tournament_id = @tournament.id m.save end end