holidays 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
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)