calendarium-romanum 0.5.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +5 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +50 -0
  5. data/.travis.yml +23 -0
  6. data/.yardopts +3 -0
  7. data/Appraisals +67 -0
  8. data/CHANGELOG.md +488 -0
  9. data/Gemfile +26 -0
  10. data/Gemfile.lock +95 -0
  11. data/README.md +601 -0
  12. data/Rakefile +27 -0
  13. data/bin/calendariumrom +3 -0
  14. data/calendarium-romanum.gemspec +31 -0
  15. data/config/locales/cs.yml +4 -0
  16. data/config/locales/en.yml +20 -14
  17. data/config/locales/es.yml +94 -0
  18. data/config/locales/fr.yml +6 -0
  19. data/config/locales/it.yml +6 -0
  20. data/config/locales/la.yml +6 -0
  21. data/config/locales/pt.yml +94 -0
  22. data/data/README.md +70 -24
  23. data/data/czech-brno-cs.txt +4 -6
  24. data/data/czech-budejovice-cs.txt +4 -6
  25. data/data/czech-cechy-cs.txt +4 -5
  26. data/data/czech-cs.txt +239 -235
  27. data/data/czech-hradec-cs.txt +3 -5
  28. data/data/czech-litomerice-cs.txt +5 -7
  29. data/data/czech-morava-cs.txt +4 -5
  30. data/data/czech-olomouc-cs.txt +2 -4
  31. data/data/czech-ostrava-cs.txt +3 -5
  32. data/data/czech-plzen-cs.txt +3 -5
  33. data/data/czech-praha-cs.txt +3 -4
  34. data/data/easter_dates.txt +67 -0
  35. data/data/universal-1969-la.txt +234 -0
  36. data/data/universal-en.txt +217 -211
  37. data/data/universal-es.txt +246 -0
  38. data/data/universal-fr.txt +217 -210
  39. data/data/universal-it.txt +217 -211
  40. data/data/universal-la.txt +217 -212
  41. data/data/universal-pt.txt +248 -0
  42. data/doc/data_readme.md +2 -0
  43. data/doc/images/class_diagram.png +0 -0
  44. data/doc/images/class_diagram.puml +44 -0
  45. data/doc/yard_readme.rdoc +76 -0
  46. data/lib/calendarium-romanum.rb +16 -2
  47. data/lib/calendarium-romanum/abstract_date.rb +15 -0
  48. data/lib/calendarium-romanum/calendar.rb +150 -33
  49. data/lib/calendarium-romanum/cli.rb +80 -100
  50. data/lib/calendarium-romanum/cli/comparator.rb +83 -0
  51. data/lib/calendarium-romanum/cli/date_parser.rb +30 -0
  52. data/lib/calendarium-romanum/cli/dumper.rb +68 -0
  53. data/lib/calendarium-romanum/cli/helper.rb +23 -0
  54. data/lib/calendarium-romanum/cli/querier.rb +73 -0
  55. data/lib/calendarium-romanum/cr.rb +16 -0
  56. data/lib/calendarium-romanum/data.rb +40 -8
  57. data/lib/calendarium-romanum/day.rb +187 -32
  58. data/lib/calendarium-romanum/enum.rb +41 -24
  59. data/lib/calendarium-romanum/enums.rb +127 -43
  60. data/lib/calendarium-romanum/errors.rb +1 -1
  61. data/lib/calendarium-romanum/ordinalizer.rb +10 -1
  62. data/lib/calendarium-romanum/perpetual_calendar.rb +58 -7
  63. data/lib/calendarium-romanum/rank.rb +39 -8
  64. data/lib/calendarium-romanum/rank_predicates.rb +43 -0
  65. data/lib/calendarium-romanum/sanctorale.rb +213 -23
  66. data/lib/calendarium-romanum/sanctorale_factory.rb +74 -3
  67. data/lib/calendarium-romanum/sanctorale_loader.rb +180 -0
  68. data/lib/calendarium-romanum/sanctorale_writer.rb +124 -0
  69. data/lib/calendarium-romanum/temporale.rb +222 -42
  70. data/lib/calendarium-romanum/temporale/celebration_factory.rb +68 -9
  71. data/lib/calendarium-romanum/temporale/date_helper.rb +85 -0
  72. data/lib/calendarium-romanum/temporale/dates.rb +52 -59
  73. data/lib/calendarium-romanum/temporale/easter_table.rb +27 -0
  74. data/lib/calendarium-romanum/temporale/extensions.rb +15 -0
  75. data/lib/calendarium-romanum/temporale/extensions/christ_eternal_priest.rb +16 -3
  76. data/lib/calendarium-romanum/temporale/extensions/dedication_before_all_saints.rb +73 -0
  77. data/lib/calendarium-romanum/transfers.rb +84 -24
  78. data/lib/calendarium-romanum/util.rb +21 -23
  79. data/lib/calendarium-romanum/version.rb +3 -2
  80. data/liturgical_law/1969_normae_universales.md +568 -0
  81. data/liturgical_law/1977_decretum_de_celebratione_baptismatis_domini.md +58 -0
  82. data/liturgical_law/1990_decretum_de_variatione_inducenda.md +67 -0
  83. data/liturgical_law/1998_notificatio_de_occurrentia.md +57 -0
  84. data/liturgical_law/2002_normae_universales.md +946 -0
  85. data/liturgical_law/2006_notification.md +37 -0
  86. data/liturgical_law/2012_declarationes.md +38 -0
  87. data/liturgical_law/2020_dubia_de_calendario_2022.md +100 -0
  88. data/liturgical_law/README.md +74 -0
  89. metadata +61 -38
  90. data/lib/calendarium-romanum/sanctoraleloader.rb +0 -122
  91. data/spec/abstract_date_spec.rb +0 -62
  92. data/spec/calendar_spec.rb +0 -559
  93. data/spec/celebration_factory_spec.rb +0 -16
  94. data/spec/celebration_spec.rb +0 -43
  95. data/spec/cli_spec.rb +0 -155
  96. data/spec/colour_spec.rb +0 -17
  97. data/spec/data_spec.rb +0 -23
  98. data/spec/date_parser_spec.rb +0 -68
  99. data/spec/date_spec.rb +0 -61
  100. data/spec/dates_spec.rb +0 -45
  101. data/spec/day_spec.rb +0 -108
  102. data/spec/enum_spec.rb +0 -51
  103. data/spec/i18n_spec.rb +0 -58
  104. data/spec/ordinalizer_spec.rb +0 -36
  105. data/spec/perpetual_calendar_spec.rb +0 -91
  106. data/spec/rank_spec.rb +0 -57
  107. data/spec/readme_spec.rb +0 -56
  108. data/spec/sanctorale_factory_spec.rb +0 -42
  109. data/spec/sanctorale_spec.rb +0 -191
  110. data/spec/sanctoraleloader_spec.rb +0 -176
  111. data/spec/season_spec.rb +0 -17
  112. data/spec/spec_helper.rb +0 -46
  113. data/spec/temporale_spec.rb +0 -572
