holidays 1.0.3 → 1.0.4

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 (49) hide show
  1. data/.travis.yml +8 -0
  2. data/CHANGELOG +3 -0
  3. data/Gemfile +8 -0
  4. data/data/build_defs.rb +12 -8
  5. data/data/index.yaml +3 -1
  6. data/data/li.yaml +102 -0
  7. data/data/pl.yaml +310 -0
  8. data/data/united_nations.yaml +186 -185
  9. data/holidays.gemspec +61 -11
  10. data/lib/holidays.rb +19 -2
  11. data/lib/holidays/MANIFEST +24 -23
  12. data/lib/holidays/at.rb +17 -13
  13. data/lib/holidays/au.rb +21 -17
  14. data/lib/holidays/br.rb +18 -14
  15. data/lib/holidays/ca.rb +27 -23
  16. data/lib/holidays/cz.rb +18 -14
  17. data/lib/holidays/de.rb +18 -14
  18. data/lib/holidays/dk.rb +20 -16
  19. data/lib/holidays/el.rb +17 -13
  20. data/lib/holidays/es.rb +27 -23
  21. data/lib/holidays/europe.rb +163 -95
  22. data/lib/holidays/fi.rb +20 -16
  23. data/lib/holidays/fr.rb +18 -14
  24. data/lib/holidays/gb.rb +20 -16
  25. data/lib/holidays/ie.rb +17 -13
  26. data/lib/holidays/is.rb +21 -17
  27. data/lib/holidays/it.rb +18 -14
  28. data/lib/holidays/jp.rb +54 -50
  29. data/lib/holidays/li.rb +48 -0
  30. data/lib/holidays/mx.rb +27 -23
  31. data/lib/holidays/nl.rb +16 -12
  32. data/lib/holidays/no.rb +14 -10
  33. data/lib/holidays/north_america.rb +47 -43
  34. data/lib/holidays/nyse.rb +17 -13
  35. data/lib/holidays/nz.rb +24 -20
  36. data/lib/holidays/pl.rb +80 -0
  37. data/lib/holidays/pt.rb +19 -15
  38. data/lib/holidays/scandinavia.rb +51 -47
  39. data/lib/holidays/se.rb +21 -17
  40. data/lib/holidays/united_nations.rb +68 -8
  41. data/lib/holidays/ups.rb +15 -11
  42. data/lib/holidays/us.rb +22 -18
  43. data/lib/holidays/za.rb +19 -15
  44. data/rakefile.rb +6 -4
  45. data/test/defs/test_defs_europe.rb +161 -1
  46. data/test/defs/test_defs_li.rb +35 -0
  47. data/test/defs/test_defs_pl.rb +145 -0
  48. data/test/test_all_regions.rb +48 -0
  49. metadata +190 -42
data/lib/holidays.rb CHANGED
@@ -22,6 +22,9 @@ require 'date'
22
22
  # [<tt>:any</tt>]
23
23
  # Any region. Return holidays from any loaded region.
24
24
  #
25
+ #
26
+ # You can load all the available holiday definition sets by running
27
+ # Holidays.load_all
25
28
  # == Other options
26
29
  # [<tt>:observed</tt>] Return holidays on the day they are observed (e.g. on a Monday if they fall on a Sunday).
27
30
  # [<tt>:informal</tt>] Include informal holidays (e.g. Valentine's Day)
@@ -43,7 +46,7 @@ module Holidays
43
46
  # Exception thrown when an unknown region is requested.
44
47
  class UnknownRegionError < ArgumentError; end
45
48
 
46
- VERSION = '1.0.3'
49
+ VERSION = '1.0.4'
47
50
 
48
51
  @@regions = []
49
52
  @@holidays_by_month = {}
@@ -52,6 +55,7 @@ module Holidays
52
55
  WEEKS = {:first => 1, :second => 2, :third => 3, :fourth => 4, :fifth => 5, :last => -1, :second_last => -2, :third_last => -3}
53
56
  MONTH_LENGTHS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
54
57
  DAY_SYMBOLS = Date::DAYNAMES.collect { |n| n.downcase.intern }
58
+ DEFINITION_PATH = File.expand_path(File.dirname(__FILE__) + '/holidays/')
55
59
 
