mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-03-24 17:04:43 +00:00
32 lines
1.3 KiB
Ruby
32 lines
1.3 KiB
Ruby
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 |