diff options
Diffstat (limited to 'app/models/tournament_stage.rb')
-rw-r--r-- | app/models/tournament_stage.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/app/models/tournament_stage.rb b/app/models/tournament_stage.rb index 205c8cc..caf5a8a 100644 --- a/app/models/tournament_stage.rb +++ b/app/models/tournament_stage.rb @@ -1,3 +1,45 @@ class TournamentStage < ActiveRecord::Base belongs_to :tournament + has_many :matches + + # A 1-indexed hash of matches + def matches_ordered + h = {} + i = 1 + self.matches.order(:id).each do |m| + h[i] = m + i += 1 + end + return h + end + + def create_matches + scheduling.create_matches + end + + def to_svg(highlight_user) + return scheduling.graph(highlight_user) + end + + def seed + return seeding.seed.pair(matches, players) + end + + # Accessors to the configured methods + + def scoring + @scoring ||= tournament.scoring + end + + def sampling + @sampling ||= tournament.sampling + end + + def scheduling + @scheduling ||= "Scheduling::#{self.scheduling_method.camelcase}".constantize.new(self) + end + + def seeding + @seeding ||= "Seeding::#{self.seeding_method.camelcase}".constantize + end end |