56
60
  # Get all holidays on a given date.
57
61
  #
@@ -269,6 +273,19 @@ module Holidays
269
273
  date -= 1 if date.wday == 6
270
274
  date
271
275
  end
276
+
277
+ # Returns an array of symbols all the available holiday definitions.
278
+ #
279
+ # Optional `full_path` param is used internally for loading all the definitions.
280
+ def self.available(full_path = false)
281
+ paths = Dir.glob(DEFINITION_PATH + '/*.rb')
282
+ full_path ? paths : paths.collect { |path| path.match(/([a-z_-]+)\.rb/i)[1].to_sym }
283
+ end
284
+
285
+ # Load all available holiday definitions
286
+ def self.load_all
287
+ self.available(true).each { |path| require path }
288
+ end
272
289
 
273
290
  private
274
291
  # Returns [(arr)regions, (bool)observed, (bool)informal]
@@ -302,7 +319,7 @@ private
302
319
  end
303
320
 
304
321
  regions.flatten!
305
-
322
+
306
323
  require "holidays/north_america" if regions.include?(:us) # special case for north_america/US cross-linking
307
324
 
308
325
  raise UnknownRegionError unless regions.all? { |r| r == :any or @@regions.include?(r) or begin require "holidays/#{r.to_s}"; rescue LoadError; false; end }
@@ -1,33 +1,34 @@
1
1
  ==== Regional definitions
2
2
  The following definition files are included in this installation:
3
3
 
4
- * holidays/at
5
- * holidays/au
6
- * holidays/br
7
- * holidays/ca
8
- * holidays/cz
9
- * holidays/de
10
- * holidays/dk
11
- * holidays/el
12
- * holidays/es
13
- * holidays/europe
14
- * holidays/fi
15
- * holidays/fr
16
- * holidays/gb
17
- * holidays/ie
18
- * holidays/is
19
- * holidays/it
20
- * holidays/jp
21
4
  * holidays/mx
5
+ * holidays/at
6
+ * holidays/nz
22
7
  * holidays/nl
8
+ * holidays/dk
9
+ * holidays/cz
10
+ * holidays/scandinavia
23
11
  * holidays/no
24
- * holidays/north_america
25
- * holidays/nyse
26
- * holidays/nz
27
12
  * holidays/pt
28
- * holidays/scandinavia
29
- * holidays/se
13
+ * holidays/nyse
14
+ * holidays/it
30
15
  * holidays/united_nations
31
- * holidays/ups
16
+ * holidays/au
32
17
  * holidays/us
18
+ * holidays/ie
33
19
  * holidays/za
20
+ * holidays/is
21
+ * holidays/north_america
22
+ * holidays/es
23
+ * holidays/fi
24
+ * holidays/el
25
+ * holidays/europe
26
+ * holidays/de
27
+ * holidays/gb
28
+ * holidays/ups
29
+ * holidays/jp
30
+ * holidays/fr
31
+ * holidays/se
32
+ * holidays/ca
33
+ * holidays/br
34
+ * holidays/pl
data/lib/holidays/at.rb CHANGED
@@ -1,37 +1,41 @@
1
1
  # encoding: utf-8
2
2
  module Holidays
3
- # This file is generated by the Ruby Holiday gem.
3
+ # This file is generated by the Ruby Holidays gem.
4
4
  #
5
5
  # Definitions loaded: data/at.yaml
6
6
  #
7
- # To use the definitions in this file, load them right after you load the
7
+ # To use the definitions in this file, load it right after you load the
8
8
  # Holiday gem:
9
9
  #
10
10
  # require 'holidays'
11
11
  # require 'holidays/at'
12
12
  #
13
- # More definitions are available at http://code.dunae.ca/holidays.
13
+ # All the definitions are available at https://github.com/alexdunae/holidays
14
14
  module AT # :nodoc:
15
- DEFINED_REGIONS = [:at]
15
+ def self.defined_regions
16
+ [:at]
17
+ end
16
18
 
