calendarium-romanum 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/.rubocop.yml +9 -6
  4. data/.travis.yml +2 -1
  5. data/Appraisals +67 -0
  6. data/CHANGELOG.md +57 -0
  7. data/Gemfile +1 -0
  8. data/Gemfile.lock +21 -12
  9. data/README.md +13 -10
  10. data/Rakefile +13 -2
  11. data/calendarium-romanum.gemspec +2 -2
  12. data/config/locales/pt.yml +94 -0
  13. data/data/czech-cs.txt +5 -2
  14. data/data/universal-1969-la.txt +1 -1
  15. data/data/universal-en.txt +5 -2
  16. data/data/universal-es.txt +7 -4
  17. data/data/universal-fr.txt +5 -2
  18. data/data/universal-it.txt +6 -3
  19. data/data/universal-la.txt +102 -99
  20. data/data/universal-pt.txt +248 -0
  21. data/lib/calendarium-romanum.rb +3 -0
  22. data/lib/calendarium-romanum/calendar.rb +13 -11
  23. data/lib/calendarium-romanum/cli.rb +32 -3
  24. data/lib/calendarium-romanum/cli/comparator.rb +22 -2
  25. data/lib/calendarium-romanum/data.rb +2 -0
  26. data/lib/calendarium-romanum/enum.rb +2 -4
  27. data/lib/calendarium-romanum/enums.rb +5 -1
  28. data/lib/calendarium-romanum/sanctorale.rb +51 -1
  29. data/lib/calendarium-romanum/sanctorale_factory.rb +2 -2
  30. data/lib/calendarium-romanum/sanctorale_writer.rb +6 -1
  31. data/lib/calendarium-romanum/temporale.rb +50 -21
  32. data/lib/calendarium-romanum/temporale/date_helper.rb +85 -0
  33. data/lib/calendarium-romanum/temporale/dates.rb +36 -111
  34. data/lib/calendarium-romanum/temporale/extensions/dedication_before_all_saints.rb +1 -1
  35. data/lib/calendarium-romanum/transfers.rb +29 -14
  36. data/lib/calendarium-romanum/version.rb +2 -2
  37. data/liturgical_law/2020_dubia_de_calendario_2022.md +100 -0
  38. metadata +15 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 783786a54e37a2d755c2bc0a0fdf1cf21b684ce5e1f186e180fb8513a7be8a8d
4
- data.tar.gz: 8c4879981d34a5962f604de47ec4d77faf2b63cec5adf2699cfc9d1a718d045f
3
+ metadata.gz: 4190d0074dc4a169e720b277ae04d3de9d81ea34286e0d6003efb51a5a09fe57
4
+ data.tar.gz: b0e1d5fb8b5d51b253a9558efa3e886aba1c0d4e2c1501a62a04121637e5fb1d
5
5
  SHA512:
6
- metadata.gz: ba211f79a4b79ed8169d15871e8630baf2a536182284ec58e851b061a980dd18a9163a8d8749ab8f1f470f2cdec64f5c236710022f8739862d39eb8efd88bcef
7
- data.tar.gz: 7c6be1ff8bee1e4ea3159a7add679dc7b53949dfc086b82fc63335d670f69fdfc4518d020944d3db09a22cfeb6442fe733850adaab29948618a91f3ed93a3e82
6
+ metadata.gz: d961be6997bd1d5f8f266724cb0933bd6cc34bd6b4e1078fb59b91435f2103b3646588da16fd548756960d592fac1e1ff42992c54685925a81593bcadbcd926a
7
+ data.tar.gz: 1402abc3b7663cedb0ddb710886d57783ec39af4fb688c3317c43c5c6e0298134b0bc28297ebafd400871cf6e46b01ec5b480d2fc1ace3789e1a6c05b385bd95
data/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  *~
2
2
  .rvmrc
3
3
  *.gem
4
- coverage/
4
+ coverage/
5
+ .idea/
data/.rubocop.yml CHANGED
@@ -1,10 +1,10 @@
1
1
  Metrics/LineLength:
2
2
  Max: 100
3
3
 
4
- Style/EmptyLinesAroundClassBody:
4
+ Layout/EmptyLinesAroundClassBody:
5
5
  Enabled: false
6
6
 
7
- Style/EmptyLinesAroundModuleBody:
7
+ Layout/EmptyLinesAroundModuleBody:
8
8
  Enabled: false
