holidays 5.6.0 → 5.7.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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +1 -1
  4. data/holidays.gemspec +2 -1
  5. data/lib/generated_definitions/MANIFEST +8 -0
  6. data/lib/generated_definitions/REGIONS.rb +2 -2
  7. data/lib/generated_definitions/au.rb +2 -2
  8. data/lib/generated_definitions/de.rb +4 -4
  9. data/lib/generated_definitions/ee.rb +36 -0
  10. data/lib/generated_definitions/europe.rb +8 -4
  11. data/lib/generated_definitions/fr.rb +5 -3
  12. data/lib/generated_definitions/ge.rb +41 -0
  13. data/lib/generated_definitions/mt_en.rb +38 -0
  14. data/lib/generated_definitions/mt_mt.rb +38 -0
  15. data/lib/generated_definitions/north_america.rb +106 -9
  16. data/lib/generated_definitions/nz.rb +0 -1
  17. data/lib/generated_definitions/pt.rb +4 -2
  18. data/lib/generated_definitions/rs_cyrl.rb +39 -0
  19. data/lib/generated_definitions/rs_la.rb +39 -0
  20. data/lib/generated_definitions/ru.rb +37 -0
  21. data/lib/generated_definitions/tr.rb +61 -0
  22. data/lib/generated_definitions/us.rb +112 -15
  23. data/lib/holidays/version.rb +1 -1
  24. data/test/coverage_report.rb +4 -2
  25. data/test/defs/test_defs_au.rb +2 -2
  26. data/test/defs/test_defs_de.rb +39 -37
  27. data/test/defs/test_defs_ee.rb +33 -0
  28. data/test/defs/test_defs_europe.rb +84 -68
  29. data/test/defs/test_defs_fr.rb +21 -13
  30. data/test/defs/test_defs_ge.rb +41 -0
  31. data/test/defs/test_defs_mt_en.rb +32 -0
  32. data/test/defs/test_defs_mt_mt.rb +32 -0
  33. data/test/defs/test_defs_north_america.rb +244 -16
  34. data/test/defs/test_defs_pt.rb +24 -18
  35. data/test/defs/test_defs_rs_cyrl.rb +39 -0
  36. data/test/defs/test_defs_rs_la.rb +39 -0
  37. data/test/defs/test_defs_ru.rb +28 -0
  38. data/test/defs/test_defs_tr.rb +44 -0
  39. data/test/defs/test_defs_us.rb +245 -17
  40. data/test/integration/test_available_regions.rb +1 -1
  41. data/test/integration/test_holidays.rb +2 -2
  42. metadata +65 -26
@@ -13,7 +13,6 @@ module Holidays
13
13
  def self.holidays_by_month
14
14
  {
15
15
  0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:nz]},
16
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -1, :name => "Easter Saturday", :regions => [:nz]},
17
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:nz]}],
18
17
  1 => [{:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:nz]},
19
18
  {:mday => 2, :observed => "to_weekday_if_boxing_weekend(date)", :observed_arguments => [:date], :name => "Day after New Year's Day", :regions => [:nz]},
@@ -7,7 +7,7 @@ module Holidays
7
7
  # All the definitions are available at https://github.com/holidays/holidays
8
8
  module PT # :nodoc:
9
9
  def self.defined_regions
10
- [:pt]
10
+ [:pt, :pt_li, :pt_po]
11
11
  end
12
12
 
13
13
  def self.holidays_by_month
@@ -19,7 +19,9 @@ module Holidays
19
19
  1 => [{:mday => 1, :name => "Ano Novo", :regions => [:pt]}],
20
20
  4 => [{:mday => 25, :name => "Dia da Liberdade", :regions => [:pt]}],
21
21
  5 => [{:mday => 1, :name => "Dia do Trabalhador", :regions => [:pt]}],
22
- 6 => [{:mday => 10, :name => "Dia de Portugal", :regions => [:pt]}],
22
+ 6 => [{:mday => 10, :name => "Dia de Portugal", :regions => [:pt]},
23
+ {:mday => 13, :name => "Dia de Santo António", :regions => [:pt_li]},
24
+ {:mday => 24, :name => "Dia de São João", :regions => [:pt_po]}],
23
25
  8 => [{:mday => 15, :name => "Assunção de Nossa Senhora", :regions => [:pt]}],
24
26
  10 => [{:mday => 5, :name => "Dia da República", :regions => [:pt]}],
25
27
  11 => [{:mday => 1, :name => "Dia de Todos-os-Santos", :regions => [:pt]}],