@@ -0,0 +1,58 @@
1
+ ---
2
+ title: De celebratione Baptismatis Domini
3
+ promulgated: 1998-12-081977-10-07 CSCD Prot. CD 1400/77
4
+ source: Notitiae 136/1977, p. 477; http://www.cultodivino.va/content/dam/cultodivino/notitiae/1977/136.pdf#page=11
5
+ ---
6
+
7
+ # DECRETUM DE CELEBRATIONE BAPTISMATIS DOMINI
8
+
9
+ Celebratio Baptismatis Domini in honore posita est per instaurationem Calendarii Romani generalis
10
+ et dominicae post Epiphaniam occurrenti assignata, quo facilius ab universa communitate christiana
11
+ hac die congregata ageretur. Magni enim momenti sunt aspectus doctrinales, pastorales et oecumenici
12
+ huius festi in historia salutis et in anno liturgico.
13
+
14
+ Attamen, in locis ubi sollemnitas Epiphaniae non est de praecepto servanda, et ideo dominicae intra
15
+ diem 2 et 8 ianuarii occurrenti assignatur, haud raro accidit ut festum Baptismatis Domini cum ipsa
16
+ sollemnitate Epiphaniae occurrat et proinde celebrari non possit.
17
+
18
+ Attentis insuper petitionibus pluribus de hac re factis, Sacra haec Congregatio pro Sacramentis
19
+ et Cultu Divino, approbante Summo Pontifice PAULO VI, statuit:
20
+
21
+ In locis ubi sollemnitas Epiphaniae in dominicam est transferenda et haec die 7 vel 8 ianuarii
22
+ incidit, ita ut festum Baptismatis Domini, eadem die occurrens, esset omittendum, idem festum
23
+ Baptismatis Domini ad feriam II immediate sequentem transferatur.
24
+
25
+ Contrariis quibuslibet minime obstantibus.
26
+
27
+ Ex aedibus Sacrae Congregationis pro Sacramentis et Cultu Divino, die 7 Octobris 1977.
28
+
29
+ Antonius Innocenti
30
+ *Archiep. tit. Aeclanen. a Secretis*
31
+
32
+ Iacobus R. Card. Knox
33
+ *Praefectus*
34
+
35
+ ```ruby
36
+ is_case_mentionned = proc do |y|
37
+ [7, 8].include? CR::Temporale::Dates.epiphany(y, sunday: true).day
38
+ end
39
+
40
+ years_with(&is_case_mentionned)
41
+ .each do |y|
42
+ epiphany = CR::Temporale::Dates.epiphany(y, sunday: true)
43
+ baptism = CR::Temporale::Dates.baptism_of_lord(y, epiphany_on_sunday: true)
44
+
45
+ expect(baptism).to eq(epiphany + 1)
46
+ expect(baptism).to be_monday
47
+ end
48
+
49
+ years_with do |y|
50
+ !is_case_mentionned.(y)
51
+ end
52
+ .each do |y|
53
+ with_translation = CR::Temporale::Dates.baptism_of_lord(y, epiphany_on_sunday: true)
54
+ without_translation = CR::Temporale::Dates.baptism_of_lord(y)
55
+
56
+ expect(with_translation).to eq without_translation
57
+ end
58
+ ```
@@ -0,0 +1,67 @@
1
+ ---
2
+ title: De variatione inducenda in n. 5 "Normarum universalium de anno liturgico et de calendaroio"
3
+ promulgated: 1990-04-22 Prot. CD 500/89
4
+ source: Notitiae 284-285/1990, p. 160; http://cultodivino.va/content/dam/cultodivino/notitiae/1990/284-285.pdf#page=18
5
+ ---
6
+
7
+ # DE VARIATIONE INDUCENDA IN N. 5 "NORMARUM UNIVERSALIUM DE ANNO LITURGICO ET DE CALENDAROIO"
8
+
9
+ Prot. CD 500/89
10
+
11
+ DECRETUM
12
+
13
+ Dominica, quippe quae sit fundamentum et nucleus totius anni liturgici,
14
+ fidelium pietati proponi et inculcari debet ut primordialis dies festus
15
+ (cf. Sacrosanctum Concilium, n. 106).
16
+
17
+ Norma haec, in Constitutione de sacra Liturgia statuta, principatum restituit
18
+ celebrationi diei Domini super omnes ceteras celebrationes, "nisi revera
19
+ sint maximi momenti" (Ibidem).
20
+
21
+ Hoc valet modo peculiari pro dominicis Adventus, Quadragesimae et Paschae,
22
+ quae praecedentiam habent super omnes celebrationes, etiam gradu sollemnitatis
23
+ peragendas.
24
+
25
+ Quando vero sollemnitates occurrunt in his dominicis, iuxta n. 5 "Normarum
26
+ universalium de anno liturgico et de calendario" sabbato anticipari debent.
27
+
28
+ Experientia autem pastoralis ostendit quod solutio huiusmodi nonnullas
29
+ praebet difficultates, praesertim quoad occurrentiam celebrationis Missae
30
+ vespertinae et II Vesperarum Liturgiae Horarum cuiusdam sollemnitatis cum
31
+ celebratione Missae vespertinae et I Vesperarum diei dominicae.
32
+
33
+ Ad celebrationem, quantum fieri potest, integre servandam sive diei dominicae
34
+ sive sollemnitatum, quae fidelium pietati omnimode sunt acceptae, Congregatio
35
+ de Cultu Divino et Disciplina Sacramentorum praesenti Decreto variationem
36
+ inducit in n. 5 "Normarum universalium de anno liturgico et de calendario",
37
+ prout sequitur:
38
+
39
+ "Propter suum peculiare momentum, dominica suam cedit celebrationem solummodo
40
+ sollemnitatibus necnon festis Domini; dominicae vero Adventus, Quadragesimae
41
+ et Paschae super omnia festa Domini et super omnes sollemnitates praecedentiam
42
+ habent. Sollemnitates autem in his dominicis occurrentes
43
+ *ad feriam secundam sequentem* transferuntur, nisi agatur de occurrentia
44
+ in Dominica in Palmis aut in Dominica Resurrectionis Domini".
45
+
46
+ Posthac norma ita instaurata ab omnibus erit servanda.
47
+
48
+ Ad Calendaria particularia nationum vel dioecesium vel familiarum religiosarum
49
+ pro anno Domini 1991 iam exarata, quod attinet, conceditur ut servari possit
50
+ solutio in iisdem Calendariis iam praevisa, ad normam usque in praesens tempus
51
+ vigentem.
52
+
53
+ Ea quae hoc Decreto, ab hac Congregatione apparato, continentur, Summus
54
+ Pontifex IOANNES PAULUS II approbavit et confirmavit idemque Decretum
55
+ publici iuris fieri iussit.
56
+
57
+ Contrariis quibuslibet minime obstantibus.
58
+
59
+ Ex aedibus Congregationis de Cultu Divino et Disciplina Sacramentorum,
60
+ die 22 aprilis 1990, Dominica II Paschae "in albis".
61
+
62
+ Eduardus Card. Martínez
63
+ *Praefectus*
64
+
65
+ Ludovicus Kada
66
+ *Archiep. tit. Thibicen.
67
+ a Secretis*
@@ -0,0 +1,57 @@
1
+ ---
2
+ title: De occurrentia memoriae obligatoriae Immaculati Cordis Beatae Mariae Virginis una cum altera memoria eiusdem gradus
3
+ promulgated: 1998-12-08 CCDDS Prot. n. 2671/98/L
4
+ source:
5
+ - http://www.vatican.va/roman_curia/congregations/ccdds/documents/rc_con_ccdds_doc_20000630_memoria-immaculati-cordis-mariae-virginis_lt.html
6
+ - Notitiae 392-393/1999, p. 157; http://www.cultodivino.va/content/dam/cultodivino/notitiae/1999/392-393.pdf#page=63
7
+ ---
8
+
9
+ # NOTIFICATIO : DE OCCURRENTIA MEMORIAE OBLIGATORIAE IMMACULATI CORDIS BEATAE MARIAE VIRGINIS UNA CUM ALTERA MEMORIA EIUSDEM GRADUS
10
+
11
+ Per Decretum die 1 ianuarii 1996 datum (Prot. 2376/95/L: cf. Notitiae 32 [1996] 654-656)
12
+ Congregatio de Cultu Divino et Disciplina Sacramentorum statuit celebrationem Immaculati Cordis
13
+ beatae Mariae Virginis in Calendario Romano generali, die iam statuto, inscribendam esse gradu
14
+ memoriae obligatoriae, loco memoriae ad libitum.
15
+
16
+ In casu quo praedicta memoria, cuius dies celebrationis mobilis est ac dependens a die celebrationis
17
+ Paschatis, eodem die occurrat una cum altera memoria obligatoria, illo anno hae duae memoriae
18
+ tamquam ad libitum retineri debent, iuxta indicationes quae in Instructione Calendaria particularia
19
+ diei 24 iunii 1970 relate ad calendaria particularia (n. 23c) inveniuntur.
20
+
21
+ Talis occurrentia accidentalis non invenitur ante annum 2003.
22
+
23
+ Ex aedibus Congregationis de Cultu Divino, die 8 mensis decembris 1998, in Sollemnitate Immaculatae Conceptionis beatae Mariae Virginis.
24
+
25
+ Georgius A. Card. MEDINA ESTÉVEZ
26
+ *Praefectus*
27
+
28
+ Gerardus M. AGNELO
29
+ *Archiepiscopus a Secretis*
30
+
31
+ ```ruby
32
+ sanctorale = CR::Data::GENERAL_ROMAN_LATIN.load
33
+ calendar = CR::PerpetualCalendar.new sanctorale: sanctorale
34
+
35
+ has_occurrence = proc do |y|
36
+ celebrations = sanctorale[CR::Temporale::Dates.immaculate_heart(y)]
37
+
38
+ (not celebrations.empty?) &&
39
+ celebrations[0].obligatory_memorial?
40
+ end
41
+
42
+ # "Talis occurrentia accidentalis non invenitur ante annum 2003."
43
+ # (civil year 2003 is meant, i.e. liturgical year 2002/3, denoted simply as 2002 by the library)
44
+ expect((1996 .. 2001).select(&has_occurrence))
45
+ .to be_empty
46
+
47
+ # standard rank is obligatory memorial
48
+ expect(CR::Temporale::CelebrationFactory.immaculate_heart.rank).to be CR::Ranks::MEMORIAL_GENERAL
49
+
50
+ years_with(from: 2002, &has_occurrence).each do |y|
51
+ day = calendar[CR::Temporale::Dates.immaculate_heart(y)]
52
+ expect(day.celebrations.size).to be >= 3 # ferial, Immaculate Heart, another optional memorial
53
+ immaculate_heart = day.celebrations.find {|c| c.symbol == :immaculate_heart }
54
+
55
+ expect(immaculate_heart.rank).to be CR::Ranks::MEMORIAL_OPTIONAL
56
+ end
57
+ ```
@@ -0,0 +1,946 @@
1
+ ---
2
+ title: Normae universales de anno liturgico et de calendario
3
+ # it is to be checked when the variants differing from the text published in the 1969 "Calendarium Romanum" book were introduced
4
+ promulgated: ?
5
+ effective_since: ?
6
+ source: Missale Romanum editio typica tertia 2002 https://media.musicasacra.com/books/latin_missal2002.pdf
7
+ ---
8
+
9
+ # NORMAE UNIVERSALES DE ANNO LITURGICO ET DE CALENDARIO
10
+
11
+ ## Caput I DE ANNO LITURGICO
12
+
13
+ **1.** Christi opus salutiferum sancta Ecclesia, statis diebus per anni
14
+ decursum, sacra recordatione celebrat. In unaquaque hebdomada, die
15
+ quae dominica appellatur, memoriam agit Resurrectionis Domini, quam
16
+ semel etiam in anno, maxima Paschae sollemnitate, una cum beata eius
17
+ Passione frequentat. Per anni vero circulum Christi totum mysterium
18
+ explicat nataliciaque Sanctorum commemorat.
19
+
20
+ Variis autem anni liturgici temporibus, iuxta traditas disciplinas, Ecclesia
21
+ fidelium eruditionem perficit, per pias animi et corporis exercitationes,
22
+ instructionem, precationem, paenitentiae et misericordiae opera. [1]
23
+
24
+ **2.** Principia quae sequuntur tum ad Ritum romanum tum ad omnes
25
+ alios Ritus applicari possunt ac debent, normae tamen practicae solum
26
+ ritum romanum spectare intellegendae sunt, nisi agatur de iis quae ex
27
+ ipsa rei natura alios quoque ritus afficiant.
28
+
29
+ 1 Cf. Conc. Vat. II, Const. de sacra Liturgia, Sacrosanctum Concilium, nn. 102-105.
30
+
31
+ 2 Cf. ibid., n. 3.
32
+
33
+ ### Titulus I – De diebus liturgicis
34
+
35
+ #### I. De die liturgico in genere
36
+
37
+ **3.** Unusquisque dies sanctificatur liturgicis populi Dei celebrationibus,
38
+ praesertim vero sacrificio eucharistico et Officio divino.
39
+
40
+ Dies liturgicus decurrit a media nocte ad mediam noctem. Celebratio
41
+ vero dominicae et sollemnitatum incipit iam vespere diei praecedentis.
42
+
43
+ ```ruby
44
+ i = 0
45
+
46
+ CR::Calendar.new(year, CR::Data::GENERAL_ROMAN_LATIN.load, vespers: true)
47
+ .each
48
+ .each_cons(2) do |yesterday, today|
49
+ ct = today.celebrations.first
50
+ cy = yesterday.celebrations.first
51
+
52
+ if (ct.sunday? ||
53
+ [CR::Ranks::SOLEMNITY_GENERAL, CR::Ranks::SOLEMNITY_PROPER].include?(ct.rank)) &&
54
+ ct.rank > cy.rank
55
+ expect(yesterday.vespers).to eq ct
56
+ i += 1
57
+ end
58
+ end
59
+
60
+ expect(i).to be > 0 # make sure that at least some first Vespers were actually encountered
61
+ ```
62
+
63
+ #### II. De dominica
64
+
65
+ **4.** Primo uniuscuiusque hebdomadae die, quae dies Domini seu dies
66
+ dominica nuncupatur. Ecclesia, ex traditione apostolica, quae originem
67
+ ducit ab ipsa die Resurrectionis Christi, mysterium paschale celebrat.
68
+ Itaque dominica uti primordialis dies festus haberi debet. [3]
69
+
70
+ **5.** Propter suum peculiare momentum, dominica suam cedit celebrationem
71
+ solummodo sollemnitatibus necnon festis Domini; dominicae
72
+ vero Adventus, Quadragesimae et Paschae super omnia festa Domini et
73
+ super omnes sollemnitates praecedentiam habent. Sollemnitates autem in
74
+ his dominicis occurrentes ad feriam secundam sequentem transferuntur,
75
+ nisi agatur de occurrentia in Dominica in Palmis aut in Dominica Resurrectionis Domini.
76
+
77
+ ```ruby
78
+ calendar = CR::PerpetualCalendar.new sanctorale: CR::Data::GENERAL_ROMAN_LATIN.load
79
+
80
+ annunciation = CR::AbstractDate.new 3, 25
81
+
82
+ years_with do |y|
83
+ date = annunciation.in_year(y)
84
+
85
+ date.sunday? &&
86
+ calendar[date].season == CR::Seasons::LENT &&
87
+ date < CR::Temporale::Dates.palm_sunday(y - 1) # not in Holy week
88
+ end
89
+ .each do |y|
90
+ date = annunciation.in_year(y) + 1
91
+
92
+ expect(date).to be_monday
93
+ expect(calendar[date].celebrations[0].symbol).to be :annunciation
94
+ end
95
+ ```
96
+
97
+ **6.** Dominica excludit per se assignationem perpetuam alius celebrationis. Attamen:
98
+
99
+ a) dominica infra octavam Nativitatis Domini, fit festum S. Familiae;
100
+
101
+ b) dominica post diem 6 ianuarii, fit festum Baptismatis Domini;
102
+
103
+ c) dominica post Pentecosten, fit sollemnitas Ss.mae Trinitatis;
104
+
105
+ d) dominica ultima “ per annum ”, fit sollemnitas Domini nostri Iesu Christi universorum Regis.
106
+
107
+ ```ruby
108
+ calendar = CR::PerpetualCalendar.new
109
+
110
+ # a) Dominica infra octavam Nativitatis Domini, fit festum S. Familiae
111
+ d = Date.new 2013, 12, 29
112
+ expect(d).to be_sunday
113
+ day = calendar[d]
114
+ expect(day.celebrations[0]).to be_feast
115
+ expect(day.celebrations[0].symbol).to be :holy_family
116
+
117
+ # b) Dominica post diem 6 ianuarii, fit festum Baptismatis Domini;
118
+ d = Date.new 2014, 1, 12
119
+ expect(d).to be_sunday
120
+ day = calendar[d]
121
+ expect(day.celebrations[0]).to be_feast
122
+ expect(day.celebrations[0].symbol).to be :baptism_of_lord
123
+
124
+ # c) Dominica post Pentecosten, fit sollemnitas SS.mae Trinitatis;
125
+ d1 = Date.new 2014, 6, 8
126
+ expect(calendar[d1].celebrations[0].symbol).to be :pentecost
127
+
128
+ d = Date.new 2014, 6, 15
129
+ expect(d).to be_sunday
130
+ day = calendar[d]
131
+ expect(day.celebrations[0]).to be_solemnity
132
+ expect(day.celebrations[0].symbol).to be :holy_trinity
133
+
134
+ # d) Dominica ultima « per annum », fit sollemnitas D. N. I. C. universorum Regis.
135
+ d1 = Date.new 2014, 11, 30
136
+ expect(d1).to be_sunday
137
+ I18n.with_locale(:en) do
138
+ expect(calendar[d1].celebrations[0].title).to eq '1st Sunday of Advent'
139
+ end
140
+
141
+ d = Date.new 2014, 11, 23
142
+ expect(d).to be_sunday
143
+ day = calendar[d]
144
+ expect(day.celebrations[0]).to be_solemnity
145
+ expect(day.celebrations[0].symbol).to be :christ_king
146
+ ```
147
+
148
+ **7.** Ubi autem sollemnitates Epiphaniae, Ascensionis et Ss.mi Corporis et Sanguinis Christi
149
+ non sunt de praecepto servandae, assignentur dominicae tamquam
150
+ diei proprio, hac ratione:
151
+
152
+ a) Epiphania, dominicae a die 2 ad diem 8 ianuarii occurrenti;
153
+
154
+ b) Ascensio, dominicae VII Paschae;
155
+
156
+ c) sollemnitas Ss.mi Corporis et Sanguinis Christi, dominicae post Ss.mam Trinitatem.
157
+
158
+ ```ruby
159
+ calendar = CR::PerpetualCalendar.new(temporale_options: {transfer_to_sunday: [:epiphany, :ascension, :corpus_christi]})
160
+
161
+ 2000.upto(2100) do |liturgical_year|
162
+ civil_year = liturgical_year + 1
163
+
164
+ # a) Epiphania, dominicae a die 2 ad diem 8 ianuarii occurrenti;
165
+ d = CR::Temporale::Dates.epiphany liturgical_year, sunday: true
166
+ expect(d).to be_sunday
167
+ expect(d).to be_between(Date.new(civil_year, 1, 2), Date.new(civil_year, 1, 8))
168
+ expect(calendar[d].celebrations[0].symbol).to be :epiphany
169
+
170
+ # b) Ascensio, dominicae VII Paschae;
171
+ d = CR::Temporale::Dates.ascension liturgical_year, sunday: true
172
+ expect(d).to be_sunday
173
+ expect(d).to eq(CR::Temporale::Dates.pentecost(liturgical_year) - 7)
174
+ expect(calendar[d].celebrations[0].symbol).to be :ascension
175
+
176
+ # c) Sollemnitas SS.mae Eucharistiae, dominicae post SS.mam Trinitatem.
177
+ d = CR::Temporale::Dates.corpus_christi liturgical_year, sunday: true
178
+ expect(d).to be_sunday
179
+ expect(d).to eq(CR::Temporale::Dates.holy_trinity(liturgical_year) + 7)
180
+ expect(calendar[d].celebrations[0].symbol).to be :corpus_christi
181
+ end
182
+ ```
183
+
184
+ #### III. De sollemnitatibus, festis et memoriis
185
+
186
+ **8.** Anni circulo, Ecclesia, mysterium Christi celebrando, etiam beatam
187
+ Dei Genetricem Mariam cum peculiari amore veneratur, memoriasque
188
+ Martyrum aliorumque Sanctorum pietati fidelium proponit. [4]
189
+
190
+ **9.** Sancti qui momentum universale prae se ferunt in Ecclesia universa
191
+ obligatorie celebrantur; ceteri, aut in calendario inscribuntur ad libitum
192
+ tamen celebrandi, aut particulari cuique Ecclesiae, vel nationi, vel
193
+ religiosae familiae, relinquuntur colendi. [5]
194
+
195
+ **10.** Celebrationes, iuxta momentum quod ipsis tribuitur, ita inter se
196
+ distinguuntur et nominantur: sollemnitas, festum, memoria.
197
+
198
+ **11.** Sollemnitates inter dies praecipuos adnumerantur, quorum celebratio
199
+ incipit a I Vesperis, die praecedenti. Nonnullae sollemnitates etiam
200
+ Missa propria vigiliae ditantur, vespere diei praecedentis adhibenda, si
201
+ Missa horis vespertinis celebratur.
202
+
203
+ **12.** Summarum sollemnitatum Paschae et Nativitatis celebratio per
204
+ octo dies continuos protrahitur. Utraque octava legibus propriis ordinatur.
205
+
206
+ **13.** Festa intra fines diei naturalis celebrantur; proinde non habent
207
+ I Vesperas, nisi de festis Domini agatur quae in dominicis “ per annum ”
208
+ et temporis Nativitatis occurrunt et pro earum Officio substituuntur.
209
+
210
+ ```ruby
211
+ calendar = CR::PerpetualCalendar.new(vespers: true, sanctorale: CR::Data::GENERAL_ROMAN_ENGLISH.load)
212
+
213
+ presentation = CR::AbstractDate.new 2, 2
214
+ years_on_sunday, years_on_weekday = years.partition {|y| presentation.in_year(y).sunday? }
215
+
216
+ years_on_weekday.each do |year|
217
+ day = calendar[presentation.in_year(year) - 1]
218
+ expect(day.vespers).to be nil
219
+ end
220
+
221
+ years_on_sunday.each do |year|
222
+ day = calendar[presentation.in_year(year) - 1]
223
+ expect(day.vespers).to be_a CR::Celebration
224
+ expect(day.vespers.symbol).to be :presentation_of_lord
225
+ end
226
+ ```
227
+
228
+ **14.** Memoriae sunt obligatoriae vel ad libitum; earum autem celebratio cum
229
+ celebratione feriae occurrentis componitur secundum normas,
230
+ quae in Institutionibus generalibus Missalis Romani et de Liturgia Horarum exponuntur.
231
+
232
+ Memoriae vero obligatoriae, quae occurrunt in feriis Quadragesimae,
233
+ solummodo tamquam memoriae ad libitum celebrari possunt.
234
+
235
+ Si eodem die plures inscribuntur in calendario memoriae ad libitum,
236
+ una tantum celebrari potest, omissis ceteris.
237
+
238
+ **15.** In sabbatis “ per annum ”, in quibus non occurrat memoria obligatoria,
239
+ fieri potest memoria ad libitum de beata Maria Virgine.
240
+
241
+ ```ruby
242
+ calendar = CR::PerpetualCalendar.new sanctorale: CR::Data::GENERAL_ROMAN_ENGLISH.load
243
+
244
+ free_saturdays = CR::Util::Year.new(2000).select do |date|
245
+ day = calendar[date]
246
+
247
+ date.saturday? &&
248
+ day.season == CR::Seasons::ORDINARY &&
249
+ day.celebrations.find {|c| c.rank > CR::Ranks::MEMORIAL_OPTIONAL }.nil?
250
+ end
251
+
252
+ expect(free_saturdays).not_to be_empty # make sure
253
+
254
+ free_saturdays.each do |date|
255
+ expect(calendar[date].celebrations.find {|c| c.symbol == :saturday_memorial_bvm })
256
+ .not_to be nil
257
+ end
258
+ ```
259
+
260
+ 3 Cf. ibid., n. 106.
261
+
262
+ 4 Cf. ibid., nn. 103-104.
263
+
264
+ 5 Cf. ibid., n. 111.
265
+
266
+ #### IV. De feriis
267
+
268
+ **16.** Hebdomadae dies, qui post dominicam decurrunt, feriae nuncupantur;
269
+ diversa tamen ratione celebrantur, iuxta momentum ipsis proprium:
270
+
271
+ a) feria IV Cinerum et feriae Hebdomadae sanctae, a feria II ad feriam V inclusive, omnibus aliis celebrationibus praeferuntur;
272
+
273
+ b) feriae Adventus, a die 17 ad diem 24 decembris inclusive, et omnes feriae Quadragesimae memoriis obligatoriis praeferuntur;
274
+
275
+ c) ceterae feriae omnibus sollemnitatibus et festis cedunt et cum
276
+ memoriis componuntur.
277
+
278
+ ### Titulus II – De anni circulo
279
+
280
+ **17.** Totum Christi mysterium per anni circulum ab Ecclesia recolitur,
281
+ ab incarnatione usque ad diem Pentecostes et ad exspectationem adventus
282
+ Domini. [6]
283
+
284
+ 6 Cf. ibid., n. 102.
285
+
286
+ #### I. De Triduo paschali
287
+
288
+ **18.** Cum vero humanae redemptionis et perfectae Dei glorificationis
289
+ opus adimpleverit Christus praecipue per suum paschale mysterium, quo
290
+ mortem nostram moriendo destruxit et vitam resurgendo reparavit,
291
+ sacrum paschale Triduum Passionis et Resurrectionis Domini uti totius
292
+ anni liturgici culmen effulget. [7] Fastigium igitur, quod dies dominica habet
293
+ in hebdomada, sollemnitas Paschae habet in anno liturgico. [8]
294
+
295
+ **19.** Triduum paschale Passionis et Resurrectionis Domini incipit a Missa
296
+ vespertina in Cena Domini, habet suum centrum in Vigilia paschali, et
297
+ clauditur Vesperis dominicae Resurrectionis.
298
+
299
+ **20.** Feria VI in Passione Domini, [9] et, iuxta opportunitatem, etiam
300
+ Sabbato sancto usque ad Vigiliam paschalem, [10] ubique celebratur sacrum
301
+ ieiunium paschale.
302
+
303
+ **21.** Vigilia paschalis, nocte sancta qua Dominus resurrexit, habetur
304
+ ut “ mater omnium sanctarum Vigiliarum ”, [11] in qua Ecclesia Christi
305
+ resurrectionem vigilando exspectat, eamque in sacramentis celebrat. Ergo
306
+ tota huius sacrae Vigiliae celebratio nocte peragi debet, ita ut vel incipiatur
307
+ post initium noctis vel finiatur ante diei dominicae diluculum.
308
+
309
+ ```ruby
310
+ good_friday = CR::Temporale::Dates.good_friday year
311
+ easter = CR::Temporale::Dates.easter_sunday(year)
312
+
313
+ calendar = CR::PerpetualCalendar.new
314
+
315
+ good_friday.upto(easter) do |date|
316
+ expect(calendar[date].season).to be CR::Seasons::TRIDUUM
317
+ end
318
+
319
+ expect(calendar[good_friday - 1].season).not_to be CR::Seasons::TRIDUUM
320
+ expect(calendar[easter + 1].season).not_to be CR::Seasons::TRIDUUM
321
+ ```
322
+
323
+ 7 Cf. ibid., n. 5.
324
+
325
+ 8 Cf. ibid., n. 106.
326
+
327
+ 9 Cf. Paulus VI, Const. Apost. Paenitemini, 17 febr. 1966, II § 3: A.A.S. 58 (1966) p. 184.
328
+
329
+ 10 Cf. Conc. Vat. II, Const. de sacra Liturgia, Sacrosanctum Concilium, n. 110.
330
+
331
+ 11 S. Augustinus, Sermo 219: PL 38, 1088.
332
+
333
+ #### II. De tempore paschali
334
+
335
+ **22.** Quinquaginta dies a dominica Resurrectionis ad dominicam Pentecostes
336
+ in laetitia et exsultatione celebrantur sicut unus dies festus,
337
+ immo “ magna dominica ”. [12]
338
+
339
+ Hi sunt dies in quibus praecipue cantatur Allelúia.
340
+
341
+ **23.** Dominicae huius temporis veluti dominicae Paschae habentur et,
342
+ post dominicam Resurrectionis, dominicae II, III, IV, V, VI, VII Paschae
343
+ nuncupantur; concluditur autem hoc sacrum quinquaginta dierum tempus dominica Pentecostes.
344
+
345
+ **24.** Octo primi dies temporis paschalis constituunt octavam Paschae
346
+ et uti sollemnitates Domini celebrantur.
347
+
348
+ ```ruby
349
+ calendar = CR::PerpetualCalendar.new
350
+
351
+ easter = CR::Temporale::Dates.easter_sunday 2000
352
+
353
+ easter.upto(easter + 7) do |d|
354
+ day = calendar[d]
355
+ expect(day.celebrations.size).to be 1
356
+ expect(day.celebrations[0]).to be_solemnity
357
+ end
358
+ ```
359
+
360
+ **25.** Quadragesima die post Pascha celebratur Ascensio Domini, nisi,
361
+ ubi non est de praecepto servanda, VII dominica Paschae fuerit assignata (cf. n. 7).
362
+
363
+ ```ruby
364
+ expect(CR::Temporale::Dates.easter_sunday(year) + 39)
365
+ .to eq CR::Temporale::Dates.ascension(year)
366
+ ```
367
+
368
+ **26.** Feriae post Ascensionem usque ad sabbatum ante Pentecosten inclusive ad adventum praeparant Spiritus Sancti Paracliti.
369
+
370
+ 12 S. Athanasius, Epist. fest. I: PG 26, 1366.
371
+
372
+ #### III. De tempore Quadragesimae
373
+
374
+ **27.** Tempus Quadragesimae ordinatur ad praeparationem celebrationis Paschae:
375
+ liturgia enim quadragesimalis tam catechumenos, per diversos initiationis christianae
376
+ gradus, quam fideles, memoriam Baptismi
377
+ recolentes et paenitentiam agentes, componit ad celebrandum paschale
378
+ mysterium. [13]
379
+
380
+ **28.** Tempus Quadragesimae decurrit a feria IV Cinerum ad Missam
381
+ in Cena Domini exclusive.
382
+
383
+ Ab initio Quadragesimae usque ad Vigiliam paschalem non dicitur
384
+ Allelúia.
385
+
386
+ ```ruby
387
+ ashes = CR::Temporale::Dates.ash_wednesday year
388
+ maundy = CR::Temporale::Dates.good_friday(year) - 1
389
+
390
+ calendar = CR::PerpetualCalendar.new
391
+
392
+ ashes.upto(maundy) do |date|
393
+ expect(calendar[date].season).to be CR::Seasons::LENT
394
+ end
395
+
396
+ expect(calendar[ashes - 1].season).not_to be CR::Seasons::LENT
397
+ expect(calendar[maundy + 1].season).not_to be CR::Seasons::LENT
398
+ ```
399
+
400
+ **29.** Feria IV in capite Quadragesimae, quae ubique habetur ut dies
401
+ ieiunii, [14] imponuntur cineres.
402
+
403
+ **30.** Dominicae huius temporis appellantur dominicae I, II, III, IV, V
404
+ in Quadragesima. Dominica sexta, in qua initium sumit Hebdomada sancta,
405
+ dicitur “ Dominica in palmis de Passione Domini ”.
406
+
407
+ ```ruby
408
+ calendar = CR::PerpetualCalendar.new
409
+
410
+ easter = CR::Temporale::Dates.easter_sunday 2000
411
+
412
+ I18n.with_locale(:la) do
413
+ expect(calendar[easter - 7 * 6].celebrations[0].title)
414
+ .to eq 'Dominica I Quadragesimae' # a slightly different form of the title
415
+
416
+ expect(calendar[easter - 7].celebrations[0].title)
417
+ .to eq 'Dominica in Palmis de Passione Domini'
418
+ end
419
+ ```
420
+
421
+ **31.** Hebdomada sancta ordinatur ad recolendam Passionem Christi
422
+ ab eius ingressu messianico in Ierusalem.
423
+
424
+ Feria V Hebdomadae sanctae, mane, Episcopus, Missam cum suo presbyterio concelebrans,
425
+ olea sancta benedicit et chrisma conficit.
426
+
427
+ 13 Cf. Conc. Vat. II, Const. de sacra Liturgia, Sacrosanctum Concilium, n. 109.
428
+
429
+ 14 Cf. Paulus VI, Const. Apost. Paenitemini, 17 febr. 1966, II § 3: A.A.S. 58 (1966) p. 184.
430
+
431
+ #### IV. De tempore Nativitatis
432
+
433
+ **32.** Post annuam mysterii paschalis celebrationem, nihil antiquius
434
+ habet Ecclesia quam memoriam Nativitatis Domini et primarum eius
435
+ manifestationum recolere: quod fit tempore Nativitatis.
436
+
437
+ **33.** Tempus Nativitatis decurrit a I Vesperis Nativitatis Domini usque
438
+ ad dominicam post Epiphaniam, seu post diem 6 ianuarii, inclusive.
439
+
440
+ ```ruby
441
+ nativity = CR::Temporale::Dates.nativity year
442
+ baptism = CR::Temporale::Dates.baptism_of_lord year
443
+
444
+ calendar = CR::PerpetualCalendar.new
445
+
446
+ nativity.upto(baptism) do |date|
447
+ expect(calendar[date].season).to be CR::Seasons::CHRISTMAS
448
+ end
449
+
450
+ expect(calendar[nativity - 1].season).not_to be CR::Seasons::CHRISTMAS
451
+ expect(calendar[baptism + 1].season).not_to be CR::Seasons::CHRISTMAS
452
+ ```
453
+
454
+ **34.** Missa in Vigilia Nativitatis adhibetur vespere diei 24 decembris
455
+ sive ante sive post I Vesperas.
456
+
457
+ Die autem Nativitatis Domini, Missa ter celebrari potest, secundum
458
+ antiquam traditionem romanam, scilicet in nocte, in aurora et in die.
459
+
460
+ **35.** Nativitas Domini suam habet octavam sic ordinatam:
461
+
462
+ a) dominica infra octavam, vel, ea deficiente, die 30 decembris, fit festum S. Familiae Iesu, Mariae et Ioseph;
463
+
464
+ b) die 26 decembris, fit festum S. Stephani, Protomartyris;
465
+
466
+ c) die 27 decembris, fit festum S. Ioannis, Apostoli et Evangelistae;
467
+
468
+ d) die 28 decembris, fit festum Ss. Innocentium;
469
+
470
+ e) dies 29, 30, 31 sunt dies infra octavam;
471
+
472
+ f) die 1 ianuarii, in octava Nativitatis, fit sollemnitas Sanctae Dei
473
+ Genetricis Mariae, in qua commemoratur etiam impositio Ss.mi Nominis Iesu.
474
+
475
+ ```ruby
476
+ calendar = CR::PerpetualCalendar.new sanctorale: CR::Data::GENERAL_ROMAN_LATIN.load
477
+
478
+ year = 2000 # use fixed year - it would be too unwieldy to make this example work with random year
479
+
480
+ calendar[Date.new(year, 12, 26)].celebrations[0].tap do |c|
481
+ expect(c).to be_feast
482
+ expect(c.symbol).to be :stephen
483
+ end
484
+
485
+ calendar[Date.new(year, 12, 27)].celebrations[0].tap do |c|
486
+ expect(c).to be_feast
487
+ expect(c.symbol).to be :john_evangelist
488
+ end
489
+
490
+ calendar[Date.new(year, 12, 28)].celebrations[0].tap do |c|
491
+ expect(c).to be_feast
492
+ expect(c.symbol).to be :innocents
493
+ end
494
+
495
+ I18n.with_locale(:la) do
496
+ 29.upto(30) do |day|
497
+ date = Date.new year, 12, day
498
+ c = calendar[date].celebrations[0]
499
+
500
+ if date.sunday?
501
+ expect(c).to be_feast
502
+ expect(c.symbol).to be :holy_family
503
+ else
504
+ expect(c.title).to match /De die .+? infra octavam Nativitatis/
505
+ end
506
+ end
507
+ end
508
+
509
+ # Dominica infra octavam ... deficiente, die 30 decembris, fit festum S. Familiae
510
+ years_with do |y|
511
+ (26..31)
512
+ .collect {|i| Date.new y, 12, i }
513
+ .find(&:sunday?)
514
+ .nil?
515
+ end
516
+ .each do |y|
517
+ expect(calendar[Date.new(y, 12, 30)].celebrations[0].symbol).to be :holy_family
518
+ end
519
+ ```
520
+
521
+ **36.** Dominica a die 2 ad diem 5 ianuarii occurrens est Dominica II
522
+ post Nativitatem.
523
+
524
+ ```ruby
525
+ calendar = CR::PerpetualCalendar.new
526
+
527
+ second_sundays =
528
+ years
529
+ .collect {|year| (Date.new(year, 1, 2) .. Date.new(year, 1, 5)).select(&:sunday?) }
530
+ .flatten
531
+
532
+ expect(second_sundays).not_to be_empty # make sure
533
+
534
+ I18n.with_locale(:la) do
535
+ second_sundays.each do |date|
536
+ expect(calendar[date].celebrations[0].title)
537
+ .to eq 'Dominica II post Nativitatem'
538
+ end
539
+ end
540
+ ```
541
+
542
+ **37.** Epiphania Domini celebratur die 6 ianuarii, nisi, ubi non est de
543
+ praecepto servanda, assignata sit dominicae a die 2 ad diem 8 ianuarii
544
+ occurrenti (cf. n. 7).
545
+
546
+ **38.** Dominica post diem 6 ianuarii occurrente, fit festum Baptismatis Domini.
547
+
548
+ ```ruby
549
+ expect(CR::Temporale::Dates.sunday_after(CR::Temporale::Dates.epiphany(year)))
550
+ .to eq CR::Temporale::Dates.baptism_of_lord year
551
+ ```
552
+
553
+ #### V. De tempore Adventus
554
+
555
+ **39.** Tempus Adventus duplicem habet indolem: est enim tempus praeparationis
556
+ ad sollemnia Nativitatis, in quibus primus Dei Filii adventus
557
+ ad homines recolitur, ac simul tempus quo per hanc recordationem mentes diriguntur
558
+ ad exspectationem secundi Christi adventus in fine temporum. His duabus rationibus,
559
+ tempus Adventus se praebet ut tempus devotae ac iucundae exspectationis.
560
+
561
+ **40.** Tempus Adventus incipit a I Vesperis dominicae quae incidit in
562
+ diem 30 novembris vel est huic vicinior, et explicit ante I Vesperas Nativitatis Domini.
563
+
564
+ ```ruby
565
+ first_advent = CR::Temporale::Dates.first_advent_sunday year
566
+ vigil_of_nativity = CR::Temporale::Dates.nativity(year) - 1
567
+
568
+ # incidit in diem 30 novembris vel est huic vicinior
569
+ expect(first_advent).to be_within(6).of(Date.new(year, 11, 30))
570
+
571
+ calendar = CR::PerpetualCalendar.new
572
+
573
+ first_advent.upto(vigil_of_nativity) do |date|
574
+ expect(calendar[date].season).to be CR::Seasons::ADVENT
575
+ end
576
+
577
+ expect(calendar[first_advent - 1].season).not_to be CR::Seasons::ADVENT
578
+ expect(calendar[vigil_of_nativity + 1].season).not_to be CR::Seasons::ADVENT
579
+ ```
580
+
581
+ **41.** Dominicae huius temporis nuncupantur dominicae I, II, III, IV Adventus.
582
+
583
+ ```ruby
584
+ calendar = CR::PerpetualCalendar.new
585
+
586
+ first_advent = CR::Temporale::Dates.first_advent_sunday year
587
+ I18n.with_locale(:la) do
588
+ expect(calendar[first_advent].celebrations[0].title)
589
+ .to eq 'Dominica I Adventus'
590
+ end
591
+ ```
592
+
593
+ **42.** Feriae a die 17 ad diem 24 decembris inclusive modo magis directo ad praeparationem Nativitatis Domini ordinantur.
594
+
595
+ #### VI. De tempore “ per annum ”
596
+
597
+ **43.** Praeter tempora propriam indolem habentia, triginta tres vel
598
+ triginta quattuor supersunt hebdomadae per anni circulum, in quibus non
599
+ celebratur peculiaris mysterii Christi aspectus; sed potius ipsum mysterium
600
+ Christi in sua plenitudine recolitur, praesertim vero diebus dominicis.
601
+ Huiusmodi periodus, tempus “ per annum ” nuncupatur.
602
+
603
+ **44.** Tempus “ per annum ” incipit feria II quae sequitur dominicam post
604
+ diem 6 ianuarii occurrentem et protrahitur usque ad feriam III ante
605
+ Quadragesimam inclusive; iterum incipit feria II post dominicam Pentecostes
606
+ et explicit ante I Vesperas dominicae I Adventus.
607
+
608
+ Eadem ratione adhibetur series formulariorum, quae pro dominicis
609
+ et feriis huius temporis invenitur tum in Missali tum in Liturgia Horarum (voll. III-IV).
610
+
611
+ ```ruby
612
+ after_baptism = CR::Temporale::Dates.baptism_of_lord(year) + 1
613
+ before_ashes = CR::Temporale::Dates.ash_wednesday(year) - 1
614
+
615
+ after_pentecost = CR::Temporale::Dates.pentecost(year) + 1
616
+ before_first_advent = CR::Temporale::Dates.first_advent_sunday(year + 1) - 1
617
+
618
+ calendar = CR::PerpetualCalendar.new
619
+
620
+ after_baptism.upto(before_ashes) do |date|
621
+ expect(calendar[date].season).to be CR::Seasons::ORDINARY
622
+ end
623
+
624
+ expect(calendar[after_baptism - 1].season).not_to be CR::Seasons::ORDINARY
625
+ expect(calendar[before_ashes + 1].season).not_to be CR::Seasons::ORDINARY
626
+
627
+ after_pentecost.upto(before_first_advent) do |date|
628
+ expect(calendar[date].season).to be CR::Seasons::ORDINARY
629
+ end
630
+
631
+ expect(calendar[after_pentecost - 1].season).not_to be CR::Seasons::ORDINARY
632
+ expect(calendar[before_first_advent + 1].season).not_to be CR::Seasons::ORDINARY
633
+ ```
634
+
635
+ #### VII. De Rogationibus et Quattuor anni Temporibus
636
+
637
+ **45.** In Rogationibus et Quattuor anni Temporibus, Ecclesia solet pro
638
+ variis hominum necessitatibus, imprimis vero pro fructibus terrae et
639
+ hominum laboribus, Dominum exorare, eique publice gratias referre.
640
+
641
+ **46.** Ut Rogationes et Quattuor anni Tempora diversis locorum et fidelium
642
+ necessitatibus aptari possint, quoad tempus et rationem illa celebrandi
643
+ a Conferentiis Episcoporum ordinentur oportet.
644
+
645
+ De eorum proinde amplitudine celebrationis, per unum vel plures dies
646
+ protrahendae, de eorum iteratione per anni decursum, normae statuantur
647
+ a competenti auctoritate, attentis necessitatibus localibus.
648
+
649
+ **47.** Missa pro singulis diebus harum celebrationum, inter Missas pro variis necessitatibus
650
+ eligatur, quae sit magis accommodata supplicationum proposito.
651
+
652
+ ## Caput II DE CALENDARIO
653
+
654
+ ### Titulus I – De calendario et celebrationibus in eo inscribendis
655
+
656
+ **48.** Ordinatio celebrationis anni liturgici calendario regitur, quod est
657
+ generale vel particulare, prouti statutum est in usum totius Ritus romani,
658
+ vel in usum alicuius Ecclesiae particularis vel familiae religiosae.
659
+
660
+ **49.** In calendario generali universus cyclus celebrationum inscribitur,
661
+ tum mysterii salutis in Proprio de tempore, tum eorum Sanctorum qui
662
+ momentum universale prae se ferunt, et ideo obligatorie ab omnibus celebrantur,
663
+ tum aliorum qui universalitatem et continuitatem sanctitatis
664
+ in populo Dei demonstrant.
665
+
666
+ Calendaria vero particularia celebrationes magis proprias continent
667
+ congruenti ratione cum cyclo generali organice compositas. [15] Singulae enim
668
+ Ecclesiae vel familiae religiosae Sanctos, qui ipsis sunt peculiari ratione
669
+ propria, peculiari honore prosequantur oportet.
670
+
671
+ Calendaria tamen particularia, a competenti auctoritate componenda,
672
+ ab Apostolica Sede sunt probanda.
673
+
674
+ **50.** In componendis calendariis particularibus, ad haec attendatur:
675
+
676
+ a) Proprium de tempore, seu cyclus temporum, sollemnitatum et festorum,
677
+ quo mysterium redemptionis in anno liturgico explicatur et
678
+ colitur, integer semper servetur, et debita praeminentia gaudeat super
679
+ celebrationes particulares.
680
+
681
+ b) Celebrationes propriae organice cum celebrationibus universalibus
682
+ componantur, attentis ordine et praecedentia in tabula dierum liturgicorum
683
+ pro singulis indicatis. Ne tamen calendaria particularia plus aequo
684
+ onerentur, singuli Sancti unica celebratione in anno liturgico gaudeant,
685
+ servata, ubi rationes pastorales id suadeant, altera celebratione in forma
686
+ memoriae ad libitum pro translatione aut inventione sanctorum Patronorum
687
+ aut Fundatorum Ecclesiarum vel familiarum religiosarum.
688
+
689
+ c) Celebrationes indultae ne sint duplicatio aliarum celebrationum in
690
+ cyclo mysterii salutis iam occurrentium, neque numero plus aequo
691
+ augeantur.
692
+
693
+ **51.** Quamvis conveniat ut quaevis dioecesis suum Calendarium
694
+ et Proprium Officiorum atque Missarum habeat, nihil tamen obstat quominus
695
+ Calendaria et Propria habeantur universae provinciae aut regioni aut
696
+ nationi, vel etiam latiori dicioni, communia, ab iis quorum interest, mutua cooperatione paranda.
697
+
698
+ Quod principium, aequa ratione, servari potest etiam in calendariis
699
+ religiosis pro pluribus provinciis eiusdem dicionis civilis.
700
+
701
+ **52.** Calendarium particulare conficitur inserendo calendario generali
702
+ sollemnitates, festa et memorias quae sunt propria, idest:
703
+
704
+ a) In calendario dioecesano, praeter celebrationes Patronorum,
705
+ et dedicationis ecclesiae cathedralis, Sancti et Beati, qui cum dioecesi
706
+ peculiarem habent necessitudinem, ex. gr. originis, commorationis longioris,
707
+ obitus.
708
+
709
+ b) In calendario religioso, praeter celebrationes Tituli, Fundatoris et
710
+ Patroni, Sancti et Beati, qui illius familiae religiosae sodales fuerunt vel
711
+ cum ea peculiarem relationem habuerunt.
712
+
713
+ c) In calendario singularum ecclesiarum, praeter celebrationes proprias
714
+ dioecesis aut familiae religiosae, celebrationes ipsius ecclesiae propriae,
715
+ quae in tabula dierum liturgicorum recensentur, necnon Sancti
716
+ quorum corpus in eadem ecclesia asservatur. Sodales autem familiarum
717
+ religiosarum cum communitate Ecclesiae localis iunguntur in celebrandis
718
+ anniversario dedicationis ecclesiae cathedralis et Patronis principalibus loci et amplioris dicionis ubi degunt.
719
+
720
+ **53.** Quando aliqua dioecesis vel aliqua familia religiosa pluribus Sanctis
721
+ et Beatis decoratur, cavendum est ne calendarium universae dioecesis
722
+ vel universi Instituti plus aequo gravetur. Proinde:
723
+
724
+ a) haberi potest imprimis celebratio communis omnium Sanctorum
725
+ et Beatorum dioecesis vel familiae religiosae, vel alicuius ordinis eorum;
726
+
727
+ b) singulari celebratione inscribantur calendario tantummodo Sancti
728
+ vel Beati, qui peculiare momentum prae se ferunt pro universa dioecesi
729
+ vel familia religiosa;
730
+
731
+ c) ceteri Sancti et Beati celebrentur tantum iis in locis cum quibus
732
+ strictiores habent necessitudines, aut ubi eorum corpus asservatur.
733
+
734
+ **54.** Celebrationes propriae, nisi aliter pro aliquibus earum in tabula
735
+ dierum liturgicorum praevideatur, aut peculiares rationes exstent historicae
736
+ aut pastorales, ut memoriae obligatoriae vel ad libitum inscribantur.
737
+ Nihil tamen impedit quominus aliquae celebrationes pro certis locis
738
+ modo sollemniore fiant quam in universa dioecesi vel familia religiosa.
739
+
740
+ **55.** Celebrationes calendario proprio inscriptae ab omnibus qui ad
741
+ illud calendarium tenentur servari debent; et nonnisi approbante Apostolica
742
+ Sede e calendario expungi vel gradu mutari possunt.
743
+
744
+ 15 Cf. S. Congr. pro Cultu Divino, Instr. Calendaria particularia, 24 iunii 1970: A.A.S. 62 (1970) pp. 651-663.
745
+
746
+ ### Titulus II – De celebrationum die proprio
747
+
748
+ **56.** Sanctos consuevit Ecclesia celebrare ipsorum die natalicio: quod
749
+ opportune servetur etiam in propriis celebrationibus calendario particulari inscribendis.
750
+
751
+ Attamen, etsi celebrationes propriae peculiare momentum habent pro
752
+ singulis Ecclesiis particularibus vel familiis religiosis, valde tamen
753
+ expedit ut, in celebrandis sollemnitatibus, festis et memoriis obligatoriis,
754
+ quae in calendario generali recensentur, unitas, quantum fieri potest,
755
+ habeatur.
756
+
757
+ Proinde in celebrationibus propriis calendario particulari inscribendis, haec serventur:
758
+
759
+ a) Celebrationes quae etiam in calendario generali recensentur, eodem
760
+ die quo ibi inscriptae sunt, calendario proprio inscribantur, mutato, si
761
+ necesse est, gradu celebrationis.
762
+
763
+ Idem servetur in inscribendis celebrationibus alicui tantum ecclesiae
764
+ propriis, ad calendarium dioecesanum vel religiosum quod attinet.
765
+
766
+ b) Celebrationes Sanctorum, quae in calendario generali non inveniuntur, diei natalicio assignentur.
767
+
768
+ Quando vero dies natalicius ignoratur, celebratio assignetur diei alia
769
+ ratione eidem Sancto proprio, ex. gr. diei ordinationis, inventionis,
770
+ translationis; secus diei qui in calendario particulari liber sit ab aliis celebrationibus.
771
+
772
+ c) Si vero dies natalicius vel proprius impeditur alia celebratione obligatoria,
773
+ etiam inferioris gradus, in calendario generali vel particulari, assignetur proximiori diei similiter non impedito.
774
+
775
+ d) Attamen si agitur de celebrationibus quae ob rationes pastorales ad alium
776
+ diem transferri nequeunt, transferatur celebratio impediens.
777
+
778
+ e) Aliae celebrationes, quae indulta vocantur, inscribantur die aptiore
779
+ sub respectu pastorali.
780
+
781
+ f) Ut autem cyclus anni liturgici plena sua luce fulgeat, neque celebrationes
782
+ Sanctorum perpetuo impediantur, dies quibus plerumque tempus Quadragesimae
783
+ et octava Paschae occurrunt, necnon dies a 17 ad
784
+ 31 decembris, a celebrationibus particularibus liberi maneant, nisi agatur
785
+ de memoriis non obligatoriis vel de festis de quibus in tabula dierum
786
+ liturgicorum, n. 8 a, b, c, d, aut de sollemnitatibus quae ad aliud tempus
787
+ nequeunt transferri.
788
+
789
+ Sollemnitas S. Ioseph, ubi est de praecepto servanda, si cum Dominica
790
+ in palmis de Passione Domini occurrit, anticipatur sabbato praecedenti,
791
+ die 18 martii. Ubi vero non est de praecepto servanda, a Conferentia Episcoporum
792
+ ad alium diem extra Quadragesimam transferri potest.
793
+
794
+ ```ruby
795
+ calendar = CR::PerpetualCalendar.new sanctorale: CR::Data::GENERAL_ROMAN_LATIN.load
796
+
797
+ joseph = CR::AbstractDate.new 3, 19
798
+
799
+ years_with do |y|
800
+ joseph.in_year(y + 1) == CR::Temporale::Dates.palm_sunday(y)
801
+ end
802
+ .each do |y|
803
+ date = Date.new(y + 1, 3, 18)
804
+ expect(date).to be_saturday
805
+ expect(calendar[date].celebrations[0].symbol).to be :joseph
806
+ end
807
+ ```
808
+
809
+ **57.** Si qui Sancti vel Beati una simul calendario inscribuntur, simul
810
+ semper celebrantur, quoties eodem gradu sunt celebrandi, etsi unus aut
811
+ aliqui eorum sunt magis proprii. Si vero unus aut aliqui ex his Sanctis
812
+ vel Beatis gradu superiore sunt celebrandi, fiat Officium de his tantum,
813
+ omissa celebratione ceterorum, nisi conveniat eos alii diei assignare ad
814
+ modum memoriae obligatoriae.
815
+
816
+ **58.** Ad bonum pastorale fidelium procurandum, in dominicis “ per annum ”,
817
+ licet eas celebrationes agere, quae infra hebdomadam occurrunt,
818
+ quaeque ipsorum fidelium pietati sunt acceptae, dummodo hae in tabula
819
+ praecedentiae ipsi dominicae praeponantur. De his celebrationibus dici
820
+ possunt omnes Missae quae concurrente populo celebrantur.
821
+
822
+ **59.** Praecedentia inter dies liturgicos, quoad eorum celebrationem,
823
+ unice regitur sequenti tabula.
824
+
825
+ ---
826
+
827
+ Tabula dierum liturgicorum
828
+ secundum ordinem praecedentiae disposita
829
+
830
+ I
831
+
832
+ **1.** Triduum paschale Passionis et Resurrectionis Domini.
833
+
834
+ **2.** Nativitas Domini, Epiphania, Ascensio et Pentecostes.
835
+ Dominicae Adventus, Quadragesimae et Paschae.
836
+ Feria IV Cinerum.
837
+ Feriae Hebdomadae sanctae, a feria II ad feriam V inclusive.
838
+ Dies infra octavam Paschae.
839
+
840
+ **3.** Sollemnitates Domini, beatae Mariae Virginis, et Sanctorum in Calendario generali inscriptae.
841
+ Commemoratio omnium fidelium defunctorum.
842
+
843
+ **4.** Sollemnitates propriae, nempe:
844
+ - a) Sollemnitas Patroni principalis loci seu oppidi aut civitatis.
845
+ - b) Sollemnitas dedicationis et anniversarii dedicationis ecclesiae propriae.
846
+ - c) Sollemnitas Tituli ecclesiae propriae.
847
+ - d) Sollemnitas aut Tituli, aut Fundatoris, aut Patroni principalis Ordinis seu Congregationis.
848
+
849
+ II
850
+
851
+ **5.** Festa Domini in Calendario generali inscripta.
852
+
853
+ **6.** Dominicae temporis Nativitatis et dominicae “ per annum ”.
854
+
855
+ **7.** Festa beatae Mariae Virginis et Sanctorum Calendarii generalis.
856
+
857
+ **8.** Festa propria, nempe:
858
+ - a) Festum Patroni principalis dioecesis.
859
+ - b) Festum anniversarii dedicationis ecclesiae cathedralis.
860
+ - c) Festum Patroni principalis regionis aut provinciae, nationis, amplioris territorii.
861
+ - d) Festum Tituli, Fundatoris, Patroni principalis Ordinis seu Congregationis et provinciae religiosae, salvis praescriptis sub n. 4.
862
+ - e) Alia festa alicui ecclesiae propria.
863
+ - f) Alia festa inscripta in calendario cuiusque dioecesis vel Ordinis seu Congregationis.
864
+
865
+ **9.** Feriae Adventus a die 17 ad 24 decembris inclusive.
866
+ Dies infra octavam Nativitatis.
867
+ Feriae Quadragesimae.
868
+
869
+ III
870
+
871
+ **10.** Memoriae obligatoriae Calendarii generalis.
872
+
873
+ **11.** Memoriae obligatoriae propriae, nempe:
874
+ - a) Memoriae Patroni secundarii loci, dioecesis, regionis aut provinciae religiosae.
875
+ - b) Aliae memoriae obligatoriae inscriptae in calendario cuiusque dioecesis, vel Ordinis seu Congregationis.
876
+
877
+ **12.** Memoriae ad libitum, quae tamen, modo quidem peculiari in Institutionibus generalibus Missalis Romani et de Liturgia Horarum descripto, fieri possunt etiam diebus de quibus sub n. 9.
878
+ Hac eadem ratione, ut memoriae ad libitum celebrari possunt memoriae obligatoriae, quae accidentaliter occurrunt in feriis Quadragesimae.
879
+
880
+ **13.** Feriae Adventus usque ad diem 16 decembris inclusive.
881
+ Feriae temporis Nativitatis a die 2 ianuarii ad sabbatum post Epiphaniam.
882
+ Feriae temporis paschalis a feria II post octavam Paschae ad sabbatum ante Pentecosten inclusive.
883
+ Feriae “ per annum ”.
884
+
885
+ ---
886
+
887
+ **60.** Si eodem die plures celebrationes occurrunt, fit de ea quae in tabula dierum liturgicorum superiorem obtinet locum.
888
+
889
+ Attamen sollemnitas, quae impeditur a die liturgico, qui praecedentia gaudeat,
890
+ ad proximiorem diem transferatur qui sit liber a diebus sub nn. 1-8 in tabula
891
+ praecedentiae recensitis, servatis iis quae n. 5 statuuntur. Sollemnitas vero
892
+ Annuntiationis Domini, quotiescumque occurrit aliquo die Hebdomadae sanctae,
893
+ semper ad feriam II post dominicam II Paschae erit transferenda.
894
+ Reliquae celebrationes eo anno omittuntur.
895
+
896
+ ```ruby
897
+ # Sollemnitas ... Annuntiationis Domini, quotiescumque occurrit aliquo die Hebdomadae sanctae,
898
+ # semper ad feriam II post dominicam II Paschae erit transferenda.
899
+
900
+ calendar = CR::PerpetualCalendar.new sanctorale: CR::Data::GENERAL_ROMAN_LATIN.load
901
+
902
+ annunciation = CR::AbstractDate.new 3, 25
903
+
904
+ years_in_holy_week = years.select do |y|
905
+ date = annunciation.in_year y + 1
906
+
907
+ date >= CR::Temporale::Dates.palm_sunday(y) &&
908
+ date <= CR::Temporale::Dates.easter_sunday(y)
909
+ end
910
+
911
+ expect(years_in_holy_week).not_to be_empty
912
+
913
+ years_in_holy_week.each do |y|
914
+ date = CR::Temporale::Dates.easter_sunday(y) + 8
915
+ expect(date).to be_monday
916
+ expect(calendar[date].celebrations[0].symbol).to be :annunciation
917
+ end
918
+ ```
919
+
920
+ **61.** Si vero eodem die celebrandae sint Vesperae Officii currentis et
921
+ I Vesperae diei sequentis, praevalent Vesperae celebrationis quae in
922
+ tabula dierum liturgicorum superiorem obtinet locum; in casu autem
923
+ paritatis, Vesperae diei currentis.
924
+
925
+ ```ruby
926
+ # for general example of first vespers, see p. 3
927
+
928
+ # "... in casu autem paritatis, Vesperae diei currentis"
929
+ i = 0
930
+
931
+ CR::Calendar.new(year, CR::Data::GENERAL_ROMAN_LATIN.load, vespers: true)
932
+ .each
933
+ .each_cons(2) do |yesterday, today|
934
+ ct = today.celebrations.first
935
+ cy = yesterday.celebrations.first
936
+
937
+ if (ct.sunday? ||
938
+ [CR::Ranks::SOLEMNITY_GENERAL, CR::Ranks::SOLEMNITY_PROPER].include?(ct.rank)) &&
939
+ ct.rank == cy.rank # casus paritatis
940
+ expect(yesterday.vespers).to be nil
941
+ i += 1
942
+ end
943
+ end
944
+
945
+ expect(i).to be > 0 # make sure that at least some first Vespers were actually encountered
946
+ ```