9
9
 
10
10
  Style/FrozenStringLiteralComment:
@@ -31,16 +31,19 @@ Style/RaiseArgs:
31
31
  Style/RedundantException:
32
32
  Enabled: false
33
33
 
34
- Style/SpaceInsideBlockBraces:
34
+ Layout/SpaceInsideBlockBraces:
35
35
  SpaceBeforeBlockParameters: false
36
36
 
37
- Style/SpaceInsideHashLiteralBraces:
37
+ Layout/SpaceInsideHashLiteralBraces:
38
38
  EnforcedStyle: no_space
39
39
 
40
- Style/SpaceInsideRangeLiteral:
40
+ Layout/SpaceInsideRangeLiteral:
41
41
  Enabled: false
42
42
 
43
- Style/TrailingCommaInLiteral:
43
+ Style/TrailingCommaInArrayLiteral:
44
+ Enabled: false
45
+
46
+ Style/TrailingCommaInHashLiteral:
44
47
  Enabled: false
45
48
 
46
49
  Style/ZeroLengthPredicate:
data/.travis.yml CHANGED
@@ -11,6 +11,7 @@ jobs:
11
11
  - rvm: 2.6.5 # ~ latest MRI
12
12
  script:
13
13
  - bundle exec rake spec_all_locales
14
+ - bundle exec rake data_cmp
14
15
  - bash spec/build/gem_build_test.sh
15
16
  - rvm: 2.5.0 # oldest officially maintained MRI
16
17
  - rvm: 2.0.0 # oldest MRI we support
@@ -19,4 +20,4 @@ jobs:
19
20
  # - rvm: jruby-9.1.12.0
20
21
 
21
22
  git:
