holidays 9.1.2 → 10.0.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 (180) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +38 -2
  4. data/lib/generated_definitions/MANIFEST +2 -0
  5. data/lib/generated_definitions/REGIONS.rb +2 -2
  6. data/lib/generated_definitions/au.rb +16 -42
  7. data/lib/generated_definitions/europe.rb +7 -15
  8. data/lib/generated_definitions/fr.rb +2 -2
  9. data/lib/generated_definitions/gb.rb +3 -3
  10. data/lib/generated_definitions/il.rb +74 -0
  11. data/lib/generated_definitions/lu.rb +1 -1
  12. data/lib/generated_definitions/mc.rb +36 -0
  13. data/lib/generated_definitions/northamerica.rb +3 -2
  14. data/lib/generated_definitions/nz.rb +9 -1
  15. data/lib/generated_definitions/pl.rb +3 -11
  16. data/lib/generated_definitions/us.rb +3 -2
  17. data/lib/holidays/definition/context/function_processor.rb +4 -5
  18. data/lib/holidays/definition/context/generator.rb +3 -1
  19. data/lib/holidays/version.rb +1 -1
  20. metadata +5 -309
  21. data/.github/workflows/changelog-check.yml +0 -47
  22. data/.github/workflows/release.yml +0 -46
  23. data/.github/workflows/ruby.yml +0 -26
  24. data/.gitmodules +0 -3
  25. data/CODE_OF_CONDUCT.md +0 -74
  26. data/Gemfile +0 -8
  27. data/Makefile +0 -56
  28. data/Rakefile +0 -128
  29. data/bin/console +0 -7
  30. data/bin/setup +0 -6
  31. data/doc/CONTRIBUTING.md +0 -72
  32. data/doc/MAINTAINERS.md +0 -79
  33. data/doc/REFERENCES +0 -19
  34. data/holidays.gemspec +0 -31
  35. data/test/coverage_report.rb +0 -24
  36. data/test/data/test_custom_year_range_holiday_defs.yaml +0 -31
  37. data/test/data/test_date_transform_conflict_region_1.yaml +0 -14
  38. data/test/data/test_date_transform_conflict_region_2.yaml +0 -14
  39. data/test/data/test_invalid_region.rb +0 -15
  40. data/test/data/test_region.rb +0 -15
  41. data/test/data/test_single_custom_holiday_defs.yaml +0 -12
  42. data/test/data/test_single_custom_holiday_with_custom_procs.yaml +0 -28
  43. data/test/defs/test_defs_ar.rb +0 -69
  44. data/test/defs/test_defs_at.rb +0 -31
  45. data/test/defs/test_defs_au.rb +0 -233
  46. data/test/defs/test_defs_be_fr.rb +0 -45
  47. data/test/defs/test_defs_be_nl.rb +0 -45
  48. data/test/defs/test_defs_bg.rb +0 -41
  49. data/test/defs/test_defs_br.rb +0 -49
  50. data/test/defs/test_defs_ca.rb +0 -289
  51. data/test/defs/test_defs_ch.rb +0 -51
  52. data/test/defs/test_defs_cl.rb +0 -69
  53. data/test/defs/test_defs_co.rb +0 -113
  54. data/test/defs/test_defs_cr.rb +0 -29
  55. data/test/defs/test_defs_cy.rb +0 -41
  56. data/test/defs/test_defs_cz.rb +0 -37
  57. data/test/defs/test_defs_de.rb +0 -91
  58. data/test/defs/test_defs_dk.rb +0 -47
  59. data/test/defs/test_defs_ecbtarget.rb +0 -27
  60. data/test/defs/test_defs_ee.rb +0 -41
  61. data/test/defs/test_defs_es.rb +0 -137
  62. data/test/defs/test_defs_europe.rb +0 -1526
  63. data/test/defs/test_defs_fed_ex.rb +0 -24
  64. data/test/defs/test_defs_federalreserve.rb +0 -119
  65. data/test/defs/test_defs_federalreservebanks.rb +0 -251
  66. data/test/defs/test_defs_fedex.rb +0 -31
  67. data/test/defs/test_defs_fi.rb +0 -59
  68. data/test/defs/test_defs_fr.rb +0 -43
  69. data/test/defs/test_defs_gb.rb +0 -159
  70. data/test/defs/test_defs_ge.rb +0 -53
  71. data/test/defs/test_defs_gr.rb +0 -41
  72. data/test/defs/test_defs_hk.rb +0 -93
  73. data/test/defs/test_defs_hr.rb +0 -45
  74. data/test/defs/test_defs_hu.rb +0 -47
  75. data/test/defs/test_defs_ie.rb +0 -53
  76. data/test/defs/test_defs_in.rb +0 -94
  77. data/test/defs/test_defs_is.rb +0 -51
  78. data/test/defs/test_defs_it.rb +0 -57
  79. data/test/defs/test_defs_jp.rb +0 -159
  80. data/test/defs/test_defs_ke.rb +0 -31
  81. data/test/defs/test_defs_kr.rb +0 -37
  82. data/test/defs/test_defs_kz.rb +0 -39
  83. data/test/defs/test_defs_li.rb +0 -35
  84. data/test/defs/test_defs_lt.rb +0 -65
  85. data/test/defs/test_defs_lu.rb +0 -35
  86. data/test/defs/test_defs_lv.rb +0 -98
  87. data/test/defs/test_defs_ma.rb +0 -29
  88. data/test/defs/test_defs_mt_en.rb +0 -41
  89. data/test/defs/test_defs_mt_mt.rb +0 -41
  90. data/test/defs/test_defs_mx.rb +0 -49
  91. data/test/defs/test_defs_my.rb +0 -23
  92. data/test/defs/test_defs_nerc.rb +0 -29
  93. data/test/defs/test_defs_ng.rb +0 -29
  94. data/test/defs/test_defs_nl.rb +0 -33
  95. data/test/defs/test_defs_no.rb +0 -43
  96. data/test/defs/test_defs_northamerica.rb +0 -674
  97. data/test/defs/test_defs_nyse.rb +0 -46
  98. data/test/defs/test_defs_nz.rb +0 -67
  99. data/test/defs/test_defs_pe.rb +0 -47
  100. data/test/defs/test_defs_ph.rb +0 -29
  101. data/test/defs/test_defs_pl.rb +0 -229
  102. data/test/defs/test_defs_pt.rb +0 -47
  103. data/test/defs/test_defs_ro.rb +0 -69
  104. data/test/defs/test_defs_rs_cyrl.rb +0 -46
  105. data/test/defs/test_defs_rs_la.rb +0 -46
  106. data/test/defs/test_defs_ru.rb +0 -34
  107. data/test/defs/test_defs_scandinavia.rb +0 -215
  108. data/test/defs/test_defs_se.rb +0 -59
  109. data/test/defs/test_defs_sg.rb +0 -25
  110. data/test/defs/test_defs_si.rb +0 -105
  111. data/test/defs/test_defs_sk.rb +0 -37
  112. data/test/defs/test_defs_southamerica.rb +0 -327
  113. data/test/defs/test_defs_th.rb +0 -33
  114. data/test/defs/test_defs_tn.rb +0 -27
  115. data/test/defs/test_defs_tr.rb +0 -60
  116. data/test/defs/test_defs_tsx.rb +0 -70
  117. data/test/defs/test_defs_ua.rb +0 -41
  118. data/test/defs/test_defs_unitednations.rb +0 -11
  119. data/test/defs/test_defs_ups.rb +0 -31
  120. data/test/defs/test_defs_us.rb +0 -394
  121. data/test/defs/test_defs_ve.rb +0 -35
  122. data/test/defs/test_defs_vi.rb +0 -22
  123. data/test/defs/test_defs_za.rb +0 -35
  124. data/test/e2e/README.md +0 -52
  125. data/test/e2e/data/test_multiple_regions_with_conflicts_region_1.yaml +0 -38
  126. data/test/e2e/data/test_multiple_regions_with_conflicts_region_2.yaml +0 -38
  127. data/test/e2e/data/test_multiple_regions_with_conflicts_region_3.yaml +0 -38
  128. data/test/e2e/test_all_regions.rb +0 -49
  129. data/test/e2e/test_any_holidays_during_work_week.rb +0 -90
  130. data/test/e2e/test_holidays.rb +0 -244
  131. data/test/e2e/test_holidays_between.rb +0 -87
  132. data/test/e2e/test_multiple_regions.rb +0 -71
  133. data/test/e2e/test_multiple_regions_with_conflict.rb +0 -228
  134. data/test/e2e/test_nonstandard_regions.rb +0 -25
  135. data/test/holidays/core_extensions/test_date.rb +0 -122
  136. data/test/holidays/core_extensions/test_date_time.rb +0 -60
  137. data/test/holidays/date_calculator/test_day_of_month.rb +0 -27
  138. data/test/holidays/date_calculator/test_easter_gregorian.rb +0 -30
  139. data/test/holidays/date_calculator/test_easter_julian.rb +0 -36
  140. data/test/holidays/date_calculator/test_lunar_date.rb +0 -89
  141. data/test/holidays/date_calculator/test_weekend_modifier.rb +0 -54
  142. data/test/holidays/definition/context/test_function_processor.rb +0 -199
  143. data/test/holidays/definition/context/test_generator.rb +0 -226
  144. data/test/holidays/definition/context/test_load.rb +0 -37
  145. data/test/holidays/definition/context/test_merger.rb +0 -25
  146. data/test/holidays/definition/decorator/test_custom_method_proc.rb +0 -113
  147. data/test/holidays/definition/decorator/test_custom_method_source.rb +0 -96
  148. data/test/holidays/definition/decorator/test_test.rb +0 -123
  149. data/test/holidays/definition/generator/test_module.rb +0 -268
  150. data/test/holidays/definition/generator/test_regions.rb +0 -97
  151. data/test/holidays/definition/generator/test_test.rb +0 -113
  152. data/test/holidays/definition/parser/test_custom_method.rb +0 -79
  153. data/test/holidays/definition/parser/test_test.rb +0 -142
  154. data/test/holidays/definition/repository/test_cache.rb +0 -123
  155. data/test/holidays/definition/repository/test_custom_methods.rb +0 -43
  156. data/test/holidays/definition/repository/test_holidays_by_month.rb +0 -275
  157. data/test/holidays/definition/repository/test_proc_result_cache.rb +0 -91
  158. data/test/holidays/definition/repository/test_regions.rb +0 -104
  159. data/test/holidays/definition/validator/test_custom_method.rb +0 -94
  160. data/test/holidays/definition/validator/test_region.rb +0 -54
  161. data/test/holidays/definition/validator/test_test.rb +0 -60
  162. data/test/holidays/finder/context/test_between.rb +0 -172
  163. data/test/holidays/finder/context/test_dates_driver_builder.rb +0 -91
  164. data/test/holidays/finder/context/test_next_holiday.rb +0 -156
  165. data/test/holidays/finder/context/test_parse_options.rb +0 -141
  166. data/test/holidays/finder/context/test_search.rb +0 -290
  167. data/test/holidays/finder/context/test_year_holiday.rb +0 -202
  168. data/test/holidays/finder/rules/test_in_region.rb +0 -42
  169. data/test/holidays/finder/rules/test_year_range.rb +0 -166
  170. data/test/integration/README.md +0 -48
  171. data/test/integration/data/test_custom_govt_holiday_defs.yaml +0 -5
  172. data/test/integration/data/test_custom_informal_holidays_defs.yaml +0 -11
  173. data/test/integration/data/test_multiple_custom_holiday_defs.yaml +0 -12
  174. data/test/integration/test_custom_holidays.rb +0 -41
  175. data/test/integration/test_custom_informal_holidays.rb +0 -15
  176. data/test/integration/test_custom_year_range_holidays.rb +0 -35
  177. data/test/smoke/README.md +0 -31
  178. data/test/smoke/test_available_regions.rb +0 -18
  179. data/test/smoke/test_smoke.rb +0 -74
  180. data/test/test_helper.rb +0 -37
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f0f84e8d40a176b0172092f8884b09567b06a4cd870a082920fbb274acb6b43f
4
- data.tar.gz: bde696d82c96c50a14e5defad021c14aa541456c2eee281580b9e0fe5f1bee07
3
+ metadata.gz: 4046bc784338ea2145744c92c8e288a4fddf9aad2ad072a9f82718644d5486bf
4
+ data.tar.gz: a4b5b4ebba6f915bdf4fa9293cc3a2dc57d3206377b22693473372fdcecfe540
5
5
  SHA512:
