From 6ff2c8d21edcaa9af1928bf9816a44a98a897f6f Mon Sep 17 00:00:00 2001 From: Malaber <32635600+Malaber@users.noreply.github.com> Date: Fri, 30 Nov 2018 16:24:58 +0100 Subject: [PATCH] Redo Match status evaluation --- app/models/match.rb | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/app/models/match.rb b/app/models/match.rb index 0eb0c14..10ba8ea 100644 --- a/app/models/match.rb +++ b/app/models/match.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Match < ApplicationRecord - enum state: %i[single_team not_ready not_started in_progress team1_won team2_won undecided] + enum state: %i[single_team not_ready not_started in_progress finished undecided] belongs_to :stage, optional: true belongs_to :group, optional: true @@ -11,22 +11,24 @@ class Match < ApplicationRecord validate :stage_xor_group + def evaluate_match_result + if match_scores.first == match_scores.second + if group_match? + :undecided + else + :in_progress + end + else + :finished + end + end + private def stage_xor_group errors.add(:stage_xor_group, 'Stage and Group missing or both present') unless stage.present? ^ group.present? end - def evaluate_status - if score_team1 < score_team2 - :team2_won - elsif score_team2 < score_team1 - :team1_won - else - group_match? ? :undecided : :in_progress - end - end - def group_match? group.present? end