From 3bda15bfe7786ae97fac1cbf779b713cf4238846 Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Mon, 27 Jul 2026 13:58:19 +0200 Subject: feat(calendar): EF (1962) temporal cycle temporalEF + EF seasons 8 EF seasons by date boundary (Septuagesima, Passiontide, Time after Epiphany/ Pentecost + shared); major feasts of the Lord; Christ the King = last Sun of October. ParseRank accepts EF ranks. --- internal/calendar/types.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'internal/calendar/types.go') diff --git a/internal/calendar/types.go b/internal/calendar/types.go index 0ccef8b..298e49d 100644 --- a/internal/calendar/types.go +++ b/internal/calendar/types.go @@ -137,16 +137,13 @@ type LiturgicalDay struct { WeekdayCycle string // "I" | "II" } +// ParseRank validates a rank token (OF or EF vocabulary), falling back to +// RankFerial for anything unknown. func ParseRank(s string) Rank { - switch s { - case "solemnity": - return RankSolemnity - case "feast": - return RankFeast - case "memorial": - return RankMemorial - case "optional": - return RankOptional + switch Rank(s) { + case RankSolemnity, RankFeast, RankMemorial, RankOptional, RankFerial, + RankClass1, RankClass2, RankClass3, RankClass4, RankCommemoration: + return Rank(s) default: return RankFerial } -- cgit v1.3