wombleton-holidays 0.9.6

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 (90) hide show
  1. data/.gitignore +3 -0
  2. data/CHANGELOG +22 -0
  3. data/LICENSE +21 -0
  4. data/README.rdoc +77 -0
  5. data/REFERENCES +16 -0
  6. data/VERSION +1 -0
  7. data/data/SYNTAX +111 -0
  8. data/data/au.yaml +111 -0
  9. data/data/build_defs.rb +152 -0
  10. data/data/ca.yaml +141 -0
  11. data/data/cz.yaml +68 -0
  12. data/data/de.yaml +111 -0
  13. data/data/dk.yaml +117 -0
  14. data/data/es.yaml +161 -0
  15. data/data/fr.yaml +70 -0
  16. data/data/gb.yaml +106 -0
  17. data/data/ie.yaml +58 -0
  18. data/data/index.yaml +26 -0
  19. data/data/is.yaml +136 -0
  20. data/data/it.yaml +66 -0
  21. data/data/mx.yaml +106 -0
  22. data/data/nl.yaml +67 -0
  23. data/data/no.yaml +82 -0
  24. data/data/north_america_informal.yaml +49 -0
  25. data/data/nyse.yaml +63 -0
  26. data/data/nz.yaml +141 -0
  27. data/data/pt.yaml +85 -0
  28. data/data/se.yaml +91 -0
  29. data/data/united_nations.yaml +188 -0
  30. data/data/ups.yaml +56 -0
  31. data/data/us.yaml +81 -0
  32. data/data/za.yaml +78 -0
  33. data/holidays.gemspec +16 -0
  34. data/lib/holidays/MANIFEST +28 -0
  35. data/lib/holidays/au.rb +43 -0
  36. data/lib/holidays/ca.rb +69 -0
  37. data/lib/holidays/cz.rb +36 -0
  38. data/lib/holidays/de.rb +51 -0
  39. data/lib/holidays/dk.rb +48 -0
  40. data/lib/holidays/es.rb +53 -0
  41. data/lib/holidays/europe.rb +236 -0
  42. data/lib/holidays/fr.rb +37 -0
  43. data/lib/holidays/gb.rb +41 -0
  44. data/lib/holidays/ie.rb +33 -0
  45. data/lib/holidays/is.rb +62 -0
  46. data/lib/holidays/it.rb +36 -0
  47. data/lib/holidays/mx.rb +52 -0
  48. data/lib/holidays/nl.rb +37 -0
  49. data/lib/holidays/no.rb +40 -0
  50. data/lib/holidays/north_america.rb +108 -0
  51. data/lib/holidays/nyse.rb +33 -0
  52. data/lib/holidays/nz.rb +69 -0
  53. data/lib/holidays/pt.rb +38 -0
  54. data/lib/holidays/scandinavia.rb +115 -0
  55. data/lib/holidays/se.rb +53 -0
  56. data/lib/holidays/united_nations.rb +25 -0
  57. data/lib/holidays/ups.rb +32 -0
  58. data/lib/holidays/us.rb +49 -0
  59. data/lib/holidays/za.rb +36 -0
  60. data/lib/holidays.rb +408 -0
  61. data/rakefile.rb +103 -0
  62. data/test/defs/test_defs_au.rb +35 -0
  63. data/test/defs/test_defs_ca.rb +28 -0
  64. data/test/defs/test_defs_cz.rb +25 -0
  65. data/test/defs/test_defs_de.rb +48 -0
  66. data/test/defs/test_defs_dk.rb +29 -0
  67. data/test/defs/test_defs_es.rb +56 -0
  68. data/test/defs/test_defs_europe.rb +277 -0
  69. data/test/defs/test_defs_fr.rb +25 -0
  70. data/test/defs/test_defs_gb.rb +35 -0
  71. data/test/defs/test_defs_ie.rb +20 -0
  72. data/test/defs/test_defs_is.rb +32 -0
  73. data/test/defs/test_defs_it.rb +24 -0
  74. data/test/defs/test_defs_mx.rb +21 -0
  75. data/test/defs/test_defs_nl.rb +23 -0
  76. data/test/defs/test_defs_no.rb +28 -0
  77. data/test/defs/test_defs_north_america.rb +53 -0
  78. data/test/defs/test_defs_nyse.rb +21 -0
  79. data/test/defs/test_defs_nz.rb +21 -0
  80. data/test/defs/test_defs_pt.rb +31 -0
  81. data/test/defs/test_defs_scandinavia.rb +75 -0
  82. data/test/defs/test_defs_se.rb +32 -0
  83. data/test/defs/test_defs_ups.rb +20 -0
  84. data/test/defs/test_defs_us.rb +22 -0
  85. data/test/defs/test_defs_za.rb +24 -0
  86. data/test/test_date.rb +101 -0
  87. data/test/test_helper.rb +11 -0
  88. data/test/test_holidays.rb +117 -0
  89. data/test/test_multiple_regions.rb +20 -0
  90. metadata +172 -0
