You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
class MashTournament < ActiveRecord::Base
|
|
|
|
belongs_to :requester
|
|
|
|
has_many :mashes
|
|
|
|
has_many :rounds, :class_name => 'MashTournamentRound'
|
|
|
|
|
|
|
|
def next_unplayed_mash
|
|
|
|
mash = self.mashes.unplayed.first
|
|
|
|
if not mash
|
|
|
|
filled = self.builder.fill_in_next_round
|
|
|
|
if filled
|
|
|
|
return self.mashes.unplayed.first
|
|
|
|
else
|
|
|
|
return nil
|
|
|
|
end
|
|
|
|
else
|
|
|
|
return mash
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def done?
|
|
|
|
self.rounds.collect(&:done?).uniq == [true]
|
|
|
|
end
|
|
|
|
|
|
|
|
def round(number = 0)
|
|
|
|
MashTournamentRound.find_by_mash_tournament_id(self.id,
|
|
|
|
:conditions => {:number => number}
|
|
|
|
)
|
|
|
|
end
|
|
|
|
|
|
|
|
def builder
|
|
|
|
MashTournamentBuilder.new(
|
|
|
|
self, MashTournament, MashTournamentRound, Map, Mash
|
|
|
|
)
|
|
|
|
end
|
|
|
|
end
|