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/fi.rb CHANGED
@@ -1,48 +1,52 @@
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/fi.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/fi'
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 FI # :nodoc:
15
- DEFINED_REGIONS = [:fi]
15
+ def self.defined_regions
16
+ [:fi]
17
+ end
16
18
 
17
- HOLIDAYS_BY_MONTH = {
18
- 5 => [{:mday => 1, :name => "Vappu", :regions => [:fi]}],
19
- 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Pitkäperjantai", :regions => [:fi]},
19
+ def self.holidays_by_month
20
+ {
21
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Pitkäperjantai", :regions => [:fi]},
20
22
  {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Pääsiäispäivä", :regions => [:fi]},
21
23
  {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "2. Pääsiäispäivä", :regions => [:fi]},
22
24
  {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Helatorstai", :regions => [:fi]},
23
25
  {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Helluntaipäivä", :regions => [:fi]},
24
26
  {:function => lambda { |year| Holidays.fi_pyhainpaiva(year) }, :function_id => "fi_pyhainpaiva(year)", :name => "Pyhäinpäivä", :regions => [:fi]}],
25
- 6 => [{:function => lambda { |year| Holidays.fi_juhannuspaiva(year) }, :function_id => "fi_juhannuspaiva(year)", :name => "Juhannuspäivä", :regions => [:fi]}],
26
27
  1 => [{:mday => 1, :name => "Uudenvuodenpäivä", :regions => [:fi]},
27
28
  {:mday => 6, :name => "Loppiainen", :regions => [:fi]}],
29
+ 5 => [{:mday => 1, :name => "Vappu", :regions => [:fi]}],
30
+ 6 => [{:function => lambda { |year| Holidays.fi_juhannuspaiva(year) }, :function_id => "fi_juhannuspaiva(year)", :name => "Juhannuspäivä", :regions => [:fi]}],
28
31
  12 => [{:mday => 6, :name => "Itsenäisyyspäivä", :regions => [:fi]},
29
32
  {:mday => 24, :name => "Jouluaatto", :regions => [:fi]},
30
33
  {:mday => 25, :name => "Joulupäivä", :regions => [:fi]},
31
34
  {:mday => 26, :name => "Tapaninpäivä", :regions => [:fi]}]
32
- }
35
+ }
36
+ end
33
37
  end
34
38
 
35
- # Finland: All Saint's Day (Saturday between Oct 31 and Nov 6)
36
- def self.fi_pyhainpaiva(year)
37
- date = Date.civil(year,10,31)
39
+ # Finland: Mid-summer (Saturday between June 20–26)
40
+ def self.fi_juhannuspaiva(year)
41
+ date = Date.civil(year,6,20)
38
42
  date += (6 - date.wday)
39
43
  date
40
44
  end
41
45
 
42
46
 
43
- # Finland: Mid-summer (Saturday between June 20–26)
44
- def self.fi_juhannuspaiva(year)
45
- date = Date.civil(year,6,20)
47
+ # Finland: All Saint's Day (Saturday between Oct 31 and Nov 6)
48
+ def self.fi_pyhainpaiva(year)
49
+ date = Date.civil(year,10,31)
46
50
  date += (6 - date.wday)
47
51
  date
48
52
  end
@@ -51,4 +55,4 @@ end
51
55
 
52
56
  end
53
57
 
54
- Holidays.merge_defs(Holidays::FI::DEFINED_REGIONS, Holidays::FI::HOLIDAYS_BY_MONTH)
58
+ Holidays.merge_defs(Holidays::FI.defined_regions, Holidays::FI.holidays_by_month)
data/lib/holidays/fr.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/fr.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/fr'
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 FR # :nodoc:
15
- DEFINED_REGIONS = [:fr]
15
+ def self.defined_regions
16
+ [:fr]
17
+ end
16
18
 
17
- HOLIDAYS_BY_MONTH = {
18
- 5 => [{:mday => 1, :name => "Fête du travail", :regions => [:fr]},
19
- {:mday => 8, :name => "Victoire 1945", :regions => [:fr]}],
20
- 0 => [{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Pâques", :regions => [:fr]},
19
+ def self.holidays_by_month
20
+ {
21
+ 0 => [{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Pâques", :regions => [:fr]},
21
22
  {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Lundi de Pâques", :regions => [:fr]},
22
23
  {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Ascension", :regions => [:fr]},
23
24
  {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Pentecôte", :regions => [:fr]},
24
25
  {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Lundi de Pentecôte", :regions => [:fr]}],
25
- 11 => [{:mday => 1, :name => "Toussaint", :regions => [:fr]},
26
- {:mday => 11, :name => "Armistice 1918", :regions => [:fr]}],
27
26
  1 => [{:mday => 1, :name => "Jour de l'an", :regions => [:fr]}],
28
- 12 => [{:mday => 25, :name => "Nöel", :regions => [:fr]}],
27
+ 5 => [{:mday => 1, :name => "Fête du travail", :regions => [:fr]},
28
+ {:mday => 8, :name => "Victoire 1945", :regions => [:fr]}],
29
29
  7 => [{:mday => 14, :name => "Fête nationale", :regions => [:fr]}],
30
- 8 => [{:mday => 15, :name => "Assomption", :regions => [:fr]}]
31
- }
30
+ 8 => [{:mday => 15, :name => "Assomption", :regions => [:fr]}],
31
+ 11 => [{:mday => 1, :name => "Toussaint", :regions => [:fr]},
32
+ {:mday => 11, :name => "Armistice 1918", :regions => [:fr]}],
33
+ 12 => [{:mday => 25, :name => "Nöel", :regions => [:fr]}]
34
+ }
35
+ end
32
36
  end
33
37
 
34
38
 
35
39
  end
36
40
 
37
- Holidays.merge_defs(Holidays::FR::DEFINED_REGIONS, Holidays::FR::HOLIDAYS_BY_MONTH)
41
+ Holidays.merge_defs(Holidays::FR.defined_regions, Holidays::FR.holidays_by_month)
data/lib/holidays/gb.rb CHANGED
@@ -1,41 +1,45 @@
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/gb.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/gb'
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 GB # :nodoc:
15
- DEFINED_REGIONS = [:gb, :je, :gb_jsy, :gg, :gb_gsy, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :gb_sct, :im, :gb_iom, :gb_con]
15
+ def self.defined_regions
16
+ [:gb, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :gb_sct, :gb_con, :je, :gb_jsy, :gg, :gb_gsy, :im, :gb_iom]
17
+ end
16
18
 
17
- HOLIDAYS_BY_MONTH = {
18
- 5 => [{:wday => 1, :week => 1, :name => "May Day", :regions => [:gb]},
19
- {:mday => 9, :name => "Liberation Day", :regions => [:je, :gb_jsy, :gg, :gb_gsy]},
20
- {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb]}],
21
- 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:gb]},
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 => [:gb]},
22
22
  {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Easter Sunday", :regions => [:gb]},
23
23
  {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Easter Monday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir]}],
24
- 11 => [{:mday => 5, :type => :informal, :name => "Guy Fawkes Day", :regions => [:gb]}],
25
24
  1 => [{:mday => 1, :name => "New Year's Day", :regions => [:gb]},
26
25
  {:mday => 2, :name => "New Year's", :regions => [:gb_sct]}],
27
- 12 => [{:mday => 25, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "Christmas Day", :regions => [:gb]},
28
- {:mday => 26, :observed => lambda { |date| Holidays.to_weekday_if_boxing_weekend(date) }, :observed_id => "to_weekday_if_boxing_weekend", :name => "Boxing Day", :regions => [:gb]}],
26
+ 3 => [{:mday => 5, :name => "St. Piran's Day", :regions => [:gb_con]},
27
+ {:mday => 17, :name => "St. Patrick's Day", :regions => [:gb_nir]}],
28
+ 5 => [{:wday => 1, :week => 1, :name => "May Day", :regions => [:gb]},
29
+ {:mday => 9, :name => "Liberation Day", :regions => [:je, :gb_jsy, :gg, :gb_gsy]},
30
+ {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb]}],
29
31
  7 => [{:mday => 5, :name => "Tynwald Day", :regions => [:im, :gb_iom]},
30
32
  {:mday => 12, :name => "Battle of the Boyne", :regions => [:gb_nir]}],
31
33
  8 => [{:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:gb_sct]},
32
34
  {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir]}],
33
- 3 => [{:mday => 5, :name => "St. Piran's Day", :regions => [:gb_con]},
34
- {:mday => 17, :name => "St. Patrick's Day", :regions => [:gb_nir]}]
35
- }
35
+ 11 => [{:mday => 5, :type => :informal, :name => "Guy Fawkes Day", :regions => [:gb]}],
36
+ 12 => [{:mday => 25, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "Christmas Day", :regions => [:gb]},
37
+ {:mday => 26, :observed => lambda { |date| Holidays.to_weekday_if_boxing_weekend(date) }, :observed_id => "to_weekday_if_boxing_weekend", :name => "Boxing Day", :regions => [:gb]}]
38
+ }
39
+ end
36
40
  end
37
41
 
38
42
 
39
43
  end
40
44
 
41
- Holidays.merge_defs(Holidays::GB::DEFINED_REGIONS, Holidays::GB::HOLIDAYS_BY_MONTH)
45
+ Holidays.merge_defs(Holidays::GB.defined_regions, Holidays::GB.holidays_by_month)
data/lib/holidays/ie.rb CHANGED
@@ -1,33 +1,37 @@
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/ie.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/ie'
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 IE # :nodoc:
15
- DEFINED_REGIONS = [:ie]
15
+ def self.defined_regions
16
+ [:ie]
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 => "Easter Monday", :regions => [:ie]}],
22
+ 1 => [{:mday => 1, :name => "New Year's Day", :regions => [:ie]}],
23
+ 3 => [{:mday => 17, :name => "St. Patrick's Day", :regions => [:ie]}],
18
24
  5 => [{:wday => 1, :week => 1, :name => "May Day", :regions => [:ie]}],
