holidays 11.3.0 → 11.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/lib/generated_definitions/MANIFEST +2 -0
  4. data/lib/generated_definitions/REGIONS.rb +3 -3
  5. data/lib/generated_definitions/ar.rb +1 -18
  6. data/lib/generated_definitions/at.rb +1 -3
  7. data/lib/generated_definitions/au.rb +1 -86
  8. data/lib/generated_definitions/be_fr.rb +1 -3
  9. data/lib/generated_definitions/be_nl.rb +1 -3
  10. data/lib/generated_definitions/bg.rb +1 -3
  11. data/lib/generated_definitions/br.rb +1 -3
  12. data/lib/generated_definitions/by.rb +39 -0
  13. data/lib/generated_definitions/ca.rb +4 -14
  14. data/lib/generated_definitions/ch.rb +1 -48
  15. data/lib/generated_definitions/cl.rb +1 -33
  16. data/lib/generated_definitions/cn.rb +39 -0
  17. data/lib/generated_definitions/co.rb +10 -90
  18. data/lib/generated_definitions/cr.rb +1 -3
  19. data/lib/generated_definitions/cy.rb +1 -3
  20. data/lib/generated_definitions/cz.rb +1 -3
  21. data/lib/generated_definitions/de.rb +2 -14
  22. data/lib/generated_definitions/dk.rb +1 -3
  23. data/lib/generated_definitions/ecbtarget.rb +1 -3
  24. data/lib/generated_definitions/ee.rb +1 -3
  25. data/lib/generated_definitions/es.rb +2 -4
  26. data/lib/generated_definitions/europe.rb +5 -95
  27. data/lib/generated_definitions/federalreserve.rb +1 -3
  28. data/lib/generated_definitions/federalreservebanks.rb +1 -3
  29. data/lib/generated_definitions/fedex.rb +1 -7
  30. data/lib/generated_definitions/fi.rb +1 -25
  31. data/lib/generated_definitions/fr.rb +1 -3
  32. data/lib/generated_definitions/gb.rb +1 -3
  33. data/lib/generated_definitions/ge.rb +1 -3
  34. data/lib/generated_definitions/gr.rb +1 -3
  35. data/lib/generated_definitions/hk.rb +1 -3
  36. data/lib/generated_definitions/hr.rb +1 -3
  37. data/lib/generated_definitions/hu.rb +1 -3
  38. data/lib/generated_definitions/ie.rb +1 -12
  39. data/lib/generated_definitions/il.rb +1 -3
  40. data/lib/generated_definitions/in.rb +1 -3
  41. data/lib/generated_definitions/is.rb +1 -13
  42. data/lib/generated_definitions/it.rb +1 -3
  43. data/lib/generated_definitions/jp.rb +1 -95
  44. data/lib/generated_definitions/ke.rb +1 -3
  45. data/lib/generated_definitions/kr.rb +4 -6
  46. data/lib/generated_definitions/kz.rb +1 -3
  47. data/lib/generated_definitions/li.rb +1 -3
  48. data/lib/generated_definitions/lt.rb +1 -3
  49. data/lib/generated_definitions/lu.rb +1 -3
  50. data/lib/generated_definitions/lv.rb +1 -17
  51. data/lib/generated_definitions/ma.rb +1 -3
  52. data/lib/generated_definitions/mc.rb +1 -3
  53. data/lib/generated_definitions/mt_en.rb +1 -3
  54. data/lib/generated_definitions/mt_mt.rb +1 -3
  55. data/lib/generated_definitions/mx.rb +4 -4
  56. data/lib/generated_definitions/my.rb +1 -3
  57. data/lib/generated_definitions/nerc.rb +1 -3
  58. data/lib/generated_definitions/ng.rb +1 -3
  59. data/lib/generated_definitions/nl.rb +1 -3
  60. data/lib/generated_definitions/no.rb +1 -3
  61. data/lib/generated_definitions/northamerica.rb +4 -97
  62. data/lib/generated_definitions/nyse.rb +1 -3
  63. data/lib/generated_definitions/nz.rb +4 -70
  64. data/lib/generated_definitions/pe.rb +12 -10
  65. data/lib/generated_definitions/ph.rb +1 -9
  66. data/lib/generated_definitions/pl.rb +1 -3
  67. data/lib/generated_definitions/pt.rb +1 -3
  68. data/lib/generated_definitions/ro.rb +3 -5
  69. data/lib/generated_definitions/rs_cyrl.rb +1 -3
  70. data/lib/generated_definitions/rs_la.rb +1 -3
  71. data/lib/generated_definitions/ru.rb +1 -3
  72. data/lib/generated_definitions/scandinavia.rb +1 -47
  73. data/lib/generated_definitions/se.rb +1 -15
  74. data/lib/generated_definitions/sg.rb +1 -3
  75. data/lib/generated_definitions/si.rb +1 -3
  76. data/lib/generated_definitions/sk.rb +1 -3
  77. data/lib/generated_definitions/southamerica.rb +18 -139
  78. data/lib/generated_definitions/th.rb +1 -3
  79. data/lib/generated_definitions/tn.rb +1 -3
  80. data/lib/generated_definitions/tr.rb +1 -29
  81. data/lib/generated_definitions/tsx.rb +1 -13
  82. data/lib/generated_definitions/ua.rb +1 -3
  83. data/lib/generated_definitions/unitednations.rb +1 -3
  84. data/lib/generated_definitions/ups.rb +1 -7
  85. data/lib/generated_definitions/us.rb +4 -87
  86. data/lib/generated_definitions/ve.rb +1 -3
  87. data/lib/generated_definitions/vn.rb +1 -3
  88. data/lib/generated_definitions/za.rb +1 -3
  89. data/lib/holidays/{load_all_definitions.rb → bootstrap.rb} +15 -8
  90. data/lib/holidays/date_calculator/lunar_date.rb +1 -0
  91. data/lib/holidays/definition/context/generator.rb +4 -0
  92. data/lib/holidays/definition/custom_methods/ar.rb +28 -0
  93. data/lib/holidays/definition/custom_methods/au.rb +96 -0
  94. data/lib/holidays/definition/custom_methods/ca.rb +23 -0
  95. data/lib/holidays/definition/custom_methods/ch.rb +58 -0
  96. data/lib/holidays/definition/custom_methods/cl.rb +43 -0
  97. data/lib/holidays/definition/custom_methods/cn.rb +31 -0
  98. data/lib/holidays/definition/custom_methods/co.rb +22 -0
  99. data/lib/holidays/definition/custom_methods/de.rb +23 -0
  100. data/lib/holidays/definition/custom_methods/fedex.rb +17 -0
  101. data/lib/holidays/definition/custom_methods/fi.rb +35 -0
  102. data/lib/holidays/definition/custom_methods/ie.rb +22 -0
  103. data/lib/holidays/definition/custom_methods/is.rb +23 -0
  104. data/lib/holidays/definition/custom_methods/jp.rb +107 -0
  105. data/lib/holidays/definition/custom_methods/kr.rb +17 -0
  106. data/lib/holidays/definition/custom_methods/lv.rb +27 -0
  107. data/lib/holidays/definition/custom_methods/nz.rb +77 -0
  108. data/lib/holidays/definition/custom_methods/ph.rb +19 -0
  109. data/lib/holidays/definition/custom_methods/registry.rb +103 -0
  110. data/lib/holidays/definition/custom_methods/se.rb +25 -0
  111. data/lib/holidays/definition/custom_methods/tr.rb +59 -0
  112. data/lib/holidays/definition/custom_methods/us.rb +92 -0
  113. data/lib/holidays/definition/generator/module.rb +7 -4
  114. data/lib/holidays/version.rb +1 -1
  115. data/lib/holidays.rb +4 -2
  116. metadata +25 -2
