diff --git a/app/models/generates_loser_names.rb b/app/models/generates_loser_names.rb new file mode 100644 index 0000000..7ac2d30 --- /dev/null +++ b/app/models/generates_loser_names.rb @@ -0,0 +1,57 @@ +module GeneratesLoserNames + def assignLoserNames + matches_by_weight = nil + weights.each do |w| + matches_by_weight = matches.where(weight_id: w.id) + if w.pool_bracket_type == "twoPoolsToSemi" + twoPoolsToSemiLoser(matches_by_weight) + elsif w.pool_bracket_type == "fourPoolsToQuarter" + fourPoolsToQuarterLoser(matches_by_weight) + elsif w.pool_bracket_type == "fourPoolsToSemi" + fourPoolsToSemiLoser(matches_by_weight) + end + end + return matches_by_weight + end + + def twoPoolsToSemiLoser(matches_by_weight) + match1 = matches_by_weight.select{|m| m.loser1_name == "Winner Pool 1"}.first + match2 = matches_by_weight.select{|m| m.loser1_name == "Winner Pool 2"}.first + matchChange = matches_by_weight.select{|m| m.bracket_position == "3/4"}.first + matchChange.loser1_name = "Loser of #{match1.bout_number}" + matchChange.loser2_name = "Loser of #{match2.bout_number}" + end + + def fourPoolsToQuarterLoser(matches_by_weight) + quarters = matches_by_weight.select{|m| m.bracket_position == "Quarter"} + consoSemis = matches_by_weight.select{|m| m.bracket_position == "Conso Semis"} + semis = matches_by_weight.select{|m| m.bracket_position == "Semis"} + thirdFourth = matches_by_weight.select{|m| m.bracket_position == "3/4"}.first + seventhEighth = matches_by_weight.select{|m| m.bracket_position == "7/8"}.first + consoSemis.each do |m| + if m.bracket_position_number == 1 + m.loser1_name = "Loser of #{quarters.select{|m| m.bracket_position_number == 1}.first.bout_number}" + m.loser2_name = "Loser of #{quarters.select{|m| m.bracket_position_number == 2}.first.bout_number}" + elsif m.bracket_position_number == 2 + m.loser1_name = "Loser of #{quarters.select{|m| m.bracket_position_number == 3}.first.bout_number}" + m.loser2_name = "Loser of #{quarters.select{|m| m.bracket_position_number == 4}.first.bout_number}" + end + end + thirdFourth.loser1_name = "Loser of #{semis.select{|m| m.bracket_position_number == 1}.first.bout_number}" + thirdFourth.loser2_name = "Loser of #{semis.select{|m| m.bracket_position_number == 2}.first.bout_number}" + consoSemis = matches_by_weight.select{|m| m.bracket_position == "Conso Semis"} + seventhEighth.loser1_name = "Loser of #{consoSemis.select{|m| m.bracket_position_number == 1}.first.bout_number}" + seventhEighth.loser2_name = "Loser of #{consoSemis.select{|m| m.bracket_position_number == 2}.first.bout_number}" + end + + def fourPoolsToSemiLoser(matches_by_weight) + semis = matches_by_weight.select{|m| m.bracket_position == "Semis"} + thirdFourth = matches_by_weight.select{|m| m.bracket_position == "3/4"}.first + consoSemis = matches_by_weight.select{|m| m.bracket_position == "Conso Semis"} + seventhEighth = matches_by_weight.select{|m| m.bracket_position == "7/8"}.first + thirdFourth.loser1_name = "Loser of #{semis.select{|m| m.bracket_position_number == 1}.first.bout_number}" + thirdFourth.loser2_name = "Loser of #{semis.select{|m| m.bracket_position_number == 2}.first.bout_number}" + seventhEighth.loser1_name = "Loser of #{consoSemis.select{|m| m.bracket_position_number == 1}.first.bout_number}" + seventhEighth.loser2_name = "Loser of #{consoSemis.select{|m| m.bracket_position_number == 2}.first.bout_number}" + end +end diff --git a/app/models/losernamegen.rb b/app/models/losernamegen.rb deleted file mode 100644 index b2de600..0000000 --- a/app/models/losernamegen.rb +++ /dev/null @@ -1,58 +0,0 @@ -class Losernamegen - def assignLoserNames(tournament) - matches = nil - weights = tournament.weights - weights.each do |w| - matches = tournament.matches.where(weight_id: w.id) - if w.pool_bracket_type == "twoPoolsToSemi" - twoPoolsToSemiLoser(matches) - elsif w.pool_bracket_type == "fourPoolsToQuarter" - fourPoolsToQuarterLoser(matches) - elsif w.pool_bracket_type == "fourPoolsToSemi" - fourPoolsToSemiLoser(matches) - end - end - return matches - end - - def twoPoolsToSemiLoser(matches) - match1 = matches.select{|m| m.loser1_name == "Winner Pool 1"}.first - match2 = matches.select{|m| m.loser1_name == "Winner Pool 2"}.first - matchChange = matches.select{|m| m.bracket_position == "3/4"}.first - matchChange.loser1_name = "Loser of #{match1.bout_number}" - matchChange.loser2_name = "Loser of #{match2.bout_number}" - end - - def fourPoolsToQuarterLoser(matches) - quarters = matches.select{|m| m.bracket_position == "Quarter"} - consoSemis = matches.select{|m| m.bracket_position == "Conso Semis"} - semis = matches.select{|m| m.bracket_position == "Semis"} - thirdFourth = matches.select{|m| m.bracket_position == "3/4"}.first - seventhEighth = matches.select{|m| m.bracket_position == "7/8"}.first - consoSemis.each do |match| - if match.bracket_position_number == 1 - match.loser1_name = "Loser of #{quarters.select{|m| m.bracket_position_number == 1}.first.bout_number}" - match.loser2_name = "Loser of #{quarters.select{|m| m.bracket_position_number == 2}.first.bout_number}" - elsif match.bracket_position_number == 2 - match.loser1_name = "Loser of #{quarters.select{|m| m.bracket_position_number == 3}.first.bout_number}" - match.loser2_name = "Loser of #{quarters.select{|m| m.bracket_position_number == 4}.first.bout_number}" - end - end - thirdFourth.loser1_name = "Loser of #{semis.select{|m| m.bracket_position_number == 1}.first.bout_number}" - thirdFourth.loser2_name = "Loser of #{semis.select{|m| m.bracket_position_number == 2}.first.bout_number}" - consoSemis = matches.select{|m| m.bracket_position == "Conso Semis"} - seventhEighth.loser1_name = "Loser of #{consoSemis.select{|m| m.bracket_position_number == 1}.first.bout_number}" - seventhEighth.loser2_name = "Loser of #{consoSemis.select{|m| m.bracket_position_number == 2}.first.bout_number}" - end - - def fourPoolsToSemiLoser(matches) - semis = matches.select{|m| m.bracket_position == "Semis"} - thirdFourth = matches.select{|m| m.bracket_position == "3/4"}.first - consoSemis = matches.select{|m| m.bracket_position == "Conso Semis"} - seventhEighth = matches.select{|m| m.bracket_position == "7/8"}.first - thirdFourth.loser1_name = "Loser of #{semis.select{|m| m.bracket_position_number == 1}.first.bout_number}" - thirdFourth.loser2_name = "Loser of #{semis.select{|m| m.bracket_position_number == 2}.first.bout_number}" - seventhEighth.loser1_name = "Loser of #{consoSemis.select{|m| m.bracket_position_number == 1}.first.bout_number}" - seventhEighth.loser2_name = "Loser of #{consoSemis.select{|m| m.bracket_position_number == 2}.first.bout_number}" - end -end diff --git a/app/models/tournament.rb b/app/models/tournament.rb index 9dba39d..b4b5c43 100644 --- a/app/models/tournament.rb +++ b/app/models/tournament.rb @@ -1,4 +1,7 @@ class Tournament < ActiveRecord::Base + + include GeneratesLoserNames + has_many :schools, dependent: :destroy has_many :weights, dependent: :destroy has_many :mats, dependent: :destroy diff --git a/app/models/tournamentmatchgen.rb b/app/models/tournamentmatchgen.rb index cbbe5cb..b706778 100644 --- a/app/models/tournamentmatchgen.rb +++ b/app/models/tournamentmatchgen.rb @@ -32,6 +32,6 @@ class Tournamentmatchgen def generateMatches @tournament.assignBouts - Losernamegen.new.assignLoserNames(@tournament) + @tournament.assignLoserNames end end