22
- depth: 3
23
+ depth: 3
data/Appraisals ADDED
@@ -0,0 +1,67 @@
1
+ ### i18n
2
+
3
+ appraise 'i18n-0.7' do
4
+ gem 'i18n', '0.7.0'
5
+ end
6
+
7
+ appraise 'i18n-0.9' do
8
+ gem 'i18n', '0.9.5'
9
+ end
10
+
11
+ appraise 'i18n-1.0' do
12
+ gem 'i18n', '1.0.0'
13
+ end
14
+
15
+ appraise 'i18n-1.8' do
16
+ gem 'i18n', '1.8.9'
17
+ end
18
+
19
+ ### thor
20
+
21
+ appraise 'thor-0.15' do
22
+ gem 'thor', '0.15.0'
23
+ end
24
+
25
+ appraise 'thor-0.16' do
26
+ gem 'thor', '0.15.0'
27
+ end
28
+
29
+ appraise 'thor-0.17' do
30
+ gem 'thor', '0.17.0'
31
+ end
32
+
33
+ appraise 'thor-0.18' do
34
+ gem 'thor', '0.18.1'
35
+ end
36
+
37
+ appraise 'thor-0.19' do
38
+ gem 'thor', '0.19.4'
39
+ end
40
+
41
+ appraise 'thor-0.20' do
42
+ gem 'thor', '0.20.3'
43
+ end
44
+
45
+ # thor >= 1.0 isn't compatible with our version of aruba; CLI specs are broken,
46
+ # but the CLI itself works well, as can be tested by
47
+ # `bundle exec appraisal thor-1.1 ruby -Ilib bin/calendariumrom ...`
48
+
49
+ # ruby >= 2.4 required
50
+ appraise 'thor-1.0' do
51
+ gem 'thor', '1.0.1'
52
+
53
+ group :test do
54
+ gem 'aruba', '1.0.0'
55
+ gem 'cucumber', '3.0.0'
56
+ end
57
+ end
58
+
59
+ # ruby >= 2.4 required
60
+ appraise 'thor-1.1' do
61
+ gem 'thor', '1.1.0'
62
+
63
+ group :test do
64
+ gem 'aruba', '1.0.0'
65
+ gem 'cucumber', '3.0.0'
66
+ end
67
+ end
data/CHANGELOG.md CHANGED
@@ -1,5 +1,62 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.0] 2021-04-11
4
+
5
+ ### Fixed
6
+
7
+ - `Transfers` + `Calendar`: on collision of two solemnities of
8
+ exactly the same rank (e.g. collision of the solemnities of
9
+ Sacred Heart of Jesus and Birth of St. John the Baptist in 2022)
10
+ the sanctorale one was scheduled both on the original date and
11
+ on the transferred date and the temporale solemnity was not
12
+ scheduled at all
13
+ - liturgical colour of All Souls (has incorrectly been white
14
+ since the beginning of the project, changed to violet)
15
+
16
+ ### Added
17
+
18
+ - data: General Roman Calendar in Portuguese + Portuguese locale (by Tomas Monteiro @tmonteiro2344)
19
+ - data: all calendars: new memorial of St. Martha, Mary and Lazarus
20
+ (replacing memorial of St. Martha alone),
21
+ new optional memorials of St. Gregory of Narek, St. John De Avila
22
+ and St. Hildegard of Bingen
23
+ - `SanctoraleWriter.new`: new optional keyword argument `front_matter`
24
+ - `Calendar.new`: new optional keyword argument `transfers`
25
+ for supplying custom implementation of the solemnity transfer logic
26
+ - `Temporale#provides_celebration?`
27
+ - `Sanctorale#provides_celebration?`, `#by_symbol`, `#merge`
28
+ - CLI: `calendariumrom id` to list celebration symbols included
29
+ in specified sanctorale data file
30
+ - CLI: `calendariumrom merge` to merge two or more sanctorale data files
31
+ - CLI: `calendariumrom cmp` supports new options `--no-rank`,
32
+ `--no-colour`, `--no-symbol` for ignoring differences in the specified
33
+ celebration properties and option `--title` to check for differences
34
+ in title (ignored by default)
35
+
36
+ ### Changed
37
+
38
+ - `Temporale::Dates` methods are defined as instance methods and made
39
+ available as module methods through `extend self` (so far they were
40
+ defined and only available as module methods)
41
+ - `Temporale::Dates`: helper methods `weekday_before`, `weekday_after`,
42
+ `octave_of` and their derivatives extracted to a new module
43
+ `Temporale::DateHelper` (but they are still available on `Temporale::Dates`, too)
44
+ - data: repeated spaces removed from the Latin, Italian and Spanish
45
+ version of the General Roman Calendar (this does not affect behaviour
46
+ of calendarium-romanum itself, but may affect some other applications
47
+ possibly processing the data files directly)
48
+ - `Transfers#call` return value: now it contains not only solemnities
49
+ transferred (and the destination dates), but also the ones winning
50
+ the original date, unless they are of the two highest ranks
51
+ - `Transfer#call`: in case of collision of two solemnities of exactly
52
+ the same rank temporale always wins over sanctorale
53
+ - `Sanctorale#dup` now properly creates for the clone it's own internal
54
+ data structures independent of the original's ones
55
+ - CLI: `calendariumrom cmp` exits with status 1 if any differences are found
56
+ - CLI: `calendariumrom cmp` prints celebration symbol if available
57
+ - runtime dependencies loosenned: we support `thor` already from version 0.15
58
+ and `i18n` from version 0.7
59
+
3
60
  ## [0.8.0] 2020-11-25
4
61
 
5
62
  ### Fixed
data/Gemfile CHANGED
@@ -11,6 +11,7 @@ end
11
11
  group :development do
12
12
  gem 'rubocop'
13
13
  gem 'yard'
14
+ gem 'appraisal'
14
15
  end
15
16
 
16
17
  group :test do
data/Gemfile.lock CHANGED
@@ -1,12 +1,16 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
+ appraisal (2.4.0)
5
+ bundler
6
+ rake
7
+ thor (>= 0.14.0)
4
8
  aruba (0.8.1)
5
9
  childprocess (~> 0.5.6)
6
10
  contracts (~> 0.9)
7
11
  cucumber (>= 1.3.19)
8
12
  rspec-expectations (>= 2.99)
9
- ast (2.3.0)
13
+ ast (2.4.2)
10
14
  backports (3.18.1)
11
15
  builder (3.2.3)
12
16
  childprocess (0.5.9)
@@ -28,14 +32,16 @@ GEM
28
32
  ffi (1.9.18)
29
33
  gherkin (4.1.3)
30
34
  i18n (0.6.9)
35
+ jaro_winkler (1.5.4)
31
36
  json (2.0.2)
32
37
  multi_json (1.12.2)
33
38
  multi_test (0.1.2)