19
- 0 => [{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Easter Monday", :regions => [:ie]}],
20
25
  6 => [{:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:ie]}],
21
- 1 => [{:mday => 1, :name => "New Year's Day", :regions => [:ie]}],
22
- 12 => [{:mday => 25, :name => "Christmas Day", :regions => [:ie]},
23
- {:mday => 26, :name => "St. Stephen's Day", :regions => [:ie]}],
24
26
  8 => [{:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:ie]}],
25
- 3 => [{:mday => 17, :name => "St. Patrick's Day", :regions => [:ie]}],
26
- 10 => [{:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:ie]}]
27
- }
27
+ 10 => [{:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:ie]}],
28
+ 12 => [{:mday => 25, :name => "Christmas Day", :regions => [:ie]},
29
+ {:mday => 26, :name => "St. Stephen's Day", :regions => [:ie]}]
30
+ }
31
+ end
28
32
  end
29
33
 
30
34
 
31
35
  end
32
36
 
33
- Holidays.merge_defs(Holidays::IE::DEFINED_REGIONS, Holidays::IE::HOLIDAYS_BY_MONTH)
37
+ Holidays.merge_defs(Holidays::IE.defined_regions, Holidays::IE.holidays_by_month)
data/lib/holidays/is.rb CHANGED
@@ -1,23 +1,24 @@
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/is.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/is'
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 IS # :nodoc:
15
- DEFINED_REGIONS = [:is]
15
+ def self.defined_regions
16
+ [:is]
17
+ end
16
18
 