17
- HOLIDAYS_BY_MONTH = {
18
- 5 => [{:mday => 1, :name => "Staatsfeiertag", :regions => [:at]}],
19
- 0 => [{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Ostermontag", :regions => [:at]},
19
+ def self.holidays_by_month
20
+ {
21
+ 0 => [{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Ostermontag", :regions => [:at]},
20
22
  {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Christi Himmelfahrt", :regions => [:at]},
21
23
  {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Pfingstmontag", :regions => [:at]},
22
24
  {:function => lambda { |year| Holidays.easter(year)+60 }, :function_id => "easter(year)+60", :name => "Fronleichnam", :regions => [:at]}],
23
- 11 => [{:mday => 1, :name => "Allerheiligen", :regions => [:at]}],
24
25
  1 => [{:mday => 1, :name => "Neujahrstag", :regions => [:at]},
25
26
  {:mday => 6, :name => "Heilige Drei K√∂nige", :regions => [:at]}],
27
+ 5 => [{:mday => 1, :name => "Staatsfeiertag", :regions => [:at]}],
28
+ 8 => [{:mday => 15, :name => "Mari√§ Himmelfahrt", :regions => [:at]}],
29
+ 10 => [{:mday => 26, :name => "Nationalfeiertag", :regions => [:at]}],
30
+ 11 => [{:mday => 1, :name => "Allerheiligen", :regions => [:at]}],
26
31
  12 => [{:mday => 8, :name => "Mari√§ Empf√§ngnis", :regions => [:at]},
27
32
  {:mday => 25, :name => "1. Weihnachtstag", :regions => [:at]},
28
- {:mday => 26, :name => "2. Weihnachtstag", :regions => [:at]}],
29
- 8 => [{:mday => 15, :name => "Mari√§ Himmelfahrt", :regions => [:at]}],
30
- 10 => [{:mday => 26, :name => "Nationalfeiertag", :regions => [:at]}]
31
- }
33
+ {:mday => 26, :name => "2. Weihnachtstag", :regions => [:at]}]
34
+ }
35
+ end
32
36
  end
33
37
 
34
38
 
35
39
  end
36
40
 
37
- Holidays.merge_defs(Holidays::AT::DEFINED_REGIONS, Holidays::AT::HOLIDAYS_BY_MONTH)
41
+ Holidays.merge_defs(Holidays::AT.defined_regions, Holidays::AT.holidays_by_month)
data/lib/holidays/au.rb CHANGED
@@ -1,43 +1,47 @@
1
1
  # encoding: utf-8
2
2
  module Holidays
3
- # This file is generated by the Ruby Holiday gem.
3
+ # This file is generated by the Ruby Holidays gem.
4
4
  #
5
5
  # Definitions loaded: data/au.yaml
6
6
  #
7
- # To use the definitions in this file, load them right after you load the
7
+ # To use the definitions in this file, load it right after you load the
8
8
  # Holiday gem:
9
9
  #
10
10
  # require 'holidays'
11
11
  # require 'holidays/au'
12
12
  #
13
- # More definitions are available at http://code.dunae.ca/holidays.
13
+ # All the definitions are available at https://github.com/alexdunae/holidays
14
14
  module AU # :nodoc:
15
- DEFINED_REGIONS = [:au_qld, :au_nt, :au, :au_tas, :au_wa, :au_act, :au_nsw, :au_sa, :au_vic, :au_qld_brisbane]
15
+ def self.defined_regions
16
+ [:au, :au_tas, :au_wa, :au_vic, :au_qld, :au_nt, :au_act, :au_nsw, :au_sa, :au_qld_brisbane]
17
+ end
16
18
 
17
- HOLIDAYS_BY_MONTH = {
18
- 5 => [{:wday => 1, :week => 1, :name => "Labour Day", :regions => [:au_qld]},
19
- {:wday => 1, :week => 1, :name => "May Day", :regions => [:au_nt]}],
20
- 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:au]},
19
+ def self.holidays_by_month
20
+ {
21
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:au]},
21
22
  {:function => lambda { |year| Holidays.easter(year)-1 }, :function_id => "easter(year)-1", :name => "Easter Saturday", :regions => [:au]},
22
23
  {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Easter Monday", :regions => [:au]},
23
24
  {:function => lambda { |year| Holidays.easter(year)+2 }, :function_id => "easter(year)+2", :name => "Easter Monday", :regions => [:au_tas]}],
24
- 6 => [{:wday => 1, :week => 1, :name => "Foundation Day", :regions => [:au_wa]},
25
- {:wday => 1, :week => 2, :name => "Queen's Birthday", :regions => [:au_act, :au_nsw, :au_sa, :au_tas, :au_nt, :au_qld, :au_vic]},
26
- {:mday => 6, :type => :informal, :name => "Queensland Day", :regions => [:au_qld]}],
27
25
  1 => [{:mday => 1, :name => "New Year's Day", :regions => [:au]},
28
26
  {:mday => 26, :name => "Australia Day", :regions => [:au]}],
29
- 12 => [{:mday => 25, :name => "Christmas Day", :regions => [:au]},
30
- {:mday => 26, :name => "Boxing Day", :regions => [:au]}],
31
- 8 => [{:wday => 3, :week => -3, :name => "Ekka", :regions => [:au_qld_brisbane]}],
32
27
  3 => [{:wday => 1, :week => 1, :name => "Labour Day", :regions => [:au_wa]},
33
28
  {:wday => 1, :week => 2, :name => "Eight Hours Day", :regions => [:au_tas]},
34
29
  {:wday => 1, :week => 2, :name => "Labour Day", :regions => [:au_vic]}],
35
30
  4 => [{:mday => 25, :name => "ANZAC Day", :regions => [:au]}],
36
- 10 => [{:wday => 1, :week => 1, :name => "Labour Day", :regions => [:au_act, :au_nsw, :au_sa]}]
37
- }
31
+ 5 => [{:wday => 1, :week => 1, :name => "Labour Day", :regions => [:au_qld]},
32
+ {:wday => 1, :week => 1, :name => "May Day", :regions => [:au_nt]}],
33
+ 6 => [{:wday => 1, :week => 1, :name => "Foundation Day", :regions => [:au_wa]},
34
+ {:wday => 1, :week => 2, :name => "Queen's Birthday", :regions => [:au_act, :au_nsw, :au_sa, :au_tas, :au_nt, :au_qld, :au_vic]},
35
+ {:mday => 6, :type => :informal, :name => "Queensland Day", :regions => [:au_qld]}],
36
+ 8 => [{:wday => 3, :week => -3, :name => "Ekka", :regions => [:au_qld_brisbane]}],
37
+ 10 => [{:wday => 1, :week => 1, :name => "Labour Day", :regions => [:au_act, :au_nsw, :au_sa]}],
38
+ 12 => [{:mday => 25, :name => "Christmas Day", :regions => [:au]},
39
+ {:mday => 26, :name => "Boxing Day", :regions => [:au]}]
40
+ }
41
+ end
38
42
  end