34
- parser (2.4.0.0)
35
- ast (~> 2.2)
36
- powerpack (0.1.1)
37
- rainbow (2.1.0)
39
+ parallel (1.19.2)
40
+ parser (3.0.0.0)
41
+ ast (~> 2.4.1)
42
+ rainbow (3.0.0)
38
43
  rake (12.0.0)
44
+ rexml (3.2.4)
39
45
  roman-numerals (0.3.0)
40
46
  rspec (3.7.0)
41
47
  rspec-core (~> 3.7.0)
@@ -50,26 +56,29 @@ GEM
50
56
  diff-lcs (>= 1.2.0, < 2.0)
51
57
  rspec-support (~> 3.7.0)
52
58
  rspec-support (3.7.0)
53
- rubocop (0.46.0)
54
- parser (>= 2.3.1.1, < 3.0)
55
- powerpack (~> 0.1)
56
- rainbow (>= 1.99.1, < 3.0)
59
+ rubocop (0.81.0)
60
+ jaro_winkler (~> 1.5.1)
61
+ parallel (~> 1.10)
62
+ parser (>= 2.7.0.1)
63
+ rainbow (>= 2.2.2, < 4.0)
64
+ rexml
57
65
  ruby-progressbar (~> 1.7)
58
- unicode-display_width (~> 1.0, >= 1.0.1)
59
- ruby-progressbar (1.8.1)
66
+ unicode-display_width (>= 1.4.0, < 2.0)
67
+ ruby-progressbar (1.11.0)
60
68
  simplecov (0.12.0)
61
69
  docile (~> 1.1.0)
62
70
  json (>= 1.8, < 3)
63
71
  simplecov-html (~> 0.10.0)
64
72
  simplecov-html (0.10.0)
65
73
  thor (0.18.1)
66
- unicode-display_width (1.1.2)
74
+ unicode-display_width (1.7.0)
67
75
  yard (0.9.16)
68
76
 
69
77
  PLATFORMS
70
78
  ruby
71
79
 
72
80
  DEPENDENCIES
81
+ appraisal
73
82
  aruba
74
83
  backports (~> 3.18)
75
84
  cucumber (~> 2.99)
