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 total_rounds_options @total_rounds_options ||= [3, 4, 5, 6, 7] 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