mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-04-07 14:57:48 +00:00
Converted class tournamentmatchgen into the GeneratesLoserNames module.
Here is another way to handle functionality that you may not want bloating your ActiveRecord class, yet belongs _on_ the model. In this case, I feel there is an abstraction we are still sorely missing.
This commit is contained in:
57
app/models/generates_loser_names.rb
Normal file
57
app/models/generates_loser_names.rb
Normal file
@@ -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
|
||||||
@@ -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
|
|
||||||
@@ -1,4 +1,7 @@
|
|||||||
class Tournament < ActiveRecord::Base
|
class Tournament < ActiveRecord::Base
|
||||||
|
|
||||||
|
include GeneratesLoserNames
|
||||||
|
|
||||||
has_many :schools, dependent: :destroy
|
has_many :schools, dependent: :destroy
|
||||||
has_many :weights, dependent: :destroy
|
has_many :weights, dependent: :destroy
|
||||||
has_many :mats, dependent: :destroy
|
has_many :mats, dependent: :destroy
|
||||||
|
|||||||
@@ -32,6 +32,6 @@ class Tournamentmatchgen
|
|||||||
|
|
||||||
def generateMatches
|
def generateMatches
|
||||||
@tournament.assignBouts
|
@tournament.assignBouts
|
||||||
Losernamegen.new.assignLoserNames(@tournament)
|
@tournament.assignLoserNames
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user