Files
MatchLiveTv/backend/app/helpers/public/live_helper.rb
Emiliano Frascaro 471291b2c4 Sito marketing, SEO, legal, live programmata e branding Match Live Tv.
Logo e favicon nel header, partite programmate su web e mobile, reset password,
pagine FAQ/sitemap, privacy/termini GDPR e icona Android «Match Live Tv».

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 23:17:15 +02:00

54 lines
1.5 KiB
Ruby

module Public
module LiveHelper
def live_score_sets_label(score_state)
return nil unless score_state
"Set #{score_state.current_set} · Set vinti #{score_state.home_sets}-#{score_state.away_sets}"
end
def live_score_partials_label(score_state)
return nil unless score_state
partials = Array(score_state.set_partials)
return nil if partials.empty?
partials.map { |p| format_set_partial_entry(p) }.join(" · ")
end
def live_scheduled_label(datetime)
return nil unless datetime
datetime.in_time_zone.strftime("%d/%m/%Y alle %H:%M")
end
def live_scheduled_relative(datetime)
return nil unless datetime
if datetime.to_date == Time.zone.today
"Oggi alle #{datetime.strftime('%H:%M')}"
elsif datetime.to_date == Time.zone.tomorrow
"Domani alle #{datetime.strftime('%H:%M')}"
else
live_scheduled_label(datetime)
end
end
def live_score_points_label(match, score_state)
return "" unless score_state
"#{match.team.name} #{score_state.home_points} - #{score_state.away_points} #{match.opponent_name}"
end
private
def format_set_partial_entry(partial)
data = partial.respond_to?(:with_indifferent_access) ? partial.with_indifferent_access : partial
set_no = data[:set] || data["set"]
home = data[:home] || data["home"]
away = data[:away] || data["away"]
label = set_no.present? ? "Set #{set_no}" : "Set"
"#{label} #{home}-#{away}"
end
end
end