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:
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
33
app/models/tournamentMatchGen.rb
Normal file
33
app/models/tournamentMatchGen.rb
Normal 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
|
||||||
|
|
||||||
@@ -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}
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
5
db/migrate/20150427163325_add_type_to_tournament.rb
Normal file
5
db/migrate/20150427163325_add_type_to_tournament.rb
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
class AddTypeToTournament < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :tournaments, :type, :text
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
class RenameTypeToTournamentType < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
class RenameTypeToTournamentTypeForReal < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
rename_column :tournaments, :type, :tournament_type
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -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|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
2
test/fixtures/tournaments.yml
vendored
2
test/fixtures/tournaments.yml
vendored
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user