39
43
 
40
44
 
41
45
  end
42
46
 
43
- Holidays.merge_defs(Holidays::AU::DEFINED_REGIONS, Holidays::AU::HOLIDAYS_BY_MONTH)
47
+ Holidays.merge_defs(Holidays::AU.defined_regions, Holidays::AU.holidays_by_month)
data/lib/holidays/br.rb CHANGED
@@ -1,36 +1,40 @@
1
1
  # encoding: utf-8
2
2
  module Holidays
3
- # This file is generated by the Ruby Holiday gem.
3
+ # This file is generated by the Ruby Holidays gem.
4
4
  #
5
5
  # Definitions loaded: data/br.yaml
6
6
  #
7
- # To use the definitions in this file, load them right after you load the
7
+ # To use the definitions in this file, load it right after you load the
8
8
  # Holiday gem:
9
9
  #
10
10
  # require 'holidays'
11
11
  # require 'holidays/br'
12
12
  #
13
- # More definitions are available at http://code.dunae.ca/holidays.
13
+ # All the definitions are available at https://github.com/alexdunae/holidays
14
14
  module BR # :nodoc:
15
- DEFINED_REGIONS = [:br]
15
+ def self.defined_regions
16
+ [:br]
17
+ end
16
18
 
17
- HOLIDAYS_BY_MONTH = {
18
- 5 => [{:mday => 1, :name => "Dia do Trabalho", :regions => [:br]}],
19
- 0 => [{:function => lambda { |year| Holidays.easter(year)-47 }, :function_id => "easter(year)-47", :type => :informal, :name => "Carnaval", :regions => [:br]},
19
+ def self.holidays_by_month
20
+ {
21
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-47 }, :function_id => "easter(year)-47", :type => :informal, :name => "Carnaval", :regions => [:br]},
20
22
  {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Sexta-feira Santa", :regions => [:br]},
21
23
  {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Páscoa", :regions => [:br]},
22
24
  {:function => lambda { |year| Holidays.easter(year)+60 }, :function_id => "easter(year)+60", :name => "Corpus Christ", :regions => [:br]}],
23
- 11 => [{:mday => 2, :name => "Dia de Finados", :regions => [:br]},
24
- {:mday => 15, :name => "Proclamação da República", :regions => [:br]}],
25
25
  1 => [{:mday => 1, :name => "Dia da Confraternização Universal", :regions => [:br]}],
26
- 12 => [{:mday => 25, :name => "Natal", :regions => [:br]}],
27
- 9 => [{:mday => 7, :name => "Proclamação da Independência", :regions => [:br]}],
28
26
  4 => [{:mday => 21, :name => "Dia de Tiradentes", :regions => [:br]}],
29
- 10 => [{:mday => 12, :name => "Dia de Nossa Senhora Aparecida", :regions => [:br]}]
30
- }
27
+ 5 => [{:mday => 1, :name => "Dia do Trabalho", :regions => [:br]}],
28
+ 9 => [{:mday => 7, :name => "Proclamação da Independência", :regions => [:br]}],
29
+ 10 => [{:mday => 12, :name => "Dia de Nossa Senhora Aparecida", :regions => [:br]}],
30
+ 11 => [{:mday => 2, :name => "Dia de Finados", :regions => [:br]},
31
+ {:mday => 15, :name => "Proclamação da República", :regions => [:br]}],
32
+ 12 => [{:mday => 25, :name => "Natal", :regions => [:br]}]
33
+ }
34
+ end
31
35
  end