@@ -29,9 +29,7 @@ module Holidays
29
29
  end
30
30
 
31
31
  def self.custom_methods
32
- {
33
-
34
- }
32
+ {}
35
33
  end
36
34
  end
37
35
  end
@@ -28,7 +28,7 @@ module Holidays
28
28
  3 => [{:mday => 8, :year_ranges => { :from => 2019 },:name => "Internationaler Frauentag", :regions => [:de_be]},
29
29
  {:mday => 8, :year_ranges => { :from => 2023 },:name => "Internationaler Frauentag", :regions => [:de_mv]}],
30
30
  5 => [{:mday => 1, :year_ranges => { :from => 1933 },:name => "Tag der Arbeit", :regions => [:de]},
31
- {:mday => 8, :year_ranges => { :limited => [2020] },:name => "Tag der Befreiung", :regions => [:de_be]}],
31
+ {:mday => 8, :year_ranges => { :limited => [2020, 2025] },:name => "Tag der Befreiung", :regions => [:de_be]}],
32
32
  6 => [{:mday => 17, :year_ranges => { :between => 1954..1990 },:name => "Tag der Deutschen Einheit", :regions => [:de]},
33
33
  {:mday => 17, :year_ranges => { :limited => [2028] },:name => "Jahrestag des Volksaufstands in der DDR", :regions => [:de_be]}],
