calendarium-romanum 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/calendariumrom +2 -61
- data/config/locales/cs.yml +40 -0
- data/config/locales/en.yml +4 -1
- data/config/locales/it.yml +40 -0
- data/config/locales/la.yml +40 -0
- data/data/README.md +87 -0
- data/data/czech-brno-cs.txt +7 -0
- data/data/czech-budejovice-cs.txt +8 -0
- data/data/czech-cechy-cs.txt +8 -0
- data/data/czech-cs.txt +259 -0
- data/data/czech-hradec-cs.txt +6 -0
- data/data/czech-litomerice-cs.txt +8 -0
- data/data/czech-morava-cs.txt +7 -0
- data/data/czech-olomouc-cs.txt +4 -0
- data/data/czech-ostrava-cs.txt +6 -0
- data/data/czech-plzen-cs.txt +6 -0
- data/data/czech-praha-cs.txt +4 -0
- data/data/universal-en.txt +237 -0
- data/data/universal-it.txt +236 -0
- data/data/universal-la.txt +236 -0
- data/lib/calendarium-romanum.rb +2 -0
- data/lib/calendarium-romanum/calendar.rb +4 -1
- data/lib/calendarium-romanum/cli.rb +100 -0
- data/lib/calendarium-romanum/data.rb +41 -0
- data/lib/calendarium-romanum/day.rb +7 -1
- data/lib/calendarium-romanum/enum.rb +33 -0
- data/lib/calendarium-romanum/enums.rb +43 -35
- data/lib/calendarium-romanum/rank.rb +16 -12
- data/lib/calendarium-romanum/sanctorale.rb +9 -0
- data/lib/calendarium-romanum/sanctoraleloader.rb +8 -8
- data/lib/calendarium-romanum/temporale.rb +24 -9
- data/lib/calendarium-romanum/version.rb +1 -1
- data/spec/calendar_spec.rb +89 -7
- data/spec/cli_spec.rb +26 -0
- data/spec/data_spec.rb +16 -8
- data/spec/date_spec.rb +52 -1
- data/spec/enum_spec.rb +51 -0
- data/spec/i18n_spec.rb +59 -0
- data/spec/readme_spec.rb +50 -0
- data/spec/sanctorale_spec.rb +24 -1
- data/spec/sanctoraleloader_spec.rb +30 -1
- data/spec/temporale_spec.rb +24 -0
- metadata +28 -2
@@ -0,0 +1,236 @@
|
|
1
|
+
# General Roman Calendar in Latin
|
2
|
+
# source: http://www.binetti.ru/collectio/liturgia/missale_files/crg.htm
|
3
|
+
|
4
|
+
= 1
|
5
|
+
2 m : Ss. Basilii et Gregorii Nazianzeni, episcoporum et Ecclesiae doctorum
|
6
|
+
3 : Ss.mi Nominis Iesu
|
7
|
+
7 : S. Raimundi de Penyafort, presbyteri
|
8
|
+
13 : S. Hilarii, episcopi et Ecclesiae doctoris
|
9
|
+
17 m : S. Antonii, abbatis
|
10
|
+
20 R : S. Fabiani, papae et martyris
|
11
|
+
20 R : S. Sebastiani, martyris
|
12
|
+
21 m R : S. Agnetis, virginis et martyris
|
13
|
+
22 R : S. Vincentii, diaconi et martyris
|
14
|
+
24 m : S. Francisci de Sales, episcopi et Ecclesiae doctoris
|
15
|
+
25 f : In conversione S. Pauli, apostoli
|
16
|
+
26 m : Ss. Timothei et Titi, episcoporum
|
17
|
+
27 : S. Angelae Merici, virginis
|
18
|
+
28 m : S. Thomae de Aquino, presbyteri et Ecclesiae doctoris
|
19
|
+
31 m : S. Ioannis Bosco, presbyteri
|
20
|
+
|
21
|
+
= 2
|
22
|
+
2 f2.5 : IN PRAESENTATIONE DOMINI
|
23
|
+
3 R : S. Blasii, episcopi et martyris
|
24
|
+
3 : S. Ansgarii, episcopi
|
25
|
+
5 m R : S. Agathae, virginis et martyris
|
26
|
+
6 m R : Ss. Pauli Miki et sociorum, martyrum
|
27
|
+
8 : S. Hieronymi Emiliani
|
28
|
+
8 : S. Iosephinae Bakhita, virginis
|
29
|
+
10 m : S. Scholasticae, virginis
|
30
|
+
11 : B. Mariae Virginis de Lourdes
|
31
|
+
14 m : Ss. Cyrilli, monachi, et Methodii, episcopi
|
32
|
+
17 : Ss. septem Fundatorum Ordinis Servorum B. M. V.
|
33
|
+
21 : S. Petri Damiani, episcopi et Ecclesiae doctoris
|
34
|
+
22 f : Cathedrae S. Petri, apostoli
|
35
|
+
23 m R : S. Polycarpi, episcopi et martyris
|
36
|
+
|
37
|
+
= 3
|
38
|
+
4 : S. Casimiri
|
39
|
+
7 m R : Ss. Perpetuae et Felicitatis, martyrum
|
40
|
+
8 : S. Ioannis a Deo, religiosi
|
41
|
+
9 : S. Franciscae Romanae, religiosae
|
42
|
+
17 : S. Patricii, episcopi
|
43
|
+
18 : S. Cyrilli Hierosolymitani, episcopi et Ecclesiae doctoris
|
44
|
+
19 s : S. IOSEPH, SPONSI B. M. V.
|
45
|
+
23 : S. Turibii de Mongrovejo, episcopi
|
46
|
+
25 s : IN ANNUNTIATIONE DOMINI
|
47
|
+
|
48
|
+
= 4
|
49
|
+
2 : S. Francisci de Paola, eremitae
|
50
|
+
4 : S. Isidori, episcopi et Ecclesiae doctoris
|
51
|
+
5 : S. Vincentii Ferrer, presbyteri
|
52
|
+
7 m : S. Ioannis Baptistae de la Salle, presbyteri
|
53
|
+
11 m R : S. Stanislai, episcopi et martyris
|
54
|
+
13 R : S. Martini I, papae et martyris
|
55
|
+
21 : S. Anselmi, episcopi et Ecclesiae doctoris
|
56
|
+
23 R : S. Georgii, martyris
|
57
|
+
23 R : S. Adalberti, episcopi et martyris
|
58
|
+
24 R : S. Fidelis a Sigmaringen, presbyteri et martyris
|
59
|
+
25 f R : S. Marci, evangelistae
|
60
|
+
28 R : S. Petri Chanel, presbyteri et martyris
|
61
|
+
28 : S. Ludovici Mariae Grignion de Montfort, presbyteri
|
62
|
+
29 m : S. Catharinae Senensis, virginis et Ecclesiae doctoris
|
63
|
+
30 : S. Pii V, papae
|
64
|
+
|
65
|
+
= 5
|
66
|
+
1 : S. Ioseph Opificis
|
67
|
+
2 m : S. Athanasii, episcopi et Ecclesiae doctoris
|
68
|
+
3 f R : Ss. Philippi et Iacobi, apostolorum
|
69
|
+
12 R : Ss. Nerei et Achillei, martyrum
|
70
|
+
12 R : S. Pancratii, martyris
|
71
|
+
13 : B. Mariae Virginis de Fatima
|
72
|
+
14 f R : S. Matthiae, apostoli
|
73
|
+
18 R : S. Ioannis I, papae et martyris
|
74
|
+
20 : S. Bernardini Senensis, presbyteri
|
75
|
+
21 R : S. Christophori Magallanes, presbyteri, et sociorum, martyrum
|
76
|
+
22 : S. Ritae de Cascia, religiosae
|
77
|
+
25 : S. Bedae Venerabilis, presbyteri et Ecclesiae doctoris
|
78
|
+
25 : S. Gregorii VII, papae
|
79
|
+
25 : S. Mariae Magdalenae de' Pazzi, virginis
|
80
|
+
26 m : S. Philippi Neri, presbyteri
|
81
|
+
27 : S. Augustini Cantuarensis, episcopi
|
82
|
+
31 f : In Visitatione B. Mariae Virginis
|
83
|
+
|
84
|
+
= 6
|
85
|
+
1 m R : S. Iustini, martyris
|
86
|
+
2 R : Ss. Marcellini et Petri, martyrum
|
87
|
+
3 m R : Ss. Caroli Lwanga et sociorum, martyrum
|
88
|
+
5 m R : S. Bonifatii, episcopi et martyris
|
89
|
+
6 : S. Norberti, episcopi
|
90
|
+
9 : S. Ephraem, diaconi et Ecclesiae doctoris
|
91
|
+
11 m R : S. Barnabae, apostoli
|
92
|
+
13 m : S. Antonii de Padova, presbyteri et Ecclesiae doctoris
|
93
|
+
19 : S. Romualdi, abbatis
|
94
|
+
21 m : S Aloisii Gonzaga, religiosi
|
95
|
+
22 : S. Paulini Nolani
|
96
|
+
22 R : Ss. Ioannis Fisher, episcopi, et Thomae More, martyrum
|
97
|
+
24 s : IN NATIVITATE S. IOANNIS BAPTISTAE
|
98
|
+
27 : S. Cyrilli Alexandrini, episcopi et Ecclesiae doctoris
|
99
|
+
28 m R : S. Irenaei, episcopi et martyris
|
100
|
+
29 s R : Ss. PETRI ET PAULI, APOSTOLORUM
|
101
|
+
30 R : Ss. Protomartyrum S. Romanae Ecclesiae
|
102
|
+
|
103
|
+
= 7
|
104
|
+
3 f R : S. Thomae, apostoli
|
105
|
+
4 : S. Elisabeth Lusitaniae
|
106
|
+
5 : S. Antonii Mariae Zaccaria, presbyteri
|
107
|
+
6 R : S. Mariae Goretti, virginis et martyris
|
108
|
+
9 R : Ss. Augustini Zhao Rong, presbyteri
|
109
|
+
11 m : S. Benedicti, abbatis
|
110
|
+
13 : S. Henrici
|
111
|
+
14 : S. Camilli de Lellis, presbyteri
|
112
|
+
15 m : S. Bonaventurae, episcopi et Ecclesiae doctoris
|
113
|
+
16 : B. Mariae Virginis de Monte Carmelo
|
114
|
+
20 R : S. Apollinaris, episcopi et martyris
|
115
|
+
21 : S. Laurentii de Brindisi, presbyteri et Ecclesiae doctoris
|
116
|
+
22 f : S. Mariae Magdalenae
|
117
|
+
23 : S. Birgittae, religiosae
|
118
|
+
24 : S. Sarbelii Makhlūf, presbyteri
|
119
|
+
25 f R : S. Iacobi, apostoli
|
120
|
+
26 m : Ss. Ioachim et Annae, parentum B. Mariae Virginis
|
121
|
+
29 m R : S. Marthae
|
122
|
+
30 : S. Petri Chrysologi, episcopi et Ecclesiae doctoris
|
123
|
+
31 m : S. Ignatii de Loyola, presbyteri
|
124
|
+
|
125
|
+
= 8
|
126
|
+
1 m : S. Alfonsi Mariae de' Liguori, episcopi et Ecclesiae doctoris
|
127
|
+
2 : S. Eusebii Vercellensis, episcopi
|
128
|
+
2 : S. Petri Iuliani Eymard, presbyteri
|
129
|
+
4 m : S. Ioannis Mariae Vianney, presbyteri
|
130
|
+
5 : In Dedicatione basilicae S. Mariae
|
131
|
+
6 f2.5 : IN TRANSFIGURATIONE DOMINI
|
132
|
+
7 R : Ss. Xysti, papae, et sociorum, martyrum
|
133
|
+
7 : S. Caietani, presbyteri
|
134
|
+
8 m : S. Dominici, presbyteri
|
135
|
+
9 R : S. Teresiae Benedictae a Cruce, virginis et martyris
|
136
|
+
10 f R : S. Laurentii, diaconi et martyris
|
137
|
+
11 m : S. Clarae, virginis
|
138
|
+
12 : S. Ioannae Franciscae de Chantal, religiosae
|
139
|
+
13 R : Ss. Pontiani, papae, et Hippolyti, presbyteri, martyrum
|
140
|
+
14 m R : S. Maximiliani Mariae Kolbe, presbyteri et martyris
|
141
|
+
15 s : IN ASSUMPTIONE B. MARIAE VIRGINIS
|
142
|
+
16 : S. Stephani Hungariae
|
143
|
+
19 : S. Ioannis Eudes, presbyteri
|
144
|
+
20 m : S. Bernardi, abbatis et Ecclesiae doctoris
|
145
|
+
21 m : S. Pii X, papae
|
146
|
+
22 m : B. Mariae Virginis Reginae
|
147
|
+
23 : S. Rosae de Lima, virginis
|
148
|
+
24 f R : S. Bartholomaei, apostoli
|
149
|
+
25 : S. Ludovici
|
150
|
+
25 : S. Ioseph de Calasanz, presbyteri
|
151
|
+
27 m : S. Monicae
|
152
|
+
28 m : S. Augustini, episcopi et Ecclesiae doctoris
|
153
|
+
29 m R : In Passione S. Ioannis Baptistae, martyris
|
154
|
+
|
155
|
+
= 9
|
156
|
+
3 m : S. Gregorii Magni, papae et Ecclesiae doctoris
|
157
|
+
8 f : In Nativitate B. Mariae Virginis
|
158
|
+
9 : S. Petri Claver, presbyteri
|
159
|
+
12 : Ss.mi Nominis Mariae
|
160
|
+
13 m : S. Ioannis Chrysostomi, episcopi et Ecclesiae doctoris
|
161
|
+
14 f2.5 R : IN EXALTATIONE SANCTAE CRUCIS
|
162
|
+
15 m : B. Mariae Virginis Perdolentis
|
163
|
+
16 m R : Ss. Cornelii, papae, et Cypriani, episcopi, martyrum
|
164
|
+
17 : S. Roberti Bellarmino, episcopi et Ecclesiae doctoris
|
165
|
+
19 R : S. Ianuarii, episcopi et martyris
|
166
|
+
20 m R : Ss. Andreae Kim Tae-gŏn et Pauli Chŏng Ha-sang et sociorum, martyrum
|
167
|
+
21 f R : S. Matthaei, apostoli et evangelistae
|
168
|
+
# what does the asterisk here mean?
|
169
|
+
23 m : S. Pii de Pietrelcina, presbyteri [*]
|
170
|
+
26 R : Ss. Cosmae et Damiani, martyrum
|
171
|
+
27 m : S. Vincentii de Paul, presbyteri
|
172
|
+
28 R : S. Venceslai, martyris
|
173
|
+
28 R : S. Laurentii Ruiz et sociorum, martyrum
|
174
|
+
29 f : Ss. Michaelis, Gabrielis et Raphaelis, archangelorum
|
175
|
+
30 m : S. Hieronymi, presbyteri et Ecclesiae doctoris
|
176
|
+
|
177
|
+
= 10
|
178
|
+
1 m : S. Teresiae a Iesu Infante, virginis et Ecclesiae doctoris
|
179
|
+
2 m : Ss. Angelorum Custodum
|
180
|
+
4 m : S. Francisci Assisiensis
|
181
|
+
6 : S. Brunonis, presbyteri
|
182
|
+
7 m : B. Mariae Virginis a Rosario
|
183
|
+
9 R : Ss. Dionysii, episcopi, et sociorum, martyrum
|
184
|
+
9 : S. Ioannis Leonardi, presbyteri
|
185
|
+
14 R : S. Callisti I, papae et martyris
|
186
|
+
15 m : S. Teresiae a Iesu, virginis et Ecclesiae doctoris
|
187
|
+
16 : S. Hedvigis, religiosae
|
188
|
+
16 : S. Margaritae Mariae Alacoque, virginis
|
189
|
+
17 m R : S. Ignatii Antiocheni, episcopi et martyris
|
190
|
+
18 f R : S. Lucae, evangelistae
|
191
|
+
19 R : Ss. Ioannis de Brébeuf et Isaac Jogues, presbyterorum, et sociorum, martyrum
|
192
|
+
19 : S. Pauli a Cruce, presbyteri
|
193
|
+
23 : S. Ioannis de Capestrano, presbyteri
|
194
|
+
24 : S. Antonii Mariae Claret, episcopi
|
195
|
+
28 f R : Ss. Simonis et Iudae, apostolorum
|
196
|
+
|
197
|
+
= 11
|
198
|
+
1 s : OMNIUM SANCTORUM
|
199
|
+
2 : IN COMMEMORATIONE OMNIUM FIDELIUM DEFUNCTORUM
|
200
|
+
3 R : S. Martini de Porres, religiosi
|
201
|
+
4 m : S. Caroli Borromeo, episcopi
|
202
|
+
9 f : IN DEDICATIONE BASILICAE LATERANENSIS
|
203
|
+
10 m : S. Leonis Magni, papae et Ecclesiae doctoris
|
204
|
+
11 m R : S. Martini Turonensis, episcopi
|
205
|
+
12 m R : S. Iosaphat, episcopi et martyris
|
206
|
+
15 : S. Alberti Magni, episcopi et Ecclesiae doctoris
|
207
|
+
16 : S. Margaritae Scotiae
|
208
|
+
16 : S. Gertrudis, virginis
|
209
|
+
17 m : S. Elisabeth Hungariae, religiosae
|
210
|
+
18 : In Dedicatione basilicarum Ss. Petri et Pauli, apostolorum
|
211
|
+
21 m : In Praesentatione B. Mariae Virginis
|
212
|
+
22 m R : S. Caeciliae, virginis et martyris
|
213
|
+
23 R : S. Clementis I, papae et martyris
|
214
|
+
23 : S. Columbani, abbatis
|
215
|
+
24 m R : Ss. Andreae Dũng Lac, presbyteri, et sociorum, martyrum
|
216
|
+
25 R : S. Catharinae Alexandrinae, virginis et martyris
|
217
|
+
30 f R : S. Andreae, apostoli
|
218
|
+
|
219
|
+
= 12
|
220
|
+
3 m : S. Francisci Xavier, presbyteri
|
221
|
+
4 : S. Ioannis Damasceni, presbyteri et Ecclesiae doctoris
|
222
|
+
6 : S. Nicolai, episcopi
|
223
|
+
7 m : S. Ambrosii, episcopi et Ecclesiae doctoris
|
224
|
+
8 s : IN CONCEPTIONE IMMACULATA BEATAE MARIAE VIRGINIS
|
225
|
+
9 : S. Ioannis Didaci Cuahtlatoatzin [*]
|
226
|
+
11 : S. Damasi I, papae
|
227
|
+
12 : Beatae Mariae Virginis de Guadalupe [*]
|
228
|
+
13 m R : S. Luciae, virginis et martyris
|
229
|
+
14 m : S. Ioannis a Cruce, presbyteri et Ecclesiae doctoris
|
230
|
+
21 : S. Petri Canisii, presbyteri et Ecclesiae doctoris
|
231
|
+
23 : S. Ioannis de Kęty, presbyteri
|
232
|
+
26 f R : S. Stephani, protomartyris
|
233
|
+
27 f : S. Ioannis, apostoli et evangelistae
|
234
|
+
28 f R : Ss. Innocentium, martyrum
|
235
|
+
29 R : S. Thomae Becket, episcopi et martyris
|
236
|
+
31 : S. Silvestri I, papae
|
data/lib/calendarium-romanum.rb
CHANGED
@@ -33,7 +33,7 @@ module CalendariumRomanum
|
|
33
33
|
|
34
34
|
elsif args.size == 1 then
|
35
35
|
a = args.first
|
36
|
-
unless a.is_a? Date
|
36
|
+
unless a.is_a? Date
|
37
37
|
raise ex
|
38
38
|
end
|
39
39
|
return a
|
@@ -75,6 +75,9 @@ module CalendariumRomanum
|
|
75
75
|
return year == obj.year
|
76
76
|
end
|
77
77
|
|
78
|
+
# accepts date information represented as
|
79
|
+
# Date, DateTime, or two to three integers
|
80
|
+
# (month - day or year - month - day);
|
78
81
|
# returns filled Day for the specified day
|
79
82
|
def day(*args)
|
80
83
|
if args.size == 2
|
@@ -0,0 +1,100 @@
|
|
1
|
+
require 'thor'
|
2
|
+
|
3
|
+
module CalendariumRomanum
|
4
|
+
|
5
|
+
class CLI < Thor
|
6
|
+
include CalendariumRomanum::Util
|
7
|
+
|
8
|
+
desc 'query 2007-06-05', 'show calendar information for a specified date'
|
9
|
+
option :calendar, default: 'universal-en', aliases: :c
|
10
|
+
option :locale, default: 'en', aliases: :l
|
11
|
+
def query(date_str=nil)
|
12
|
+
I18n.locale = options[:locale]
|
13
|
+
|
14
|
+
data_file = Data[options[:calendar]]
|
15
|
+
if data_file.nil?
|
16
|
+
STDERR.puts 'Invalid calendar. See subcommand `calendars` for valid options.'
|
17
|
+
exit 1
|
18
|
+
end
|
19
|
+
sanctorale = data_file.load
|
20
|
+
|
21
|
+
date =
|
22
|
+
if date_str
|
23
|
+
begin
|
24
|
+
Date.parse(date_str)
|
25
|
+
rescue ArgumentError
|
26
|
+
STDERR.puts 'Invalid date.'
|
27
|
+
exit 1
|
28
|
+
end
|
29
|
+
else
|
30
|
+
Date.today
|
31
|
+
end
|
32
|
+
calendar = Calendar.for_day(date, sanctorale)
|
33
|
+
day = calendar.day date
|
34
|
+
|
35
|
+
puts date
|
36
|
+
puts "season: #{day.season}"
|
37
|
+
puts
|
38
|
+
|
39
|
+
rank_length = day.celebrations.collect {|c| c.rank.short_desc.size }.max
|
40
|
+
day.celebrations.each do |c|
|
41
|
+
print c.rank.short_desc.rjust(rank_length)
|
42
|
+
print ' : '
|
43
|
+
puts c.title
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
desc 'calendars', 'lists calendars available for querying'
|
48
|
+
def calendars
|
49
|
+
Data.each {|c| puts c.siglum }
|
50
|
+
end
|
51
|
+
|
52
|
+
desc 'errors FILE1, ...', 'finds errors in sanctorale data files'
|
53
|
+
def errors(*files)
|
54
|
+
loader = SanctoraleLoader.new
|
55
|
+
files.each do |path|
|
56
|
+
s = Sanctorale.new
|
57
|
+
loader.load_from_file path, s
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
desc 'cmp FILE1, FILE2', 'detect differences in rank and colour of corresponding celebrations'
|
62
|
+
def cmp(a, b)
|
63
|
+
loader = SanctoraleLoader.new
|
64
|
+
sanctorales = []
|
65
|
+
|
66
|
+
[a, b].each do |source|
|
67
|
+
s = Sanctorale.new
|
68
|
+
loader.load_from_file source, s
|
69
|
+
sanctorales << s
|
70
|
+
end
|
71
|
+
|
72
|
+
# a leap year must be chosen in order to iterate over
|
73
|
+
# all possible days of a Sanctorale
|
74
|
+
Year.new(1990).each_day do |d|
|
75
|
+
celebs = sanctorales.collect {|s| s.get d.month, d.day }
|
76
|
+
if celebs.find {|cc| cc.nil? }
|
77
|
+
next
|
78
|
+
end
|
79
|
+
|
80
|
+
celebs[0].each_index do |i|
|
81
|
+
if i >= celebs[1].size
|
82
|
+
break
|
83
|
+
end
|
84
|
+
|
85
|
+
ca = celebs[0][i]
|
86
|
+
cb = celebs[1][i]
|
87
|
+
|
88
|
+
_print_cel = Proc.new {|c| puts "#{c.rank.priority} #{c.colour} | #{c.title}" }
|
89
|
+
|
90
|
+
if ca.rank != cb.rank || ca.colour != cb.colour
|
91
|
+
puts "#{d.month}/#{d.day}"
|
92
|
+
_print_cel.call ca
|
93
|
+
_print_cel.call cb
|
94
|
+
puts
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module CalendariumRomanum
|
2
|
+
# allows easy access to the bundled data files
|
3
|
+
class Data < Enum
|
4
|
+
|
5
|
+
class SanctoraleFile
|
6
|
+
def initialize(base_name)
|
7
|
+
@siglum = base_name.sub(/\.txt$/, '')
|
8
|
+
@path = File.expand_path('../../data/' + base_name, File.dirname(__FILE__))
|
9
|
+
end
|
10
|
+
|
11
|
+
attr_reader :siglum, :path
|
12
|
+
|
13
|
+
def load
|
14
|
+
SanctoraleLoader.new.load_from_file(@path)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
values(index_by: :siglum) do
|
19
|
+
# only calendars of broader interest have constants defined
|
20
|
+
[
|
21
|
+
GENERAL_ROMAN_LATIN = SanctoraleFile.new('universal-la.txt'),
|
22
|
+
GENERAL_ROMAN_ENGLISH = SanctoraleFile.new('universal-en.txt'),
|
23
|
+
GENERAL_ROMAN_ITALIAN = SanctoraleFile.new('universal-it.txt'),
|
24
|
+
CZECH = SanctoraleFile.new('czech-cs.txt')
|
25
|
+
] \
|
26
|
+
+
|
27
|
+
%w(
|
28
|
+
czech-brno-cs.txt
|
29
|
+
czech-budejovice-cs.txt
|
30
|
+
czech-cechy-cs.txt
|
31
|
+
czech-hradec-cs.txt
|
32
|
+
czech-litomerice-cs.txt
|
33
|
+
czech-morava-cs.txt
|
34
|
+
czech-olomouc-cs.txt
|
35
|
+
czech-ostrava-cs.txt
|
36
|
+
czech-plzen-cs.txt
|
37
|
+
czech-praha-cs.txt
|
38
|
+
).collect {|basename| SanctoraleFile.new(basename) }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -51,7 +51,13 @@ module CalendariumRomanum
|
|
51
51
|
attr_reader :rank
|
52
52
|
def_delegators :@rank, :solemnity?, :feast?, :memorial?
|
53
53
|
|
54
|
-
|
54
|
+
def title
|
55
|
+
if @title.respond_to? :call
|
56
|
+
@title.call
|
57
|
+
else
|
58
|
+
@title
|
59
|
+
end
|
60
|
+
end
|
55
61
|
|
56
62
|
attr_reader :colour
|
57
63
|
alias_method :color, :colour
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'forwardable'
|
2
|
+
|
3
|
+
module CalendariumRomanum
|
4
|
+
# Utility class for definition of enumerated "types"
|
5
|
+
class Enum
|
6
|
+
class << self
|
7
|
+
extend Forwardable
|
8
|
+
|
9
|
+
def values(index_by: nil, &blk)
|
10
|
+
defined?(@indexed) && raise(RuntimeError.new('initialized repeatedly'))
|
11
|
+
|
12
|
+
@indexed = {}
|
13
|
+
@all = yield.freeze
|
14
|
+
|
15
|
+
@all.each_with_index do |val, i|
|
16
|
+
val.freeze
|
17
|
+
|
18
|
+
key = index_by ? val.public_send(index_by) : i
|
19
|
+
@indexed[key] = val
|
20
|
+
end
|
21
|
+
|
22
|
+
@indexed.freeze
|
23
|
+
end
|
24
|
+
|
25
|
+
def all
|
26
|
+
@all
|
27
|
+
end
|
28
|
+
|
29
|
+
def_delegators :@all, :each
|
30
|
+
def_delegators :@indexed, :[]
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|