32
36
 
33
37
 
34
38
  end
35
39
 
36
- Holidays.merge_defs(Holidays::BR::DEFINED_REGIONS, Holidays::BR::HOLIDAYS_BY_MONTH)
40
+ Holidays.merge_defs(Holidays::BR.defined_regions, Holidays::BR.holidays_by_month)
data/lib/holidays/ca.rb CHANGED
@@ -1,54 +1,58 @@
1
1
  # encoding: utf-8
2
2
  module Holidays
3
- # This file is generated by the Ruby Holiday gem.
3
+ # This file is generated by the Ruby Holidays gem.
4
4
  #
5
5
  # Definitions loaded: data/ca.yaml, data/north_america_informal.yaml
6
6
  #
7
- # To use the definitions in this file, load them right after you load the
7
+ # To use the definitions in this file, load it right after you load the
8
8
  # Holiday gem:
9
9
  #
10
10
  # require 'holidays'
11
11
  # require 'holidays/ca'
12
12
  #
13
- # More definitions are available at http://code.dunae.ca/holidays.
13
+ # All the definitions are available at https://github.com/alexdunae/holidays
14
14
  module CA # :nodoc:
15
- DEFINED_REGIONS = [:ca, :ca_qc, :ca_nf, :ca_nt, :ca_nu, :ca_ab, :ca_on, :ca_sk, :ca_mb, :ca_bc, :ca_ns, :ca_yk, :us]
15
+ def self.defined_regions
16
+ [:ca, :ca_qc, :ca_ab, :ca_on, :ca_sk, :ca_mb, :ca_nf, :ca_nt, :ca_nu, :ca_bc, :ca_ns, :ca_yk, :us]
17
+ end
16
18
 