@@ -0,0 +1,39 @@
1
+ # encoding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holidays gem.
4
+ #
5
+ # Definitions loaded: definitions/rs_cyrl.yaml
6
+ #
7
+ # All the definitions are available at https://github.com/holidays/holidays
8
+ module RS_CYRL # :nodoc:
9
+ def self.defined_regions
10
+ [:rs_cyrl]
11
+ end
12
+
13
+ def self.holidays_by_month
14
+ {
15
+ 0 => [{:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Велики петак", :regions => [:rs_cyrl]},
16
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -1, :name => "Велика Субота", :regions => [:rs_cyrl]},
17
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :name => "Васкрс", :regions => [:rs_cyrl]},
18
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Васкрсни понедељак", :regions => [:rs_cyrl]}],
19
+ 1 => [{:mday => 1, :name => "Нова Година", :regions => [:rs_cyrl]},
20
+ {:mday => 2, :name => "Нова Година", :regions => [:rs_cyrl]},
21
+ {:mday => 7, :name => "Божић", :regions => [:rs_cyrl]},
22
+ {:mday => 27, :name => "Свети Сава (Савиндан)", :regions => [:rs_cyrl]}],
23
+ 2 => [{:mday => 15, :name => "Дан државности Србије", :regions => [:rs_cyrl]},
24
+ {:mday => 16, :name => "Дан државности Србије", :regions => [:rs_cyrl]}],
25
+ 5 => [{:mday => 1, :name => "Празник рада", :regions => [:rs_cyrl]},
26
+ {:mday => 2, :name => "Празник рада", :regions => [:rs_cyrl]},
27
+ {:mday => 9, :name => "Дан победе над фашизмом", :regions => [:rs_cyrl]}],
28
+ 6 => [{:mday => 28, :name => "Видовдан", :regions => [:rs_cyrl]}],
29
+ 11 => [{:mday => 11, :name => "Дан примирја", :regions => [:rs_cyrl]}]
30
+ }
31
+ end
32
+
33
+ def self.custom_methods
34
+ {
35
+
36
+ }
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,39 @@
1
+ # encoding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holidays gem.
4
+ #
5
+ # Definitions loaded: definitions/rs_la.yaml
6
+ #
7
+ # All the definitions are available at https://github.com/holidays/holidays
8
+ module RS_LA # :nodoc:
9
+ def self.defined_regions
10
+ [:rs_la]
11
+ end
12
+
13
+ def self.holidays_by_month
14
+ {
15
+ 0 => [{:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Veliki Petak", :regions => [:rs_la]},
16
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -1, :name => "Velika Subota", :regions => [:rs_la]},
17
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :name => "Uskrs", :regions => [:rs_la]},
18
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Vaskrsni ponedeljak", :regions => [:rs_la]}],
19
+ 1 => [{:mday => 1, :name => "Nova Godina", :regions => [:rs_la]},
20
+ {:mday => 2, :name => "Nova Godina", :regions => [:rs_la]},
21
+ {:mday => 7, :name => "Božić", :regions => [:rs_la]},
22
+ {:mday => 27, :name => "Dan Svetog Save", :regions => [:rs_la]}],
23
+ 2 => [{:mday => 15, :name => "Dan državnosti Srbije", :regions => [:rs_la]},
24
+ {:mday => 16, :name => "Dan državnosti Srbije", :regions => [:rs_la]}],
25
+ 5 => [{:mday => 1, :name => "Praznik rada", :regions => [:rs_la]},
26
+ {:mday => 2, :name => "Praznik rada", :regions => [:rs_la]},
27
+ {:mday => 9, :name => "Dan pobede", :regions => [:rs_la]}],
28
+ 6 => [{:mday => 28, :name => "Vidovdan", :regions => [:rs_la]}],
29
+ 11 => [{:mday => 11, :name => "Dan primirja", :regions => [:rs_la]}]
30
+ }
31
+ end
32
+
33
+ def self.custom_methods
34
+ {
35
+
36
+ }
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,37 @@
1
+ # encoding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holidays gem.
4
+ #
5
+ # Definitions loaded: definitions/ru.yaml
6
+ #
7
+ # All the definitions are available at https://github.com/holidays/holidays
8
+ module RU # :nodoc:
9
+ def self.defined_regions
10
+ [:ru]
11
+ end
12
+
13
+ def self.holidays_by_month
14
+ {
15
+ 1 => [{:mday => 1, :name => "Новый год", :regions => [:ru]},
16
+ {:mday => 2, :name => "Новогодний праздник", :regions => [:ru]},
17
+ {:mday => 3, :name => "Новогодний праздник", :regions => [:ru]},
18
+ {:mday => 4, :name => "Новогодний праздник", :regions => [:ru]},
19
+ {:mday => 5, :name => "Новогодний праздник", :regions => [:ru]},
20
+ {:mday => 7, :name => "Рождество Христово", :regions => [:ru]}],
21
+ 2 => [{:mday => 23, :name => "День защитника Отечества", :regions => [:ru]}],
22
+ 3 => [{:mday => 8, :name => "Международный женский день", :regions => [:ru]}],
23
+ 5 => [{:mday => 1, :name => "Праздник Весны и Труда", :regions => [:ru]},
24
+ {:mday => 9, :name => "День Победы", :regions => [:ru]}],
25
+ 6 => [{:mday => 12, :name => "День России", :regions => [:ru]}],
26
+ 8 => [{:mday => 22, :name => "День Государственного флага Российской Федерации", :regions => [:ru]}],
27
+ 11 => [{:mday => 4, :name => "День народного единства", :regions => [:ru]}]
28
+ }
29
+ end
30
+
31
+ def self.custom_methods
32
+ {
33
+
34
+ }
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,61 @@
1
+ # encoding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holidays gem.
4
+ #
5
+ # Definitions loaded: definitions/tr.yaml
6
+ #
7
+ # All the definitions are available at https://github.com/holidays/holidays
8
+ module TR # :nodoc:
9
+ def self.defined_regions
10
+ [:tr]
11
+ end
12
+
13
+ def self.holidays_by_month
14
+ {
15
+ 0 => [{:function => "ramadan_feast(year)", :function_arguments => [:year], :name => "Ramazan Bayramı", :regions => [:tr]},
16
+ {:function => "ramadan_feast(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Ramazan Bayramı (ikinci tatil)", :regions => [:tr]},
17
+ {:function => "ramadan_feast(year)", :function_arguments => [:year], :function_modifier => 2, :name => "Ramazan Bayramı (üçüncü tatil)", :regions => [:tr]},
18
+ {:function => "sacrifice_feast(year)", :function_arguments => [:year], :name => "Kurban Bayramı", :regions => [:tr]},
19
+ {:function => "sacrifice_feast(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Kurban Bayramı (ikinci tatil)", :regions => [:tr]},
20
+ {:function => "sacrifice_feast(year)", :function_arguments => [:year], :function_modifier => 2, :name => "Kurban Bayramı (üçüncü tatil)", :regions => [:tr]},
21
+ {:function => "sacrifice_feast(year)", :function_arguments => [:year], :function_modifier => 3, :name => "Kurban Bayramı (dördüncü tatil)", :regions => [:tr]}],
22
+ 1 => [{:mday => 1, :name => "Yılbaşı", :regions => [:tr]}],
23
+ 4 => [{:mday => 23, :name => "Ulusal Egemenlik ve Çocuk Bayramı", :regions => [:tr]}],
24
+ 5 => [{:mday => 1, :name => "Emek ve Dayanışma Günü", :regions => [:tr]},
25
+ {:mday => 19, :name => "Atatürk'ü Anma Gençlik ve Spor Bayramı", :regions => [:tr]}],
26
+ 8 => [{:mday => 30, :name => "Zafer Bayramı", :regions => [:tr]}],
27
+ 10 => [{:mday => 29, :name => "Cumhuriyet Bayramı", :regions => [:tr]}]
28
+ }
29
+ end
30
+
31
+ def self.custom_methods
32
+ {
33
+ "ramadan_feast(year)" => Proc.new { |year|
34
+ begin_of_ramadan_feast = {
35
+ '2014' => Date.civil(2014, 7, 28),
36
+ '2015' => Date.civil(2015, 7, 17),
37
+ '2016' => Date.civil(2016, 7, 5),
38
+ '2017' => Date.civil(2017, 6, 25),
39
+ '2018' => Date.civil(2018, 6, 15),
40
+ '2019' => Date.civil(2019, 6, 4)
41
+ }
42
+ begin_of_ramadan_feast[year.to_s]
43
+ },
44
+
45
+ "sacrifice_feast(year)" => Proc.new { |year|
46
+ begin_of_sacrifice_feast = {
47
+ '2014' => Date.civil(2014, 10, 4),
48
+ '2015' => Date.civil(2015, 9, 24),
49
+ '2016' => Date.civil(2016, 9, 12),
50
+ '2017' => Date.civil(2017, 9, 1),
51
+ '2018' => Date.civil(2018, 8, 21),
52
+ '2019' => Date.civil(2019, 8, 11)
53
+ }
54
+ begin_of_sacrifice_feast[year.to_s]
55
+ },
56
+
57
+
58
+ }
59
+ end
60
+ end
61
+ end
@@ -7,41 +7,138 @@ module Holidays
7
7
  # All the definitions are available at https://github.com/holidays/holidays
