diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/game.rb | 1 | ||||
-rw-r--r-- | app/models/tournament.rb | 5 | ||||
-rw-r--r-- | app/models/user.rb | 4 |
3 files changed, 9 insertions, 1 deletions
diff --git a/app/models/game.rb b/app/models/game.rb index a181c26..ec865d8 100644 --- a/app/models/game.rb +++ b/app/models/game.rb @@ -1,2 +1,3 @@ class Game < ActiveRecord::Base + has_many :settings, class_name: "GameSetting" end diff --git a/app/models/tournament.rb b/app/models/tournament.rb index 22711b1..e408cfe 100644 --- a/app/models/tournament.rb +++ b/app/models/tournament.rb @@ -25,7 +25,7 @@ class Tournament < ActiveRecord::Base end end - def setup() + def setup num_teams = (self.players.count/self.min_players_per_team).floor num_matches = num_teams - 1 for i in 1..num_matches @@ -33,8 +33,11 @@ class Tournament < ActiveRecord::Base end match_num = 0 team_num = 0 + #for each grouping of min_players_per_team self.players.each_slice(min_players_per_team) do |players| + #create a new team in the current match self.matches[match_num].teams.push(Team.create(users: players)) + #if the match is full, move to the next match, otherwise move to the next team if (team_num != 0 and team_num % max_teams_per_match == 0) match_num += 1 team_num = 0 diff --git a/app/models/user.rb b/app/models/user.rb index d1698bd..64dd7ed 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -14,10 +14,14 @@ class User < ActiveRecord::Base end def can?(action) + return true case action when :create_tournament + return true when :edit_tournament + return true when :join_tournament + return true when :delete_tournament when :create_game |