17
- HOLIDAYS_BY_MONTH = {
19
+ def self.holidays_by_month
20
+ {
21
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:ca]},
22
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :type => :informal, :name => "Easter Monday", :regions => [:ca]}],
23
+ 1 => [{:mday => 1, :name => "New Year's Day", :regions => [:ca]},
24
+ {:mday => 2, :name => "New Year's", :regions => [:ca_qc]}],
25
+ 2 => [{:wday => 1, :week => 3, :name => "Family Day", :regions => [:ca_ab, :ca_on, :ca_sk]},
26
+ {:wday => 1, :week => 3, :name => "Louis Riel Day", :regions => [:ca_mb]},
27
+ {:mday => 2, :type => :informal, :name => "Groundhog Day", :regions => [:us, :ca]},
28
+ {:mday => 14, :type => :informal, :name => "Valentine's Day", :regions => [:us, :ca]}],
29
+ 3 => [{:mday => 23, :name => "St. George's Day", :regions => [:ca_nf]},
30
+ {:mday => 17, :type => :informal, :name => "St. Patrick's Day", :regions => [:us, :ca]}],
18
31
  5 => [{:function => lambda { |year| Holidays.ca_victoria_day(year) }, :function_id => "ca_victoria_day(year)", :name => "Victoria Day", :regions => [:ca]},
19
32
  {:function => lambda { |year| Holidays.ca_victoria_day(year) }, :function_id => "ca_victoria_day(year)", :name => "National Patriotes Day", :regions => [:ca_qc]},
20
33
  {:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}],
21
- 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:ca]},
22
- {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :type => :informal, :name => "Easter Monday", :regions => [:ca]}],
23
- 11 => [{:mday => 11, :name => "Remembrance Day", :regions => [:ca]}],
24
34
  6 => [{:mday => 24, :name => "Discovery Day", :regions => [:ca_nf]},
25
35
  {:mday => 24, :name => "Fête Nationale", :regions => [:ca_qc]},
26
36
  {:mday => 21, :name => "National Aboriginal Day", :regions => [:ca_nt]}],
27
- 1 => [{:mday => 1, :name => "New Year's Day", :regions => [:ca]},
28
- {:mday => 2, :name => "New Year's", :regions => [:ca_qc]}],
29
- 12 => [{:mday => 25, :name => "Christmas Day", :regions => [:ca]},
30
- {:mday => 26, :name => "Boxing Day", :regions => [:ca]}],
31
37
  7 => [{:mday => 1, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Canada Day", :regions => [:ca]},
32
38
  {:mday => 12, :name => "Orangemen's Day", :regions => [:ca_nf]},
33
39
  {:mday => 9, :name => "Nunavut Day", :regions => [:ca_nu]}],
34
- 2 => [{:wday => 1, :week => 3, :name => "Family Day", :regions => [:ca_ab, :ca_on, :ca_sk]},
35
- {:wday => 1, :week => 3, :name => "Louis Riel Day", :regions => [:ca_mb]},
36
- {:mday => 2, :type => :informal, :name => "Groundhog Day", :regions => [:us, :ca]},
37
- {:mday => 14, :type => :informal, :name => "Valentine's Day", :regions => [:us, :ca]}],
38
40
  8 => [{:wday => 1, :week => 1, :name => "BC Day", :regions => [:ca_bc]},
39
41
  {:wday => 1, :week => 1, :name => "Saskatchewan Day", :regions => [:ca_sk]},
40
42
  {:wday => 1, :week => 1, :name => "Heritage Day", :regions => [:ca_ab]},
41
43
  {:wday => 1, :week => 1, :name => "Natal Day", :regions => [:ca_ns]},
42
44
  {:wday => 1, :week => 1, :name => "Civic Holiday", :regions => [:ca_on]},
43
45
  {:wday => 1, :week => 3, :name => "Discovery Day", :regions => [:ca_yk]}],
44
- 3 => [{:mday => 23, :name => "St. George's Day", :regions => [:ca_nf]},
45
- {:mday => 17, :type => :informal, :name => "St. Patrick's Day", :regions => [:us, :ca]}],
46
46
  9 => [{:wday => 1, :week => 1, :name => "Labour Day", :regions => [:ca]}],
47
- 4 => [{:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]},
48
- {:mday => 22, :type => :informal, :name => "Earth Day", :regions => [:us, :ca]}],
49
47
  10 => [{:wday => 1, :week => 2, :name => "Thanksgiving", :regions => [:ca]},
50
- {:mday => 31, :type => :informal, :name => "Halloween", :regions => [:us, :ca]}]
51
- }
48
+ {:mday => 31, :type => :informal, :name => "Halloween", :regions => [:us, :ca]}],
49
+ 11 => [{:mday => 11, :name => "Remembrance Day", :regions => [:ca]}],
50
+ 12 => [{:mday => 25, :name => "Christmas Day", :regions => [:ca]},
51
+ {:mday => 26, :name => "Boxing Day", :regions => [:ca]}],
52
+ 4 => [{:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]},
53
+ {:mday => 22, :type => :informal, :name => "Earth Day", :regions => [:us, :ca]}]
54
+ }
55
+ end
52
56
  end
