igneus / calendarium-romanum

liturgical calendar library (Roman Catholic, post-Vatican II)
50 stars 21 forks source link

[WIP, RFC] Extensibility improvements #79

Open igneus opened 3 years ago

igneus commented 3 years ago

This PR addresses some of the most painful issues encountered when working on custom Temporale implementations (1, 2), partly covered already in issue #49.

Most importantly new class BaseTemporale is extracted as superclass of Temporale. It provides facilities for defining Temporale implementations customized in most aspects:

An important change (which I'm not yet 100% decided to leave in place) is moving the logic of season determination (see the new implementation of Temporale#season) from Temporale to the Season instances.

Issues still waiting to be addressed: to make customizable also

Comments are most welcome.