Files
MatchLiveTv/backend/app/services/scoring/engine.rb
Emiliano Frascaro e727069d43 Introduce architettura multi-sport con catalogo, engine scoring e overlay.
Catalogo sport in YAML, board implicito, engine per volley/basket/timed/racket/timer/generic, regia e app Android allineate.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 20:11:21 +02:00

27 lines
641 B
Ruby

module Scoring
class Engine
ENGINES = {
"volley" => Engines::VolleyEngine,
"racket" => Engines::RacketEngine,
"generic" => Engines::GenericEngine,
"basket" => Engines::BasketEngine,
"timed" => Engines::TimedEngine,
"timer" => Engines::TimerEngine
}.freeze
def self.for(match)
board = match.effective_board_type
klass = ENGINES.fetch(board) { Engines::GenericEngine }
klass.new(match: match)
end
def self.for_session(session)
for(session.match)
end
def self.ensure_score_for(session)
for(session.match).ensure_score(session)
end
end
end