igneus / calendarium-romanum

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

Support for "deep customizations" / General "calendar building blocks" #49

Open igneus opened 4 years ago

igneus commented 4 years ago

The gem has a narrow scope - it implements exactly one liturgical calendar system and there are no plans to change this. But it would be nice to extract general "calendar building blocks" which would make it possible to implement other calendar systems (similar enough to the Roman one), like that of the Anglican Ordinariates (see #44), of the (post-Vatican II) Ambrosian rite or of some Old Catholic churches, without excessive code copy-pasting.

Ideally it would be possible - while reusing as much of the functionality shared with the Roman calendar system as possible - to customize (any or all of):

Even in the realm of the (post-Vatican II) Roman rite some "deeper customizations" may take place, for which calendarium-romanum currently lacks support:

Are you aware of any further calendar customizations which would be useful, but the gem currently doesn't support them? Leave a comment!

igneus commented 3 years ago

As an example of a non-Roman (but still sufficiently similar to the Roman one) liturgical calendar built by customizing calendarium-romanum I started work on an implementation of the Czech Old Catholic calendar https://github.com/calendarium-romanum/czech_old_catholic_calendar Let's see how it will work.

igneus commented 2 years ago

One more use case: in 345ac2a I suggested (as a workaround for one of the scenarios dealt with in #80, for which we currently don't have a cleaner solution) using a custom Temporale with changed date of Sacred Heart. Which sounds easy and should be easy to do, but in fact there is no convenient way to build such a thing, because of the way how Temporale, Temporale::Dates and Temporale::CelebrationFactory are coupled.

igneus commented 1 year ago

Given the papal efforts to establish a widely shared common date of Easter, there should be a reasonably convenient way to build a calendar which differs from the standard Roman calendar only by the Easter algorithm.