8
8
  module US # :nodoc:
9
9
  def self.defined_regions
10
- [:us, :us_dc, :us_ca, :ca]
10
+ [:us_fl, :us_la, :us, :us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_nj, :us_nc, :us_nd, :us_pr, :us_tn, :us_ms, :us_id, :us_ar, :us_tx, :us_dc, :us_md, :us_va, :us_il, :us_vt, :us_ak, :us_ca, :us_me, :us_ma, :us_al, :us_ga, :us_ne, :us_mo, :us_sc, :us_wv, :us_vi, :us_ut, :us_ri, :us_az, :us_co, :us_mt, :us_nm, :us_ny, :us_oh, :us_pa, :us_mi, :us_mn, :us_nv, :us_or, :us_sd, :us_wa, :us_wi, :us_wy, :us_ia, :us_ks, :us_nh, :us_ok, :ca]
11
11
  end
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :type => :informal, :name => "Good Friday", :regions => [:us]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :name => "Shrove Tuesday", :regions => [:us_fl]},
16
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :name => "Mardi Gras Day", :regions => [:us_la]},
17
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :type => :informal, :name => "Good Friday", :regions => [:us]},
18
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_la, :us_nj, :us_nc, :us_nd, :us_pr, :us_tn]},
16
19
  {:function => "easter(year)", :function_arguments => [:year], :type => :informal, :name => "Easter Sunday", :regions => [:us]}],