53
57
 
54
58
  # Monday on or before May 24
@@ -66,4 +70,4 @@ end
66
70
 
67
71
  end
68
72
 
69
- Holidays.merge_defs(Holidays::CA::DEFINED_REGIONS, Holidays::CA::HOLIDAYS_BY_MONTH)
73
+ Holidays.merge_defs(Holidays::CA.defined_regions, Holidays::CA.holidays_by_month)
data/lib/holidays/cz.rb CHANGED
@@ -1,36 +1,40 @@
1
1
  # encoding: utf-8
2
2
  module Holidays
3
- # This file is generated by the Ruby Holiday gem.
3
+ # This file is generated by the Ruby Holidays gem.
4
4
  #
5
5
  # Definitions loaded: data/cz.yaml
6
6
  #
7
- # To use the definitions in this file, load them right after you load the
7
+ # To use the definitions in this file, load it right after you load the
8
8
  # Holiday gem:
9
9
  #
10
10
  # require 'holidays'
11
11
  # require 'holidays/cz'
12
12
  #
13
- # More definitions are available at http://code.dunae.ca/holidays.
13
+ # All the definitions are available at https://github.com/alexdunae/holidays
14
14
  module CZ # :nodoc:
15
- DEFINED_REGIONS = [:cz]
15
+ def self.defined_regions
16
+ [:cz]
17
+ end
16
18
 
