1
0
mirror of https://github.com/jcwimer/wrestlingApp synced 2026-03-25 01:14:43 +00:00

Moved match generation to a class and added tournament_type to tournaments.

This commit is contained in:
2015-04-27 13:54:57 -04:00
parent 61d1240f0b
commit 37470d9602
12 changed files with 69 additions and 42 deletions

View File

@@ -28,6 +28,7 @@ class Poolbracket
@round = round + 1 @round = round + 1
matches = createMatchup(matches,weight,@round,"Winner Pool 1","Winner Pool 2","1/2",1) matches = createMatchup(matches,weight,@round,"Winner Pool 1","Winner Pool 2","1/2",1)
matches = createMatchup(matches,weight,@round,"Runner Up Pool 1","Runner Up Pool 2","3/4",1) matches = createMatchup(matches,weight,@round,"Runner Up Pool 1","Runner Up Pool 2","3/4",1)
return matches
end end
def fourPoolsToQuarter(matches,weight,round) def fourPoolsToQuarter(matches,weight,round)

View File

@@ -5,48 +5,31 @@ class Tournament < ActiveRecord::Base
has_many :wrestlers, through: :weights has_many :wrestlers, through: :weights
def tournament_types
["Pool to bracket"]
end
def matches def matches
@matches = Match.where(tournament_id: self.id) @matches = Match.where(tournament_id: self.id)
end end
def upcomingMatches def upcomingMatches
if matches.nil? if matches.nil?
return matches return matches
else else
@matches = generateMatchups generateMatchups
saveMatchups(@matches) return matches
return @matches
end end
end end
def generateMatchups def generateMatchups
destroyAllMatches @matches = Tournamentmatchgen.new.genMatches(self)
@matches = []
self.weights.map.sort_by{|x|[x.max]}.each do |weight|
@matches = weight.generateMatchups(@matches)
end
@matches = assignBouts(@matches)
@matches = Losernamegen.new.assignLoserNames(@matches,self.weights)
return @matches
end
def assignBouts(matches)
@bouts = Boutgen.new
@matches = @bouts.assignBouts(matches,self.weights)
return @matches
end
def saveMatchups(matches)
matches.each do |m|
m.tournament_id = self.id
m.save
end
end end
def destroyAllMatches def destroyAllMatches
matches.each do |m| matches.destroy_all
m.destroy
end
end end
end end

View File

@@ -0,0 +1,33 @@
class Tournamentmatchgen
def genMatches(tournament)
if tournament.tournament_type == "Pool to bracket"
@matches = poolToBracket(tournament)
end
return @matches
end
def poolToBracket(tournament)
tournament.destroyAllMatches
@matches = []
tournament.weights.sort_by{|x|[x.max]}.each do |w|
@wrestlers = w.wrestlers
@matches = Pool.new.generatePools(w.pools,@wrestlers,w,tournament.id,@matches)
@weight_matches = @matches.select{|m|m.weight_id == w.id}
@last_match = @weight_matches.sort_by{|m| m.round}.last
@highest_round = @last_match.round
@matches = Poolbracket.new.generateBracketMatches(@matches,w,@highest_round)
end
@matches = Boutgen.new.assignBouts(@matches,tournament.weights)
@matches = Losernamegen.new.assignLoserNames(@matches,tournament.weights)
saveMatches(tournament,@matches)
return @matches
end
def saveMatches(tournament,matches)
matches.each do |m|
m.tournament_id = tournament.id
m.save
end
end
end

View File

@@ -101,18 +101,6 @@ class Weight < ActiveRecord::Base
return "fourPoolsToSemi" return "fourPoolsToSemi"
end end
end end
def generateMatchups(matches)
@wrestlers = self.wrestlers
@pool = Pool.new
@matches = @pool.generatePools(self.pools,@wrestlers,self,self.tournament_id,matches)
@weight_matches = @matches.select{|m|m.weight_id == self.id}
@last_match = @weight_matches.sort_by{|m| m.round}.last
@highest_round = @last_match.round
@bracket = Poolbracket.new
@matches = @bracket.generateBracketMatches(@matches,self,@highest_round)
return @matches
end
def poolRounds(matches) def poolRounds(matches)
@matchups = matches.select{|m| m.weight_id == self.id} @matchups = matches.select{|m| m.weight_id == self.id}

