class AdvanceWrestler def initialize(wrestler, last_match) @wrestler = wrestler @tournament = @wrestler.tournament @last_match = last_match end def advance # Use perform_later which will execute based on centralized adapter config # This will be converted to inline execution in test environment by ActiveJob AdvanceWrestlerJob.perform_later(@wrestler, @last_match) end def advance_raw @last_match.reload @wrestler.reload if @last_match && @last_match.finished? pool_to_bracket_advancement if @tournament.tournament_type == "Pool to bracket" ModifiedDoubleEliminationAdvance.new(@wrestler, @last_match).bracket_advancement if @tournament.tournament_type.include? "Modified 16 Man Double Elimination" DoubleEliminationAdvance.new(@wrestler, @last_match).bracket_advancement if @tournament.tournament_type.include? "Regular Double Elimination" end @wrestler.school.calculate_score end def pool_to_bracket_advancement if @wrestler.weight.all_pool_matches_finished(@wrestler.pool) and (@wrestler.finished_bracket_matches.size < 1) PoolOrder.new(@wrestler.weight.wrestlers_in_pool(@wrestler.pool)).getPoolOrder end PoolAdvance.new(@wrestler).advanceWrestler end end