17
20
  1 => [{:mday => 1, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:us]},
21
+ {:wday => 1, :week => 3, :name => "Martin Luther King's and Robert E. Lee's Birthdays", :regions => [:us_ms]},
22
+ {:wday => 1, :week => 3, :name => "Idaho Human Rights Day", :regions => [:us_id]},
23
+ {:wday => 1, :week => 3, :name => "Civil Rights Day", :regions => [:us_ar]},
18
24
  {:wday => 1, :week => 3, :name => "Martin Luther King, Jr. Day", :regions => [:us]},
19
- {:function => "us_inauguration_day(year)", :function_arguments => [:year], :name => "Inauguration Day", :regions => [:us_dc]}],
25
+ {:function => "us_inauguration_day(year)", :function_arguments => [:year], :name => "Inauguration Day", :regions => [:us_tx, :us_dc, :us_la, :us_md, :us_va]},
26
+ {:function => "lee_jackson_day(year, month)", :function_arguments => [:year, :month], :name => "Lee-Jackson Day", :regions => [:us_va]},
27
+ {:mday => 19, :name => "Confederate Heroes Day", :regions => [:us_tx]}],
20
28
  2 => [{:wday => 1, :week => 3, :name => "Presidents' Day", :regions => [:us]},
21
29
  {:mday => 2, :type => :informal, :name => "Groundhog Day", :regions => [:us, :ca]},
22
30
  {:mday => 14, :type => :informal, :name => "Valentine's Day", :regions => [:us, :ca]}],
23
- 3 => [{:mday => 31, :name => "Cesar Chavez Day", :regions => [:us_ca]},
31
+ 3 => [{:wday => 1, :week => 1, :name => "Casimir Pulaski Day", :regions => [:us_il]},
32
+ {:wday => 2, :week => 1, :name => "Town Meeting Day", :regions => [:us_vt]},
33
+ {:mday => 2, :name => "Texas Independence Day", :regions => [:us_tx]},
34
+ {:mday => 26, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Prince Jonah Kuhio Kalanianaole Day", :regions => [:us_hi]},
35
+ {:wday => 1, :week => -1, :name => "Seward's Day", :regions => [:us_ak]},
36
+ {:mday => 31, :name => "César Chávez Day", :regions => [:us_ca]},
24
37
  {:mday => 17, :type => :informal, :name => "St. Patrick's Day", :regions => [:us, :ca]}],
25
- 5 => [{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:us]},
38
+ 4 => [{:mday => 16, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Emancipation Day", :regions => [:us_dc, :us_ca]},
39
+ {:wday => 1, :week => 3, :name => "Patriots' Day", :regions => [:us_me, :us_ma]},
40
+ {:mday => 21, :name => "San Jacinto Day", :regions => [:us_tx]},
41
+ {:wday => 1, :week => -1, :name => "Confederate Memorial Day", :regions => [:us_al, :us_ms]},
42
+ {:mday => 26, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Confederate Memorial Day", :regions => [:us_fl]},
43
+ {:function => "georgia_state_holiday(year, month)", :function_arguments => [:year, :month], :name => "State Holiday", :regions => [:us_ga]},
44
+ {:mday => 28, :name => "Arbor Day", :regions => [:us_ne]},
45
+ {:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]},
46
+ {:mday => 22, :type => :informal, :name => "Earth Day", :regions => [:us, :ca]}],
47
+ 5 => [{:mday => 8, :name => "Truman Day", :regions => [:us_mo]},
48
+ {:mday => 10, :name => "Confederate Memorial Day", :regions => [:us_sc]},
49
+ {:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:us]},
26
50
  {:wday => 0, :week => 2, :type => :informal, :name => "Mother's Day", :regions => [:us, :ca]},
27
51
  {:wday => 6, :week => 3, :type => :informal, :name => "Armed Forces Day", :regions => [:us]}],
28
- 7 => [{:mday => 4, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Independence Day", :regions => [:us]}],
29
- 9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:us]}],
30
- 10 => [{:wday => 1, :week => 2, :name => "Columbus Day", :regions => [:us]},
52
+ 6 => [{:wday => 1, :week => 1, :name => "Jefferson Davis' Birthday", :regions => [:us_al]},
53
+ {:mday => 3, :name => "Birthday of Jefferson Davis", :regions => [:us_fl]},
54
+ {:mday => 11, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "King Kamehameha I Day", :regions => [:us_hi]},
55
+ {:mday => 19, :name => "Emancipation Day in Texas", :regions => [:us_tx]},
56
+ {:mday => 20, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "West Virginia Day", :regions => [:us_wv]},
57
+ {:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}],
58
+ 7 => [{:mday => 3, :name => "Emancipation Day", :regions => [:us_vi]},
59
+ {:mday => 4, :name => "Independence Day", :regions => [:us]},
60
+ {:mday => 4, :function => "to_weekday_if_weekend(date)", :function_arguments => [:date], :name => "Independence Day (Holiday)", :regions => [:us_va]},
61
+ {:mday => 24, :name => "Pioneer Day", :regions => [:us_ut]}],
62
+ 8 => [{:wday => 1, :week => 2, :name => "Victory Day", :regions => [:us_ri]},
63
+ {:mday => 16, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Bennington Battle Day", :regions => [:us_vt]},
64
+ {:wday => 5, :week => 3, :name => "Statehood Day", :regions => [:us_hi]},
65
+ {:mday => 27, :name => "Lyndon Baines Johnson Day", :regions => [:us_tx]}],
66
+ 9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:us]},
67
+ {:function => "rosh_hashanah(year)", :function_arguments => [:year], :name => "Rosh Hashanah", :regions => [:us_tx]},
68
+ {:function => "yom_kippur(year)", :function_arguments => [:year], :name => "Yom Kippur", :regions => [:us_tx]}],
69
+ 10 => [{:wday => 1, :week => 2, :name => "Columbus Day", :regions => [:us_al, :us_az, :us_co, :us_ct, :us_dc, :us_ga, :us_id, :us_il, :us_in, :us_ma, :us_md, :us_me, :us_mo, :us_mt, :us_ne, :us_nj, :us_nm, :us_ny, :us_oh, :us_pa, :us_ri, :us_ut, :us_va, :us_wv]},
70
+ {:wday => 1, :week => 2, :type => :informal, :name => "Columbus Day", :regions => [:us_ak, :us_ar, :us_ca, :us_de, :us_fl, :us_hi, :us_mi, :us_mn, :us_nd, :us_nv, :us_or, :us_sd, :us_tx, :us_vt, :us_wa, :us_wi, :us_wy]},
71
+ {:mday => 18, :name => "Alaska Day", :regions => [:us_ak]},
72
+ {:wday => 5, :week => -1, :name => "Nevada Day", :regions => [:us_nv]},
31
73
  {:mday => 31, :type => :informal, :name => "Halloween", :regions => [:us, :ca]}],