data/README.md CHANGED
@@ -4,6 +4,7 @@
4
4
  [![Gem Version](https://badge.fury.io/rb/calendarium-romanum.svg)](https://badge.fury.io/rb/calendarium-romanum)
5
5
 
6
6
  API documentation:
7
+ [0.8.0](http://www.rubydoc.info/gems/calendarium-romanum/0.9.0)
7
8
  [0.8.0](http://www.rubydoc.info/gems/calendarium-romanum/0.8.0)
8
9
  [0.7.1](http://www.rubydoc.info/gems/calendarium-romanum/0.7.1)
9
10
  [0.6.0](http://www.rubydoc.info/gems/calendarium-romanum/0.6.0)
@@ -85,13 +86,13 @@ the dependency to a particular minor version.
85
86
  In your app's Gemfile
86
87
 
87
88
  ```
88
- gem 'calendarium-romanum', '~>0.8.0'
89
+ gem 'calendarium-romanum', '~>0.9.0'
89
90
  ```
90
91
 
91
92
  or in gemspec of your gem
92
93
 
93
94
  ```
94
- spec.add_dependency 'calendarium-romanum', '~>0.8.0'
95
+ spec.add_dependency 'calendarium-romanum', '~>0.9.0'
95
96
  ```
96
97
 
97
98
  ## Usage
@@ -304,7 +305,7 @@ pcal = CR::PerpetualCalendar.new(cache: my_cache)
304
305
  ### Use prepared data or create your own
305
306
 
306
307
  The gem expects data files following a custom format -
307
- see README in the [data](/data) directory for it's description.
308
+ see README in the [data][data] directory for it's description.
308
309
  The same directory contains a bunch of example data files.
309
310
  (All of them are also bundled in the gem and accessible via
310
311
  `CalendariumRomanum::Data`, as described above.)
@@ -355,7 +356,7 @@ You could copy the file to a new location and add the two proper solemnities,
355
356
  but your programmer better self won't allow you to do that.
356
357
  What options are left? You can create a new sanctorale file
357
358
  with the two proper celebrations and then load it over the calendar
358
- of the diocese, as explained in [data](/data).
359
+ of the diocese, as explained in [data][data].
359
360
  Or, if you need the calendar just for that single little script
360
361
  and don't care about creating data files, you can build the two
361
362
  proper solemnities in code:
@@ -530,7 +531,7 @@ modify global configuration in order to make the internationalization
530
531
  easily and conveniently work.
531
532
  If your application requires `calendarium-romanum` to handle
532
533
  languages not bundled in the gem, or if you don't like the default
533
- translations, just prepare a [translation file](/config/locales),
534
+ translations, just prepare a [translation file][translations],
534
535
  put it anywhere in your project's tree
535
536
  and add it's path to `I18n.config.load_path`.
536
537
  If, on the other hand, even the officially supported languages
@@ -582,15 +583,17 @@ Get the sources and install development depencencies:
582
583
 
583
584
  ### Run Tests
584
585
 
585
- `bundle exec rake spec`
586
-
587
- See also `.travis.yml` for comprehensive tests run on the CI.
586
+ - `bundle exec rake spec` to execute the test suite
587
+ - `bundle exec rake spec_all_locales` to run the test suite for each of the supported locales
588
+ - `bundle exec appraisal rake spec` to test compatibility with different versions of dependencies
589
+ - `bash spec/build/gem_build_test.sh` to test that a valid working Ruby gem can be built from the sources
588
590
 
589
591
  [awesomecc]: https://github.com/calendarium-romanum/awesome-church-calendar
590
592
  [gnlyc]: https://www.ewtn.com/catholicism/library/liturgical-year-2193
591
593
  [i18n]: https://github.com/svenfuchs/i18n
592
- [translations]: /tree/master/config/locales
593
- [liturgical_law]: /tree/master/liturgical_law
594
+ [translations]: /config/locales
595
+ [liturgical_law]: /liturgical_law
596
+ [data]: /data
594
597
  [module-included]: http://ruby-doc.org/core-2.2.2/Module.html#method-i-included
595
598
  [calrom]: https://github.com/calendarium-romanum/calrom
596
599
  [crhistorical]: https://github.com/calendarium-romanum/historical
data/Rakefile CHANGED
@@ -1,9 +1,11 @@
1
1
  require 'rspec/core/rake_task'
2
2
  RSpec::Core::RakeTask.new(:spec)
3
3
 
4
+ EXECUTABLE = 'ruby -Ilib bin/calendariumrom'
5
+
4
6
  desc 'Run specs with each fully supported locale'
5
7
  task :spec_all_locales do
6
- %w(en la cs fr it).each do |locale|
8
+ %w(en la cs fr it pt).each do |locale|
7
9
  sh "LOCALE=#{locale} rake spec"
8
10
  end
9
11
  end
@@ -11,6 +13,15 @@ end
11
13
  desc 'Generates calendar dumps for regression tests anew'
12
14
  task :regression_refresh do
13
15
  2020.upto(2030).each do |year|
14
- sh "ruby -Ilib bin/calendariumrom dump #{year} > spec/regression_dumps/#{year}.txt"
16
+ sh "#{EXECUTABLE} dump #{year} > spec/regression_dumps/#{year}.txt"
17
+ end
18
+ end
19
+
20
+ desc 'Checks that all versions of the General Roman Calendar are the same'
21
+ task :data_cmp do
22
+ vernacular = Dir['data/universal-*.txt'].delete_if {|f| f.end_with? '-la.txt' }
23
+
24
+ vernacular.each do |f|
25
+ sh "#{EXECUTABLE} cmp data/universal-la.txt #{f}"
15
26
  end
16
27
  end
@@ -23,8 +23,8 @@ Gem::Specification.new do |s|
23
23
 
24
24
  s.required_ruby_version = '>= 2.0'
25
25
 
26
- s.add_dependency 'thor', '~> 0.18'
27
- s.add_dependency 'i18n', '~> 0.6'
26
+ s.add_dependency 'thor', '>= 0.15'
27
+ s.add_dependency 'i18n', '>= 0.7'
28
28
  s.add_dependency 'roman-numerals', '~> 0.3'
29
29
  s.add_development_dependency 'rake', '~> 12.0'
30
30
  s.add_development_dependency 'rspec', '~> 3.5'
@@ -0,0 +1,94 @@
1
+ pt:
2
+ temporale:
3
+ season:
4
+ advent: Tempo do Advento
5
+ christmas: Tempo do Natal
6
+ lent: Tempo da Quaresma
7
+ triduum: Tríduo Pascal
8
+ easter: Tempo Pascal
9
+ ordinary: Tempo Comum
10
+ solemnity:
11
+ nativity: Natal do Senhor
12
+ holy_family: "Sagrada Família de Jesus, Maria e José"
13
+ mother_of_god: Oitava do Natal. Santa Maria Mãe de Deus
14
+ epiphany: Epifania do Senhor
15
+ baptism_of_lord: Baptismo do Senhor
16
+ ash_wednesday: Quarta-feira de cinzas
17
+ palm_sunday: Domingo de Ramos na Paixão do Senhor
18
+ good_friday: Sexta-feira da Paixão do Senhor
19
+ holy_saturday: Sábado Santo
20
+ easter_sunday: Domingo de Páscoa da Ressureição do Senhor
21
+ ascension: Ascensão do Senhor
22
+ pentecost: Domingo de Pentecostes
23
+ holy_trinity: Santíssima Trindade
24
+ corpus_christi: Santíssimo Corpo e Sangue de Cristo
25
+ sacred_heart: Sagrado Coração de Jesus
26
+ mother_of_church: Maria Mãe da Igreja
27
+ immaculate_heart: Coração Imaculado de Maria
28
+ christ_king: "Nosso Senhor Jesus Cristo, Rei do Universo"
29
+ saturday_memorial_bvm: Santa Maria no Sábado
30
+ extension:
31
+ christ_eternal_priest: "Nosso Senhor Jesus Cristo, Sumo e Eterno Sacerdote"
32
+ dedication: Aniversário da dedicação da Igreja
33
+ ordinary:
34
+ sunday: '%{week}º Domingo do Tempo Comum'
35
+ ferial: '%{weekday} da %{week}ª semana do Tempo Comum'
36
+ advent:
37
+ sunday: '%{week}º Domingo do Advento'
38
+ ferial: '%{weekday} da %{week}ª semana do Advento'
39
+ before_christmas: '%{day} de Dezembro'
40
+ christmas:
41
+ nativity_octave:
42
+ ferial: '%{day} na Oitava do Natal'
43
+ sunday: '%{week}º Domingo do Tempo do Natal'
44
+ ferial: '%{weekday} da %{week}ª semana do Tempo do Natal'
45
+ after_epiphany:
46
+ ferial: '%{weekday} depois da Epifania do Senhor'
47
+ lent:
48
+ after_ashes:
49
+ ferial: '%{weekday} depois das Cinzas'
50
+ sunday: '%{week}º Domingo da Quaresma'
51
+ ferial: '%{weekday} da %{week}ª semana da Quaresma'
52
+ holy_week:
53
+ ferial: '%{weekday} da Semana Santa'
54
+ easter:
55
+ octave:
56
+ ferial: '%{weekday} da Oitava da Páscoa'
57
+ sunday: '%{week}º Domingo do Tempo Pascal'
58
+ ferial: '%{weekday} da %{week}ª semana do Tempo Pascal'
59
+ rank:
60
+ '1_1': Tríduo Pascal
61
+ '1_2': Dias litúrgicos primários
62
+ '1_3': Solenidades no Calendário Geral
63
+ '1_4': Solenidades
64
+ '2_5': Festas do Senhor no Calendário Geral
65
+ '2_6': Domingos não-privilegiados
66
+ '2_7': Festas de Santos no Calendário Geral
67
+ '2_8': Festas
68
+ '2_9': Dias Privilegiados
69
+ '3_10': Memórias Obrigatórias no Calendário Geral
70
+ '3_11': Memórias Obrigatórias
71
+ '3_12': Memórias Facultativas
72
+ '3_13': Dias feriais
73
+ '4_0': Comemorações
74
+ short:
75
+ solemnity: solenidade
76
+ feast: festa
77
+ sunday: domingo
78
+ memorial: memória
79
+ memorial_opt: memória facultativa
80
+ ferial: dia ferial
81
+ commemoration: comemoração
82
+ weekday:
83
+ '0': Domingo
84
+ '1': Segunda-feira
85
+ '2': Terça-feira
86
+ '3': Quarta-feira
87
+ '4': Quinta-feira
88
+ '5': Sexta-feira
89
+ '6': Sábado
90
+ colour:
91
+ violet: roxo
92
+ white: branco
93
+ green: verde
94
+ red: vermelho