13 lines
524 B
Ruby
13 lines
524 B
Ruby
module ContestantsConcern
|
|
extend ActiveSupport::Concern
|
|
|
|
def ranked_contestants(contest)
|
|
contest.contestants.sort_by { |contestant| [
|
|
-contestant.completions.where(remaining_pieces: nil).size,
|
|
(contestant.completions.where(remaining_pieces: nil).size == @contest.puzzles.length ? 1 : 0) * contestant.time_seconds,
|
|
contestant.completions.size > 0 && contestant.completions[-1].remaining_pieces ? contestant.completions[-1].remaining_pieces : 1000000,
|
|
contestant.time_seconds
|
|
] }
|
|
end
|
|
end
|