32
- 11 => [{:mday => 11, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Veterans Day", :regions => [:us]},
74
+ 11 => [{:function => "election_day(year)", :function_arguments => [:year], :name => "Election Day", :regions => [:us_de, :us_hi, :us_il, :us_in, :us_mt, :us_nj, :us_ny, :us_pa, :us_ri]},
75
+ {:mday => 11, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Veterans Day", :regions => [:us]},
33
76
  {:wday => 4, :week => 4, :name => "Thanksgiving", :regions => [:us]},
34
- {:function => "day_after_thanksgiving(year)", :function_arguments => [:year], :name => "Day after Thanksgiving", :regions => [:us_ca]}],
35
- 12 => [{:mday => 25, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Christmas Day", :regions => [:us]}],
36
- 4 => [{:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]},
37
- {:mday => 22, :type => :informal, :name => "Earth Day", :regions => [:us, :ca]}],
38
- 6 => [{:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}]
77
+ {:function => "day_after_thanksgiving(year)", :function_arguments => [:year], :name => "Family Day", :regions => [:us_nv]},
78
+ {:function => "day_after_thanksgiving(year)", :function_arguments => [:year], :name => "State Holiday", :regions => [:us_ga]},
79
+ {:function => "day_after_thanksgiving(year)", :function_arguments => [:year], :name => "Presidents' Day", :regions => [:us_nm]},
80
+ {:function => "day_after_thanksgiving(year)", :function_arguments => [:year], :name => "Lincoln's Birthday", :regions => [:us_in]},
81
+ {:function => "day_after_thanksgiving(year)", :function_arguments => [:year], :name => "American Indian Heritage Day", :regions => [:us_md]},
82
+ {:function => "day_after_thanksgiving(year)", :function_arguments => [:year], :name => "Day after Thanksgiving (Black Friday)", :regions => [:us_ca, :us_de, :us_fl, :us_ia, :us_il, :us_ks, :us_ky, :us_me, :us_mi, :us_mn, :us_ms, :us_ne, :us_nh, :us_nc, :us_pa, :us_sc, :us_ok, :us_tn, :us_tx, :us_va, :us_wa, :us_wv]}],
83
+ 12 => [{:mday => 24, :name => "Christmas Eve", :regions => [:us_ar, :us_mi, :us_nc, :us_sc, :us_tx, :us_wi]},
84
+ {:mday => 24, :function => "christmas_eve_holiday(date)", :function_arguments => [:date], :name => "Christmas Eve (Holiday)", :regions => [:us_mi, :us_sc, :us_va]},
85
+ {:mday => 25, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Christmas Day", :regions => [:us]},
86
+ {:mday => 26, :name => "Day after Christmas", :regions => [:us_ar, :us_nc, :us_ok, :us_sc, :us_tn, :us_tx]},
87
+ {:mday => 31, :name => "New Year's Eve", :regions => [:us_mi, :us_wi]}]
39
88
  }
40
89
  end
41
90
 
42
91
  def self.custom_methods
43
92
  {
44
- "us_inauguration_day(year)" => Proc.new { |year|
93
+ "christmas_eve_holiday(date)" => Proc.new { |date|
94
+ beginning_of_month = Date.civil(date.year, date.month, 1)
95
+ (date.saturday? || date.sunday?) ? date.downto(beginning_of_month).find {|date| date if date.wday == 5} : date
96
+ },
97
+
98
+ "rosh_hashanah(year)" => Proc.new { |year|
99
+ rosh_hashanah_dates = {
100
+ '2014' => Date.civil(2014, 9, 25),
101
+ '2015' => Date.civil(2015, 9, 14),
102
+ '2016' => Date.civil(2016, 10, 3),
103
+ '2017' => Date.civil(2017, 9, 21),
104
+ '2018' => Date.civil(2018, 9, 10),
105
+ '2019' => Date.civil(2019, 9, 30),
106
+ '2020' => Date.civil(2020, 9, 19)
107
+ }
108
+ rosh_hashanah_dates[year.to_s]
109
+ },
110
+
111
+ "yom_kippur(year)" => Proc.new { |year|
112
+ yom_kippur_dates = {
113
+ '2014' => Date.civil(2014, 10, 4),
114
+ '2015' => Date.civil(2015, 9, 23),
115
+ '2016' => Date.civil(2016, 10, 12),
116
+ '2017' => Date.civil(2017, 9, 30),
117
+ '2018' => Date.civil(2018, 9, 19),
118
+ '2019' => Date.civil(2019, 10, 9),
119
+ '2020' => Date.civil(2020, 9, 28)
120
+ }
121
+ yom_kippur_dates[year.to_s]
122
+ },
123
+
124
+ "georgia_state_holiday(year, month)" => Proc.new { |year, month|
125
+ beginning_of_month = Date.civil(year, month, 1)
126
+ state_holiday = Date.civil(year, month, 26)
127
+ state_holiday.downto(beginning_of_month).find {|date| date if date.wday == 1 }
128
+ },
129
+
130
+ "lee_jackson_day(year, month)" => Proc.new { |year, month|
131
+ day_of_holiday = Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, month, 3, 1)
132
+ beginning_of_month = Date.civil(year, month, 1)
133
+ king_day = Date.civil(year, month, day_of_holiday)
134
+ king_day.downto(beginning_of_month).find {|date| date if date.wday == 5 }
135
+ },
136
+
137
+ "election_day(year)" => Proc.new { |year|
138
+ Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 11, 1, 1) + 1
139
+ },
140
+
141
+ "us_inauguration_day(year)" => Proc.new { |year|
45
142
  year % 4 == 1 ? 20 : nil
46
143
  },
47
144
 
@@ -1,3 +1,3 @@
1
1
  module Holidays
2
- VERSION = '5.6.0'
2
+ VERSION = '5.7.0'
3
3
  end
@@ -1,7 +1,9 @@
1
1
  require 'simplecov'
2
- require 'coveralls'
2
+ require 'simplecov-rcov'
3
3
 
4
- SimpleCov.formatter = Coveralls::SimpleCov::Formatter
4
+ SimpleCov.minimum_coverage 99
5
+ SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
6
+ SimpleCov.coverage_dir 'reports/coverage'
5
7
  SimpleCov.start do
6
8
  add_filter 'lib/generated_definitions/'
7
9
  end
@@ -98,7 +98,7 @@ assert_equal "Boxing Day", Date.civil(2015, 12, 28).holidays(:au_qld, :observed)
98
98
 
99
99
  # BOXING DAY - SA gets monday only. same for TAS and NT.
100
100
  assert_nil Date.civil(2015, 12, 26).holidays(:au_sa)[0]
101
- assert_equal "Boxing Day", Date.civil(2015, 12, 28).holidays(:au_sa)[0][:name]
101
+ assert_equal "Proclamation Day", Date.civil(2015, 12, 28).holidays(:au_sa)[0][:name]
102
102
  assert_nil Date.civil(2015, 12, 26).holidays(:au_tas)[0]
103
103
  assert_equal "Boxing Day", Date.civil(2015, 12, 28).holidays(:au_tas)[0][:name]
104
104
  assert_nil Date.civil(2015, 12, 26).holidays(:au_nt)[0]
@@ -128,7 +128,7 @@ assert_equal "Christmas Day", Date.civil(2016, 12, 27).holidays(:au_wa, :observe
128
128
  # CHRISTMAS DAY - SA observes on 26th if 25th is a Sunday (Boxing Day goes to 27th)
129
129
  assert_equal "Christmas Day", Date.civil(2016, 12, 25).holidays(:au_sa)[0][:name]
130
130
  assert_equal "Christmas Day", Date.civil(2016, 12, 26).holidays(:au_sa, :observed)[0][:name]
131
- assert_equal "Boxing Day", Date.civil(2016, 12, 27).holidays(:au_sa)[0][:name]
131
+ assert_equal "Proclamation Day", Date.civil(2016, 12, 27).holidays(:au_sa)[0][:name]
132
132
 
133
133
  # CHRISTMAS DAY - Victoria and NT now observe both 25th and 27th if weekend
134
134
  assert_equal "Christmas Day", Date.civil(2016, 12, 25).holidays(:au_vic)[0][:name]
@@ -7,78 +7,80 @@ require File.expand_path(File.dirname(__FILE__)) + '/../test_helper'
7
7
  class DeDefinitionTests < Test::Unit::TestCase # :nodoc:
8
8
 
9
9
  def test_de
10
- {Date.civil(2009,1,1) => 'Neujahrstag',
11
- Date.civil(2009,4,10) => 'Karfreitag',
12
- Date.civil(2009,4,12) => 'Ostersonntag',
13
- Date.civil(2009,4,13) => 'Ostermontag',
14
- Date.civil(2009,5,1) => 'Tag der Arbeit',
15
- Date.civil(2009,5,21) => 'Christi Himmelfahrt',
16
- Date.civil(2009,5,31) => 'Pfingstsonntag',
17
- Date.civil(2009,6,1) => 'Pfingstmontag',
18
- Date.civil(2009,10,3) => 'Tag der Deutschen Einheit',
19
- Date.civil(2009,12,24) => 'Heilig Abend',
20
- Date.civil(2009,12,25) => '1. Weihnachtstag',
21
- Date.civil(2009,12,26) => '2. Weihnachtstag',
22
- Date.civil(2009,12,31) => 'Silvester'}.each do |date, name|
10
+ { Date.civil(2009, 1, 1) => 'Neujahrstag',
11
+ Date.civil(2009, 4, 10) => 'Karfreitag',
12
+ Date.civil(2009, 4, 12) => 'Ostersonntag',
13
+ Date.civil(2009, 4, 13) => 'Ostermontag',
14
+ Date.civil(2009, 5, 1) => 'Tag der Arbeit',
15
+ Date.civil(2009, 5, 21) => 'Christi Himmelfahrt',
16
+ Date.civil(2009, 5, 31) => 'Pfingstsonntag',
17
+ Date.civil(2009, 6, 1) => 'Pfingstmontag',
18
+ Date.civil(2009, 10, 3) => 'Tag der Deutschen Einheit',
19
+ Date.civil(2009, 12, 24) => 'Heilig Abend',
20
+ Date.civil(2009, 12, 25) => '1. Weihnachtstag',
21
+ Date.civil(2009, 12, 26) => '2. Weihnachtstag',
22
+ Date.civil(2009, 12, 31) => 'Silvester' }.each do |date, name|
23
23
  assert_equal name, (Holidays.on(date, :de, :informal)[0] || {})[:name], "Failed on '#{name}' for date '#{date}'"
24
24
  end
25
25
 
26
26
  [:de_bw, :de_by, :de_st, :de_].each do |r|
27
- assert_equal 'Heilige Drei Könige', Holidays.on(Date.civil(2009,1,6), r)[0][:name]
27
+ assert_equal 'Heilige Drei Könige', Holidays.on(Date.civil(2009, 1, 6), r)[0][:name]
28
28
  end
29
29
 
30
- [:de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn_sorbian, :de_th_eichsfeld, :de_].each do |r|
31
- assert_equal 'Fronleichnam', Holidays.on(Date.civil(2009,6,11), r)[0][:name]
30
+ assert_equal [],Holidays.on(Date.civil(2017, 6, 15), [:de_th, :de_sn])
31
+ [:de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn_sorbian, :de_th_cath].each do |r|
32
+ assert_equal 'Fronleichnam', Holidays.on(Date.civil(2017, 6, 15), r)[0][:name]
32
33
  end
33
34
 
34
- [:de_by, :de_sl, :de_].each do |r|
35
- assert_equal 'Mariä Himmelfahrt', Holidays.on(Date.civil(2009,8,15), r)[0][:name]
35
+ assert_equal [], Holidays.on(Date.civil(2017, 8, 15), [:de_by, :de_sn])
36
+ [:de_by_cath, :de_by_augsburg, :de_sl].each do |r|
37
+ assert_equal 'Mariä Himmelfahrt', Holidays.on(Date.civil(2017, 8, 15), r)[0][:name]
36
38
  end
37
39
 
38
- [:de_bb, :de_mv, :de_sn, :de_st, :de_th, :de_].each do |r|
39
- assert_equal 'Reformationstag', Holidays.on(Date.civil(2009,10,31), r)[0][:name]
40
+ [:de_sh, :de_ni, :de_hh, :de_hb, :de_be, :de_bb, :de_mv, :de_sn, :de_st, :de_th, :de_].each do |r|
41
+ assert_equal 'Reformationstag', Holidays.on(Date.civil(2017, 10, 31), r)[0][:name]
40
42
  end
41
43
 
42
44
  # Free day in schools
43
45
  [:de_bw].each do |r|
44
- assert_equal 'Reformationstag', Holidays.on(Date.civil(2009,10,31), r, :informal)[0][:name]
46
+ assert_equal 'Reformationstag', Holidays.on(Date.civil(2009, 10, 31), r, :informal)[0][:name]
45
47
  end
46
48
 
47
49
  # 500 years reformation in 2017
48
- assert_equal 'Reformationstag', Holidays.on(Date.civil(2017,10,31), :de)[0][:name]
49
- assert_equal [], Holidays.on(Date.civil(2016,10,31), :de), "Reformationstag is not a holiday in 2016 in whole Germany"
50
- assert_equal [], Holidays.on(Date.civil(2018,10,31), :de), "Reformationstag is not a holiday in 2018 in whole Germany"
50
+ assert_equal 'Reformationstag', Holidays.on(Date.civil(2017, 10, 31), :de)[0][:name]
51
+ assert_equal [], Holidays.on(Date.civil(2016, 10, 31), :de), "Reformationstag is not a holiday in 2016 in whole Germany"
52
+ assert_equal [], Holidays.on(Date.civil(2018, 10, 31), :de), "Reformationstag is not a holiday in 2018 in whole Germany"
51
53
 
52
54
  [:de_bw, :de_by, :de_nw, :de_rp, :de_sl, :de_].each do |r|
53
- assert_equal 'Allerheiligen', Holidays.on(Date.civil(2009,11,1), r)[0][:name]
55
+ assert_equal 'Allerheiligen', Holidays.on(Date.civil(2009, 11, 1), r)[0][:name]
54
56
  end
55
57
 
56
58
  [:de_by_augsburg].each do |r|
57
- assert_equal 'Friedensfest', Holidays.on(Date.civil(2015,8,8),r)[0][:name]
59
+ assert_equal 'Friedensfest', Holidays.on(Date.civil(2015, 8, 8), r)[0][:name]
58
60
  end
59
61
 
60
62
  [:de,
61
63
  :de_bw, :de_by, :de_bb, :de_he, :de_mv,
62
64
  :de_nw, :de_rp, :de_sl, :de_sn, :de_st, :de_th].each do |r|
63
- assert_equal [], Holidays.on(Date.civil(2015,8,8), r), "Friedensfest is not a holiday in #{r}"
65
+ assert_equal [], Holidays.on(Date.civil(2015, 8, 8), r), "Friedensfest is not a holiday in #{r}"
64
66
  end
65
67
 
66
- assert_equal [], Holidays.on(Date.civil(2010,5,8), :de), '2010-05-08 is not a holiday in Germany'
68
+ assert_equal [], Holidays.on(Date.civil(2010, 5, 8), :de), '2010-05-08 is not a holiday in Germany'
67
69
 
68
- assert_equal [], Holidays.on(Date.civil(2010,8,8), :de), '2010-08-08 is not a holiday in Germany'
70
+ assert_equal [], Holidays.on(Date.civil(2010, 8, 8), :de), '2010-08-08 is not a holiday in Germany'
69
71
 
70
72
  # Repentance Day
71
- assert_equal 'Buß- und Bettag', Holidays.on(Date.civil(2004,11,17), :de_sn)[0][:name]
72
- assert_equal 'Buß- und Bettag', Holidays.on(Date.civil(2005,11,16), :de_sn)[0][:name]
73
- assert_equal 'Buß- und Bettag', Holidays.on(Date.civil(2006,11,22), :de_sn)[0][:name]
74
- assert_equal 'Buß- und Bettag', Holidays.on(Date.civil(2009,11,18), :de_sn)[0][:name]
73
+ assert_equal 'Buß- und Bettag', Holidays.on(Date.civil(2004, 11, 17), :de_sn)[0][:name]
74
+ assert_equal 'Buß- und Bettag', Holidays.on(Date.civil(2005, 11, 16), :de_sn)[0][:name]
75
+ assert_equal 'Buß- und Bettag', Holidays.on(Date.civil(2006, 11, 22), :de_sn)[0][:name]
76
+ assert_equal 'Buß- und Bettag', Holidays.on(Date.civil(2009, 11, 18), :de_sn)[0][:name]
75
77
 
76
78
  # Carnival
77
79
  [:de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn].each do |r|
78
- assert_equal 'Weiberfastnacht', Holidays.on(Date.civil(2016,2,4),r,:informal)[0][:name]
79
- assert_equal 'Rosenmontag', Holidays.on(Date.civil(2016,2,8),r,:informal)[0][:name]
80
- assert_equal 'Aschermittwoch', Holidays.on(Date.civil(2016,2,10),r,:informal)[0][:name]
81
- end
80
+ assert_equal 'Weiberfastnacht', Holidays.on(Date.civil(2016, 2, 4), r, :informal)[0][:name]
81
+ assert_equal 'Rosenmontag', Holidays.on(Date.civil(2016, 2, 8), r, :informal)[0][:name]
82
+ assert_equal 'Aschermittwoch', Holidays.on(Date.civil(2016, 2, 10), r, :informal)[0][:name]
83
+ end
82
84
 
83
85
  end
84
86
  end