View File

@@ -27,6 +27,12 @@
<%= f.label :director_email %><br> <%= f.label :director_email %><br>
<%= f.text_field :director_email %> <%= f.text_field :director_email %>
</div> </div>
<div>
<%= f.label :tournament_type %><br>
<%= f.select :tournament_type, @tournament.tournament_types %>
</div>
<br>
<br>
<div class="actions"> <div class="actions">
<%= f.submit %> <%= f.submit %>
</div> </div>

View File

@@ -0,0 +1,5 @@
class AddTypeToTournament < ActiveRecord::Migration
def change
add_column :tournaments, :type, :text
end
end

View File

@@ -0,0 +1,4 @@
class RenameTypeToTournamentType < ActiveRecord::Migration
def change
end
end

View File

@@ -0,0 +1,5 @@
class RenameTypeToTournamentTypeForReal < ActiveRecord::Migration
def change
rename_column :tournaments, :type, :tournament_type
end
end

View File

@@ -11,7 +11,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20150426195714) do ActiveRecord::Schema.define(version: 20150427163818) do
create_table "matches", force: :cascade do |t| create_table "matches", force: :cascade do |t|
t.integer "w1" t.integer "w1"
@@ -55,6 +55,7 @@ ActiveRecord::Schema.define(version: 20150426195714) do
t.string "director_email" t.string "director_email"
t.datetime "created_at" t.datetime "created_at"
t.datetime "updated_at" t.datetime "updated_at"
t.text "tournament_type"
end end
create_table "users", force: :cascade do |t| create_table "users", force: :cascade do |t|

View File

@@ -7,7 +7,7 @@
# Mayor.create(name: 'Emanuel', city: cities.first) # Mayor.create(name: 'Emanuel', city: cities.first)
if Rails.env.development? if Rails.env.development?
User.create(email: 'test@test.com', password: 'password', password_confirmation: 'password') User.create(email: 'test@test.com', password: 'password', password_confirmation: 'password')
Tournament.create(id: 200, name: 'test', address: 'some place', director: 'some guy', director_email: 'hismail@email.com') Tournament.create(id: 200, name: 'test', address: 'some place', director: 'some guy', director_email: 'hismail@email.com', tournament_type: 'Pool to bracket')
School.create(id: 200, name: 'Central Crossing', tournament_id: 200) School.create(id: 200, name: 'Central Crossing', tournament_id: 200)
School.create(id: 201, name: 'Turd Town', tournament_id: 200) School.create(id: 201, name: 'Turd Town', tournament_id: 200)
School.create(id: 202, name: 'Shit Show', tournament_id: 200) School.create(id: 202, name: 'Shit Show', tournament_id: 200)

View File

@@ -6,7 +6,7 @@ one:
address: Some Place address: Some Place
director: Jacob Cody Wimer director: Jacob Cody Wimer
director_email: jacob.wimer@gmail.com director_email: jacob.wimer@gmail.com
tournament_type: Pool to bracket

View File

@@ -12,6 +12,7 @@ class PoolbracketMatchupsTest < ActionDispatch::IntegrationTest
@id = 6000 + numberOfWrestlers @id = 6000 + numberOfWrestlers
@tournament3 = Tournament.new @tournament3 = Tournament.new
@tournament3.id = @id @tournament3.id = @id
@tournament3.tournament_type = "Pool to bracket"
@tournament3.name = "Something" @tournament3.name = "Something"
@tournament3.address = "Some Place" @tournament3.address = "Some Place"
@tournament3.director = "Some Guy" @tournament3.director = "Some Guy"