17
- HOLIDAYS_BY_MONTH = {
18
- 5 => [{:mday => 1, :name => "Verkalýðsdagurinn", :regions => [:is]},
19
- {:mday => 13, :name => "Mæðradagurinn", :regions => [:is]}],
20
- 0 => [{:function => lambda { |year| Holidays.easter(year)-48 }, :function_id => "easter(year)-48", :name => "Bolludagur", :regions => [:is]},
19
+ def self.holidays_by_month
20
+ {
21
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-48 }, :function_id => "easter(year)-48", :name => "Bolludagur", :regions => [:is]},
21
22
  {:function => lambda { |year| Holidays.easter(year)-47 }, :function_id => "easter(year)-47", :name => "Sprengidagur", :regions => [:is]},
22
23
  {:function => lambda { |year| Holidays.easter(year)-46 }, :function_id => "easter(year)-46", :name => "Öskudagur", :regions => [:is]},
23
24
  {:function => lambda { |year| Holidays.easter(year)-7 }, :function_id => "easter(year)-7", :name => "Pálmasunnudagur", :regions => [:is]},
@@ -28,20 +29,23 @@ module Holidays
28
29
  {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Uppstigningardagur", :regions => [:is]},
29
30
  {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Hvítasunnudagur", :regions => [:is]},
30
31
  {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Annar í hvítasunnu", :regions => [:is]}],
31
- 11 => [{:mday => 16, :name => "Dagur íslenskrar tungu", :regions => [:is]}],
32
- 6 => [{:mday => 3, :type => :informal, :name => "Sjómannadagurinn", :regions => [:is]},
33
- {:mday => 17, :name => "Lýðveldisdagurinn", :regions => [:is]}],
34
32
  1 => [{:mday => 1, :name => "Nýársdagur", :regions => [:is]},
35
33
  {:mday => 6, :name => "Þrettándinn", :regions => [:is]},
36
34
  {:mday => 19, :type => :informal, :name => "Bóndadagur", :regions => [:is]}],
35
+ 2 => [{:mday => 18, :type => :informal, :name => "Konudagur", :regions => [:is]}],
36
+ 4 => [{:function => lambda { |year| Holidays.is_sumardagurinn_fyrsti(year) }, :function_id => "is_sumardagurinn_fyrsti(year)", :name => "Sumardagurinn fyrsti", :regions => [:is]}],
37
+ 5 => [{:mday => 1, :name => "Verkalýðsdagurinn", :regions => [:is]},
38
+ {:mday => 13, :name => "Mæðradagurinn", :regions => [:is]}],
39
+ 6 => [{:mday => 3, :type => :informal, :name => "Sjómannadagurinn", :regions => [:is]},
40
+ {:mday => 17, :name => "Lýðveldisdagurinn", :regions => [:is]}],
41
+ 8 => [{:wday => 1, :week => 1, :name => "Frídagur verslunarmanna", :regions => [:is]}],
42
+ 11 => [{:mday => 16, :name => "Dagur íslenskrar tungu", :regions => [:is]}],
37
43
  12 => [{:mday => 24, :name => "Jól", :regions => [:is]},
38
44
  {:mday => 25, :name => "Jól", :regions => [:is]},
39
45
  {:mday => 26, :name => "Jól", :regions => [:is]},
40
- {:mday => 31, :name => "Gamlárskvöld", :regions => [:is]}],
41
- 2 => [{:mday => 18, :type => :informal, :name => "Konudagur", :regions => [:is]}],
42
- 8 => [{:wday => 1, :week => 1, :name => "Frídagur verslunarmanna", :regions => [:is]}],
43
- 4 => [{:function => lambda { |year| Holidays.is_sumardagurinn_fyrsti(year) }, :function_id => "is_sumardagurinn_fyrsti(year)", :name => "Sumardagurinn fyrsti", :regions => [:is]}]
44
- }
46
+ {:mday => 31, :name => "Gamlárskvöld", :regions => [:is]}]
47
+ }
48
+ end
45
49
  end
46
50
 
47
51
  # Iceland: first day of summer (Thursday after 18 April)
@@ -59,4 +63,4 @@ end
59
63
 
60
64
  end
61
65
 
62
- Holidays.merge_defs(Holidays::IS::DEFINED_REGIONS, Holidays::IS::HOLIDAYS_BY_MONTH)
66
+ Holidays.merge_defs(Holidays::IS.defined_regions, Holidays::IS.holidays_by_month)
data/lib/holidays/it.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/it.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/it'
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 IT # :nodoc:
15
- DEFINED_REGIONS = [:it]
15
+ def self.defined_regions
16
+ [:it]
17
+ end
16
18
 
17
- HOLIDAYS_BY_MONTH = {
18
- 5 => [{:mday => 1, :name => "Festa dei Lavoratori", :regions => [:it]}],
19
- 0 => [{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Pasqua", :regions => [:it]},
19
+ def self.holidays_by_month
20
+ {
21
+ 0 => [{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Pasqua", :regions => [:it]},
20
22
  {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Lunedì dell'Angelo", :regions => [:it]}],
21
- 11 => [{:mday => 1, :name => "Ognissanti", :regions => [:it]}],
22
- 6 => [{:mday => 2, :name => "Festa della Repubblica", :regions => [:it]}],
23
23
  1 => [{:mday => 1, :name => "Capodanno", :regions => [:it]},
24
24
  {:mday => 6, :name => "Epifania", :regions => [:it]}],
25
+ 4 => [{:mday => 25, :name => "Festa della Liberazione", :regions => [:it]}],
26
+ 5 => [{:mday => 1, :name => "Festa dei Lavoratori", :regions => [:it]}],
27
+ 6 => [{:mday => 2, :name => "Festa della Repubblica", :regions => [:it]}],
28
+ 8 => [{:mday => 15, :name => "Assunzione", :regions => [:it]}],
29
+ 11 => [{:mday => 1, :name => "Ognissanti", :regions => [:it]}],
25
30
  12 => [{:mday => 8, :name => "Immacolata Concezione", :regions => [:it]},
26
31
  {:mday => 25, :name => "Natale", :regions => [:it]},
27
- {:mday => 26, :name => "Santo Stefano", :regions => [:it]}],
28
- 8 => [{:mday => 15, :name => "Assunzione", :regions => [:it]}],
29
- 4 => [{:mday => 25, :name => "Festa della Liberazione", :regions => [:it]}]
30
- }
32
+ {:mday => 26, :name => "Santo Stefano", :regions => [:it]}]
33
+ }
34
+ end
31
35
  end
32
36
 
33
37
 
34
38
  end
35
39
 
36
- Holidays.merge_defs(Holidays::IT::DEFINED_REGIONS, Holidays::IT::HOLIDAYS_BY_MONTH)
40
+ Holidays.merge_defs(Holidays::IT.defined_regions, Holidays::IT.holidays_by_month)
data/lib/holidays/jp.rb CHANGED
@@ -1,59 +1,72 @@
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/jp.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/jp'
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 JP # :nodoc:
15
- DEFINED_REGIONS = [:jp]
15
+ def self.defined_regions
16
+ [:jp]
17
+ end
16
18
 
17
- HOLIDAYS_BY_MONTH = {
19
+ def self.holidays_by_month
20
+ {
21
+ 1 => [{:mday => 1, :name => "元日", :regions => [:jp]},
22
+ {:wday => 1, :week => 2, :name => "成人の日", :regions => [:jp]}],
23
+ 2 => [{:mday => 11, :name => "建国記念日", :regions => [:jp]},
24
+ {:function => lambda { |year| Holidays.jp_substitute_holiday(year, 2, 11) }, :function_id => "jp_substitute_holiday(year, 2, 11)", :name => "振替休日", :regions => [:jp]}],
25
+ 3 => [{:function => lambda { |year| Holidays.jp_vernal_equinox_day(year) }, :function_id => "jp_vernal_equinox_day(year)", :name => "春分の日", :regions => [:jp]},
26
+ {:function => lambda { |year| Holidays.jp_substitute_holiday(Holidays.jp_vernal_equinox_day(year)) }, :function_id => "jp_substitute_holiday(Holidays.jp_vernal_equinox_day(year))", :name => "振替休日", :regions => [:jp]}],
27
+ 4 => [{:mday => 29, :name => "昭和の日", :regions => [:jp]},
28
+ {:function => lambda { |year| Holidays.jp_substitute_holiday(year, 4, 29) }, :function_id => "jp_substitute_holiday(year, 4, 29)", :name => "振替休日", :regions => [:jp]}],
18
29
  5 => [{:mday => 3, :name => "憲法記念日", :regions => [:jp]},
19
30
  {:mday => 4, :name => "みどりの日", :regions => [:jp]},
20
31
  {:mday => 5, :name => "こどもの日", :regions => [:jp]},
21
32
  {:function => lambda { |year| Holidays.jp_substitute_holiday(year, 5, 3) }, :function_id => "jp_substitute_holiday(year, 5, 3)", :name => "振替休日", :regions => [:jp]},
22
33
  {:function => lambda { |year| Holidays.jp_substitute_holiday(year, 5, 5) }, :function_id => "jp_substitute_holiday(year, 5, 5)", :name => "振替休日", :regions => [:jp]}],
23
- 11 => [{:mday => 3, :name => "文化の日", :regions => [:jp]},
24
- {:function => lambda { |year| Holidays.jp_substitute_holiday(year, 11, 3) }, :function_id => "jp_substitute_holiday(year, 11, 3)", :name => "振替休日", :regions => [:jp]},
25
- {:mday => 23, :name => "勤労感謝の日", :regions => [:jp]},
26
- {:function => lambda { |year| Holidays.jp_substitute_holiday(year, 11, 23) }, :function_id => "jp_substitute_holiday(year, 11, 23)", :name => "振替休日", :regions => [:jp]}],
27
- 1 => [{:mday => 1, :name => "元日", :regions => [:jp]},
28
- {:wday => 1, :week => 2, :name => "成人の日", :regions => [:jp]}],
29
- 12 => [{:mday => 23, :name => "天皇誕生日", :regions => [:jp]},
30
- {:function => lambda { |year| Holidays.jp_substitute_holiday(year, 12, 23) }, :function_id => "jp_substitute_holiday(year, 12, 23)", :name => "振替休日", :regions => [:jp]}],
31
34
  7 => [{:wday => 1, :week => 3, :name => "海の日", :regions => [:jp]},
32
35
  {:function => lambda { |year| Holidays.jp_substitute_holiday(year, 7, Date.calculate_mday(year, 7, 3, 1)) }, :function_id => "jp_substitute_holiday(year, 7, Date.calculate_mday(year, 7, 3, 1))", :name => "振替休日", :regions => [:jp]}],
33
- 2 => [{:mday => 11, :name => "建国記念日", :regions => [:jp]},
34
- {:function => lambda { |year| Holidays.jp_substitute_holiday(year, 2, 11) }, :function_id => "jp_substitute_holiday(year, 2, 11)", :name => "振替休日", :regions => [:jp]}],
35
- 3 => [{:function => lambda { |year| Holidays.jp_vernal_equinox_day(year) }, :function_id => "jp_vernal_equinox_day(year)", :name => "春分の日", :regions => [:jp]},
36
- {:function => lambda { |year| Holidays.jp_substitute_holiday(Holidays.jp_vernal_equinox_day(year)) }, :function_id => "jp_substitute_holiday(Holidays.jp_vernal_equinox_day(year))", :name => "振替休日", :regions => [:jp]}],
37
36
  9 => [{:wday => 1, :week => 3, :name => "敬老の日", :regions => [:jp]},
38
37
  {:function => lambda { |year| Holidays.jp_substitute_holiday(year, 9, Date.calculate_mday(year, 9, 3, 1)) }, :function_id => "jp_substitute_holiday(year, 9, Date.calculate_mday(year, 9, 3, 1))", :name => "振替休日", :regions => [:jp]},
39
38
  {:function => lambda { |year| Holidays.jp_citizons_holiday(year) }, :function_id => "jp_citizons_holiday(year)", :name => "国民の休日", :regions => [:jp]},
40
39
  {:function => lambda { |year| Holidays.jp_national_culture_day(year) }, :function_id => "jp_national_culture_day(year)", :name => "秋分の日", :regions => [:jp]},
41
40
  {:function => lambda { |year| Holidays.jp_substitute_holiday(Holidays.jp_national_culture_day(year)) }, :function_id => "jp_substitute_holiday(Holidays.jp_national_culture_day(year))", :name => "振替休日", :regions => [:jp]}],
42
- 4 => [{:mday => 29, :name => "昭和の日", :regions => [:jp]},
43
- {:function => lambda { |year| Holidays.jp_substitute_holiday(year, 4, 29) }, :function_id => "jp_substitute_holiday(year, 4, 29)", :name => "振替休日", :regions => [:jp]}],
44
41
  10 => [{:wday => 1, :week => 2, :name => "体育の日", :regions => [:jp]},
45
- {:function => lambda { |year| Holidays.jp_substitute_holiday(year, 10, Date.calculate_mday(year, 10, 2, 1)) }, :function_id => "jp_substitute_holiday(year, 10, Date.calculate_mday(year, 10, 2, 1))", :name => "振替休日", :regions => [:jp]}]
46
- }
42
+ {:function => lambda { |year| Holidays.jp_substitute_holiday(year, 10, Date.calculate_mday(year, 10, 2, 1)) }, :function_id => "jp_substitute_holiday(year, 10, Date.calculate_mday(year, 10, 2, 1))", :name => "振替休日", :regions => [:jp]}],
43
+ 11 => [{:mday => 3, :name => "文化の日", :regions => [:jp]},
44
+ {:function => lambda { |year| Holidays.jp_substitute_holiday(year, 11, 3) }, :function_id => "jp_substitute_holiday(year, 11, 3)", :name => "振替休日", :regions => [:jp]},
45
+ {:mday => 23, :name => "勤労感謝の日", :regions => [:jp]},
46
+ {:function => lambda { |year| Holidays.jp_substitute_holiday(year, 11, 23) }, :function_id => "jp_substitute_holiday(year, 11, 23)", :name => "振替休日", :regions => [:jp]}],
47
+ 12 => [{:mday => 23, :name => "天皇誕生日", :regions => [:jp]},
48
+ {:function => lambda { |year| Holidays.jp_substitute_holiday(year, 12, 23) }, :function_id => "jp_substitute_holiday(year, 12, 23)", :name => "振替休日", :regions => [:jp]}]
49
+ }
50
+ end
47
51
  end
48
52
 
49
- def self.jp_citizons_holiday(year)
50
- year < 2003 and return nil
51
- ncd = Holidays.jp_national_culture_day(year)
52
- if ncd.wday == 3
53
- ncd - 1
54
- else
55
- nil
56
- end
53
+ def self.jp_vernal_equinox_day(year)
54
+ day =
55
+ case year
56
+ when 1851..1899
57
+ 19.8277
58
+ when 1900..1979
59
+ 20.8357
60
+ when 1980..2099
61
+ 20.8431
62
+ when 2100..2150
63
+ 21.8510
64
+ else
65
+ raise IndexError.new("Out of range")
66
+ end
67
+ day += 0.242194 * (year - 1980) - ((year - 1980)/4).floor
68
+ day = day.floor
69
+ Date.civil(year, 3, day)
57
70
  end
58
71
 
59
72
 
@@ -77,33 +90,24 @@ def self.jp_national_culture_day(year)
77
90
  end
78
91
 
79
92
 
80
- def self.jp_substitute_holiday(*date)
81
- date = date[0].kind_of?(Date) ? date.first : Date.civil(*date)
82
- date.wday == 0 ? date+1 : nil
93
+ def self.jp_citizons_holiday(year)
94
+ year < 2003 and return nil
95
+ ncd = Holidays.jp_national_culture_day(year)
96
+ if ncd.wday == 3
97
+ ncd - 1
98
+ else
99
+ nil
100
+ end
83
101
  end
84
102
 
85
103
 
86
- def self.jp_vernal_equinox_day(year)
87
- day =
88
- case year
89
- when 1851..1899
90
- 19.8277
91
- when 1900..1979
92
- 20.8357
93
- when 1980..2099
94
- 20.8431
95
- when 2100..2150
96
- 21.8510
97
- else
98
- raise IndexError.new("Out of range")
99
- end
100
- day += 0.242194 * (year - 1980) - ((year - 1980)/4).floor
101
- day = day.floor
102
- Date.civil(year, 3, day)
104
+ def self.jp_substitute_holiday(*date)
105
+ date = date[0].kind_of?(Date) ? date.first : Date.civil(*date)
106
+ date.wday == 0 ? date+1 : nil
103
107
  end
104
108
 
105
109
 
106
110
 
107
111
  end
108
112
 
109
- Holidays.merge_defs(Holidays::JP::DEFINED_REGIONS, Holidays::JP::HOLIDAYS_BY_MONTH)
113
+ Holidays.merge_defs(Holidays::JP.defined_regions, Holidays::JP.holidays_by_month)