@@ -0,0 +1,31 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/pt.yaml
6
+ class PtDefinitionTests < Test::Unit::TestCase # :nodoc:
7
+
8
+ def test_pt
9
+ {Date.civil(2008,1,1) => 'Ano Novo',
10
+ Date.civil(2005,2,8) => 'Carnaval',
11
+ Date.civil(2006,2,28) => 'Carnaval',
12
+ Date.civil(2007,2,20) => 'Carnaval',
13
+ Date.civil(2008,2,5) => 'Carnaval',
14
+ Date.civil(2008,3,21) => 'Sexta-feira Santa',
15
+ Date.civil(2008,3,23) => 'Páscoa',
16
+ Date.civil(2008,4,25) => 'Dia da Liberdade',
17
+ Date.civil(2008,5,1) => 'Dia do Trabalhador',
18
+ Date.civil(2005,5,26) => 'Corpo de Deus',
19
+ Date.civil(2007,6,7) => 'Corpo de Deus',
20
+ Date.civil(2008,5,22) => 'Corpo de Deus',
21
+ Date.civil(2008,6,10) => 'Dia de Portugal',
22
+ Date.civil(2008,8,15) => 'Assunção de Nossa Senhora',
23
+ Date.civil(2008,10,5) => 'Implantação da República',
24
+ Date.civil(2008,11,1) => 'Todos os Santos',
25
+ Date.civil(2008,12,1) => 'Restauração da Independência',
26
+ Date.civil(2008,12,8) => 'Imaculada Conceição',
27
+ Date.civil(2008,12,25) => 'Natal'}.each do |date, name|
28
+ assert_equal name, (Holidays.on(date, :pt, :informal)[0] || {})[:name]
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,75 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+ require 'holidays/scandinavia'
3
+
4
+ # This file is generated by the Ruby Holiday gem.
5
+ #
6
+ # Definitions loaded: data/dk.yaml, data/is.yaml, data/se.yaml
7
+ class ScandinaviaDefinitionTests < Test::Unit::TestCase # :nodoc:
8
+
9
+ def test_scandinavia
10
+ {Date.civil(2007,1,1) => 'Nytårsdag',
11
+ Date.civil(2007,2,18) => 'Fastelavn',
12
+ Date.civil(2007,4,9) => 'Danmarks besættelse',
13
+ Date.civil(2007,4,16) => 'Dronningens fødselsdag',
14
+ Date.civil(2007,4,5) => 'Skærtorsdag',
15
+ Date.civil(2007,4,6) => 'Langfredag',
16
+ Date.civil(2007,4,8) => 'Påskedag',
17
+ Date.civil(2007,4,9) => '2. påskedag',
18
+ Date.civil(2007,5,1) => 'Arbejdernes kampdag',
19
+ Date.civil(2007,5,4) => 'Store Bededag',
20
+ Date.civil(2007,5,17) => 'Kristi Himmelfartsdag',
21
+ Date.civil(2007,5,27) => 'Pinsedag',
22
+ Date.civil(2007,5,28) => '2. Pinsedag',
23
+ Date.civil(2007,6,5) => 'Grundlovsdag',
24
+ Date.civil(2007,12,24) => 'Juleaftensdag',
25
+ Date.civil(2007,12,25) => '1. juledag',
26
+ Date.civil(2007,12,26) => '2. juledag'}.each do |date, name|
27
+ assert_equal name, (Holidays.on(date, :dk, :informal)[0] || {})[:name]
28
+ end
29
+
30
+ {Date.civil(2007,1,1) => 'Nýársdagur',
31
+ Date.civil(2007,1,6) => 'Þrettándinn',
32
+ Date.civil(2007,1,19) => 'Bóndadagur',
33
+ Date.civil(2007,2,18) => 'Konudagur',
34
+ Date.civil(2007,4,5) => 'Skírdagur',
35
+ Date.civil(2007,4,6) => 'Föstudaginn langi',
36
+ Date.civil(2007,4,8) => 'Páskadagur',
37
+ Date.civil(2007,4,9) => 'Annar í páskum',
38
+ Date.civil(2007,4,19) => 'Sumardagurinn fyrsti',
39
+ Date.civil(2007,5,1) => 'Verkalýðsdagurinn',
40
+ Date.civil(2007,5,17) => 'Uppstigningardagur',
41
+ Date.civil(2007,5,27) => 'Hvítasunnudagur',
42
+ Date.civil(2007,5,28) => 'Annar í hvítasunnu',
43
+ Date.civil(2007,6,3) => 'Sjómannadagurinn',
44
+ Date.civil(2007,6,17) => 'Lýðveldisdagurinn',
45
+ Date.civil(2007,8,6) => 'Frídagur verslunarmanna',
46
+ Date.civil(2007,12,24) => 'Jól',
47
+ Date.civil(2007,12,25) => 'Jól',
48
+ Date.civil(2007,12,26) => 'Jól',
49
+ Date.civil(2007,12,31) => 'Gamlárskvöld'}.each do |date, name|
50
+ assert_equal name, (Holidays.on(date, :is, :informal)[0] || {})[:name]
51
+ end
52
+
53
+ {Date.civil(2008,1,1) => 'Nyårsdagen',
54
+ Date.civil(2008,1,6) => 'Trettondedag jul',
55
+ Date.civil(2008,3,21) => 'Långfredagen',
56
+ Date.civil(2008,3,23) => 'Påskdagen',
57
+ Date.civil(2008,3,24) => 'Annandag påsk',
58
+ Date.civil(2008,5,1) => 'Första maj',
59
+ Date.civil(2008,5,1) => 'Kristi himmelsfärdsdag',
60
+ Date.civil(2008,5,11) => 'Pingstdagen',
61
+ Date.civil(2008,6,6) => 'Nationaldagen',
62
+ Date.civil(2005,6,25) => 'Midsommardagen',
63
+ Date.civil(2006,6,24) => 'Midsommardagen',
64
+ Date.civil(2007,6,23) => 'Midsommardagen',
65
+ Date.civil(2008,6,21) => 'Midsommardagen',
66
+ Date.civil(2005,11,5) => 'Alla helgons dag',
67
+ Date.civil(2006,11,4) => 'Alla helgons dag',
68
+ Date.civil(2007,11,3) => 'Alla helgons dag',
69
+ Date.civil(2008,11,1) => 'Alla helgons dag',
70
+ Date.civil(2008,12,25) => 'Juldagen',
71
+ Date.civil(2008,12,26) => 'Annandag jul'}.each do |date, name|
72
+ assert_equal name, (Holidays.on(date, :se, :informal)[0] || {})[:name]
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,32 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+ require 'holidays/se'
3
+
4
+ # This file is generated by the Ruby Holiday gem.
5
+ #
6
+ # Definitions loaded: data/se.yaml
7
+ class SeDefinitionTests < Test::Unit::TestCase # :nodoc:
8
+
9
+ def test_se
10
+ {Date.civil(2008,1,1) => 'Nyårsdagen',
11
+ Date.civil(2008,1,6) => 'Trettondedag jul',
12
+ Date.civil(2008,3,21) => 'Långfredagen',
13
+ Date.civil(2008,3,23) => 'Påskdagen',
14
+ Date.civil(2008,3,24) => 'Annandag påsk',
15
+ Date.civil(2008,5,1) => 'Första maj',
16
+ Date.civil(2008,5,1) => 'Kristi himmelsfärdsdag',
17
+ Date.civil(2008,5,11) => 'Pingstdagen',
18
+ Date.civil(2008,6,6) => 'Nationaldagen',
19
+ Date.civil(2005,6,25) => 'Midsommardagen',
20
+ Date.civil(2006,6,24) => 'Midsommardagen',
21
+ Date.civil(2007,6,23) => 'Midsommardagen',
22
+ Date.civil(2008,6,21) => 'Midsommardagen',
23
+ Date.civil(2005,11,5) => 'Alla helgons dag',
24
+ Date.civil(2006,11,4) => 'Alla helgons dag',
25
+ Date.civil(2007,11,3) => 'Alla helgons dag',
26
+ Date.civil(2008,11,1) => 'Alla helgons dag',
27
+ Date.civil(2008,12,25) => 'Juldagen',
28
+ Date.civil(2008,12,26) => 'Annandag jul'}.each do |date, name|
29
+ assert_equal name, (Holidays.on(date, :se, :informal)[0] || {})[:name]
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,20 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/ups.yaml
6
+ class UpsDefinitionTests < Test::Unit::TestCase # :nodoc:
7
+
8
+ def test_ups
9
+ {Date.civil(2008,1,1) => 'New Year\'s Day',
10
+ Date.civil(2008,5,26) => 'Memorial Day',
11
+ Date.civil(2008,7,4) => 'Independence Day',
12
+ Date.civil(2008,9,1) => 'Labor Day',
13
+ Date.civil(2008,11,27) => 'Thanksgiving',
14
+ Date.civil(2008,11,28) => 'Day After Thanksgiving',
15
+ Date.civil(2008,12,25) => 'Christmas Day',
16
+ Date.civil(2008,12,31) => 'New Year\'s Eve',}.each do |date, name|
17
+ assert_equal name, (Holidays.on(date, :ups)[0] || {})[:name]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,22 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/us.yaml, data/north_america_informal.yaml
6
+ class UsDefinitionTests < Test::Unit::TestCase # :nodoc:
7
+
8
+ def test_us
9
+ {Date.civil(2008,1,1) => 'New Year\'s Day',
10
+ Date.civil(2008,1,21) => 'Martin Luther King, Jr. Day',
11
+ Date.civil(2008,2,18) => 'Presidents\' Day',
12
+ Date.civil(2008,5,26) => 'Memorial Day',
13
+ Date.civil(2008,7,4) => 'Independence Day',
14
+ Date.civil(2008,9,1) => 'Labor Day',
15
+ Date.civil(2008,10,13) => 'Columbus Day',
16
+ Date.civil(2008,11,11) => 'Veterans Day',
17
+ Date.civil(2008,11,27) => 'Thanksgiving',
18
+ Date.civil(2008,12,25) => 'Christmas Day'}.each do |date, name|
19
+ assert_equal name, (Holidays.on(date, :us)[0] || {})[:name]
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,24 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ # This file is generated by the Ruby Holiday gem.
4
+ #
5
+ # Definitions loaded: data/za.yaml
6
+ class ZaDefinitionTests < Test::Unit::TestCase # :nodoc:
7
+
8
+ def test_za
9
+ {Date.civil(2007,1,1) => 'New Year\'s Day',
10
+ Date.civil(2007,3,21) => 'Human Rights Day',
11
+ Date.civil(2007,4,6) => 'Good Friday',
12
+ Date.civil(2007,4,9) => 'Family Day',
13
+ Date.civil(2007,4,27) => 'Freedom Day',
14
+ Date.civil(2007,5,1) => 'Workers Day',
15
+ Date.civil(2007,6,16) => 'Youth Day',
16
+ Date.civil(2007,8,9) => 'National Women\'s Day',
17
+ Date.civil(2007,9,24) => 'Heritage Day',
18
+ Date.civil(2007,12,16) => 'Day of Reconciliation',
19
+ Date.civil(2007,12,25) => 'Christmas Day',
20
+ Date.civil(2007,12,26) => 'Day of Goodwill'}.each do |date, name|
21
+ assert_equal name, (Holidays.on(date, :za, :informal)[0] || {})[:name]
22
+ end
23
+ end
24
+ end
data/test/test_date.rb ADDED
@@ -0,0 +1,101 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ class DateTests < Test::Unit::TestCase
4
+ def setup
5
+ @date = Date.civil(2008,1,1)
6
+ end
7
+
8
+ def test_extending_date_class
9
+ assert @date.respond_to?('holiday?')
10
+ assert @date.respond_to?('holiday?')
11
+ end
12
+
13
+ def test_calculating_mdays
14
+ # US Memorial day
15
+ assert_equal 29, Date.calculate_mday(2006, 5, :last, 1)
16
+ assert_equal 28, Date.calculate_mday(2007, 5, :last, 1)
17
+ assert_equal 26, Date.calculate_mday(2008, 5, :last, 1)
18
+ assert_equal 25, Date.calculate_mday(2009, 5, :last, 1)
19
+ assert_equal 31, Date.calculate_mday(2010, 5, :last, 1)
20
+ assert_equal 30, Date.calculate_mday(2011, 5, :last, 1)
21
+
22
+ # Labour day
23
+ assert_equal 3, Date.calculate_mday(2007, 9, :first, 1)
24
+ assert_equal 1, Date.calculate_mday(2008, 9, :first, :monday)
25
+ assert_equal 7, Date.calculate_mday(2009, 9, :first, 1)
26
+ assert_equal 5, Date.calculate_mday(2011, 9, :first, 1)
27
+ assert_equal 5, Date.calculate_mday(2050, 9, :first, 1)
28
+ assert_equal 4, Date.calculate_mday(2051, 9, :first, 1)
29
+
30
+ # Canadian thanksgiving
31
+ assert_equal 8, Date.calculate_mday(2007, 10, :second, 1)
32
+ assert_equal 13, Date.calculate_mday(2008, 10, :second, :monday)
33
+ assert_equal 12, Date.calculate_mday(2009, 10, :second, 1)
34
+ assert_equal 11, Date.calculate_mday(2010, 10, :second, 1)
35
+
36
+ # Misc
37
+ assert_equal 21, Date.calculate_mday(2008, 1, :third, 1)
38
+ assert_equal 1, Date.calculate_mday(2007, 1, :first, 1)
39
+ assert_equal 2, Date.calculate_mday(2007, 3, :first, :friday)
40
+ assert_equal 30, Date.calculate_mday(2012, 1, :last, 1)
41
+ assert_equal 29, Date.calculate_mday(2016, 2, :last, 1)
42
+
43
+ # From end of month
44
+ assert_equal 26, Date.calculate_mday(2009, 8, -1, :wednesday)
45
+ assert_equal 19, Date.calculate_mday(2009, 8, -2, :wednesday)
46
+ assert_equal 12, Date.calculate_mday(2009, 8, -3, :wednesday)
47
+
48
+ assert_equal 13, Date.calculate_mday(2008, 8, -3, :wednesday)
49
+ assert_equal 12, Date.calculate_mday(2009, 8, -3, :wednesday)
50
+ assert_equal 11, Date.calculate_mday(2010, 8, -3, :wednesday)
51
+ assert_equal 17, Date.calculate_mday(2011, 8, -3, :wednesday)
52
+ assert_equal 15, Date.calculate_mday(2012, 8, -3, :wednesday)
53
+ assert_equal 14, Date.calculate_mday(2013, 8, -3, :wednesday)
54
+ end
55
+
56
+ def test_mday_allows_integers_or_symbols
57
+ assert_nothing_raised do
58
+ Date.calculate_mday(2008, 1, 1, 1)
59
+ end
60
+
61
+ assert_nothing_raised do
62
+ Date.calculate_mday(2008, 1, -1, 1)
63
+ end
64
+
65
+ assert_nothing_raised do
66
+ Date.calculate_mday(2008, 1, :last, 1)
67
+ end
68
+ end
69
+
70
+ def test_mday_requires_valid_week
71
+ assert_raises ArgumentError do
72
+ Date.calculate_mday(2008, 1, :none, 1)
73
+ end
74
+
75
+ assert_raises ArgumentError do
76
+ Date.calculate_mday(2008, 1, nil, 1)
77
+ end
78
+
79
+ assert_raises ArgumentError do
80
+ Date.calculate_mday(2008, 1, 0, 1)
81
+ end
82
+ end
83
+
84
+ def test_mday_requires_valid_day
85
+ assert_raises ArgumentError do
86
+ Date.calculate_mday(2008, 1, 1, :october)
87
+ end
88
+
89
+ assert_raises ArgumentError do
90
+ Date.calculate_mday(2008, 1, 1, nil)
91
+ end
92
+
93
+ assert_raises ArgumentError do
94
+ Date.calculate_mday(2008, 1, 1, 7)
95
+ end
96
+ end
97
+
98
+ def test_holiday?
99
+ assert Date.civil(2008,1,1).holiday?('ca')
100
+ end
101
+ end
@@ -0,0 +1,11 @@
1
+ $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__), '../'))
2
+ $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__), '../lib/'))
3
+ $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__), '../../lib/'))
4
+
5
+ $KCODE = 'u'
6
+
7
+ require 'rubygems'
8
+ require 'test/unit'
9
+ require 'date'
10
+ require 'holidays'
11
+ require 'holidays/ca'
@@ -0,0 +1,117 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ require 'holidays/ca'
4
+
5
+ # Re-include CA defs via holidays/north_america to ensure that individual
6
+ # defs aren't duplicated.
7
+ require 'holidays/north_america'
8
+
9
+ class HolidaysTests < Test::Unit::TestCase
10
+ def setup
11
+ @date = Date.civil(2008,1,1)
12
+ end
13
+
14
+ def test_on
15
+ h = Holidays.on(Date.civil(2008,9,1), :ca)
16
+ assert_equal 'Labour Day', h[0][:name]
17
+
18
+ holidays = Holidays.on(Date.civil(2008,7,4), :ca)
19
+ assert_equal 0, holidays.length
20
+ end
21
+
22
+ def test_between
23
+ holidays = Holidays.between(Date.civil(2008,7,1), Date.civil(2008,7,1), :ca)
24
+ assert_equal 1, holidays.length
25
+
26
+ holidays = Holidays.between(Date.civil(2008,7,1), Date.civil(2008,7,31), :ca)
27
+ assert_equal 1, holidays.length
28
+
29
+ holidays = Holidays.between(Date.civil(2008,7,2), Date.civil(2008,7,31), :ca)
30
+ assert_equal 0, holidays.length
31
+ end
32
+
33
+ def test_requires_valid_regions
34
+ assert_raises Holidays::UnknownRegionError do
35
+ Holidays.on(Date.civil(2008,1,1), :xx)
36
+ end
37
+
38
+ assert_raises Holidays::UnknownRegionError do
39
+ Holidays.on(Date.civil(2008,1,1), [:ca,:xx])
40
+ end
41
+
42
+ assert_raises Holidays::UnknownRegionError do
43
+ Holidays.between(Date.civil(2008,1,1), Date.civil(2008,12,31), [:ca,:xx])
44
+ end
45
+ end
46
+
47
+ def test_region_params
48
+ holidays = Holidays.on(@date, :ca)
49
+ assert_equal 1, holidays.length
50
+
51
+ holidays = Holidays.on(@date, [:ca_bc,:ca])
52
+ assert_equal 1, holidays.length
53
+ end
54
+
55
+ def test_observed_dates
56
+ # Should fall on Tuesday the 1st
57
+ assert_equal 1, Holidays.on(Date.civil(2008,7,1), :ca, :observed).length
58
+
59
+ # Should fall on Monday the 2nd
60
+ assert_equal 1, Holidays.on(Date.civil(2007,7,2), :ca, :observed).length
61
+ end
62
+
63
+ def test_any_region
64
+ # Should return Victoria Day.
65
+ holidays = Holidays.between(Date.civil(2008,5,1), Date.civil(2008,5,31), :ca)
66
+ assert_equal 1, holidays.length
67
+
68
+ # Should return Victoria Day and National Patriotes Day.
69
+ #
70
+ # Should be 2 in the CA region but other regional files are loaded during the
71
+ # unit tests add to the :any count.
72
+ holidays = Holidays.between(Date.civil(2008,5,1), Date.civil(2008,5,31), [:any])
73
+ assert holidays.length >= 2
74
+
75
+ # Test blank region
76
+ holidays = Holidays.between(Date.civil(2008,5,1), Date.civil(2008,5,31))
77
+ assert holidays.length >= 3
78
+ end
79
+
80
+ def test_sub_regions
81
+ # Should return Victoria Day.
82
+ holidays = Holidays.between(Date.civil(2008,5,1), Date.civil(2008,5,31), :ca)
83
+ assert_equal 1, holidays.length
84
+
85
+ # Should return Victoria Da and National Patriotes Day.
86
+ holidays = Holidays.between(Date.civil(2008,5,1), Date.civil(2008,5,31), :ca_qc)
87
+ assert 2, holidays.length
88
+
89
+ # Should return Victoria Day and National Patriotes Day.
90
+ holidays = Holidays.between(Date.civil(2008,5,1), Date.civil(2008,5,31), :ca_)
91
+ assert_equal 2, holidays.length
92
+ end
93
+
94
+ def test_easter_sunday
95
+ assert_equal '1800-04-13', Holidays.easter(1800).to_s
96
+ assert_equal '1899-04-02', Holidays.easter(1899).to_s
97
+ assert_equal '1900-04-15', Holidays.easter(1900).to_s
98
+ assert_equal '1999-04-04', Holidays.easter(1999).to_s
99
+ assert_equal '2000-04-23', Holidays.easter(2000).to_s
100
+ assert_equal '2025-04-20', Holidays.easter(2025).to_s
101
+ assert_equal '2035-03-25', Holidays.easter(2035).to_s
102
+ assert_equal '2067-04-03', Holidays.easter(2067).to_s
103
+ assert_equal '2099-04-12', Holidays.easter(2099).to_s
104
+ end
105
+
106
+ def test_easter_lambda
107
+ [Date.civil(1800,4,11), Date.civil(1899,3,31), Date.civil(1900,4,13),
108
+ Date.civil(2008,3,21), Date.civil(2035,3,23)].each do |date|
109
+ assert_equal 'Good Friday', Holidays.on(date, :ca)[0][:name]
110
+ end
111
+
112
+ [Date.civil(1800,4,14), Date.civil(1899,4,3), Date.civil(1900,4,16),
113
+ Date.civil(2008,3,24), Date.civil(2035,3,26)].each do |date|
114
+ assert_equal 'Easter Monday', Holidays.on(date, :ca_qc, :informal)[0][:name]
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,20 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+ require 'holidays/gb'
3
+ require 'holidays/ie'
4
+
5
+ class MultipleRegionsTests < Test::Unit::TestCase
6
+ def setup
7
+ @date = Date.civil(2008,1,1)
8
+ end
9
+
10
+ def test_defining_holidays
11
+ h = Holidays.on(Date.civil(2008,12,26), :ie)
12
+ assert_equal 'St. Stephen\'s Day', h[0][:name]
13
+
14
+ h = Holidays.on(Date.civil(2008,5,9), :je)
15
+ assert_equal 'Liberation Day', h[0][:name]
16
+
17
+ h = Holidays.on(Date.civil(2008,5,9), :gb)
18
+ assert h.empty?
19
+ end
20
+ end
metadata ADDED
@@ -0,0 +1,172 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wombleton-holidays
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.6
5
+ platform: ruby
6
+ authors:
7
+ - Alex Dunae
8
+ - Rowan Crawford
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2010-04-29 00:00:00 +12:00
14
+ default_executable:
15
+ dependencies: []
16
+
17
+ description: A collection of Ruby methods to deal with statutory and other holidays. You deserve a holiday!
18
+ email: wombleton@gmail.com
19
+ executables: []
20
+
21
+ extensions: []
22
+
23
+ extra_rdoc_files:
24
+ - LICENSE
25
+ - README.rdoc
26
+ files:
27
+ - .gitignore
28
+ - CHANGELOG
29
+ - LICENSE
30
+ - README.rdoc
31
+ - REFERENCES
32
+ - VERSION
33
+ - data/SYNTAX
34
+ - data/au.yaml
35
+ - data/build_defs.rb
36
+ - data/ca.yaml
37
+ - data/cz.yaml
38
+ - data/de.yaml
39
+ - data/dk.yaml
40
+ - data/es.yaml
41
+ - data/fr.yaml
42
+ - data/gb.yaml
43
+ - data/ie.yaml
44
+ - data/index.yaml
45
+ - data/is.yaml
46
+ - data/it.yaml
47
+ - data/mx.yaml
48
+ - data/nl.yaml
49
+ - data/no.yaml
50
+ - data/north_america_informal.yaml
51
+ - data/nyse.yaml
52
+ - data/nz.yaml
53
+ - data/pt.yaml
54
+ - data/se.yaml
55
+ - data/united_nations.yaml
56
+ - data/ups.yaml
57
+ - data/us.yaml
58
+ - data/za.yaml
59
+ - holidays.gemspec
60
+ - lib/holidays.rb
61
+ - lib/holidays/MANIFEST
62
+ - lib/holidays/au.rb
63
+ - lib/holidays/ca.rb
64
+ - lib/holidays/cz.rb
65
+ - lib/holidays/de.rb
66
+ - lib/holidays/dk.rb
67
+ - lib/holidays/es.rb
68
+ - lib/holidays/europe.rb
69
+ - lib/holidays/fr.rb
70
+ - lib/holidays/gb.rb
71
+ - lib/holidays/ie.rb
72
+ - lib/holidays/is.rb
73
+ - lib/holidays/it.rb
74
+ - lib/holidays/mx.rb
75
+ - lib/holidays/nl.rb
76
+ - lib/holidays/no.rb
77
+ - lib/holidays/north_america.rb
78
+ - lib/holidays/nyse.rb
79
+ - lib/holidays/nz.rb
80
+ - lib/holidays/pt.rb
81
+ - lib/holidays/scandinavia.rb
82
+ - lib/holidays/se.rb
83
+ - lib/holidays/united_nations.rb
84
+ - lib/holidays/ups.rb
85
+ - lib/holidays/us.rb
86
+ - lib/holidays/za.rb
87
+ - rakefile.rb
88
+ - test/defs/test_defs_au.rb
89
+ - test/defs/test_defs_ca.rb
90
+ - test/defs/test_defs_cz.rb
91
+ - test/defs/test_defs_de.rb
92
+ - test/defs/test_defs_dk.rb
93
+ - test/defs/test_defs_es.rb
94
+ - test/defs/test_defs_europe.rb
95
+ - test/defs/test_defs_fr.rb
96
+ - test/defs/test_defs_gb.rb
97
+ - test/defs/test_defs_ie.rb
98
+ - test/defs/test_defs_is.rb
99
+ - test/defs/test_defs_it.rb
100
+ - test/defs/test_defs_mx.rb
101
+ - test/defs/test_defs_nl.rb
102
+ - test/defs/test_defs_no.rb
103
+ - test/defs/test_defs_north_america.rb
104
+ - test/defs/test_defs_nyse.rb
105
+ - test/defs/test_defs_nz.rb
106
+ - test/defs/test_defs_pt.rb
107
+ - test/defs/test_defs_scandinavia.rb
108
+ - test/defs/test_defs_se.rb
109
+ - test/defs/test_defs_ups.rb
110
+ - test/defs/test_defs_us.rb
111
+ - test/defs/test_defs_za.rb
112
+ - test/test_date.rb
113
+ - test/test_helper.rb
114
+ - test/test_holidays.rb
115
+ - test/test_multiple_regions.rb
116
+ has_rdoc: true
117
+ homepage: http://github.com/wombleton/holidays
118
+ licenses: []
119
+
120
+ post_install_message:
121
+ rdoc_options:
122
+ - --charset=UTF-8
123
+ require_paths:
124
+ - lib
125
+ required_ruby_version: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: "0"
130
+ version:
131
+ required_rubygems_version: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: "0"
136
+ version:
137
+ requirements: []
138
+
139
+ rubyforge_project:
140
+ rubygems_version: 1.3.5
141
+ signing_key:
142
+ specification_version: 3
143
+ summary: A collection of Ruby methods to deal with statutory and other holidays. You deserve a holiday!
144
+ test_files:
145
+ - test/test_helper.rb
146
+ - test/test_date.rb
147
+ - test/test_multiple_regions.rb
148
+ - test/defs/test_defs_au.rb
149
+ - test/defs/test_defs_no.rb
150
+ - test/defs/test_defs_ups.rb
151
+ - test/defs/test_defs_nyse.rb
152
+ - test/defs/test_defs_scandinavia.rb
153
+ - test/defs/test_defs_dk.rb
154
+ - test/defs/test_defs_se.rb
155
+ - test/defs/test_defs_north_america.rb
156
+ - test/defs/test_defs_europe.rb
157
+ - test/defs/test_defs_nl.rb
158
+ - test/defs/test_defs_fr.rb
159
+ - test/defs/test_defs_us.rb
160
+ - test/defs/test_defs_it.rb
161
+ - test/defs/test_defs_ca.rb
162
+ - test/defs/test_defs_mx.rb
163
+ - test/defs/test_defs_es.rb
164
+ - test/defs/test_defs_de.rb
165
+ - test/defs/test_defs_cz.rb
166
+ - test/defs/test_defs_pt.rb
167
+ - test/defs/test_defs_is.rb
168
+ - test/defs/test_defs_nz.rb
169
+ - test/defs/test_defs_za.rb
170
+ - test/defs/test_defs_gb.rb
171
+ - test/defs/test_defs_ie.rb
172
+ - test/test_holidays.rb