17
- HOLIDAYS_BY_MONTH = {
19
+ def self.holidays_by_month
20
+ {
21
+ 0 => [{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Velikonoční pondělí", :regions => [:cz]}],
22
+ 1 => [{:mday => 1, :name => "Den obnovy samostatného českého státu", :regions => [:cz]}],
18
23
  5 => [{:mday => 1, :name => "Svátek práce", :regions => [:cz]},
19
24
  {:mday => 8, :name => "Den vítězství", :regions => [:cz]}],
20
- 0 => [{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Velikonoční pondělí", :regions => [:cz]}],
21
- 11 => [{:mday => 17, :name => "Den boje za svobodu a demokracii", :regions => [:cz]}],
22
- 1 => [{:mday => 1, :name => "Den obnovy samostatného českého státu", :regions => [:cz]}],
23
- 12 => [{:mday => 24, :name => "Štědrý den", :regions => [:cz]},
24
- {:mday => 25, :name => "1. svátek vánoční", :regions => [:cz]},
25
- {:mday => 26, :name => "2. svátek vánoční", :regions => [:cz]}],
26
25
  7 => [{:mday => 5, :name => "Den slovanských věrozvěstů Cyrila a Metoděje", :regions => [:cz]},
27
26
  {:mday => 6, :name => "Den upálení mistra Jana Husa", :regions => [:cz]}],
28
27
  9 => [{:mday => 28, :name => "Den české státnosti", :regions => [:cz]}],
29
- 10 => [{:mday => 28, :name => "Den vzniku samostatného československého státu", :regions => [:cz]}]
30
- }
28
+ 10 => [{:mday => 28, :name => "Den vzniku samostatného československého státu", :regions => [:cz]}],
29
+ 11 => [{:mday => 17, :name => "Den boje za svobodu a demokracii", :regions => [:cz]}],
30
+ 12 => [{:mday => 24, :name => "Štědrý den", :regions => [:cz]},
31
+ {:mday => 25, :name => "1. svátek vánoční", :regions => [:cz]},
32
+ {:mday => 26, :name => "2. svátek vánoční", :regions => [:cz]}]
33
+ }
34
+ end
31
35
  end
32
36
 
33
37
 
34
38
  end
35
39
 
36
- Holidays.merge_defs(Holidays::CZ::DEFINED_REGIONS, Holidays::CZ::HOLIDAYS_BY_MONTH)
40
+ Holidays.merge_defs(Holidays::CZ.defined_regions, Holidays::CZ.holidays_by_month)
data/lib/holidays/de.rb CHANGED
@@ -1,36 +1,40 @@
1
1
  # encoding: utf-8
2
2
  module Holidays
3
- # This file is generated by the Ruby Holiday gem.
3
+ # This file is generated by the Ruby Holidays gem.
4
4
  #
5
5
  # Definitions loaded: data/de.yaml
6
6
  #
7
- # To use the definitions in this file, load them right after you load the
7
+ # To use the definitions in this file, load it right after you load the
8
8
  # Holiday gem:
9
9
  #
10
10
  # require 'holidays'
11
11
  # require 'holidays/de'
12
12
  #
13
- # More definitions are available at http://code.dunae.ca/holidays.
13
+ # All the definitions are available at https://github.com/alexdunae/holidays
14
14
  module DE # :nodoc:
15
- DEFINED_REGIONS = [:de, :de_bw, :de_by, :de_nw, :de_rp, :de_sl, :de_sn, :de_he, :de_st, :de_bb, :de_mv, :de_th]
15
+ def self.defined_regions
16
+ [:de, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_st, :de_bb, :de_mv, :de_sn, :de_th]
17
+ end
16
18
 
17
- HOLIDAYS_BY_MONTH = {
18
- 5 => [{:mday => 1, :name => "Tag der Arbeit", :regions => [:de]}],
19
- 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Karfreitag", :regions => [:de]},
19
+ def self.holidays_by_month
20
+ {
21
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Karfreitag", :regions => [:de]},
20
22
  {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Ostermontag", :regions => [:de]},
21
23
  {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Christi Himmelfahrt", :regions => [:de]},
22
24
  {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Pfingstmontag", :regions => [:de]},
23
25
  {:function => lambda { |year| Holidays.easter(year)+60 }, :function_id => "easter(year)+60", :name => "Fronleichnam", :regions => [:de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl]}],
24
- 11 => [{:mday => 1, :name => "Allerheiligen", :regions => [:de_bw, :de_by, :de_nw, :de_rp, :de_sl]},
25
- {:function => lambda { |year| Holidays.de_buss_und_bettag(year) }, :function_id => "de_buss_und_bettag(year)", :name => "Buß- und Bettag", :regions => [:de_sn]}],
26
26
  1 => [{:mday => 1, :name => "Neujahrstag", :regions => [:de]},
27
27
  {:mday => 6, :name => "Heilige Drei Könige", :regions => [:de_bw, :de_by, :de_st]}],
28
- 12 => [{:mday => 25, :name => "1. Weihnachtstag", :regions => [:de]},
29
- {:mday => 26, :name => "2. Weihnachtstag", :regions => [:de]}],
28
+ 5 => [{:mday => 1, :name => "Tag der Arbeit", :regions => [:de]}],
30
29
  8 => [{:mday => 15, :name => "Mariä Himmelfahrt", :regions => [:de_by, :de_sl]}],
31
30
  10 => [{:mday => 3, :name => "Tag der Deutschen Einheit", :regions => [:de]},
32
- {:mday => 31, :name => "Reformationstag", :regions => [:de_bb, :de_mv, :de_sn, :de_st, :de_th]}]
33
- }
31
+ {:mday => 31, :name => "Reformationstag", :regions => [:de_bb, :de_mv, :de_sn, :de_st, :de_th]}],
32
+ 11 => [{:mday => 1, :name => "Allerheiligen", :regions => [:de_bw, :de_by, :de_nw, :de_rp, :de_sl]},
33
+ {:function => lambda { |year| Holidays.de_buss_und_bettag(year) }, :function_id => "de_buss_und_bettag(year)", :name => "Buß- und Bettag", :regions => [:de_sn]}],
34
+ 12 => [{:mday => 25, :name => "1. Weihnachtstag", :regions => [:de]},
35
+ {:mday => 26, :name => "2. Weihnachtstag", :regions => [:de]}]
36
+ }
37
+ end
34
38
  end
35
39
 
36
40
  # Germany: Wednesday before November 23
@@ -48,4 +52,4 @@ end
48
52
 
49
53
  end
50
54
 
51
- Holidays.merge_defs(Holidays::DE::DEFINED_REGIONS, Holidays::DE::HOLIDAYS_BY_MONTH)
55
+ Holidays.merge_defs(Holidays::DE.defined_regions, Holidays::DE.holidays_by_month)