box-o-sand/map-mash/app/models/mash_tournament.rb
2012-04-03 23:02:32 -04:00

40 lines
816 B
Ruby

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