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,248 @@
1
+ ---
2
+ title: Calendário Romano Geral
3
+ locale: pt
4
+ # source: https://pt.wikipedia.org/wiki/Calendário_Romano_Geral,
5
+ # Roman Missal (Portuguese edition),
6
+ # and https://www.liturgia.pt/
7
+ ---
8
+
9
+ = 1
10
+ 2 m basil_gregory : Ss. Basílio Magno e Gregório de Nazianzo, bispos e doutores da Igreja
11
+ 3 name_jesus : Santíssimo Nome de Jesus
12
+ 7 raymond : S. Raimundo de Peñafort. presbítero
13
+ 13 hilary : S. Hilário, bispo e doutor da Igreja
14
+ 17 m anthony_of_egypt : S. Antão, abade
15
+ 20 R fabian : S. Fabião, papa e mártir
16
+ 20 R sebastian : S. Sebastião, mártir
17
+ 21 m R agnes : S. Inês, virgem e mártir
18
+ 22 R vincent_deacon : S. Vicente, diácono e mártir
19
+ 24 m francis_de_sales : S. Francisco de Sales, bispo e doutor da Igreja
20
+ 25 f paul_conversion : Conversão de S. Paulo, apóstolo
21
+ 26 m timothy_titus : Ss. Timóteo e Tito, bispos
22
+ 27 merici : S. Angela Merici, virgem
23
+ 28 m aquinas : S. Tomás de Aquino, presbítero e doutor da Igreja
24
+ 31 m bosco : S. João Bosco, presbítero
25
+
26
+ = 2
27
+ 2 f2.5 presentation_of_lord : Apresentação do Senhor
28
+ 3 R blase : S. Brás, bispo e mártir
29
+ 3 ansgar : S. Ansgário, bispo
30
+ 5 m R agatha : S. Águeda (ou Ágata), virgem e mártir
31
+ 6 m R paul_miki : Ss. Paulo Miki e companheiros, mártires
32
+ 8 jerome_emiliani : S. Jerónimo Emiliano, presbítero
33
+ 8 josephine_bakhita : S. Josefina Bakhita, virgem
34
+ 10 m scholastica : S. Escolástica, virgem
35
+ 11 bvm_lourdes : Nossa Senhora de Lourdes
36
+ 14 m cyril_methodius : Ss. Cirilo, monge, e Metódio, bispo
37
+ 17 servite_founders : Ss. Sete Fundadores da Ordem dos Servitas
38
+ 21 peter_damian : S. Pedro Damião, bispo e doutor da Igreja
39
+ 22 f chair_of_peter : Cátedra de S. Pedro, apóstolo
40
+ 23 m R polycarp : S. Policarpo, bispo e mártir
41
+ 27 gregory_of_narek : S. Gregório de Narek, abade e doutor da Igreja
42
+
43
+ = 3
44
+ 4 casimir : S. Casimiro
45
+ 7 m R perpetua_felicity : Santas Perpétua e Felicidade, mártires
46
+ 8 john_of_god : S. João de Deus, religiosos
47
+ 9 frances_of_rome : S. Francisca Romana, religiosa
48
+ 17 patrick : S. Patrício, bispo
49
+ 18 cyril_of_jerusalem : S. Cirilo de Jerusalém, bispo e doutor da Igreja
50
+ 19 s joseph : S. José, esposo da Virgem S. Maria
51
+ 23 turibius : S. Turíbio de Mongrovejo, bispo
52
+ 25 s annunciation : Anunciação do Senhor
53
+
54
+ = 4
55
+ 2 francis_of_paola : S. Francisco de Paula, eremita
56
+ 4 isidore : S. Isidoro, bispo e doutor da Igreja
57
+ 5 vincent_ferrer : S. Vicente Ferrer, presbítero
58
+ 7 m de_la_salle : S. João Batista de La Salle, presbítero
59
+ 11 m R stanislaus : S. Estanislau, bispo e mártir
60
+ 13 R martin_i : S. Martinho I, papa e mártir
61
+ 21 anselm : S. Anselmo, bispo e doutor da Igreja
62
+ 23 R george : S. Jorge, mártir
63
+ 23 R adalbert : S. Adalberto de Praga, bispo e mártir
64
+ 24 R fidelis : S. Fiel de Sigmaringa, presbítero e mártir
65
+ 25 f R mark : S. Marcos, evangelista
66
+ 28 R peter_chanel : S. Pedro Chanel, presbítero e mártir
67
+ 28 de_montfort : S. Luís Maria Grignion de Montfort, presbítero
68
+ 29 m catherine_of_siena : S. Catarina de Siena, virgem e doutora da Igreja
69
+ 30 pius_v : S. Pio V, papa
70
+
71
+ = 5
72
+ 1 joseph_worker : S. José operário
73
+ 2 m athanasius : S. Atanásio, bispo e doutor da Igreja
74
+ 3 f R philip_james : Ss. Filipe e Tiago, apóstolos
75
+ 10 john_de_avila : S. João de Ávila, presbítero e doutor da Igreja
76
+ 12 R nereus_achilleus : Ss. Nereu e Aquileu, mártires
77
+ 12 R pancras : S. Pancrácio, mártir
78
+ 13 bvm_fatima : Nossa Senhora de Fátima
79
+ 14 f R matthias : S. Matias, apóstolo
80
+ 18 R john_i : S. João I, papa e mártir
81
+ 20 bernardine : S. Bernardino de Sena, presbítero
82
+ 21 R magallanes : Ss. Cristóvão de Magalhães e companheiros, mártires
83
+ 22 rita : S. Rita de Cássia, religiosa
84
+ 25 bede_venerable : S. Beda Venerável, presbítero e doutor da Igreja
85
+ 25 gregory_vii : S. Gregório VII, papa
86
+ 25 de_pazzi : S. Maria Madalena de Pazzi, virgem
87
+ 26 m neri : S. Filipe Néri, presbítero
88
+ 27 augustine_of_canterbury : S. Agostinho de Cantuária, bispo
89
+ 29 paul_vi : Sãp Paulo VI, papa
90
+ 31 f visitation : Visitação da Virgem S. Maria
91
+
92
+ = 6
93
+ 1 m R justin : S. Justino, mártir
94
+ 2 R marcellinus_peter : Ss. Marcelino e Pedro, mártires
95
+ 3 m R ugandan_martyrs : Ss. Carlos Lwanga e companheiros, mártires
96
+ 5 m R boniface : S. Bonifácio, bispo e mártir
97
+ 6 norbert : S. Norberto, bispo
98
+ 9 ephrem : S. Efrém, diácono e doutor da Igreja
99
+ 11 m R barnabas : S. Barnabé, apóstolo
100
+ 13 m anthony_of_padua : S. António de Lisboa, presbítero e doutor da Igreja
101
+ 19 romuald : S. Romualdo, abade
102
+ 21 m aloysius : S. Luís de Gonzaga, religioso
103
+ 22 paulinus : S. Paulino de Nola, bispo
104
+ 22 R fisher_more : Ss. João Fisher, bispo e mártir, e Tomás Moro, mártir
105
+ 24 s baptist_birth : Nascimento de João Batista
106
+ 27 cyril_of_alexandria : S. Cirilo de Alexandria, bispo e doutor da Igreja
107
+ 28 m R irenaeus : S. Ireneu, bispo e mártir
108
+ 29 s R peter_paul : Ss. Pedro e Paulo, apóstolos
109
+ 30 R first_martyrs_of_rome : Primeiros Ss. Mártires da Igreja de Roma
110
+
111
+ = 7
112
+ 3 f R thomas_apostle : S. Tomé, apóstolo
113
+ 4 elizabeth_of_portugal : S. Isabel de Portugal
114
+ 5 anthony_zaccaria : S. António Maria Zacarias, presbítero
115
+ 6 R goretti : S. Maria Goretti, virgem e mártir
116
+ 9 R chinese_martyrs : Ss. Agostinho Zhao Rong e companheiros, mártires
117
+ 11 m benedict : S. Bento, abade
118
+ 13 henry : S. Henrique
119
+ 14 camillus_de_lellis : S. Camilo de Lelis, presbítero
120
+ 15 m bonaventure : S. Boaventura, bispo e doutor da Igreja
121
+ 16 bvm_mount_carmel : Virgem S. Maria do Monte Carmelo
122
+ 20 R apollinaris : S. Apolinário, bispo e mártir
123
+ 21 lawrence_of_brindisi : S. Lourenço de Brindes, presbítero e doutor da Igreja
124
+ 22 f mary_magdalene : S. Maria Madalena
125
+ 23 birgitta : S. Brígida, religiosa
126
+ 24 sharbel : S. Sarbélio Makhluf, presbítero
127
+ 25 f R james : S. Tiago, Apóstolo
128
+ 26 m joachim_anne : S. Joaquim e S. Ana, pais da Virgem S. Maria
129
+ 29 m martha_mary_lazarus : SS. Marta, Maria e Lázaro
130
+ 30 peter_chrysologus : S. Pedro Crisólogo, bispo e doutor da Igreja
131
+ 31 m ignatius_of_loyola : S. Inácio de Loiola, presbítero
132
+
133
+ = 8
134
+ 1 m alphonsus : S. Afonso Maria de Ligório, bispo e doutor da Igreja
135
+ 2 eusebius : S. Eusébio de Vercelas, bispo
136
+ 2 eymard : S. Pedro Juliano Eymard, presbítero
137
+ 4 m vianney : S. João Maria Vianney, presbítero
138
+ 5 mary_major : Dedicação da Basílica de Santa Maria Maior
139
+ 6 f2.5 transfiguration : Transfiguração do Senhor
140
+ 7 R sixtus_ii : SS. Sisto II, papa, e Companheiros, mártires
141
+ 7 cajetan : S. Caetano, presbítero
142
+ 8 m dominic : S. Domingos, presbítero, Fundador da Ordem dos Pregadores
143
+ 9 R stein : S. Teresa Benedita da Cruz, virgem e mártir
144
+ 10 f R lawrence : S. Lourenço, diácono e mártir
145
+ 11 m clare : S. Clara, virgem
146
+ 12 de_chantal : S. Joana Francisca de Chantal, religiosa
147
+ 13 R pontian_hippolytus : S. Ponciano, papa, e S. Hipólito, presbítero, mártires
148
+ 14 m R kolbe : S. Maximiliano Maria Kolbe, presbítero e mártir
149
+ 15 s assumption : ASSUNÇÃO DA VIRGEM SANTA MARIA
150
+ 16 stephen_hungary : S. Estêvão da Hungria
151
+ 19 eudes : S. João Eudes, presbítero
152
+ 20 m bernard : S. Bernardo, abade e doutor da Igreja
153
+ 21 m pius_x : S. Pi0 X, papa
154
+ 22 m bvm_queenship : Virgem Santa Maria, Rainha
155
+ 23 rose_lima : S. Rosa de Lima, virgem
156
+ 24 f R bartholomew : S. Bartolomeu, Apóstolo
157
+ 25 louis : S. Luís de França
158
+ 25 joseph_calasanz : S. José de Calasanz, presbítero
159
+ 27 m monica : S. Mónica
160
+ 28 m augustine : S. Agostinho, bispo e doutor da Igreja
161
+ 29 m R baptist_beheading : Martírio de S. João Baptista
162
+
163
+ = 9
164
+ 3 m gregory_great : S. Gregório Magno, papa e doutor da Igreja
165
+ 8 f bvm_birth : Natividade da Virgem Santa Maria
166
+ 9 claver : S. Pedro Claver, presbítero
167
+ 12 bvm_name : Santíssimo Nome de Maria
168
+ 13 m john_chrysostom : S. João Crisóstomo, bispo e doutor da Igreja
169
+ 14 f2.5 R cross : Exaltação da Santa Cruz
170
+ 15 m bvm_sorrows : Virgem Santa Maria das Dores
171
+ 16 m R cornelius_cyprian : S. Cornélio, papa, e S. Cipriano, bispo, mártires
172
+ 17 bellarmine : S. Roberto Belarmino, bispo e doutor da Igreja
173
+ 17 hildegard : S. Hildegarda de Bingen, virgem e doutora da Igreja
174
+ 19 R januarius : S. Januário, bispo e mártir
175
+ 20 m R korean_martyrs : SS. André Kim Taegon, presbítero, Paulo Chang Hasang, e Companheiros, mártires
176
+ 21 f R matthew : S. Mateus, Apóstolo e Evangelista
177
+ 23 m padre_pio : S. Pio de Pietrelcina, presbítero
178
+ 26 R cosmas_damian : S. Cosme e S. Damião, mártires
179
+ 27 m vincent_de_paul : S. Vicente de Paulo, presbítero
180
+ 28 R wenceslaus : S. Venceslau, mártir
181
+ 28 R ruiz : SS. Lourenço Ruiz e Companheiros, mártires
182
+ 29 f archangels : S. Miguel, S. Gabriel e S. Rafael, Arcanjos
183
+ 30 m jerome : S. Jerónimo, presbítero e doutor da Igreja
184
+
185
+ = 10
186
+ 1 m therese_lisieux : S. Teresa do Menino Jesus, virgem e doutora da Igreja
187
+ 2 m guardian_angels : Santos Anjos da Guarda
188
+ 4 m francis_assisi : S. Francisco de Assis
189
+ 5 faustina_kowalska : Santa Faustina Kowalska
190
+ 6 bruno : S. Bruno, presbítero
191
+ 7 m bvm_rosary : Virgem Santa Maria do Rosário
192
+ 9 R denis : SS. Dionísio, bispo, e Companheiros, mártires
193
+ 9 leonardi : S. João Leonardo, presbítero
194
+ 11 john_xxiii : S. João XXIII, papa
195
+ 14 R callistus_i : S. Calisto I, papa e mártir
196
+ 15 m teresa_avila : S. Teresa de Jesus, virgem e doutora da Igreja
197
+ 16 hedwig : S. Hedwiges, religiosa
198
+ 16 alacoque : S. Margarida Maria Alacoque, virgem
199
+ 17 m R ignatius_of_antioch : S. Inácio de Antioquia, bispo e mártir
200
+ 18 f R luke : S. Lucas, Evangelista
201
+ 19 R brebeuf_jogues : SS. João de Brébeuf e Isaac Jogues, presbíteros, e Companheiros, mártires
202
+ 19 paul_of_cross : S. Paulo da Cruz, presbítero
203
+ 22 john_paul_ii : S. João Paulo II, papa
204
+ 23 john_capistrano : S. João de Capistrano, presbítero
205
+ 24 claret : S. António Maria Claret, bispo
206
+ 28 f R simon_jude : S. Simão e S. Judas, Apóstolos
207
+
208
+ = 11
209
+ 1 s all_saints : TODOS OS SANTOS
210
+ 2 s V all_souls : Comemoração de Todos os Fiéis Defuntos
211
+ 3 de_porres : S. Martinho de Porres, religioso
212
+ 4 m borromeo : S. Carlos Borromeu, bispo
213
+ 9 f2.5 lateran_basilica : Dedicação da Basílica de Latrão
214
+ 10 m leo_great : S. Leão Magno, papa e doutor da Igreja
215
+ 11 m martin : S. Martinho de Tours, bispo
216
+ 12 m R josaphat : S. Josafat, bispo e mártir
217
+ 15 albert : S. Alberto Magno, bispo e doutor da Igreja
218
+ 16 margaret_of_scotland : S. Margarida da Escócia
219
+ 16 gertrude : S. Gertrudes, virgem
220
+ 17 m elizabeth_of_hungary : S. Isabel da Hungria, religiosa
221
+ 18 peter_paul_basilicas : Dedicação das Basílicas de S. Pedro e de S. Paulo, Apóstolos
222
+ 21 m bvm_presentation : Apresentação de Nossa Senhora
223
+ 22 m R cecilia : S. Cecília, virgem e mártir
224
+ 23 R clement_i : S. Clemente I, papa e mártir
225
+ 23 columban : S. Columbano, abade
226
+ 24 m R vietnamese_martyrs : SS. André Dung-Lac, presbítero, e Companheiros, mártires
227
+ 25 R catherine_of_alexandria : S. Catarina Alexandrina, virgem e mártir
228
+ 30 f R andrew : S. André, Apóstolo
229
+
230
+ = 12
231
+ 3 m francis_xavier : S. Francisco Xavier, presbítero, Padroeiro das Missões
232
+ 4 john_damascene : S. João Damasceno, presbítero e doutor da Igreja
233
+ 6 nicholas : S. Nicolau, bispo
234
+ 7 m ambrose : S. Ambrósio, bispo e doutor da Igreja
235
+ 8 s bvm_immaculate : IMACULADA CONCEIÇÃO DA VIRGEM SANTA MARIA
236
+ 9 juan_diego : S. João Diogo
237
+ 10 bvm_loreto : Virgem Santa Maria de Loreto
238
+ 11 damasus_i : S. Dâmaso I, papa
239
+ 12 bvm_guadalupe : Nossa Senhora de Guadalupe
240
+ 13 m R lucy : S. Luzia, virgem e mártir
241
+ 14 m john_of_cross : S. João da Cruz, presbítero e doutor da Igreja
242
+ 21 canisius : S. Pedro Canísio, presbítero e doutor da Igreja
243
+ 23 john_of_kanty : S. João de Quenty (Câncio), presbítero
244
+ 26 f R stephen : S. Estêvão, Primeiro Mártir
245
+ 27 f john_evangelist : S. João, Apóstolo e Evangelista
246
+ 28 f R innocents : Santos Inocentes, mártires
247
+ 29 R becket : S. Tomás Becket (de Cantuária), bispo e mártir
248
+ 31 sylvester_i : S. Silvestre I, papa
@@ -0,0 +1,2 @@
1
+ # @title data/README.md
2
+ {include:file:data/README.md}
Binary file
@@ -0,0 +1,44 @@
1
+ @startuml
2
+ object Calendar {
3
+ year
4
+ }
5
+ object PerpetualCalendar
6
+
7
+ object Temporale
8
+ object Sanctorale
9
+
10
+ object Day {
11
+ date
12
+ season
13
+ season_week
14
+ celebrations
15
+ vespers
16
+ }
17
+ object Celebration {
18
+ title
19
+ colour
20
+ rank
21
+ date
22
+ cycle
23
+ symbol
24
+ }
25
+ object AbstractDate
26
+ object Season
27
+ object Rank
28
+ object Colour
29
+
30
+ Calendar o-- Temporale
31
+ Calendar o-- Sanctorale
32
+
33
+ PerpetualCalendar *-- Calendar
34
+
35
+ Calendar ..> Day : produces
36
+ Temporale ..> Celebration : produces
37
+ Sanctorale "1" --> "0..*" Celebration
38
+
39
+ Day "1" --> "1..*" Celebration
40
+ Celebration --> Season
41
+ Celebration --> Rank
42
+ Celebration --> Colour
43
+ Celebration --> AbstractDate
44
+ @enduml
@@ -0,0 +1,76 @@
1
+ = calendarium-romanum
2
+
3
+ Ruby gem for
4
+ calendar computations according to the Roman Catholic liturgical
5
+ calendar as instituted by
6
+ MP <em>{Mysterii Paschalis}[http://w2.vatican.va/content/paul-vi/en/motu_proprio/documents/hf_p-vi_motu-proprio_19690214_mysterii-paschalis.html]</em> of Paul VI. (AAS 61 (1969), pp. 222-226).
7
+ The rules are defined in
8
+ <em>{General Norms for the Liturgical Year and the Calendar}[https://www.ewtn.com/catholicism/library/liturgical-year-2193]</em>.
9
+
10
+ == Quickstart
11
+
12
+ For usage instructions with copy-pastable code examples see {file:README.md}
13
+
14
+ == Object model overview
15
+
16
+ rdoc-image:images/class_diagram.png
17
+
18
+ <b>{CalendariumRomanum::Calendar Calendar}</b> is the library's main functional unit.
19
+ It represents calendar for a single liturgical year and allows retrieving calendar data
20
+ for any of the year's days.
21
+ Calendar basically consists of
22
+ a {CalendariumRomanum::Temporale Temporale} and a {CalendariumRomanum::Sanctorale Sanctorale}
23
+ and it's main task is to combine information from both and for any day of the year produce
24
+ a fully and correctly populated {CalendariumRomanum::Day Day} instance,
25
+ containing one or more {CalendariumRomanum::Celebration Celebrations}
26
+ (see {CalendariumRomanum::Calendar#[] Calendar#[]}).
27
+
28
+ (+Calendar+ does not own either +Temporale+ or +Sanctorale+ - it is possible to pass them
29
+ on initialization and they are treated as read-only. The only exception is method
30
+ {CalendariumRomanum::Calendar#freeze #freeze}, which freezes all the +Calendar+'s contents,
31
+ including +Temporale+ and +Sanctorale+.)
32
+
33
+ <b>{CalendariumRomanum::PerpetualCalendar PerpetualCalendar}</b> is a higher-level API
34
+ for retrieving calendar data
35
+ without bothering about liturgical years. It builds {CalendariumRomanum::Calendar Calendar}
36
+ instances internally and passes method calls to them.
37
+
38
+ <b>{CalendariumRomanum::Day Day}</b> contains complete calendar data of a liturgical day.
39
+ It owns one or more {CalendariumRomanum::Celebration Celebrations}.
40
+ If there are multiple it means that any one of them can be chosen and celebrated
41
+ that day.
42
+
43
+ <b>{CalendariumRomanum::Celebration Celebration}</b> represents a celebration
44
+ (particular solemnity / feast / memorial / Sunday / ferial)
45
+ and holds it's liturgical properties, encoded mostly by value objects.
46
+
47
+ (Unlike +Day+, +Celebration+ instances are not bound to a particular date,
48
+ they represent "celebration C in general", not "celebration C in year Y".
49
+ The latter is represented only by a combination of +Celebration+ and +Day+.
50
+ +Celebration+ instances are immutable and some may be used repeatedly in context of various
51
+ days and calendars.)
52
+
53
+ <b>{CalendariumRomanum::Season Season}</b>,
54
+ <b>{CalendariumRomanum::Rank Rank}</b>,
55
+ <b>{CalendariumRomanum::Colour Colour}</b>
56
+ are value objects representing values
57
+ of {CalendariumRomanum::Celebration Celebration} properties.
58
+ Immutable instances representing the standard values are referenced by constants and
59
+ normally there should be no need to create any more.
60
+
61
+ <b>{CalendariumRomanum::Temporale Temporale}</b> represents the temporale cycle of a single liturgical
62
+ year, computes movable feasts, determines liturgical seasons.
63
+ For any day of the year it provides a temporale {CalendariumRomanum::Celebration Celebration}.
64
+
65
+ <b>{CalendariumRomanum::Sanctorale Sanctorale}</b> represents the sanctorale cycle, i.e. the fixed-date
66
+ celebrations, mostly feasts of saints. It is not bound to a particular year, hence a single
67
+ instance can be used by many {CalendariumRomanum::Calendar Calendar} instances representing
68
+ various liturgical years. For any day it provides zero or more
69
+ {CalendariumRomanum::Celebration Celebrations}.
70
+
71
+ Most particular calendars (calendars of countries, provinces, dioceses, churches, religious
72
+ institutes) share the same temporale definition and differ in sanctorale contents.
73
+ Therefore the task of implementing a particular calendar usually consists of populating
74
+ a {CalendariumRomanum::Sanctorale Sanctorale} instance with the desired data.
75
+ A convenient way to do so is preparing a {file:data/README.md sanctorale data file}
76
+ and loading it using {CalendariumRomanum::SanctoraleLoader SanctoraleLoader}.
@@ -1,6 +1,16 @@
1
+ # Module wrapping the gem's classes
2
+ #
3
+ # If you hate typing the long module name, see {CR}
4
+ module CalendariumRomanum
5
+ end
6
+
7
+ require 'date'
8
+
1
9
  %w(
2
10
  version
3
11
  i18n_setup
12
+ abstract_date
13
+ rank_predicates
4
14
  rank
5
15
  enum
6
16
  enums
@@ -9,15 +19,19 @@
9
19
  day
10
20
  calendar
11
21
  perpetual_calendar
22
+ temporale/date_helper
12
23
  temporale/dates
13
24
  temporale/celebration_factory
25
+ temporale/easter_table
26
+ temporale/extensions
14
27
  temporale/extensions/christ_eternal_priest
28
+ temporale/extensions/dedication_before_all_saints
15
29
  temporale
16
30
  sanctorale
17
- sanctoraleloader
31
+ sanctorale_loader
32
+ sanctorale_writer
18
33
  sanctorale_factory
19
34
  transfers
20
- abstract_date
21
35
  util
22
36
  ordinalizer
23
37
  ).each do |f|
@@ -4,12 +4,20 @@ module CalendariumRomanum
4
4
  class AbstractDate
5
5
  include Comparable
6
6
 
7
+ # @param month [Integer]
8
+ # @param day [Integer]
9
+ # @raise [RangeError] on invalid +month+/+day+ value
7
10
  def initialize(month, day)
8
11
  validate! month, day
9
12
  @month = month
10
13
  @day = day
11
14
  end
12
15
 
16
+ # Build a new instance from a +Date+ (or an object with
17
+ # similar public interface).
18
+ #
19
+ # @param date [Date]
20
+ # @return [AbstractDate]
13
21
  def self.from_date(date)
14
22
  new(date.month, date.day)
15
23
  end
@@ -32,10 +40,17 @@ module CalendariumRomanum
32
40
  month == other.month && day == other.day
33
41
  end
34
42
 
43
+ # Produce a +Date+ by providing a year to an +AbstractDate+
44
+ #
45
+ # @param year [Integer]
46
+ # @return [Date]
35
47
  def concretize(year)
36
48
  Date.new(year, month, day)
37
49
  end
38
50
 
51
+ # @since 0.8.0
52
+ alias in_year concretize
53
+
39
54
  private
40
55
 
41
56
  def validate!(month, day)