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>
27 lines
641 B
Ruby
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
|