holidays 1.0.0 → 1.0.1
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.
- data/data/{SYNTAX → SYNTAX.rdoc} +1 -1
- data/data/br.yaml +74 -0
- data/data/ca.yaml +2 -2
- data/data/fi.yaml +95 -0
- data/data/index.yaml +4 -1
- data/data/jp.yaml +202 -0
- data/holidays.gemspec +130 -120
- data/lib/holidays.rb +1 -1
- data/lib/holidays/MANIFEST +20 -17
- data/lib/holidays/br.rb +36 -0
- data/lib/holidays/ca.rb +1 -1
- data/lib/holidays/fi.rb +54 -0
- data/lib/holidays/jp.rb +109 -0
- data/lib/holidays/north_america.rb +1 -1
- data/lib/holidays/scandinavia.rb +37 -7
- data/rakefile.rb +1 -1
- data/test/defs/test_defs_br.rb +31 -0
- data/test/defs/test_defs_ca.rb +1 -1
- data/test/defs/test_defs_fi.rb +33 -0
- data/test/defs/test_defs_jp.rb +50 -0
- data/test/defs/test_defs_north_america.rb +1 -1
- data/test/defs/test_defs_scandinavia.rb +24 -1
- metadata +18 -7
- data/.gitignore +0 -3
data/lib/holidays.rb
CHANGED
data/lib/holidays/MANIFEST
CHANGED
@@ -1,28 +1,31 @@
|
|
1
1
|
==== Regional definitions
|
2
2
|
The following definition files are included in this installation:
|
3
3
|
|
4
|
-
* holidays/nyse
|
5
|
-
* holidays/no
|
6
|
-
* holidays/es
|
7
|
-
* holidays/ie
|
8
|
-
* holidays/united_nations
|
9
4
|
* holidays/au
|
10
|
-
* holidays/
|
11
|
-
* holidays/za
|
12
|
-
* holidays/scandinavia
|
5
|
+
* holidays/br
|
13
6
|
* holidays/ca
|
14
|
-
* holidays/
|
15
|
-
* holidays/nl
|
16
|
-
* holidays/it
|
7
|
+
* holidays/cz
|
17
8
|
* holidays/de
|
18
9
|
* holidays/dk
|
19
|
-
* holidays/
|
20
|
-
* holidays/nz
|
21
|
-
* holidays/ups
|
22
|
-
* holidays/pt
|
10
|
+
* holidays/es
|
23
11
|
* holidays/europe
|
24
|
-
* holidays/
|
25
|
-
* holidays/north_america
|
12
|
+
* holidays/fi
|
26
13
|
* holidays/fr
|
27
14
|
* holidays/gb
|
15
|
+
* holidays/ie
|
28
16
|
* holidays/is
|
17
|
+
* holidays/it
|
18
|
+
* holidays/jp
|
19
|
+
* holidays/mx
|
20
|
+
* holidays/nl
|
21
|
+
* holidays/no
|
22
|
+
* holidays/north_america
|
23
|
+
* holidays/nyse
|
24
|
+
* holidays/nz
|
25
|
+
* holidays/pt
|
26
|
+
* holidays/scandinavia
|
27
|
+
* holidays/se
|
28
|
+
* holidays/united_nations
|
29
|
+
* holidays/ups
|
30
|
+
* holidays/us
|
31
|
+
* holidays/za
|
data/lib/holidays/br.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Holidays
|
3
|
+
# This file is generated by the Ruby Holiday gem.
|
4
|
+
#
|
5
|
+
# Definitions loaded: data/br.yaml
|
6
|
+
#
|
7
|
+
# To use the definitions in this file, load them right after you load the
|
8
|
+
# Holiday gem:
|
9
|
+
#
|
10
|
+
# require 'holidays'
|
11
|
+
# require 'holidays/br'
|
12
|
+
#
|
13
|
+
# More definitions are available at http://code.dunae.ca/holidays.
|
14
|
+
module BR # :nodoc:
|
15
|
+
DEFINED_REGIONS = [:br]
|
16
|
+
|
17
|
+
HOLIDAYS_BY_MONTH = {
|
18
|
+
0 => [{:function => lambda { |year| Holidays.easter(year)-47 }, :function_id => "easter(year)-47", :type => :informal, :name => "Carnaval", :regions => [:br]},
|
19
|
+
{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Sexta-feira Santa", :regions => [:br]},
|
20
|
+
{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Páscoa", :regions => [:br]},
|
21
|
+
{:function => lambda { |year| Holidays.easter(year)+60 }, :function_id => "easter(year)+60", :name => "Corpus Christ", :regions => [:br]}],
|
22
|
+
1 => [{:mday => 1, :name => "Dia da Confraternização Universal", :regions => [:br]}],
|
23
|
+
4 => [{:mday => 21, :name => "Dia de Tiradentes", :regions => [:br]}],
|
24
|
+
5 => [{:mday => 1, :name => "Dia do Trabalho", :regions => [:br]}],
|
25
|
+
9 => [{:mday => 7, :name => "Proclamação da Independência", :regions => [:br]}],
|
26
|
+
10 => [{:mday => 12, :name => "Dia de Nossa Senhora Aparecida", :regions => [:br]}],
|
27
|
+
11 => [{:mday => 2, :name => "Dia de Finados", :regions => [:br]},
|
28
|
+
{:mday => 15, :name => "Proclamação da República", :regions => [:br]}],
|
29
|
+
12 => [{:mday => 25, :name => "Natal", :regions => [:br]}]
|
30
|
+
}
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
Holidays.merge_defs(Holidays::BR::DEFINED_REGIONS, Holidays::BR::HOLIDAYS_BY_MONTH)
|
data/lib/holidays/ca.rb
CHANGED
@@ -43,7 +43,7 @@ module Holidays
|
|
43
43
|
9 => [{:wday => 1, :week => 1, :name => "Labour Day", :regions => [:ca]}],
|
44
44
|
10 => [{:wday => 1, :week => 2, :name => "Thanksgiving", :regions => [:ca]},
|
45
45
|
{:mday => 31, :type => :informal, :name => "Halloween", :regions => [:us, :ca]}],
|
46
|
-
11 => [{:mday => 11, :name => "
|
46
|
+
11 => [{:mday => 11, :name => "Remembrance Day", :regions => [:ca]}],
|
47
47
|
12 => [{:mday => 25, :name => "Christmas Day", :regions => [:ca]},
|
48
48
|
{:mday => 26, :name => "Boxing Day", :regions => [:ca]}],
|
49
49
|
4 => [{:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]},
|
data/lib/holidays/fi.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Holidays
|
3
|
+
# This file is generated by the Ruby Holiday gem.
|
4
|
+
#
|
5
|
+
# Definitions loaded: data/fi.yaml
|
6
|
+
#
|
7
|
+
# To use the definitions in this file, load them right after you load the
|
8
|
+
# Holiday gem:
|
9
|
+
#
|
10
|
+
# require 'holidays'
|
11
|
+
# require 'holidays/fi'
|
12
|
+
#
|
13
|
+
# More definitions are available at http://code.dunae.ca/holidays.
|
14
|
+
module FI # :nodoc:
|
15
|
+
DEFINED_REGIONS = [:fi]
|
16
|
+
|
17
|
+
HOLIDAYS_BY_MONTH = {
|
18
|
+
0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Pitkäperjantai", :regions => [:fi]},
|
19
|
+
{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Pääsiäispäivä", :regions => [:fi]},
|
20
|
+
{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "2. Pääsiäispäivä", :regions => [:fi]},
|
21
|
+
{:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Helatorstai", :regions => [:fi]},
|
22
|
+
{:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Helluntaipäivä", :regions => [:fi]},
|
23
|
+
{:function => lambda { |year| Holidays.fi_pyhainpaiva(year) }, :function_id => "fi_pyhainpaiva(year)", :name => "Pyhäinpäivä", :regions => [:fi]}],
|
24
|
+
1 => [{:mday => 1, :name => "Uudenvuodenpäivä", :regions => [:fi]},
|
25
|
+
{:mday => 6, :name => "Loppiainen", :regions => [:fi]}],
|
26
|
+
5 => [{:mday => 1, :name => "Vappu", :regions => [:fi]}],
|
27
|
+
6 => [{:function => lambda { |year| Holidays.fi_juhannuspaiva(year) }, :function_id => "fi_juhannuspaiva(year)", :name => "Juhannuspäivä", :regions => [:fi]}],
|
28
|
+
12 => [{:mday => 6, :name => "Itsenäisyyspäivä", :regions => [:fi]},
|
29
|
+
{:mday => 24, :name => "Jouluaatto", :regions => [:fi]},
|
30
|
+
{:mday => 25, :name => "Joulupäivä", :regions => [:fi]},
|
31
|
+
{:mday => 26, :name => "Tapaninpäivä", :regions => [:fi]}]
|
32
|
+
}
|
33
|
+
end
|
34
|
+
|
35
|
+
# Finland: Mid-summer (Saturday between June 20–26)
|
36
|
+
def self.fi_juhannuspaiva(year)
|
37
|
+
date = Date.civil(year,6,20)
|
38
|
+
date += (6 - date.wday)
|
39
|
+
date
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
# Finland: All Saint's Day (Saturday between Oct 31 and Nov 6)
|
44
|
+
def self.fi_pyhainpaiva(year)
|
45
|
+
date = Date.civil(year,10,31)
|
46
|
+
date += (6 - date.wday)
|
47
|
+
date
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
Holidays.merge_defs(Holidays::FI::DEFINED_REGIONS, Holidays::FI::HOLIDAYS_BY_MONTH)
|
data/lib/holidays/jp.rb
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Holidays
|
3
|
+
# This file is generated by the Ruby Holiday gem.
|
4
|
+
#
|
5
|
+
# Definitions loaded: data/jp.yaml
|
6
|
+
#
|
7
|
+
# To use the definitions in this file, load them right after you load the
|
8
|
+
# Holiday gem:
|
9
|
+
#
|
10
|
+
# require 'holidays'
|
11
|
+
# require 'holidays/jp'
|
12
|
+
#
|
13
|
+
# More definitions are available at http://code.dunae.ca/holidays.
|
14
|
+
module JP # :nodoc:
|
15
|
+
DEFINED_REGIONS = [:jp]
|
16
|
+
|
17
|
+
HOLIDAYS_BY_MONTH = {
|
18
|
+
1 => [{:mday => 1, :name => "元日", :regions => [:jp]},
|
19
|
+
{:wday => 1, :week => 2, :name => "成人の日", :regions => [:jp]}],
|
20
|
+
2 => [{:mday => 11, :name => "建国記念日", :regions => [:jp]},
|
21
|
+
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 2, 11) }, :function_id => "jp_substitute_holiday(year, 2, 11)", :name => "振替休日", :regions => [:jp]}],
|
22
|
+
3 => [{:function => lambda { |year| Holidays.jp_vernal_equinox_day(year) }, :function_id => "jp_vernal_equinox_day(year)", :name => "春分の日", :regions => [:jp]},
|
23
|
+
{: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]}],
|
24
|
+
4 => [{:mday => 29, :name => "昭和の日", :regions => [:jp]},
|
25
|
+
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 4, 29) }, :function_id => "jp_substitute_holiday(year, 4, 29)", :name => "振替休日", :regions => [:jp]}],
|
26
|
+
5 => [{:mday => 3, :name => "憲法記念日", :regions => [:jp]},
|
27
|
+
{:mday => 4, :name => "みどりの日", :regions => [:jp]},
|
28
|
+
{:mday => 5, :name => "こどもの日", :regions => [:jp]},
|
29
|
+
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 5, 3) }, :function_id => "jp_substitute_holiday(year, 5, 3)", :name => "振替休日", :regions => [:jp]},
|
30
|
+
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 5, 5) }, :function_id => "jp_substitute_holiday(year, 5, 5)", :name => "振替休日", :regions => [:jp]}],
|
31
|
+
7 => [{:wday => 1, :week => 3, :name => "海の日", :regions => [:jp]},
|
32
|
+
{: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
|
+
9 => [{:wday => 1, :week => 3, :name => "敬老の日", :regions => [:jp]},
|
34
|
+
{: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]},
|
35
|
+
{:function => lambda { |year| Holidays.jp_citizons_holiday(year) }, :function_id => "jp_citizons_holiday(year)", :name => "国民の休日", :regions => [:jp]},
|
36
|
+
{:function => lambda { |year| Holidays.jp_national_culture_day(year) }, :function_id => "jp_national_culture_day(year)", :name => "秋分の日", :regions => [:jp]},
|
37
|
+
{: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]}],
|
38
|
+
10 => [{:wday => 1, :week => 2, :name => "体育の日", :regions => [:jp]},
|
39
|
+
{: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]}],
|
40
|
+
11 => [{:mday => 3, :name => "文化の日", :regions => [:jp]},
|
41
|
+
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 11, 3) }, :function_id => "jp_substitute_holiday(year, 11, 3)", :name => "振替休日", :regions => [:jp]},
|
42
|
+
{:mday => 23, :name => "勤労感謝の日", :regions => [:jp]},
|
43
|
+
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 11, 23) }, :function_id => "jp_substitute_holiday(year, 11, 23)", :name => "振替休日", :regions => [:jp]}],
|
44
|
+
12 => [{:mday => 23, :name => "天皇誕生日", :regions => [:jp]},
|
45
|
+
{:function => lambda { |year| Holidays.jp_substitute_holiday(year, 12, 23) }, :function_id => "jp_substitute_holiday(year, 12, 23)", :name => "振替休日", :regions => [:jp]}]
|
46
|
+
}
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.jp_vernal_equinox_day(year)
|
50
|
+
day =
|
51
|
+
case year
|
52
|
+
when 1851..1899
|
53
|
+
19.8277
|
54
|
+
when 1900..1979
|
55
|
+
20.8357
|
56
|
+
when 1980..2099
|
57
|
+
20.8431
|
58
|
+
when 2100..2150
|
59
|
+
21.8510
|
60
|
+
else
|
61
|
+
raise IndexError.new("Out of range")
|
62
|
+
end
|
63
|
+
day += 0.242194 * (year - 1980) - ((year - 1980)/4).floor
|
64
|
+
day = day.floor
|
65
|
+
Date.civil(year, 3, day)
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
def self.jp_national_culture_day(year)
|
70
|
+
day =
|
71
|
+
case year
|
72
|
+
when 1851..1899
|
73
|
+
22.2588
|
74
|
+
when 1900..1979
|
75
|
+
23.2588
|
76
|
+
when 1980..2099
|
77
|
+
23.2488
|
78
|
+
when 2100..2150
|
79
|
+
24.2488
|
80
|
+
else
|
81
|
+
raise IndexError.new("Out of range")
|
82
|
+
end
|
83
|
+
day += 0.242194 * (year - 1980) - ((year - 1980)/4).floor
|
84
|
+
day = day.floor
|
85
|
+
Date.civil(year, 9, day)
|
86
|
+
end
|
87
|
+
|
88
|
+
|
89
|
+
def self.jp_citizons_holiday(year)
|
90
|
+
year < 2003 and return nil
|
91
|
+
ncd = Holidays.jp_national_culture_day(year)
|
92
|
+
if ncd.wday == 3
|
93
|
+
ncd - 1
|
94
|
+
else
|
95
|
+
nil
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
|
100
|
+
def self.jp_substitute_holiday(*date)
|
101
|
+
date = date[0].kind_of?(Date) ? date.first : Date.civil(*date)
|
102
|
+
date.wday == 0 ? date+1 : nil
|
103
|
+
end
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
end
|
108
|
+
|
109
|
+
Holidays.merge_defs(Holidays::JP::DEFINED_REGIONS, Holidays::JP::HOLIDAYS_BY_MONTH)
|
@@ -65,7 +65,7 @@ module Holidays
|
|
65
65
|
{:mday => 12, :type => :informal, :name => "Día de la Raza", :regions => [:mx]},
|
66
66
|
{:wday => 1, :week => 2, :name => "Columbus Day", :regions => [:us]},
|
67
67
|
{:mday => 31, :type => :informal, :name => "Halloween", :regions => [:us, :ca]}],
|
68
|
-
11 => [{:mday => 11, :name => "
|
68
|
+
11 => [{:mday => 11, :name => "Remembrance Day", :regions => [:ca]},
|
69
69
|
{:mday => 1, :type => :informal, :name => "Todos los Santos", :regions => [:mx]},
|
70
70
|
{:mday => 2, :type => :informal, :name => "Los Fieles Difuntos", :regions => [:mx]},
|
71
71
|
{:wday => 1, :week => 3, :name => "Día de la Revolución", :regions => [:mx]},
|
data/lib/holidays/scandinavia.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
module Holidays
|
3
3
|
# This file is generated by the Ruby Holiday gem.
|
4
4
|
#
|
5
|
-
# Definitions loaded: data/dk.yaml, data/is.yaml, data/no.yaml, data/se.yaml
|
5
|
+
# Definitions loaded: data/dk.yaml, data/is.yaml, data/no.yaml, data/se.yaml, data/fi.yaml
|
6
6
|
#
|
7
7
|
# To use the definitions in this file, load them right after you load the
|
8
8
|
# Holiday gem:
|
@@ -12,7 +12,7 @@ module Holidays
|
|
12
12
|
#
|
13
13
|
# More definitions are available at http://code.dunae.ca/holidays.
|
14
14
|
module Scandinavia # :nodoc:
|
15
|
-
DEFINED_REGIONS = [:dk, :no, :is, :se]
|
15
|
+
DEFINED_REGIONS = [:dk, :no, :is, :se, :fi]
|
16
16
|
|
17
17
|
HOLIDAYS_BY_MONTH = {
|
18
18
|
0 => [{:function => lambda { |year| Holidays.easter(year)-49 }, :function_id => "easter(year)-49", :type => :informal, :name => "Fastelavn", :regions => [:dk, :no]},
|
@@ -45,14 +45,22 @@ module Holidays
|
|
45
45
|
{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Annandag påsk", :regions => [:se]},
|
46
46
|
{:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Kristi himmelsfärdsdag", :regions => [:se]},
|
47
47
|
{:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Pingstdagen", :regions => [:se]},
|
48
|
-
{:function => lambda { |year| Holidays.se_alla_helgons_dag(year) }, :function_id => "se_alla_helgons_dag(year)", :name => "Alla helgons dag", :regions => [:se]}
|
48
|
+
{:function => lambda { |year| Holidays.se_alla_helgons_dag(year) }, :function_id => "se_alla_helgons_dag(year)", :name => "Alla helgons dag", :regions => [:se]},
|
49
|
+
{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Pitkäperjantai", :regions => [:fi]},
|
50
|
+
{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Pääsiäispäivä", :regions => [:fi]},
|
51
|
+
{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "2. Pääsiäispäivä", :regions => [:fi]},
|
52
|
+
{:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Helatorstai", :regions => [:fi]},
|
53
|
+
{:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Helluntaipäivä", :regions => [:fi]},
|
54
|
+
{:function => lambda { |year| Holidays.fi_pyhainpaiva(year) }, :function_id => "fi_pyhainpaiva(year)", :name => "Pyhäinpäivä", :regions => [:fi]}],
|
49
55
|
1 => [{:mday => 1, :name => "Nytårsdag", :regions => [:dk]},
|
50
56
|
{:mday => 1, :name => "Nýársdagur", :regions => [:is]},
|
51
57
|
{:mday => 6, :name => "Þrettándinn", :regions => [:is]},
|
52
58
|
{:mday => 19, :type => :informal, :name => "Bóndadagur", :regions => [:is]},
|
53
59
|
{:mday => 1, :name => "Nyttårsdag", :regions => [:no]},
|
54
60
|
{:mday => 1, :name => "Nyårsdagen", :regions => [:se]},
|
55
|
-
{:mday => 6, :name => "Trettondedag jul", :regions => [:se]}
|
61
|
+
{:mday => 6, :name => "Trettondedag jul", :regions => [:se]},
|
62
|
+
{:mday => 1, :name => "Uudenvuodenpäivä", :regions => [:fi]},
|
63
|
+
{:mday => 6, :name => "Loppiainen", :regions => [:fi]}],
|
56
64
|
4 => [{:mday => 1, :type => :informal, :name => "1. april", :regions => [:dk]},
|
57
65
|
{:mday => 9, :type => :informal, :name => "Danmarks besættelse", :regions => [:dk]},
|
58
66
|
{:mday => 16, :type => :informal, :name => "Dronningens fødselsdag", :regions => [:dk]},
|
@@ -63,14 +71,16 @@ module Holidays
|
|
63
71
|
{:mday => 13, :name => "Mæðradagurinn", :regions => [:is]},
|
64
72
|
{:mday => 1, :name => "1. mai", :regions => [:no]},
|
65
73
|
{:mday => 17, :name => "17. mai", :regions => [:no]},
|
66
|
-
{:mday => 1, :name => "Första maj", :regions => [:se]}
|
74
|
+
{:mday => 1, :name => "Första maj", :regions => [:se]},
|
75
|
+
{:mday => 1, :name => "Vappu", :regions => [:fi]}],
|
67
76
|
6 => [{:mday => 5, :name => "Grundlovsdag", :regions => [:dk]},
|
68
77
|
{:mday => 15, :type => :informal, :name => "Valdemarsdag og Genforeningsdag", :regions => [:dk]},
|
69
78
|
{:mday => 23, :type => :informal, :name => "Sankt Hans aften", :regions => [:dk]},
|
70
79
|
{:mday => 3, :type => :informal, :name => "Sjómannadagurinn", :regions => [:is]},
|
71
80
|
{:mday => 17, :name => "Lýðveldisdagurinn", :regions => [:is]},
|
72
81
|
{:mday => 6, :name => "Nationaldagen", :regions => [:se]},
|
73
|
-
{:function => lambda { |year| Holidays.se_midsommardagen(year) }, :function_id => "se_midsommardagen(year)", :name => "Midsommardagen", :regions => [:se]}
|
82
|
+
{:function => lambda { |year| Holidays.se_midsommardagen(year) }, :function_id => "se_midsommardagen(year)", :name => "Midsommardagen", :regions => [:se]},
|
83
|
+
{:function => lambda { |year| Holidays.fi_juhannuspaiva(year) }, :function_id => "fi_juhannuspaiva(year)", :name => "Juhannuspäivä", :regions => [:fi]}],
|
74
84
|
11 => [{:mday => 10, :type => :informal, :name => "Mortensaften", :regions => [:dk]},
|
75
85
|
{:mday => 16, :name => "Dagur íslenskrar tungu", :regions => [:is]}],
|
76
86
|
12 => [{:mday => 13, :type => :informal, :name => "Sankt Lucia", :regions => [:dk]},
|
@@ -84,7 +94,11 @@ module Holidays
|
|
84
94
|
{:mday => 24, :type => :informal, :name => "Julaften", :regions => [:no]},
|
85
95
|
{:mday => 31, :type => :informal, :name => "Nyttårsaften", :regions => [:no]},
|
86
96
|
{:mday => 25, :name => "Juldagen", :regions => [:se]},
|
87
|
-
{:mday => 26, :name => "Annandag jul", :regions => [:se]}
|
97
|
+
{:mday => 26, :name => "Annandag jul", :regions => [:se]},
|
98
|
+
{:mday => 6, :name => "Itsenäisyyspäivä", :regions => [:fi]},
|
99
|
+
{:mday => 24, :name => "Jouluaatto", :regions => [:fi]},
|
100
|
+
{:mday => 25, :name => "Joulupäivä", :regions => [:fi]},
|
101
|
+
{:mday => 26, :name => "Tapaninpäivä", :regions => [:fi]}],
|
88
102
|
2 => [{:mday => 18, :type => :informal, :name => "Konudagur", :regions => [:is]}],
|
89
103
|
8 => [{:wday => 1, :week => 1, :name => "Frídagur verslunarmanna", :regions => [:is]}]
|
90
104
|
}
|
@@ -118,6 +132,22 @@ def self.se_alla_helgons_dag(year)
|
|
118
132
|
end
|
119
133
|
|
120
134
|
|
135
|
+
# Finland: Mid-summer (Saturday between June 20–26)
|
136
|
+
def self.fi_juhannuspaiva(year)
|
137
|
+
date = Date.civil(year,6,20)
|
138
|
+
date += (6 - date.wday)
|
139
|
+
date
|
140
|
+
end
|
141
|
+
|
142
|
+
|
143
|
+
# Finland: All Saint's Day (Saturday between Oct 31 and Nov 6)
|
144
|
+
def self.fi_pyhainpaiva(year)
|
145
|
+
date = Date.civil(year,10,31)
|
146
|
+
date += (6 - date.wday)
|
147
|
+
date
|
148
|
+
end
|
149
|
+
|
150
|
+
|
121
151
|
|
122
152
|
end
|
123
153
|
|
data/rakefile.rb
CHANGED
@@ -36,7 +36,7 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
|
|
36
36
|
rdoc.options << '--all' << '--inline-source' << '--line-numbers'
|
37
37
|
rdoc.options << '--charset' << 'utf-8'
|
38
38
|
rdoc.rdoc_files.include('README.rdoc')
|
39
|
-
rdoc.rdoc_files.include('data/SYNTAX')
|
39
|
+
rdoc.rdoc_files.include('data/SYNTAX.rdoc')
|
40
40
|
rdoc.rdoc_files.include('lib/holidays/MANIFEST')
|
41
41
|
rdoc.rdoc_files.include('REFERENCES')
|
42
42
|
rdoc.rdoc_files.include('CHANGELOG')
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require File.expand_path(File.dirname(__FILE__)) + '/../test_helper'
|
3
|
+
|
4
|
+
# This file is generated by the Ruby Holiday gem.
|
5
|
+
#
|
6
|
+
# Definitions loaded: data/br.yaml
|
7
|
+
class BrDefinitionTests < Test::Unit::TestCase # :nodoc:
|
8
|
+
|
9
|
+
def test_br
|
10
|
+
{Date.civil(2008,1,1) => 'Dia da Confraternização Universal',
|
11
|
+
Date.civil(2005,2,8) => 'Carnaval',
|
12
|
+
Date.civil(2006,2,28) => 'Carnaval',
|
13
|
+
Date.civil(2007,2,20) => 'Carnaval',
|
14
|
+
Date.civil(2008,2,5) => 'Carnaval',
|
15
|
+
Date.civil(2008,3,21) => 'Sexta-feira Santa',
|
16
|
+
Date.civil(2008,3,23) => 'Páscoa',
|
17
|
+
Date.civil(2008,4,21) => 'Dia de Tiradentes',
|
18
|
+
Date.civil(2008,5,1) => 'Dia do Trabalho',
|
19
|
+
Date.civil(2005,5,26) => 'Corpus Christ',
|
20
|
+
Date.civil(2007,6,7) => 'Corpus Christ',
|
21
|
+
Date.civil(2008,5,22) => 'Corpus Christ',
|
22
|
+
Date.civil(2008,9,7) => 'Proclamação da Independência',
|
23
|
+
Date.civil(2008,10,12) => 'Dia de Nossa Senhora Aparecida',
|
24
|
+
Date.civil(2008,11,2) => 'Dia de Finados',
|
25
|
+
Date.civil(2008,11,15) => 'Proclamação da República',
|
26
|
+
Date.civil(2008,12,25) => 'Natal'}.each do |date, name|
|
27
|
+
assert_equal name, (Holidays.on(date, :br, :informal)[0] || {})[:name]
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
data/test/defs/test_defs_ca.rb
CHANGED
@@ -14,7 +14,7 @@ class CaDefinitionTests < Test::Unit::TestCase # :nodoc:
|
|
14
14
|
Date.civil(2008,7,1) => 'Canada Day',
|
15
15
|
Date.civil(2008,9,1) => 'Labour Day',
|
16
16
|
Date.civil(2008,10,13) => 'Thanksgiving',
|
17
|
-
Date.civil(2008,11,11) => '
|
17
|
+
Date.civil(2008,11,11) => 'Remembrance Day',
|
18
18
|
Date.civil(2008,12,25) => 'Christmas Day',
|
19
19
|
Date.civil(2008,12,26) => 'Boxing Day'}.each do |date, name|
|
20
20
|
assert_equal name, (Holidays.on(date, :ca, :informal)[0] || {})[:name]
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require File.expand_path(File.dirname(__FILE__)) + '/../test_helper'
|
3
|
+
|
4
|
+
# This file is generated by the Ruby Holiday gem.
|
5
|
+
#
|
6
|
+
# Definitions loaded: data/fi.yaml
|
7
|
+
class FiDefinitionTests < Test::Unit::TestCase # :nodoc:
|
8
|
+
|
9
|
+
def test_fi
|
10
|
+
{Date.civil(2008,1,1) => 'Uudenvuodenpäivä',
|
11
|
+
Date.civil(2008,1,6) => 'Loppiainen',
|
12
|
+
Date.civil(2008,3,21) => 'Pitkäperjantai',
|
13
|
+
Date.civil(2008,3,23) => 'Pääsiäispäivä',
|
14
|
+
Date.civil(2008,3,24) => '2. Pääsiäispäivä',
|
15
|
+
Date.civil(2008,5,1) => 'Vappu',
|
16
|
+
Date.civil(2008,5,1) => 'Helatorstai',
|
17
|
+
Date.civil(2008,5,11) => 'Helluntaipäivä',
|
18
|
+
Date.civil(2005,6,25) => 'Juhannuspäivä',
|
19
|
+
Date.civil(2006,6,24) => 'Juhannuspäivä',
|
20
|
+
Date.civil(2007,6,23) => 'Juhannuspäivä',
|
21
|
+
Date.civil(2008,6,21) => 'Juhannuspäivä',
|
22
|
+
Date.civil(2005,11,5) => 'Pyhäinpäivä',
|
23
|
+
Date.civil(2006,11,4) => 'Pyhäinpäivä',
|
24
|
+
Date.civil(2007,11,3) => 'Pyhäinpäivä',
|
25
|
+
Date.civil(2008,11,1) => 'Pyhäinpäivä',
|
26
|
+
Date.civil(2008,12,6) => 'Itsenäisyyspäivä',
|
27
|
+
Date.civil(2008,12,24) => 'Jouluaatto',
|
28
|
+
Date.civil(2008,12,25) => 'Joulupäivä',
|
29
|
+
Date.civil(2008,12,26) => 'Tapaninpäivä'}.each do |date, name|
|
30
|
+
assert_equal name, (Holidays.on(date, :fi, :informal)[0] || {})[:name]
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|