6
- metadata.gz: 90aa255cd3e08574b8b796fee989123b473a6dcb45ad522c053272a6299e03c8b84b0852ec7c9a1c8c3a2db1420f23ce963403b7439239cbe6b4f5a7b6fa35d9
7
- data.tar.gz: 0e1bc79739ba0a46b6ebd80b2eb3453dde2eed2ab18db95c0088d42dba7505a01587052f7cb38fbc0f546e363ce2bde23a2ae09ae67b06d8280fcf6bfc4728e2
6
+ metadata.gz: 6081748d62b3e64344ed7b70d8a966c46c6608d3e459a89946ab73f029379589e3184177323b76b6c872118b3609372ac82dfe448f2fd13eca80e746f473e827
7
+ data.tar.gz: d45a5c3020248e82fc40d73c12753e8eb85c7ef70c4a8569f59c8e069da8b7ec76ca1e449cbbb9100bea2e91354c6223f8f9a93a1365f2795e8029b97322fee0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Ruby Holidays Gem CHANGELOG
2
2
 
3
+ ## 10.0.0
4
+
5
+ * Drop support for Ruby 3.2. Supported versions are now 3.3, 3.4, 4.0, and ruby-head.
6
+ * Update to [v7.0.0 definitions](https://github.com/holidays/definitions/releases/tag/v7.0.0). Please see the changelog for the definition details.
7
+ * Bump tested JRuby from 10.0.4.0 to 10.0.5.0
8
+ * Raise an `ArgumentError` during definition parsing when a `function` or `observed` rule references an unknown method ([#333](https://github.com/holidays/holidays/issues/333))
9
+ * Fix bug ([#352](https://github.com/holidays/holidays/issues/352)) where holidays with the same name and region that differed only by their function modifier were merged into a single entry, dropping one of the dates
10
+ * Document that `tests` stanzas in custom definition files loaded via `load_custom` are not run at runtime ([#304](https://github.com/holidays/holidays/issues/304))
11
+
12
+ ## 9.2.0
13
+
14
+ * Update to [v6.1.1 definitions](https://github.com/holidays/definitions/releases/tag/v6.1.1). Please see the changelog for the definition details.
15
+ * Add `test:contract` rake task and `make test-contract` target combining smoke and generated definition tests for use as a downstream contract check
16
+ * Set coverage minimum to 90% and skip for ruby-head builds
17
+
3
18
  ## 9.1.2
4
19
 
5
20
  * Fix bug ([#344](https://github.com/holidays/holidays/issues/344)) where holidays with the same name and function but different implementations across regions would return incorrect results depending on region load order. When multiple regions are queried simultaneously, each region's function implementation is now evaluated independently and all matching results are returned.
data/README.md CHANGED
@@ -4,6 +4,8 @@ Functionality to deal with holidays in Ruby.
4
4
 
5
5
  Extends Ruby's built-in Date and Time classes and supports custom holiday definition lists.
6
6
 
7
+ All holiday definitions are maintained in the [holidays/definitions](https://github.com/holidays/definitions) repository. By default this gem returns statutory (formally government-defined) holidays. Culturally recognized but non-statutory holidays (such as Valentine's Day) are available via the `:informal` option. See the [definitions syntax guide](https://github.com/holidays/definitions/blob/master/doc/SYNTAX.md#formalinformal) for details on how holidays are classified.
8
+
7
9
  ## Installation
8
10
 
9
11
  ```
@@ -14,11 +16,10 @@ gem install holidays
14
16
 
15
17
  This gem is tested with the following ruby versions:
16
18
 
17
- * 3.2
18
19
  * 3.3
19
20
  * 3.4
20
21
  * 4.0
21
- * JRuby 10.0.4.0
22
+ * JRuby 10.0.5.0
22
23
 
23
24
  ## Semver
24
25
 
@@ -65,6 +66,35 @@ You can leave off 'regions' to get holidays for any region in our [definitions](
65
66
  ]
66
67
  ```
67
68
 
69
+ #### Wildcard regions
70
+
71
+ A region ending in an underscore (e.g. `:au_`, `:ca_`) is a *wildcard*. It matches the
72
+ parent country region **and all of its sub-regions** in a single call:
73
+
74
+ ```ruby
75
+ Holidays.on(Date.new(2017, 3, 13), :au_)
76
+ => [{:name=>"Eight Hours Day", :regions=>[:au_tas],...},
77
+ {:name=>"Labour Day", :regions=>[:au_vic],...},
78
+ {:name=>"March Public Holiday", :regions=>[:au_sa],...},
79
+ {:name=>"Canberra Day", :regions=>[:au_act],...}]
80
+ ```
81
+
82
+ The same date queried with the plain `:au` region returns nothing, because none of
83
+ those holidays are observed nation-wide:
84
+
85
+ ```ruby
86
+ Holidays.on(Date.new(2017, 3, 13), :au)
87
+ => []
88
+ ```
89
+
90
+ Use a wildcard when you want "this country and every sub-region it defines" without
91
+ listing each sub-region explicitly.
92
+
93
+ Note that a wildcard always collapses to the **top-level** country region. The portion
94
+ between the country prefix and the trailing underscore is ignored, so `:au_vic_` behaves
95
+ identically to `:au_` (it loads every Australian sub-region, not just Victoria's). There
96
+ is currently no way to wildcard-match only the children of a sub-region.
97
+
68
98
  #### Checking a date range
69
99
 
70
100
  Get all holidays during the month of July 2008 in Canada and the US:
@@ -236,6 +266,12 @@ Holidays.load_custom(
236
266
  )
237
267
  ```
238
268
 
269
+ Note that any `tests:` stanzas in a custom definition file are ignored by
270
+ `load_custom`. Tests are only executed at build time for definitions contributed
271
+ to the [definitions repository](https://github.com/holidays/definitions), where
272
+ `rake generate` turns them into the test suite. There is no runtime mechanism to
273
+ run the tests embedded in a custom file loaded on the fly.
274
+
239
275
  ## Extending Ruby's Date and Time classes
240
276
 
241
277
  ### Date
@@ -36,6 +36,7 @@ The following definition files are included in this installation:
36
36
  * generated_definitions/hr
37
37
  * generated_definitions/hu
38
38
  * generated_definitions/ie
39
+ * generated_definitions/il
39
40
  * generated_definitions/in
40
41
  * generated_definitions/is
41
42
  * generated_definitions/it
@@ -48,6 +49,7 @@ The following definition files are included in this installation:
48
49
  * generated_definitions/lu
49
50
  * generated_definitions/lv
50
51
  * generated_definitions/ma
52
+ * generated_definitions/mc
51
53
  * generated_definitions/mt_en
52
54
  * generated_definitions/mt_mt
53
55
  * generated_definitions/mx
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  module Holidays
3
- REGIONS = [:ar, :at, :au, :au_nsw, :au_vic, :au_qld, :au_nt, :au_act, :au_sa, :au_wa, :au_tas, :au_tas_south, :au_qld_cairns, :au_qld_brisbane, :au_tas_north, :au_vic_melbourne, :be_fr, :be_nl, :br, :bg_en, :bg_bg, :ca, :ca_qc, :ca_ab, :ca_sk, :ca_on, :ca_bc, :ca_nb, :ca_mb, :ca_ns, :ca_pe, :ca_nl, :ca_nt, :ca_nu, :ca_yt, :us, :ch_zh, :ch_be, :ch_lu, :ch_ur, :ch_sz, :ch_ow, :ch_nw, :ch_gl, :ch_zg, :ch_fr, :ch_so, :ch_bs, :ch_bl, :ch_sh, :ch_ar, :ch_ai, :ch_sg, :ch_gr, :ch_ag, :ch_tg, :ch_ti, :ch_vd, :ch_ne, :ch_ge, :ch_ju, :ch_vs, :ch, :cl, :co, :cr, :cy, :cz, :dk, :de, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn_sorbian, :de_th_cath, :de_sn, :de_st, :de_be, :de_mv, :de_by_cath, :de_by_augsburg, :de_th, :de_bb, :de_hb, :de_hh, :de_ni, :de_sh, :ecbtarget, :ee, :es_pv, :es_na, :es_an, :es_ib, :es_cm, :es_mu, :es_m, :es_ar, :es_cl, :es_cn, :es_lo, :es_ga, :es_ce, :es_o, :es_ex, :es, :es_ct, :es_v, :es_vc, :federalreserve, :federalreservebanks, :fedex, :fi, :fr_a, :fr_m, :fr, :gb, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :je, :gb_jsy, :gg, :gb_gsy, :gb_sct, :gb_con, :im, :gb_iom, :ge, :gr, :hr, :hk, :hu, :ie, :in, :in_wb, :in_od, :in_tr, :in_mh, :in_ar, :in_mz, :in_br, :in_hp, :in_gj, :in_sk, :in_ts, :in_jh, :in_py, :in_kl, :in_ka, :in_jk, :in_ap, :in_cg, :in_hr, :in_mp, :in_pb, :in_nl, :in_as, :in_ga, :is, :it, :it_ve, :it_tv, :it_vr, :it_pd, :it_fi, :it_ge, :it_to, :it_rm, :it_vi, :it_bl, :it_ro, :ke, :kr, :kz, :li, :lt, :lv, :ma, :mt_mt, :mt_en, :mx, :mx_pue, :nerc, :nl, :lu, :no, :nyse, :nz, :nz_sl, :nz_we, :nz_ak, :nz_nl, :nz_ne, :nz_ot, :nz_ta, :nz_sc, :nz_hb, :nz_mb, :nz_ca, :nz_ch, :nz_wl, :pe, :ph, :pl, :pt, :pt_li, :pt_po, :ro, :rs_cyrl, :rs_la, :ru, :se, :tn, :tr, :tsx, :ua, :us_fl, :us_al, :us_la, :us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_nj, :us_nc, :us_nd, :us_pa, :us_pr, :us_tn, :us_ms, :us_id, :us_ar, :us_tx, :us_dc, :us_md, :us_va, :us_vt, :us_ak, :us_ca, :us_me, :us_ma, :us_ga, :us_ne, :us_mo, :us_sc, :us_wv, :us_vi, :us_ut, :us_ri, :us_az, :us_co, :us_il, :us_mt, :us_nm, :us_ny, :us_oh, :us_mi, :us_mn, :us_nv, :us_or, :us_sd, :us_wa, :us_wi, :us_wy, :us_ia, :us_ks, :us_nh, :us_ok, :unitednations, :ups, :za, :ve, :sk, :si, :jp, :vi, :sg, :my, :th, :ng]
3
+ REGIONS = [:ar, :at, :au, :au_nsw, :au_vic, :au_qld, :au_nt, :au_act, :au_sa, :au_wa, :au_tas, :au_tas_south, :au_qld_cairns, :au_qld_brisbane, :au_tas_north, :au_vic_melbourne, :be_fr, :be_nl, :br, :bg_en, :bg_bg, :ca, :ca_qc, :ca_ab, :ca_sk, :ca_on, :ca_bc, :ca_nb, :ca_mb, :ca_ns, :ca_pe, :ca_nl, :ca_nt, :ca_nu, :ca_yt, :us, :ch_zh, :ch_be, :ch_lu, :ch_ur, :ch_sz, :ch_ow, :ch_nw, :ch_gl, :ch_zg, :ch_fr, :ch_so, :ch_bs, :ch_bl, :ch_sh, :ch_ar, :ch_ai, :ch_sg, :ch_gr, :ch_ag, :ch_tg, :ch_ti, :ch_vd, :ch_ne, :ch_ge, :ch_ju, :ch_vs, :ch, :cl, :co, :cr, :cy, :cz, :dk, :de, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn_sorbian, :de_th_cath, :de_sn, :de_st, :de_be, :de_mv, :de_by_cath, :de_by_augsburg, :de_th, :de_bb, :de_hb, :de_hh, :de_ni, :de_sh, :ecbtarget, :ee, :es_pv, :es_na, :es_an, :es_ib, :es_cm, :es_mu, :es_m, :es_ar, :es_cl, :es_cn, :es_lo, :es_ga, :es_ce, :es_o, :es_ex, :es, :es_ct, :es_v, :es_vc, :federalreserve, :federalreservebanks, :fedex, :fi, :fr_a, :fr_m, :fr, :gb, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :gb_con, :je, :gb_jsy, :gg, :gb_gsy, :gb_sct, :im, :gb_iom, :ge, :gr, :hr, :hk, :hu, :ie, :il, :in, :in_wb, :in_od, :in_tr, :in_mh, :in_ar, :in_mz, :in_br, :in_hp, :in_gj, :in_sk, :in_ts, :in_jh, :in_py, :in_kl, :in_ka, :in_jk, :in_ap, :in_cg, :in_hr, :in_mp, :in_pb, :in_nl, :in_as, :in_ga, :is, :it, :it_ve, :it_tv, :it_vr, :it_pd, :it_fi, :it_ge, :it_to, :it_rm, :it_vi, :it_bl, :it_ro, :ke, :kr, :kz, :li, :lt, :lv, :ma, :mc, :mt_mt, :mt_en, :mx, :mx_pue, :nerc, :nl, :lu, :no, :nyse, :nz, :nz_sl, :nz_we, :nz_ak, :nz_nl, :nz_ne, :nz_ot, :nz_ta, :nz_sc, :nz_hb, :nz_mb, :nz_ca, :nz_ch, :nz_wl, :pe, :ph, :pl, :pt, :pt_li, :pt_po, :ro, :rs_cyrl, :rs_la, :ru, :se, :tn, :tr, :tsx, :ua, :us_fl, :us_al, :us_la, :us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_nj, :us_nc, :us_nd, :us_pa, :us_pr, :us_tn, :us_ga, :us_ms, :us_id, :us_ar, :us_tx, :us_dc, :us_md, :us_va, :us_vt, :us_ak, :us_ca, :us_me, :us_ma, :us_ne, :us_mo, :us_sc, :us_wv, :us_vi, :us_ut, :us_ri, :us_az, :us_co, :us_il, :us_mt, :us_nm, :us_ny, :us_oh, :us_mi, :us_mn, :us_nv, :us_or, :us_sd, :us_wa, :us_wi, :us_wy, :us_ia, :us_ks, :us_nh, :us_ok, :unitednations, :ups, :za, :ve, :sk, :si, :jp, :vi, :sg, :my, :th, :ng]
4
4
 
5
- PARENT_REGION_LOOKUP = {ar: :ar, at: :at, au: :au, au_nsw: :au, au_vic: :au, au_qld: :au, au_nt: :au, au_act: :au, au_sa: :au, au_wa: :au, au_tas: :au, au_tas_south: :au, au_qld_cairns: :au, au_qld_brisbane: :au, au_tas_north: :au, au_vic_melbourne: :au, be_fr: :be_fr, be_nl: :be_nl, br: :br, bg_en: :bg, bg_bg: :bg, ca: :ca, ca_qc: :ca, ca_ab: :ca, ca_sk: :ca, ca_on: :ca, ca_bc: :ca, ca_nb: :ca, ca_mb: :ca, ca_ns: :ca, ca_pe: :ca, ca_nl: :ca, ca_nt: :ca, ca_nu: :ca, ca_yt: :ca, us: :us, ch_zh: :ch, ch_be: :ch, ch_lu: :ch, ch_ur: :ch, ch_sz: :ch, ch_ow: :ch, ch_nw: :ch, ch_gl: :ch, ch_zg: :ch, ch_fr: :ch, ch_so: :ch, ch_bs: :ch, ch_bl: :ch, ch_sh: :ch, ch_ar: :ch, ch_ai: :ch, ch_sg: :ch, ch_gr: :ch, ch_ag: :ch, ch_tg: :ch, ch_ti: :ch, ch_vd: :ch, ch_ne: :ch, ch_ge: :ch, ch_ju: :ch, ch_vs: :ch, ch: :ch, cl: :cl, co: :co, cr: :cr, cy: :cy, cz: :cz, dk: :dk, de: :de, de_bw: :de, de_by: :de, de_he: :de, de_nw: :de, de_rp: :de, de_sl: :de, de_sn_sorbian: :de, de_th_cath: :de, de_sn: :de, de_st: :de, de_be: :de, de_mv: :de, de_by_cath: :de, de_by_augsburg: :de, de_th: :de, de_bb: :de, de_hb: :de, de_hh: :de, de_ni: :de, de_sh: :de, ecbtarget: :ecbtarget, ee: :ee, es_pv: :es, es_na: :es, es_an: :es, es_ib: :es, es_cm: :es, es_mu: :es, es_m: :es, es_ar: :es, es_cl: :es, es_cn: :es, es_lo: :es, es_ga: :es, es_ce: :es, es_o: :es, es_ex: :es, es: :es, es_ct: :es, es_v: :es, es_vc: :es, federalreserve: :federalreserve, federalreservebanks: :federalreservebanks, fedex: :fedex, fi: :fi, fr_a: :fr, fr_m: :fr, fr: :fr, gb: :gb, gb_eng: :gb, gb_wls: :gb, gb_eaw: :gb, gb_nir: :gb, je: :gb, gb_jsy: :gb, gg: :gb, gb_gsy: :gb, gb_sct: :gb, gb_con: :gb, im: :gb, gb_iom: :gb, ge: :ge, gr: :gr, hr: :hr, hk: :hk, hu: :hu, ie: :ie, in: :in, in_wb: :in, in_od: :in, in_tr: :in, in_mh: :in, in_ar: :in, in_mz: :in, in_br: :in, in_hp: :in, in_gj: :in, in_sk: :in, in_ts: :in, in_jh: :in, in_py: :in, in_kl: :in, in_ka: :in, in_jk: :in, in_ap: :in, in_cg: :in, in_hr: :in, in_mp: :in, in_pb: :in, in_nl: :in, in_as: :in, in_ga: :in, is: :is, it: :it, it_ve: :it, it_tv: :it, it_vr: :it, it_pd: :it, it_fi: :it, it_ge: :it, it_to: :it, it_rm: :it, it_vi: :it, it_bl: :it, it_ro: :it, ke: :ke, kr: :kr, kz: :kz, li: :li, lt: :lt, lv: :lv, ma: :ma, mt_mt: :mt_mt, mt_en: :mt_en, mx: :mx, mx_pue: :mx, nerc: :nerc, nl: :nl, lu: :lu, no: :no, nyse: :nyse, nz: :nz, nz_sl: :nz, nz_we: :nz, nz_ak: :nz, nz_nl: :nz, nz_ne: :nz, nz_ot: :nz, nz_ta: :nz, nz_sc: :nz, nz_hb: :nz, nz_mb: :nz, nz_ca: :nz, nz_ch: :nz, nz_wl: :nz, pe: :pe, ph: :ph, pl: :pl, pt: :pt, pt_li: :pt, pt_po: :pt, ro: :ro, rs_cyrl: :rs_cyrl, rs_la: :rs_la, ru: :ru, se: :se, tn: :tn, tr: :tr, tsx: :tsx, ua: :ua, us_fl: :us, us_al: :us, us_la: :us, us_ct: :us, us_de: :us, us_gu: :us, us_hi: :us, us_in: :us, us_ky: :us, us_nj: :us, us_nc: :us, us_nd: :us, us_pa: :us, us_pr: :us, us_tn: :us, us_ms: :us, us_id: :us, us_ar: :us, us_tx: :us, us_dc: :us, us_md: :us, us_va: :us, us_vt: :us, us_ak: :us, us_ca: :us, us_me: :us, us_ma: :us, us_ga: :us, us_ne: :us, us_mo: :us, us_sc: :us, us_wv: :us, us_vi: :us, us_ut: :us, us_ri: :us, us_az: :us, us_co: :us, us_il: :us, us_mt: :us, us_nm: :us, us_ny: :us, us_oh: :us, us_mi: :us, us_mn: :us, us_nv: :us, us_or: :us, us_sd: :us, us_wa: :us, us_wi: :us, us_wy: :us, us_ia: :us, us_ks: :us, us_nh: :us, us_ok: :us, unitednations: :unitednations, ups: :ups, za: :za, ve: :southamerica, sk: :europe, si: :europe, jp: :jp, vi: :vi, sg: :sg, my: :my, th: :th, ng: :ng}
5
+ PARENT_REGION_LOOKUP = {ar: :ar, at: :at, au: :au, au_nsw: :au, au_vic: :au, au_qld: :au, au_nt: :au, au_act: :au, au_sa: :au, au_wa: :au, au_tas: :au, au_tas_south: :au, au_qld_cairns: :au, au_qld_brisbane: :au, au_tas_north: :au, au_vic_melbourne: :au, be_fr: :be_fr, be_nl: :be_nl, br: :br, bg_en: :bg, bg_bg: :bg, ca: :ca, ca_qc: :ca, ca_ab: :ca, ca_sk: :ca, ca_on: :ca, ca_bc: :ca, ca_nb: :ca, ca_mb: :ca, ca_ns: :ca, ca_pe: :ca, ca_nl: :ca, ca_nt: :ca, ca_nu: :ca, ca_yt: :ca, us: :us, ch_zh: :ch, ch_be: :ch, ch_lu: :ch, ch_ur: :ch, ch_sz: :ch, ch_ow: :ch, ch_nw: :ch, ch_gl: :ch, ch_zg: :ch, ch_fr: :ch, ch_so: :ch, ch_bs: :ch, ch_bl: :ch, ch_sh: :ch, ch_ar: :ch, ch_ai: :ch, ch_sg: :ch, ch_gr: :ch, ch_ag: :ch, ch_tg: :ch, ch_ti: :ch, ch_vd: :ch, ch_ne: :ch, ch_ge: :ch, ch_ju: :ch, ch_vs: :ch, ch: :ch, cl: :cl, co: :co, cr: :cr, cy: :cy, cz: :cz, dk: :dk, de: :de, de_bw: :de, de_by: :de, de_he: :de, de_nw: :de, de_rp: :de, de_sl: :de, de_sn_sorbian: :de, de_th_cath: :de, de_sn: :de, de_st: :de, de_be: :de, de_mv: :de, de_by_cath: :de, de_by_augsburg: :de, de_th: :de, de_bb: :de, de_hb: :de, de_hh: :de, de_ni: :de, de_sh: :de, ecbtarget: :ecbtarget, ee: :ee, es_pv: :es, es_na: :es, es_an: :es, es_ib: :es, es_cm: :es, es_mu: :es, es_m: :es, es_ar: :es, es_cl: :es, es_cn: :es, es_lo: :es, es_ga: :es, es_ce: :es, es_o: :es, es_ex: :es, es: :es, es_ct: :es, es_v: :es, es_vc: :es, federalreserve: :federalreserve, federalreservebanks: :federalreservebanks, fedex: :fedex, fi: :fi, fr_a: :fr, fr_m: :fr, fr: :fr, gb: :gb, gb_eng: :gb, gb_wls: :gb, gb_eaw: :gb, gb_nir: :gb, gb_con: :gb, je: :gb, gb_jsy: :gb, gg: :gb, gb_gsy: :gb, gb_sct: :gb, im: :gb, gb_iom: :gb, ge: :ge, gr: :gr, hr: :hr, hk: :hk, hu: :hu, ie: :ie, il: :il, in: :in, in_wb: :in, in_od: :in, in_tr: :in, in_mh: :in, in_ar: :in, in_mz: :in, in_br: :in, in_hp: :in, in_gj: :in, in_sk: :in, in_ts: :in, in_jh: :in, in_py: :in, in_kl: :in, in_ka: :in, in_jk: :in, in_ap: :in, in_cg: :in, in_hr: :in, in_mp: :in, in_pb: :in, in_nl: :in, in_as: :in, in_ga: :in, is: :is, it: :it, it_ve: :it, it_tv: :it, it_vr: :it, it_pd: :it, it_fi: :it, it_ge: :it, it_to: :it, it_rm: :it, it_vi: :it, it_bl: :it, it_ro: :it, ke: :ke, kr: :kr, kz: :kz, li: :li, lt: :lt, lv: :lv, ma: :ma, mc: :mc, mt_mt: :mt_mt, mt_en: :mt_en, mx: :mx, mx_pue: :mx, nerc: :nerc, nl: :nl, lu: :lu, no: :no, nyse: :nyse, nz: :nz, nz_sl: :nz, nz_we: :nz, nz_ak: :nz, nz_nl: :nz, nz_ne: :nz, nz_ot: :nz, nz_ta: :nz, nz_sc: :nz, nz_hb: :nz, nz_mb: :nz, nz_ca: :nz, nz_ch: :nz, nz_wl: :nz, pe: :pe, ph: :ph, pl: :pl, pt: :pt, pt_li: :pt, pt_po: :pt, ro: :ro, rs_cyrl: :rs_cyrl, rs_la: :rs_la, ru: :ru, se: :se, tn: :tn, tr: :tr, tsx: :tsx, ua: :ua, us_fl: :us, us_al: :us, us_la: :us, us_ct: :us, us_de: :us, us_gu: :us, us_hi: :us, us_in: :us, us_ky: :us, us_nj: :us, us_nc: :us, us_nd: :us, us_pa: :us, us_pr: :us, us_tn: :us, us_ga: :us, us_ms: :us, us_id: :us, us_ar: :us, us_tx: :us, us_dc: :us, us_md: :us, us_va: :us, us_vt: :us, us_ak: :us, us_ca: :us, us_me: :us, us_ma: :us, us_ne: :us, us_mo: :us, us_sc: :us, us_wv: :us, us_vi: :us, us_ut: :us, us_ri: :us, us_az: :us, us_co: :us, us_il: :us, us_mt: :us, us_nm: :us, us_ny: :us, us_oh: :us, us_mi: :us, us_mn: :us, us_nv: :us, us_or: :us, us_sd: :us, us_wa: :us, us_wi: :us, us_wy: :us, us_ia: :us, us_ks: :us, us_nh: :us, us_ok: :us, unitednations: :unitednations, ups: :ups, za: :za, ve: :southamerica, sk: :europe, si: :europe, jp: :jp, vi: :vi, sg: :sg, my: :my, th: :th, ng: :ng}
6
6
  end
@@ -24,19 +24,20 @@ module Holidays
24
24
  3 => [{:wday => 1, :week => 1, :name => "Labour Day", :regions => [:au_wa]},
25
25
  {:wday => 1, :week => 2, :name => "Eight Hours Day", :regions => [:au_tas]},
26
26
  {:wday => 1, :week => 2, :name => "Labour Day", :regions => [:au_vic]},
27
- {:function => "march_pub_hol_sa(year)", :function_arguments => [:year], :name => "March Public Holiday", :regions => [:au_sa]},
27
+ {:function => "march_pub_hol_sa(year)", :function_arguments => [:year], :year_ranges => { :from => 2006 },:name => "March Public Holiday", :regions => [:au_sa]},
28
28
  {:wday => 1, :week => 2, :name => "Canberra Day", :regions => [:au_act]}],
29
29
  4 => [{:mday => 25, :name => "ANZAC Day", :regions => [:au, :au_vic]},
30
30
  {:mday => 25, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "ANZAC Day", :regions => [:au_qld, :au_nt, :au_act, :au_sa]},
31
31
  {:mday => 25, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "ANZAC Day", :regions => [:au_wa]}],
32
- 5 => [{:function => "qld_labour_day_may(year)", :function_arguments => [:year], :name => "Labour Day", :regions => [:au_qld]},
32
+ 5 => [{:function => "qld_labour_day_may(year)", :function_arguments => [:year], :year_ranges => { :until => 2012 },:name => "Labour Day", :regions => [:au_qld]},
33
+ {:function => "qld_labour_day_may(year)", :function_arguments => [:year], :year_ranges => { :from => 2016 },:name => "Labour Day", :regions => [:au_qld]},
33
34
  {:wday => 1, :week => 1, :name => "May Day", :regions => [:au_nt]},
34
- {:function => "may_pub_hol_sa(year)", :function_arguments => [:year], :name => "May Public Holiday", :regions => [:au_sa]},
35
+ {:function => "may_pub_hol_sa(year)", :function_arguments => [:year], :year_ranges => { :until => 2005 },:name => "May Public Holiday", :regions => [:au_sa]},
35
36
  {:mday => 27, :function => "to_nearest_monday_after(date)", :function_arguments => [:date], :year_ranges => { :from => 2018 },:name => "Reconciliation Day", :regions => [:au_act]}],
36
37
  6 => [{:wday => 1, :week => 1, :name => "Western Australia Day", :regions => [:au_wa]},
37
38
  {:wday => 1, :week => 2, :year_ranges => { :until => 2022 },:name => "Queen's Birthday", :regions => [:au_act, :au_nsw, :au_sa, :au_tas, :au_nt, :au_vic]},
38
39
  {:wday => 1, :week => 2, :year_ranges => { :from => 2023 },:name => "King's Birthday", :regions => [:au_act, :au_nsw, :au_sa, :au_tas, :au_nt, :au_vic]},
39
- {:function => "qld_queens_birthday_june(year)", :function_arguments => [:year], :name => "Queen's Birthday", :regions => [:au_qld]},
40
+ {:function => "qld_queens_birthday_june(year)", :function_arguments => [:year], :year_ranges => { :until => 2015 },:name => "Queen's Birthday", :regions => [:au_qld]},
40
41
  {:mday => 6, :type => :informal, :name => "Queensland Day", :regions => [:au_qld]}],
41
42
  7 => [{:wday => 5, :week => 3, :name => "Cairns Show", :regions => [:au_qld_cairns]}],
42
43
  8 => [{:function => "qld_brisbane_ekka_holiday(year)", :function_arguments => [:year], :name => "Ekka", :regions => [:au_qld_brisbane]}],
@@ -46,11 +47,12 @@ module Holidays
46
47
  {:wday => 1, :week => -1, :year_ranges => { :until => 2017 },:name => "Family & Community Day", :regions => [:au_act]}],
47
48
  10 => [{:function => "afl_grand_final(year)", :function_arguments => [:year], :name => "Friday before the AFL Grand Final", :regions => [:au_vic]},
48
49
  {:wday => 1, :week => 1, :name => "Labour Day", :regions => [:au_act, :au_nsw, :au_sa]},
49
- {:function => "qld_labour_day_october(year)", :function_arguments => [:year], :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Labour Day", :regions => [:au_qld]},
50
- {:function => "qld_queens_bday_october(year)", :function_arguments => [:year], :year_ranges => { :until => 2022 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Queen's Birthday", :regions => [:au_qld]},
50
+ {:function => "qld_labour_day_october(year)", :function_arguments => [:year], :year_ranges => { :between => 2013..2015 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Labour Day", :regions => [:au_qld]},
51
+ {:mday => 1, :year_ranges => { :limited => [2012] },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Queen's Birthday", :regions => [:au_qld]},
52
+ {:function => "qld_queens_bday_october(year)", :function_arguments => [:year], :year_ranges => { :between => 2016..2022 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Queen's Birthday", :regions => [:au_qld]},
51
53
  {:function => "qld_kings_bday_october(year)", :function_arguments => [:year], :year_ranges => { :from => 2023 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "King's Birthday", :regions => [:au_qld]},
52
54
  {:function => "hobart_show_day(year)", :function_arguments => [:year], :name => "Royal Hobart Show", :regions => [:au_tas_south]}],
53
- 11 => [{:function => "g20_day_2014_only(year)", :function_arguments => [:year], :name => "G20 Day", :regions => [:au_qld_brisbane]},
55
+ 11 => [{:mday => 14, :year_ranges => { :limited => [2014] },:name => "G20 Day", :regions => [:au_qld_brisbane]},
54
56
  {:wday => 1, :week => 1, :name => "Recreation Day", :regions => [:au_tas_north]},
55
57
  {:wday => 2, :week => 1, :name => "Melbourne Cup Day", :regions => [:au_vic_melbourne]}],
56
58
  12 => [{:mday => 25, :observed => "to_tuesday_if_sunday_or_monday_if_saturday(date)", :observed_arguments => [:date], :name => "Christmas Day", :regions => [:au_qld, :au_nsw, :au_act, :au_tas, :au_wa, :au_vic, :au_nt]},
@@ -85,43 +87,23 @@ end
85
87
  },
86
88
 
87
89
  "qld_queens_bday_october(year)" => Proc.new { |year|
88
- if year >= 2016
89
- Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 10, 1, 1)
90
- elsif year == 2012
91
- 1
92
- else
93
- nil
94
- end
90
+ Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 10, 1, 1)
95
91
  },
96
92
 
97
93
  "qld_kings_bday_october(year)" => Proc.new { |year|
98
- if year >= 2023
99
- Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 10, 1, 1)
100
- else
101
- nil
102
- end
94
+ Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 10, 1, 1)
103
95
  },
104
96
 
105
97
  "qld_queens_birthday_june(year)" => Proc.new { |year|
106
- if year <= 2015
107
- Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 6, 2, 1)
108
- end
98
+ Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 6, 2, 1)
109
99
  },
110
100
 
111
101
  "qld_labour_day_may(year)" => Proc.new { |year|
112
- if year < 2013 || year >= 2016
113
- Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 5, 1, 1)
114
- end
102
+ Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 5, 1, 1)
115
103
  },
116
104
 
117
105
  "qld_labour_day_october(year)" => Proc.new { |year|
118
- if year >= 2013 && year < 2016
119
- Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 10, 1, 1)
120
- end
121
- },
122
-
123
- "g20_day_2014_only(year)" => Proc.new { |year|
124
- year == 2014 ? 14 : nil
106
+ Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 10, 1, 1)
125
107
  },
126
108
 
127
109
  "hobart_show_day(year)" => Proc.new { |year|
@@ -130,19 +112,11 @@ fourth_sat_in_oct - 2 # the thursday before
130
112
  },
131
113
 
132
114
  "march_pub_hol_sa(year)" => Proc.new { |year|
133
- if year < 2006
134
- nil
135
- else
136
- Date.civil(year, 3, Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 3, :second, :monday))
137
- end
115
+ Date.civil(year, 3, Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 3, :second, :monday))
138
116
  },
139
117
 
140
118
  "may_pub_hol_sa(year)" => Proc.new { |year|
141
- if year >= 2006
142
- nil
143
- else
144
- Date.civil(year, 5, Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 5, :third, :monday))
145
- end
119
+ Date.civil(year, 5, Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 5, :third, :monday))
146
120
  },
147
121
 
148
122
  "qld_brisbane_ekka_holiday(year)" => Proc.new { |year|
@@ -7,7 +7,7 @@ module Holidays
7
7
  # All the definitions are available at https://github.com/holidays/holidays
8
8
  module EUROPE # :nodoc:
9
9
  def self.defined_regions
10
- [:at, :be_fr, :be_nl, :ch_zh, :ch_be, :ch_lu, :ch_ur, :ch_sz, :ch_ow, :ch_nw, :ch_gl, :ch_zg, :ch_fr, :ch_so, :ch_bs, :ch_bl, :ch_sh, :ch_ar, :ch_ai, :ch_sg, :ch_gr, :ch_ag, :ch_tg, :ch_ti, :ch_vd, :ch_ne, :ch_ge, :ch_ju, :ch_vs, :ch, :cz, :dk, :de, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn_sorbian, :de_th_cath, :de_sn, :de_st, :de_be, :de_mv, :de_by_cath, :de_by_augsburg, :de_th, :de_bb, :de_hb, :de_hh, :de_ni, :de_sh, :es_pv, :es_na, :es_an, :es_ib, :es_cm, :es_mu, :es_m, :es_ar, :es_cl, :es_cn, :es_lo, :es_ga, :es_ce, :es_o, :es_ex, :es, :es_ct, :es_v, :es_vc, :fr_a, :fr_m, :fr, :gb, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :je, :gb_jsy, :gg, :gb_gsy, :gb_sct, :gb_con, :im, :gb_iom, :gr, :hr, :hu, :ie, :is, :it, :it_ve, :it_tv, :it_vr, :it_pd, :it_fi, :it_ge, :it_to, :it_rm, :it_vi, :it_bl, :it_ro, :li, :lt, :lv, :nl, :no, :pl, :pt, :pt_li, :pt_po, :ro, :sk, :si, :bg_en, :bg_bg, :ua]
10
+ [:at, :be_fr, :be_nl, :ch_zh, :ch_be, :ch_lu, :ch_ur, :ch_sz, :ch_ow, :ch_nw, :ch_gl, :ch_zg, :ch_fr, :ch_so, :ch_bs, :ch_bl, :ch_sh, :ch_ar, :ch_ai, :ch_sg, :ch_gr, :ch_ag, :ch_tg, :ch_ti, :ch_vd, :ch_ne, :ch_ge, :ch_ju, :ch_vs, :ch, :cz, :dk, :de, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn_sorbian, :de_th_cath, :de_sn, :de_st, :de_be, :de_mv, :de_by_cath, :de_by_augsburg, :de_th, :de_bb, :de_hb, :de_hh, :de_ni, :de_sh, :es_pv, :es_na, :es_an, :es_ib, :es_cm, :es_mu, :es_m, :es_ar, :es_cl, :es_cn, :es_lo, :es_ga, :es_ce, :es_o, :es_ex, :es, :es_ct, :es_v, :es_vc, :fr_a, :fr_m, :fr, :gb, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :gb_con, :je, :gb_jsy, :gg, :gb_gsy, :gb_sct, :im, :gb_iom, :gr, :hr, :hu, :ie, :is, :it, :it_ve, :it_tv, :it_vr, :it_pd, :it_fi, :it_ge, :it_to, :it_rm, :it_vi, :it_bl, :it_ro, :li, :lt, :lv, :nl, :no, :pl, :pt, :pt_li, :pt_po, :ro, :sk, :si, :bg_en, :bg_bg, :ua]
11
11
  end
12
12
 
13
13
  def self.holidays_by_month
@@ -63,12 +63,12 @@ module Holidays
63
63
  {:function => "easter(year)", :function_arguments => [:year], :type => :informal, :name => "Pâques", :regions => [:fr]},
64
64
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Lundi de Pâques", :regions => [:fr]},
65
65
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 39, :name => "Ascension", :regions => [:fr]},
66
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 49, :name => "Pentecôte", :regions => [:fr]},
67
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :type => :informal, :name => "Lundi de Pentecôte", :regions => [:fr]},
66
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 49, :type => :informal, :name => "Pentecôte", :regions => [:fr]},
67
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Lundi de Pentecôte", :regions => [:fr]},
68
68
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -21, :type => :informal, :name => "Mothering Sunday", :regions => [:gb]},
69
69
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:gb]},
70
70
  {:function => "easter(year)", :function_arguments => [:year], :name => "Easter Sunday", :regions => [:gb]},
71
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir, :je, :gb_jsy, :gg, :gb_gsy]},
71
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir, :gb_con, :je, :gb_jsy, :gg, :gb_gsy]},
72
72
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Μεγάλη Παρασκευή", :regions => [:gr]},
73
73
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -1, :name => "Μεγάλο Σάββατο", :regions => [:gr]},
74
74
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :name => "Κυριακή του Πάσχα", :regions => [:gr]},
@@ -194,8 +194,8 @@ module Holidays
194
194
  {:mday => 1, :name => "Nieuwjaarsdag", :regions => [:nl]},
195
195
  {:mday => 1, :name => "Nyttårsdag", :regions => [:no]},
196
196
  {:mday => 1, :name => "Nowy Rok", :regions => [:pl]},
197
- {:function => "pl_trzech_kroli(year)", :function_arguments => [:year], :name => "Objawienie Pańskie (święto Trzech Króli)", :regions => [:pl]},
198
- {:function => "pl_trzech_kroli_informal(year)", :function_arguments => [:year], :type => :informal, :name => "Objawienie Pańskie (święto Trzech Króli)", :regions => [:pl]},
197
+ {:mday => 6, :year_ranges => { :from => 2011 },:name => "Objawienie Pańskie (święto Trzech Króli)", :regions => [:pl]},
198
+ {:mday => 6, :year_ranges => { :until => 2010 },:type => :informal, :name => "Objawienie Pańskie (święto Trzech Króli)", :regions => [:pl]},
199
199
  {:mday => 21, :type => :informal, :name => "Dzień Babci", :regions => [:pl]},
200
200
  {:mday => 22, :type => :informal, :name => "Dzień Dziadka", :regions => [:pl]},
201
201
  {:mday => 1, :name => "Ano Novo", :regions => [:pt]},
@@ -282,7 +282,7 @@ module Holidays
282
282
  {:mday => 15, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Asunción", :regions => [:es]},
283
283
  {:mday => 15, :name => "Assomption", :regions => [:fr]},
284
284
  {:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:gb_sct]},
285
- {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir, :je, :gb_jsy, :gg, :gb_gsy]},
285
+ {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir, :gb_con, :je, :gb_jsy, :gg, :gb_gsy]},
286
286
  {:mday => 15, :name => "Κοίμηση της Θεοτόκου", :regions => [:gr]},
287
287
  {:mday => 5, :name => "Dan pobjede i domovinske zahvalnosti i Dan hrvatskih branitelja", :regions => [:hr]},
288
288
  {:mday => 15, :name => "Velika Gospa", :regions => [:hr]},
@@ -629,14 +629,6 @@ when 2028
629
629
  end
630
630
  },
631
631
 
632
- "pl_trzech_kroli(year)" => Proc.new { |year|
633
- year >= 2011 ? 6 : nil
634
- },
635
-
636
- "pl_trzech_kroli_informal(year)" => Proc.new { |year|
637
- year < 2011 ? 6 : nil
638
- },
639
-
640
632
 
641
633
  }
642
634
  end
@@ -16,8 +16,8 @@ module Holidays
16
16
  {:function => "easter(year)", :function_arguments => [:year], :type => :informal, :name => "Pâques", :regions => [:fr]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Lundi de Pâques", :regions => [:fr]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 39, :name => "Ascension", :regions => [:fr]},
19
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 49, :name => "Pentecôte", :regions => [:fr]},
20
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :type => :informal, :name => "Lundi de Pentecôte", :regions => [:fr]}],
19
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 49, :type => :informal, :name => "Pentecôte", :regions => [:fr]},
20
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Lundi de Pentecôte", :regions => [:fr]}],
21
21
  1 => [{:mday => 1, :name => "Jour de l'an", :regions => [:fr]}],
22
22
  5 => [{:mday => 1, :name => "Fête du travail", :regions => [:fr]},
23
23
  {:mday => 8, :name => "Victoire 1945", :regions => [:fr]}],
@@ -7,7 +7,7 @@ module Holidays
7
7
  # All the definitions are available at https://github.com/holidays/holidays
8
8
  module GB # :nodoc:
9
9
  def self.defined_regions
10
- [:gb, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :je, :gb_jsy, :gg, :gb_gsy, :gb_sct, :gb_con, :im, :gb_iom]
10
+ [:gb, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :gb_con, :je, :gb_jsy, :gg, :gb_gsy, :gb_sct, :im, :gb_iom]
11
11
  end
12
12
 
13
13
  def self.holidays_by_month
@@ -15,7 +15,7 @@ module Holidays
15
15
  0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -21, :type => :informal, :name => "Mothering Sunday", :regions => [:gb]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:gb]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :name => "Easter Sunday", :regions => [:gb]},
18
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir, :je, :gb_jsy, :gg, :gb_gsy]}],
18
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir, :gb_con, :je, :gb_jsy, :gg, :gb_gsy]}],
19
19
  1 => [{:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:gb]},
20
20
  {:mday => 2, :observed => "to_weekday_if_boxing_weekend(date)", :observed_arguments => [:date], :name => "2nd January", :regions => [:gb_sct]}],
21
21
  3 => [{:mday => 5, :name => "St. Piran's Day", :regions => [:gb_con]},
@@ -32,7 +32,7 @@ module Holidays
32
32
  7 => [{:mday => 5, :name => "Tynwald Day", :regions => [:im, :gb_iom]},
33
33
  {:mday => 12, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Battle of the Boyne", :regions => [:gb_nir]}],
34
34
  8 => [{:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:gb_sct]},
35
- {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir, :je, :gb_jsy, :gg, :gb_gsy]}],
35
+ {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir, :gb_con, :je, :gb_jsy, :gg, :gb_gsy]}],
36
36
  9 => [{:mday => 19, :year_ranges => { :limited => [2022] },:name => "Bank Holiday for the State Funeral of Queen Elizabeth II", :regions => [:gb]}],
37
37
  11 => [{:mday => 5, :type => :informal, :name => "Guy Fawkes Day", :regions => [:gb]},
38
38
  {:mday => 30, :year_ranges => { :until => 2006 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :type => :informal, :name => "St. Andrew's Day", :regions => [:gb_sct]},
@@ -0,0 +1,74 @@
1
+ # encoding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holidays gem.
4
+ #
5
+ # Definitions loaded: definitions/il.yaml
6
+ #
7
+ # All the definitions are available at https://github.com/holidays/holidays
8
+ module IL # :nodoc:
9
+ def self.defined_regions
10
+ [:il]
11
+ end
12
+
13
+ def self.holidays_by_month
14
+ {
15
+ 3 => [{:mday => 16, :year_ranges => { :limited => [2022] },:name => "Exodus from Egypt", :regions => [:il]},
16
+ {:mday => 6, :year_ranges => { :limited => [2023] },:name => "Exodus from Egypt", :regions => [:il]},
17
+ {:mday => 23, :year_ranges => { :limited => [2024] },:name => "Exodus from Egypt", :regions => [:il]},
18
+ {:mday => 13, :year_ranges => { :limited => [2025] },:name => "Exodus from Egypt", :regions => [:il]},
19
+ {:mday => 2, :year_ranges => { :limited => [2026] },:name => "Exodus from Egypt", :regions => [:il]},
20
+ {:mday => 22, :year_ranges => { :limited => [2022] },:name => "Exodus from Egypt (day 7)", :regions => [:il]},
21
+ {:mday => 12, :year_ranges => { :limited => [2023] },:name => "Exodus from Egypt (day 7)", :regions => [:il]},
22
+ {:mday => 29, :year_ranges => { :limited => [2024] },:name => "Exodus from Egypt (day 7)", :regions => [:il]},
23
+ {:mday => 19, :year_ranges => { :limited => [2025] },:name => "Exodus from Egypt (day 7)", :regions => [:il]},
24
+ {:mday => 8, :year_ranges => { :limited => [2026] },:name => "Exodus from Egypt (day 7)", :regions => [:il]},
25
+ {:mday => 24, :year_ranges => { :limited => [2023] },:name => "Independence Day", :regions => [:il]},
26
+ {:mday => 20, :year_ranges => { :limited => [2026] },:name => "Independence Day", :regions => [:il]}],
27
+ 4 => [{:mday => 4, :year_ranges => { :limited => [2022] },:name => "Independence Day", :regions => [:il]},
28
+ {:mday => 11, :year_ranges => { :limited => [2024] },:name => "Independence Day", :regions => [:il]},
29
+ {:mday => 1, :year_ranges => { :limited => [2025] },:name => "Independence Day", :regions => [:il]},
30
+ {:mday => 26, :year_ranges => { :limited => [2023] },:name => "Thanksgiving", :regions => [:il]},
31
+ {:mday => 22, :year_ranges => { :limited => [2026] },:name => "Thanksgiving", :regions => [:il]},
32
+ {:mday => 27, :year_ranges => { :limited => [2023] },:name => "Thanksgiving (day 2)", :regions => [:il]},
33
+ {:mday => 23, :year_ranges => { :limited => [2026] },:name => "Thanksgiving (day 2)", :regions => [:il]}],
34
+ 5 => [{:mday => 5, :year_ranges => { :limited => [2022] },:name => "Thanksgiving", :regions => [:il]},
35
+ {:mday => 12, :year_ranges => { :limited => [2024] },:name => "Thanksgiving", :regions => [:il]},
36
+ {:mday => 2, :year_ranges => { :limited => [2025] },:name => "Thanksgiving", :regions => [:il]},
37
+ {:mday => 6, :year_ranges => { :limited => [2022] },:name => "Thanksgiving (day 2)", :regions => [:il]},
38
+ {:mday => 13, :year_ranges => { :limited => [2024] },:name => "Thanksgiving (day 2)", :regions => [:il]},
39
+ {:mday => 3, :year_ranges => { :limited => [2025] },:name => "Thanksgiving (day 2)", :regions => [:il]}],
40
+ 9 => [{:mday => 26, :year_ranges => { :limited => [2022] },:name => "Jewish New Year", :regions => [:il]},
41
+ {:mday => 16, :year_ranges => { :limited => [2023] },:name => "Jewish New Year", :regions => [:il]},
42
+ {:mday => 23, :year_ranges => { :limited => [2025] },:name => "Jewish New Year", :regions => [:il]},
43
+ {:mday => 12, :year_ranges => { :limited => [2026] },:name => "Jewish New Year", :regions => [:il]},
44
+ {:mday => 27, :year_ranges => { :limited => [2022] },:name => "2nd New Year's Day", :regions => [:il]},
45
+ {:mday => 17, :year_ranges => { :limited => [2023] },:name => "2nd New Year's Day", :regions => [:il]},
46
+ {:mday => 24, :year_ranges => { :limited => [2025] },:name => "2nd New Year's Day", :regions => [:il]},
47
+ {:mday => 13, :year_ranges => { :limited => [2026] },:name => "2nd New Year's Day", :regions => [:il]},
48
+ {:mday => 25, :year_ranges => { :limited => [2023] },:name => "Day of Atonement", :regions => [:il]},
49
+ {:mday => 21, :year_ranges => { :limited => [2026] },:name => "Day of Atonement", :regions => [:il]},
50
+ {:mday => 30, :year_ranges => { :limited => [2023] },:name => "Feast of Tabernacles", :regions => [:il]},
51
+ {:mday => 26, :year_ranges => { :limited => [2026] },:name => "Feast of Tabernacles", :regions => [:il]}],
52
+ 10 => [{:mday => 3, :year_ranges => { :limited => [2024] },:name => "Jewish New Year", :regions => [:il]},
53
+ {:mday => 4, :year_ranges => { :limited => [2024] },:name => "2nd New Year's Day", :regions => [:il]},
54
+ {:mday => 5, :year_ranges => { :limited => [2022] },:name => "Day of Atonement", :regions => [:il]},
55
+ {:mday => 12, :year_ranges => { :limited => [2024] },:name => "Day of Atonement", :regions => [:il]},
56
+ {:mday => 2, :year_ranges => { :limited => [2025] },:name => "Day of Atonement", :regions => [:il]},
57
+ {:mday => 10, :year_ranges => { :limited => [2022] },:name => "Feast of Tabernacles", :regions => [:il]},
58
+ {:mday => 17, :year_ranges => { :limited => [2024] },:name => "Feast of Tabernacles", :regions => [:il]},
59
+ {:mday => 7, :year_ranges => { :limited => [2025] },:name => "Feast of Tabernacles", :regions => [:il]},
60
+ {:mday => 18, :year_ranges => { :limited => [2022] },:name => "Rejoicing of the Torah", :regions => [:il]},
61
+ {:mday => 8, :year_ranges => { :limited => [2023] },:name => "Rejoicing of the Torah", :regions => [:il]},
62
+ {:mday => 25, :year_ranges => { :limited => [2024] },:name => "Rejoicing of the Torah", :regions => [:il]},
63
+ {:mday => 15, :year_ranges => { :limited => [2025] },:name => "Rejoicing of the Torah", :regions => [:il]},
64
+ {:mday => 4, :year_ranges => { :limited => [2026] },:name => "Rejoicing of the Torah", :regions => [:il]}]
65
+ }
66
+ end
67
+
68
+ def self.custom_methods
69
+ {
70
+
71
+ }
72
+ end
73
+ end
74
+ end
@@ -14,7 +14,7 @@ module Holidays
14
14
  {
15
15
  0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Ouschterméindeg", :regions => [:lu]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 39, :name => "Christi Himmelfaart", :regions => [:lu]},
17
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 49, :name => "Péngschtméindeg", :regions => [:lu]}],
17
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Péngschtméindeg", :regions => [:lu]}],
18
18
  1 => [{:mday => 1, :name => "Neijoerschdag", :regions => [:lu]}],
19
19
  5 => [{:mday => 1, :name => "Dag vun der Aarbecht", :regions => [:lu]},
20
20
  {:mday => 9, :year_ranges => { :from => 2019 },:name => "Europadag", :regions => [:lu]}],
@@ -0,0 +1,36 @@
1
+ # encoding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holidays gem.
4
+ #
5
+ # Definitions loaded: definitions/mc.yaml
6
+ #
7
+ # All the definitions are available at https://github.com/holidays/holidays
8
+ module MC # :nodoc:
9
+ def self.defined_regions
10
+ [:mc]
11
+ end
12
+
13
+ def self.holidays_by_month
14
+ {
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Lundi de Pâques", :regions => [:mc]},
16
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 39, :name => "Ascension", :regions => [:mc]},
17
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Lundi de Pentecôte", :regions => [:mc]},
18
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 60, :name => "Fête Dieu", :regions => [:mc]}],
19
+ 1 => [{:mday => 1, :name => "Jour de l'an", :regions => [:mc]},
20
+ {:mday => 27, :name => "Sainte Dévote", :regions => [:mc]}],
21
+ 5 => [{:mday => 1, :name => "Fête du Travail", :regions => [:mc]}],
22
+ 8 => [{:mday => 15, :name => "Assomption", :regions => [:mc]}],
23
+ 11 => [{:mday => 1, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Toussaint", :regions => [:mc]},
24
+ {:mday => 19, :name => "Fête du Prince", :regions => [:mc]}],
25
+ 12 => [{:mday => 8, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Immaculée Conception", :regions => [:mc]},
26
+ {:mday => 25, :name => "Noël", :regions => [:mc]}]
27
+ }
28
+ end
29
+
30
+ def self.custom_methods
31
+ {
32
+
33
+ }
34
+ end
35
+ end
36
+ end
@@ -7,7 +7,7 @@ module Holidays
7
7
  # All the definitions are available at https://github.com/holidays/holidays
8
8
  module NORTHAMERICA # :nodoc:
9
9
  def self.defined_regions
10
- [:ca, :ca_qc, :ca_ab, :ca_sk, :ca_on, :ca_bc, :ca_nb, :ca_mb, :ca_ns, :ca_pe, :ca_nl, :ca_nt, :ca_nu, :ca_yt, :mx, :mx_pue, :us_fl, :us_al, :us_la, :us, :us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_nj, :us_nc, :us_nd, :us_pa, :us_pr, :us_tn, :us_ms, :us_id, :us_ar, :us_tx, :us_dc, :us_md, :us_va, :us_vt, :us_ak, :us_ca, :us_me, :us_ma, :us_ga, :us_ne, :us_mo, :us_sc, :us_wv, :us_vi, :us_ut, :us_ri, :us_az, :us_co, :us_il, :us_mt, :us_nm, :us_ny, :us_oh, :us_mi, :us_mn, :us_nv, :us_or, :us_sd, :us_wa, :us_wi, :us_wy, :us_ia, :us_ks, :us_nh, :us_ok]
10
+ [:ca, :ca_qc, :ca_ab, :ca_sk, :ca_on, :ca_bc, :ca_nb, :ca_mb, :ca_ns, :ca_pe, :ca_nl, :ca_nt, :ca_nu, :ca_yt, :mx, :mx_pue, :us_fl, :us_al, :us_la, :us, :us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_nj, :us_nc, :us_nd, :us_pa, :us_pr, :us_tn, :us_ga, :us_ms, :us_id, :us_ar, :us_tx, :us_dc, :us_md, :us_va, :us_vt, :us_ak, :us_ca, :us_me, :us_ma, :us_ne, :us_mo, :us_sc, :us_wv, :us_vi, :us_ut, :us_ri, :us_az, :us_co, :us_il, :us_mt, :us_nm, :us_ny, :us_oh, :us_mi, :us_mn, :us_nv, :us_or, :us_sd, :us_wa, :us_wi, :us_wy, :us_ia, :us_ks, :us_nh, :us_ok]
11
11
  end
12
12
 
13
13
  def self.holidays_by_month
@@ -19,6 +19,7 @@ module Holidays
19
19
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :name => "Mardi Gras Day", :regions => [:us_al, :us_la]},
20
20
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :type => :informal, :name => "Good Friday", :regions => [:us]},
21
21
  {: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_pa, :us_pr, :us_tn]},
22
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :year_ranges => { :from => 2020 },:name => "State Holiday", :regions => [:us_ga]},
22
23
  {:function => "easter(year)", :function_arguments => [:year], :type => :informal, :name => "Easter Sunday", :regions => [:us]}],
23
24
  1 => [{:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:ca]},
24
25
  {:mday => 2, :name => "New Year's", :regions => [:ca_qc]},
@@ -149,7 +150,7 @@ module Holidays
149
150
  {:wday => 1, :week => -1, :name => "Confederate Memorial Day", :regions => [:us_ms]},
150
151
  {:wday => 1, :week => 4, :name => "Confederate Memorial Day", :regions => [:us_al]},
151
152
  {:mday => 26, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Confederate Memorial Day", :regions => [:us_fl]},
152
- {:function => "georgia_state_holiday(year, month)", :function_arguments => [:year, :month], :name => "State Holiday", :regions => [:us_ga]},
153
+ {:function => "georgia_state_holiday(year, month)", :function_arguments => [:year, :month], :year_ranges => { :until => 2019 },:name => "State Holiday", :regions => [:us_ga]},
153
154
  {:wday => 5, :week => -1, :name => "Arbor Day", :regions => [:us_ne]},
154
155
  {:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]},
155
156
  {:mday => 22, :type => :informal, :name => "Earth Day", :regions => [:us, :ca]}]
@@ -32,7 +32,7 @@ module Holidays
32
32
  10 => [{:wday => 1, :week => 1, :observed => "previous_friday(date)", :observed_arguments => [:date], :name => "Hawke's bay Anniversary Day", :regions => [:nz_hb]},
33
33
  {:wday => 1, :week => 4, :name => "Labour Day", :regions => [:nz]},
34
34
  {:wday => 1, :week => 4, :observed => "next_week(date)", :observed_arguments => [:date], :name => "Marlborough Anniversary Day", :regions => [:nz_mb]}],
35
- 11 => [{:wday => 5, :week => 2, :name => "Canterbury Anniversary Day", :regions => [:nz_ca]},
35
+ 11 => [{:function => "nz_canterbury_anniversary(year)", :function_arguments => [:year], :name => "Canterbury Anniversary Day", :regions => [:nz_ca]},
36
36
  {:mday => 30, :observed => "closest_monday(date)", :observed_arguments => [:date], :name => "Chatham Island Anniversary Day", :regions => [:nz_ch]}],
37
37
  12 => [{:mday => 1, :observed => "closest_monday(date)", :observed_arguments => [:date], :name => "Westland Anniversary Day", :regions => [:nz_wl]},
38
38
  {:mday => 25, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Christmas Day", :regions => [:nz]},
@@ -61,6 +61,14 @@ date - 3
61
61
  date + 7
62
62
  },
63
63
 
64
+ "nz_canterbury_anniversary(year)" => Proc.new { |year|
65
+ date = Date.civil(year, 11, 1)
66
+ date += 1 until date.tuesday?
67
+ date += 1
68
+ date += 1 until date.friday?
69
+ date + 7
70
+ },
71
+
64
72
  "matariki(year)" => Proc.new { |year|
65
73
  @matariki_dates ||= {
66
74
  '2022' => Date.civil(2022, 6, 24),
@@ -24,8 +24,8 @@ module Holidays
24
24
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 49, :name => "Zesłanie Ducha Świętego (Zielone Świątki)", :regions => [:pl]},
25
25
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 60, :name => "Uroczystość Najświętszego Ciała i Krwi Pańskiej (Boże Ciało)", :regions => [:pl]}],
26
26
  1 => [{:mday => 1, :name => "Nowy Rok", :regions => [:pl]},
27
- {:function => "pl_trzech_kroli(year)", :function_arguments => [:year], :name => "Objawienie Pańskie (święto Trzech Króli)", :regions => [:pl]},
28
- {:function => "pl_trzech_kroli_informal(year)", :function_arguments => [:year], :type => :informal, :name => "Objawienie Pańskie (święto Trzech Króli)", :regions => [:pl]},
27
+ {:mday => 6, :year_ranges => { :from => 2011 },:name => "Objawienie Pańskie (święto Trzech Króli)", :regions => [:pl]},
28
+ {:mday => 6, :year_ranges => { :until => 2010 },:type => :informal, :name => "Objawienie Pańskie (święto Trzech Króli)", :regions => [:pl]},
29
29
  {:mday => 21, :type => :informal, :name => "Dzień Babci", :regions => [:pl]},
30
30
  {:mday => 22, :type => :informal, :name => "Dzień Dziadka", :regions => [:pl]}],
31
31
  2 => [{:mday => 2, :type => :informal, :name => "Ofiarowanie Pańskie (Matki Boskiej Gromnicznej)", :regions => [:pl]},
@@ -58,15 +58,7 @@ module Holidays
58
58
 
59
59
  def self.custom_methods
60
60
  {
61
- "pl_trzech_kroli(year)" => Proc.new { |year|
62
- year >= 2011 ? 6 : nil
63
- },
64
-
65
- "pl_trzech_kroli_informal(year)" => Proc.new { |year|
66
- year < 2011 ? 6 : nil
67
- },
68
-
69
-
61
+
70
62
  }
71
63
  end
72
64
  end
@@ -7,7 +7,7 @@ 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_fl, :us_al, :us_la, :us, :us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_nj, :us_nc, :us_nd, :us_pa, :us_pr, :us_tn, :us_ms, :us_id, :us_ar, :us_tx, :us_dc, :us_md, :us_va, :us_vt, :us_ak, :us_ca, :us_me, :us_ma, :us_ga, :us_ne, :us_mo, :us_sc, :us_wv, :us_vi, :us_ut, :us_ri, :us_az, :us_co, :us_il, :us_mt, :us_nm, :us_ny, :us_oh, :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]
10
+ [:us_fl, :us_al, :us_la, :us, :us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_nj, :us_nc, :us_nd, :us_pa, :us_pr, :us_tn, :us_ga, :us_ms, :us_id, :us_ar, :us_tx, :us_dc, :us_md, :us_va, :us_vt, :us_ak, :us_ca, :us_me, :us_ma, :us_ne, :us_mo, :us_sc, :us_wv, :us_vi, :us_ut, :us_ri, :us_az, :us_co, :us_il, :us_mt, :us_nm, :us_ny, :us_oh, :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
@@ -16,6 +16,7 @@ module Holidays
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :name => "Mardi Gras Day", :regions => [:us_al, :us_la]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :type => :informal, :name => "Good Friday", :regions => [:us]},
18
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_pa, :us_pr, :us_tn]},
19
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :year_ranges => { :from => 2020 },:name => "State Holiday", :regions => [:us_ga]},
19
20
  {:function => "easter(year)", :function_arguments => [:year], :type => :informal, :name => "Easter Sunday", :regions => [:us]}],
20
21
  1 => [{:mday => 1, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:us]},
21
22
  {:wday => 1, :week => 3, :name => "Martin Luther King's and Robert E. Lee's Birthdays", :regions => [:us_ms]},
@@ -40,7 +41,7 @@ module Holidays
40
41
  {:wday => 1, :week => -1, :name => "Confederate Memorial Day", :regions => [:us_ms]},
41
42
  {:wday => 1, :week => 4, :name => "Confederate Memorial Day", :regions => [:us_al]},
42
43
  {: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
+ {:function => "georgia_state_holiday(year, month)", :function_arguments => [:year, :month], :year_ranges => { :until => 2019 },:name => "State Holiday", :regions => [:us_ga]},
44
45
  {:wday => 5, :week => -1, :name => "Arbor Day", :regions => [:us_ne]},
45
46
  {:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]},
46
47
  {:mday => 22, :type => :informal, :name => "Earth Day", :regions => [:us, :ca]}],