34
34
  8 => [{:mday => 15, :name => "Mariä Himmelfahrt", :regions => [:de_by_cath, :de_by_augsburg, :de_sl]},
@@ -51,19 +51,7 @@ module Holidays
51
51
  end
52
52
 
53
53
  def self.custom_methods
54
- {
55
- "de_buss_und_bettag(year)" => Proc.new { |year|
56
- date = Date.civil(year,11,23)
57
- if date.wday > 3
58
- date -= (date.wday - 3)
59
- else
60
- date -= (date.wday + 4)
61
- end
62
- date
63
- },
64
-
65
-
66
- }
54
+ {}
67
55
  end
68
56
  end
69
57
  end
@@ -40,9 +40,7 @@ module Holidays
40
40
  end
41
41
 
42
42
  def self.custom_methods
43
- {
44
-
45
- }
43
+ {}
46
44
  end
47
45
  end
48
46
  end
@@ -22,9 +22,7 @@ module Holidays
22
22
  end
23
23
 
24
24
  def self.custom_methods
25
- {
26
-
27
- }
25
+ {}
28
26
  end
29
27
  end
30
28
  end
@@ -28,9 +28,7 @@ module Holidays
28
28
  end
29
29
 
30
30
  def self.custom_methods
31
- {
32
-
33
- }
31
+ {}
34
32
  end
35
33
  end
36
34
  end
@@ -30,7 +30,7 @@ module Holidays
30
30
  6 => [{:mday => 9, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de la Región de Murcia", :regions => [:es_mu]},
31
31
  {:mday => 9, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de La Rioja", :regions => [:es_lo]},
32
32
  {:mday => 24, :name => "San Juan", :regions => [:es_ct, :es_vc]}],
33
- 7 => [{:mday => 23, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Santiago Apostol", :regions => [:es_ga]}],
33
+ 7 => [{:mday => 25, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Santiago Apostol", :regions => [:es_ga]}],
34
34
  8 => [{:mday => 15, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Asunción", :regions => [:es]}],
35
35
  9 => [{:mday => 2, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de Ceuta", :regions => [:es_ce]},
36
36
  {:mday => 8, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de Asturias", :regions => [:es_o]},
@@ -48,9 +48,7 @@ module Holidays
48
48
  end
49
49
 
50
50
  def self.custom_methods
51
- {
52
-
53
- }
51
+ {}
54
52
  end
55
53
  end
56
54
  end
@@ -201,8 +201,8 @@ module Holidays
201
201
  {:mday => 1, :name => "Ano Novo", :regions => [:pt]},
202
202
  {:mday => 1, :name => "Anul nou", :regions => [:ro]},
203
203
  {:mday => 2, :name => "Anul nou", :regions => [:ro]},
204
- {:mday => 6, :name => "Botezul Domnului - Boboteaza", :regions => [:ro]},
205
- {:mday => 7, :name => "Soborul Sfântului Proroc Ioan Botezătorul", :regions => [:ro]},
204
+ {:mday => 6, :year_ranges => { :from => 2024 },:name => "Botezul Domnului - Boboteaza", :regions => [:ro]},
205
+ {:mday => 7, :year_ranges => { :from => 2024 },:name => "Soborul Sfântului Proroc Ioan Botezătorul", :regions => [:ro]},
206
206
  {:mday => 24, :year_ranges => { :from => 2017 },:name => "Unirea Principatelor Române", :regions => [:ro]},
207
207
  {:mday => 1, :name => "Nový rok", :regions => [:sk]},
208
208
  {:mday => 6, :name => "Zjavenie Pána (Traja králi)", :regions => [:sk]},
@@ -221,7 +221,7 @@ module Holidays
221
221
  {:mday => 1, :type => :informal, :name => "Arbejdernes kampdag", :regions => [:dk]},
222
222
  {:mday => 5, :type => :informal, :name => "Danmarks befrielse", :regions => [:dk]},
223
223
  {:mday => 1, :year_ranges => { :from => 1933 },:name => "Tag der Arbeit", :regions => [:de]},
224
- {:mday => 8, :year_ranges => { :limited => [2020] },:name => "Tag der Befreiung", :regions => [:de_be]},
224
+ {:mday => 8, :year_ranges => { :limited => [2020, 2025] },:name => "Tag der Befreiung", :regions => [:de_be]},
225
225
  {:mday => 1, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día del Trabajador", :regions => [:es]},
226
226
  {:mday => 2, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Fiesta de la Comunidad", :regions => [:es_m]},
227
227
  {:mday => 30, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de las Canarias", :regions => [:es_cn]},
@@ -450,7 +450,7 @@ module Holidays
450
450
  {:mday => 21, :name => "Nationale Feestdag", :regions => [:be_nl]},
451
451
  {:mday => 5, :name => "Den slovanských věrozvěstů Cyrila a Metoděje", :regions => [:cz]},
452
452
  {:mday => 6, :name => "Den upálení mistra Jana Husa", :regions => [:cz]},
453
- {:mday => 23, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Santiago Apostol", :regions => [:es_ga]},
453
+ {:mday => 25, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Santiago Apostol", :regions => [:es_ga]},
454
454
  {:mday => 14, :name => "Fête nationale", :regions => [:fr]},
455
455
  {:mday => 5, :name => "Tynwald Day", :regions => [:im, :gb_iom]},
456
456
  {:mday => 12, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Battle of the Boyne", :regions => [:gb_nir]},
@@ -555,97 +555,7 @@ module Holidays
555
555
  end
556
556
 
557
557
  def self.custom_methods
558
- {
559
- "ch_vd_lundi_du_jeune_federal(year)" => Proc.new { |year|
560
- date = Date.civil(year,9,1)
561
- # Find the first Sunday of September
562
- until date.wday.eql? 0 do
563
- date += 1
564
- end
565
- # There are 15 days between the first Sunday
566
- # and the Monday after the third Sunday
567
- date + 15
568
- },
569
-
570
- "ch_ge_jeune_genevois(year)" => Proc.new { |year|
571
- date = Date.civil(year,9,1)
572
- # Find the first Sunday of September
573
- until date.wday.eql? 0 do
574
- date += 1
575
- end
576
- # Thursday is four days after Sunday
577
- date + 4
578
- },
579
-
580
- "ch_gl_naefelser_fahrt(year)" => Proc.new { |year|
581
- date = Date.civil(year,4,1)
582
- # Find the first Thursday of April
583
- until date.wday.eql? 4 do
584
- date += 1
585
- end
586
-
587
- if date.eql?(Holidays::Factory::DateCalculator::Easter::Gregorian.easter_calculator.calculate_easter_for(year)-3)
588
- date += 7
589
- end
590
- date
591
- },
592
-
593
- "ch_be_zibelemaerit(year)" => Proc.new { |year|
594
- date = Date.civil(year,11,1)
595
- # Find the first Monday of November
596
- until date.wday.eql? 1 do
597
- date += 1
598
- end
599
- # There are 21 days between the first monday
600
- # and the 4rth Monday after
601
- date + 21
602
- },
603
-
604
- "de_buss_und_bettag(year)" => Proc.new { |year|
605
- date = Date.civil(year,11,23)
606
- if date.wday > 3
607
- date -= (date.wday - 3)
608
- else
609
- date -= (date.wday + 4)
610
- end
611
- date
612
- },
613
-
614
- "ie_st_brigids_day(year)" => Proc.new { |year|
615
- date = Date.civil(year, 2, 1)
616
- if date.wday == 5
617
- date
618
- else
619
- date + ((1 - date.wday) % 7)
620
- end
621
- },
622
-
623
- "is_sumardagurinn_fyrsti(year)" => Proc.new { |year|
624
- date = Date.civil(year,4,18)
625
- if date.wday < 4
626
- date += (4 - date.wday)
627
- else
628
- date += (11 - date.wday)
629
- end
630
- date
631
- },
632
-
633
- "lv_song_and_dance_festival_end_date(year)" => Proc.new { |year|
634
- case year
635
- when 2018
636
- # https://likumi.lv/ta/id/281541 (Ministru kabineta rīkojums Nr. 252 "Par XXVI Vispārējo latviešu dziesmu un XVI Deju svētku norises laiku")
637
- Date.new(2018, 7, 8)
638
- when 2023
639
- # https://likumi.lv/ta/id/330067 (Ministru kabineta rīkojums Nr. 92 "Par XXVII Vispārējo latviešu dziesmu un XVII Deju svētku norises laiku")
640
- Date.new(2023, 7, 9)
641
- when 2028
642
- # Event's period/next year is known, but precise dates aren't.
643
- # Previously, dates were announced 2 years ahead, so on ~2026-05 this method would need to be revisited.
644
- end
645
- },
646
-
647
-
648
- }
558
+ {}
649
559
  end
650
560
  end
651
561
  end
@@ -27,9 +27,7 @@ module Holidays
27
27
  end
28
28
 
29
29
  def self.custom_methods
30
- {
31
-
32
- }
30
+ {}
33
31
  end
34
32
  end
35
33
  end
@@ -27,9 +27,7 @@ module Holidays
27
27
  end
28
28
 
29
29
  def self.custom_methods
30
- {
31
-
32
- }
30
+ {}
33
31
  end
34
32
  end
35
33
  end
@@ -24,13 +24,7 @@ module Holidays
24
24
  end
25
25
 
26
26
  def self.custom_methods
27
- {
28
- "day_after_thanksgiving(year)" => Proc.new { |year|
29
- Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 11, 4, 4) + 1
30
- },
31
-
32
-
33
- }
27
+ {}
34
28
  end
35
29
  end
36
30
  end
@@ -31,31 +31,7 @@ module Holidays
31
31
  end
32
32
 
33
33
  def self.custom_methods
34
- {
35
- "fi_juhannusaatto(year)" => Proc.new { |year|
36
- date = Date.civil(year,6,19)
37
- if date.wday > 5 #if 19.6 is saturday
38
- date += 6
39
- else
40
- date += (5 - date.wday)
41
- end
42
- date
43
- },
44
-
45
- "fi_juhannuspaiva(year)" => Proc.new { |year|
46
- date = Date.civil(year,6,20)
47
- date += (6 - date.wday)
48
- date
49
- },
50
-
51
- "fi_pyhainpaiva(year)" => Proc.new { |year|
52
- date = Date.civil(year,10,31)
53
- date += (6 - date.wday)
54
- date
55
- },
56
-
57
-
58
- }
34
+ {}
59
35
  end
60
36
  end
61
37
  end
@@ -31,9 +31,7 @@ module Holidays
31
31
  end
32
32
 
33
33
  def self.custom_methods
34
- {
35
-
36
- }
34
+ {}
37
35
  end
38
36
  end
39
37
  end
@@ -44,9 +44,7 @@ module Holidays
44
44
  end
45
45
 
46
46
  def self.custom_methods
47
- {
48
-
49
- }
47
+ {}
50
48
  end
51
49
  end
52
50
  end
@@ -33,9 +33,7 @@ module Holidays
33
33
  end
34
34
 
35
35
  def self.custom_methods
36
- {
37
-
38
- }
36
+ {}
39
37
  end
40
38
  end
41
39
  end
@@ -30,9 +30,7 @@ module Holidays
30
30
  end
31
31
 
32
32
  def self.custom_methods
33
- {
34
-
35
- }
33
+ {}
36
34
  end
37
35
  end
38
36
  end
@@ -33,9 +33,7 @@ module Holidays
33
33
  end
34
34
 
35
35
  def self.custom_methods
36
- {
37
-
38
- }
36
+ {}
39
37
  end
40
38
  end
41
39
  end
@@ -32,9 +32,7 @@ module Holidays
32
32
  end
33
33
 
34
34
  def self.custom_methods
35
- {
36
-
37
- }
35
+ {}
38
36
  end
39
37
  end
40
38
  end
@@ -27,9 +27,7 @@ module Holidays
27
27
  end
28
28
 
29
29
  def self.custom_methods
30
- {
31
-
32
- }
30
+ {}
33
31
  end
34
32
  end
35
33
  end
@@ -26,18 +26,7 @@ module Holidays
26
26
  end
27
27
 
28
28
  def self.custom_methods
29
- {
30
- "ie_st_brigids_day(year)" => Proc.new { |year|
31
- date = Date.civil(year, 2, 1)
32
- if date.wday == 5
33
- date
34
- else
35
- date + ((1 - date.wday) % 7)
36
- end
37
- },
38
-
39
-
40
- }
29
+ {}
41
30
  end
42
31
  end
43
32
  end
@@ -66,9 +66,7 @@ module Holidays
66
66
  end
67
67
 
68
68
  def self.custom_methods
69
- {
70
-
71
- }
69
+ {}
72
70
  end
73
71
  end
74
72
  end
@@ -56,9 +56,7 @@ module Holidays
56
56
  end
57
57
 
58
58
  def self.custom_methods
59
- {
60
-
61
- }
59
+ {}
62
60
  end
63
61
  end
64
62
  end
@@ -42,19 +42,7 @@ module Holidays
42
42
  end
43
43
 
44
44
  def self.custom_methods
45
- {
46
- "is_sumardagurinn_fyrsti(year)" => Proc.new { |year|
47
- date = Date.civil(year,4,18)
48
- if date.wday < 4
49
- date += (4 - date.wday)
50
- else
51
- date += (11 - date.wday)
52
- end
53
- date
54
- },
55
-
56
-
57
- }
45
+ {}
58
46
  end
59
47
  end
60
48
  end
@@ -38,9 +38,7 @@ module Holidays
38
38
  end
39
39
 
40
40
  def self.custom_methods
41
- {
42
-
43
- }
41
+ {}
44
42
  end
45
43
  end
46
44
  end
@@ -66,101 +66,7 @@ module Holidays
66
66
  end
67
67
 
68
68
  def self.custom_methods
69
- {
70
- "jp_health_sports_day_substitute(year)" => Proc.new { |year|
71
- Holidays::Factory::Definition.custom_methods_repository.find("jp_substitute_holiday(year, month, day)").call(year, 10, Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 10, 2, 1))
72
- },
73
-
74
- "jp_vernal_equinox_day(year)" => Proc.new { |year|
75
- day =
76
- case year
77
- when 1851..1899
78
- 19.8277
79
- when 1900..1979
80
- 20.8357
81
- when 1980..2099
82
- 20.8431
83
- when 2100..2150
84
- 21.8510
85
- else
86
- raise IndexError.new("Out of range")
87
- end
88
- day += 0.242194 * (year - 1980) - ((year - 1980)/4).floor
89
- day = day.floor
90
- Date.civil(year, 3, day)
91
- },
92
-
93
- "jp_vernal_equinox_day_substitute(year)" => Proc.new { |year|
94
- date = Holidays::Factory::Definition.custom_methods_repository.find("jp_vernal_equinox_day(year)").call(year)
95
- Holidays::Factory::Definition.custom_methods_repository.find("jp_substitute_holiday(year, month, day)").call(year, date.month, date.mday)
96
- },
97
-
98
- "jp_marine_day_substitute(year)" => Proc.new { |year|
99
- Holidays::Factory::Definition.custom_methods_repository.find("jp_substitute_holiday(year, month, day)").call(year, 7, Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 7, 3, 1))
100
- },
101
-
102
- "jp_national_culture_day(year)" => Proc.new { |year|
103
- day =
104
- case year
105
- when 1851..1899
106
- 22.2588
107
- when 1900..1979
108
- 23.2588
109
- when 1980..2099
110
- 23.2488
111
- when 2100..2150
112
- 24.2488
113
- else
114
- raise IndexError.new("Out of range")
115
- end
116
- day += 0.242194 * (year - 1980) - ((year - 1980)/4).floor
117
- day = day.floor
118
- Date.civil(year, 9, day)
119
- },
120
-
121
- "jp_national_culture_day_substitute(year)" => Proc.new { |year|
122
- date = Holidays::Factory::Definition.custom_methods_repository.find("jp_national_culture_day(year)").call(year)
123
- Holidays::Factory::Definition.custom_methods_repository.find("jp_substitute_holiday(year, month, day)").call(year, date.month, date.mday)
124
- },
125
-
126
- "jp_citizens_holiday(year)" => Proc.new { |year|
127
- ncd = Holidays::Factory::Definition.custom_methods_repository.find("jp_national_culture_day(year)").call(year)
128
- if ncd.wday == 3
129
- ncd - 1
130
- else
131
- nil
132
- end
133
- },
134
-
135
- "jp_mountain_holiday(year)" => Proc.new { |year|
136
- Date.civil(year, 8, 11)
137
- },
138
-
139
- "jp_mountain_holiday_substitute(year)" => Proc.new { |year|
140
- date = Holidays::Factory::Definition.custom_methods_repository.find("jp_mountain_holiday(year)").call(year)
141
- Holidays::Factory::Definition.custom_methods_repository.find("jp_substitute_holiday(year, month, day)").call(year, date.month, date.mday)
142
- },
143
-
144
- "jp_respect_for_aged_holiday_substitute(year)" => Proc.new { |year|
145
- Holidays::Factory::Definition.custom_methods_repository.find("jp_substitute_holiday(year, month, day)").call(year, 9, Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 9, 3, 1))
146
- },
147
-
148
- "jp_substitute_holiday(year, month, day)" => Proc.new { |year, month, day|
149
- date = Date.civil(year, month, day)
150
- date.wday == 0 ? (Holidays::Factory::Definition.custom_methods_repository.find("jp_next_weekday(date)").call(date+1)) : nil
151
- },
152
-
153
- "jp_next_weekday(date)" => Proc.new { |date|
154
- # This suuuucks. I have no idea how to make this not reach into our interal ruby API to do this.
155
- # I'm punting, I'll come back to this.
156
- is_holiday = Holidays::JP.holidays_by_month[date.month].any? do |holiday|
157
- holiday[:mday] == date.day
158
- end
159
- date.wday == 0 || is_holiday ? (Holidays::Factory::Definition.custom_methods_repository.find("jp_next_weekday(date)").call(date+1)) : date
160
- },
161
-
162
-
163
- }
69
+ {}
164
70
  end
165
71
  end
166
72
  end
@@ -26,9 +26,7 @@ module Holidays
26
26
  end
27
27
 
28
28
  def self.custom_methods
29
- {
30
-
31
- }
29
+ {}
32
30
  end
33
31
  end
34
32
  end
@@ -12,7 +12,8 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 1 => [{:mday => 1, :function => "lunar_to_solar(year, month, day, region)", :function_arguments => [:year, :month, :day, :region], :name => "설날", :regions => [:kr]},
15
+ 1 => [{:function => "kr_seollal_eve(year, region)", :function_arguments => [:year, :region], :name => "설날 연휴", :regions => [:kr]},
16
+ {:mday => 1, :function => "lunar_to_solar(year, month, day, region)", :function_arguments => [:year, :month, :day, :region], :name => "설날", :regions => [:kr]},
16
17
  {:mday => 2, :function => "lunar_to_solar(year, month, day, region)", :function_arguments => [:year, :month, :day, :region], :name => "설날 연휴", :regions => [:kr]},
17
18
  {:mday => 1, :name => "신정", :regions => [:kr]}],
18
19
  3 => [{:mday => 1, :name => "3·1절", :regions => [:kr]}],
@@ -26,15 +27,12 @@ module Holidays
26
27
  {:mday => 15, :name => "광복절", :regions => [:kr]}],
27
28
  10 => [{:mday => 3, :name => "개천절", :regions => [:kr]},
28
29
  {:mday => 9, :name => "한글날", :regions => [:kr]}],
29
- 12 => [{:mday => 25, :name => "크리스마스", :regions => [:kr]},
30
- {:mday => 30, :function => "lunar_to_solar(year, month, day, region)", :function_arguments => [:year, :month, :day, :region], :name => "설날 연휴", :regions => [:kr]}]
30
+ 12 => [{:mday => 25, :name => "크리스마스", :regions => [:kr]}]
31
31
  }
32
32
  end
33
33
 
34
34
  def self.custom_methods
35
- {
36
-
37
- }
35
+ {}
38
36
  end
39
37
  end
40
38
  end
@@ -30,9 +30,7 @@ module Holidays
30
30
  end
31
31
 
32
32
  def self.custom_methods
33
- {
34
-
35
- }
33
+ {}
36
34
  end
37
35
  end
38
36
  end
@@ -36,9 +36,7 @@ module Holidays
36
36
  end
37
37
 
38
38
  def self.custom_methods
39
- {
40
-
41
- }
39
+ {}
42
40
  end
43
41
  end
44
42
  end
@@ -30,9 +30,7 @@ module Holidays
30
30
  end
31
31
 
32
32
  def self.custom_methods
33
- {
34
-
35
- }
33
+ {}
36
34
  end
37
35
  end
38
36
  end
@@ -27,9 +27,7 @@ module Holidays
27
27
  end
28
28
 
29
29
  def self.custom_methods
30
- {
31
-
32
- }
30
+ {}
33
31
  end
34
32
  end
35
33
  end
@@ -34,23 +34,7 @@ module Holidays
34
34
  end
35
35
 
36
36
  def self.custom_methods
37
- {
38
- "lv_song_and_dance_festival_end_date(year)" => Proc.new { |year|
39
- case year
40
- when 2018
41
- # https://likumi.lv/ta/id/281541 (Ministru kabineta rīkojums Nr. 252 "Par XXVI Vispārējo latviešu dziesmu un XVI Deju svētku norises laiku")
42
- Date.new(2018, 7, 8)
43
- when 2023
44
- # https://likumi.lv/ta/id/330067 (Ministru kabineta rīkojums Nr. 92 "Par XXVII Vispārējo latviešu dziesmu un XVII Deju svētku norises laiku")
45
- Date.new(2023, 7, 9)
46
- when 2028
47
- # Event's period/next year is known, but precise dates aren't.
48
- # Previously, dates were announced 2 years ahead, so on ~2026-05 this method would need to be revisited.
49
- end
50
- },
51
-
52
-
53
- }
37
+ {}
54
38
  end
55
39
  end
56
40
  end