holidays 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,5 +1,10 @@
1
1
  = Ruby Holidays Gem CHANGELOG
2
2
 
3
+ == 0.9.3
4
+ * Added New York Stock Exchange holidays (thank you Alan Larkin).
5
+ * Added UPS holidays (thank you Tim Anglade).
6
+ * Fixed rakefile to force lower case definition file names.
7
+
3
8
  == 0.9.2
4
9
  * Included rakefile in Gem (thank you James Herdman).
5
10
 
data/data/index.yaml CHANGED
@@ -13,9 +13,11 @@ defs:
13
13
  IT: ['it.yaml']
14
14
  MX: ['mx.yaml', 'north_america_informal.yaml']
15
15
  NL: ['nl.yaml']
16
+ NYSE: ['nyse.yaml']
16
17
  PT: ['se.yaml']
17
18
  US: ['us.yaml', 'north_america_informal.yaml']
18
19
  United_Nations: ['united_nations.yaml']
20
+ UPS: ['ups.yaml']
19
21
  ZA: ['za.yaml']
20
22
  North_America: ['ca.yaml', 'mx.yaml', 'us.yaml', 'north_america_informal.yaml']
21
23
  Europe: ['dk.yaml', 'de.yaml', 'es.yaml', 'fr.yaml', 'gb.yaml', 'ie.yaml', 'is.yaml', 'it.yaml', 'nl.yaml', 'pt.yaml']
data/data/nyse.yaml ADDED
@@ -0,0 +1,63 @@
1
+ # NYSE holiday definitions for the Ruby Holiday gem.
2
+ #
3
+ # By Alan Larkin
4
+ # Source: http://www.nyse.com/about/newsevents/1176373643795.html#earlyclose2008
5
+ #
6
+ # Updated 2008-11-19.
7
+ ---
8
+ months:
9
+ 0:
10
+ - name: Good Friday
11
+ regions: [nyse]
12
+ function: easter(year)-2
13
+ 1:
14
+ - name: New Year's Day
15
+ regions: [nyse]
16
+ mday: 1
17
+ - name: Martin Luther King, Jr. Day
18
+ week: 3
19
+ regions: [nyse]
20
+ wday: 1
21
+ 2:
22
+ - name: Presidents' Day
23
+ week: 3
24
+ regions: [nyse]
25
+ wday: 1
26
+ 5:
27
+ - name: Memorial Day
28
+ week: -1
29
+ regions: [nyse]
30
+ wday: 1
31
+ 7:
32
+ - name: Independence Day
33
+ regions: [nyse]
34
+ mday: 4
35
+ observed: to_weekday_if_weekend
36
+ 9:
37
+ - name: Labor Day
38
+ week: 1
39
+ regions: [nyse]
40
+ wday: 1
41
+ 11:
42
+ - name: Thanksgiving
43
+ week: 4
44
+ regions: [nyse]
45
+ wday: 4
46
+ 12:
47
+ - name: Christmas Day
48
+ regions: [nyse]
49
+ mday: 25
50
+ observed: to_weekday_if_weekend
51
+ methods:
52
+ tests: |
53
+ {Date.civil(2008,1,1) => 'New Year\'s Day',
54
+ Date.civil(2008,1,21) => 'Martin Luther King, Jr. Day',
55
+ Date.civil(2008,2,18) => 'Presidents\' Day',
56
+ Date.civil(2008,3,21) => 'Good Friday',
57
+ Date.civil(2008,5,26) => 'Memorial Day',
58
+ Date.civil(2008,7,4) => 'Independence Day',
59
+ Date.civil(2008,9,1) => 'Labor Day',
60
+ Date.civil(2008,11,27) => 'Thanksgiving',
61
+ Date.civil(2008,12,25) => 'Christmas Day'}.each do |date, name|
62
+ assert_equal name, Holidays.on(date, :nyse)[0][:name]
63
+ end
data/data/ups.yaml ADDED
@@ -0,0 +1,56 @@
1
+ # UPS holiday definitions for the Ruby Holiday gem.
2
+ #
3
+ # By Tim Anglade
4
+ #
5
+ # Updated: 2008-09-23.
6
+ # Source: http://www.ups.com/content/us/en/resources/ship/imp_exp/operation.html
7
+ ---
8
+ months:
9
+ 1:
10
+ - name: New Year's Day
11
+ regions: [ups]
12
+ mday: 1
13
+ observed: to_weekday_if_weekend
14
+ 5:
15
+ - name: Memorial Day
16
+ week: -1
17
+ regions: [ups]
18
+ wday: 1
19
+ 7:
20
+ - name: Independence Day
21
+ regions: [ups]
22
+ mday: 4
23
+ observed: to_weekday_if_weekend
24
+ 9:
25
+ - name: Labor Day
26
+ week: 1
27
+ regions: [ups]
28
+ wday: 1
29
+ 11:
30
+ - name: Thanksgiving
31
+ week: 4
32
+ regions: [ups]
33
+ wday: 4
34
+ - name: Day After Thanksgiving
35
+ week: 4
36
+ regions: [ups]
37
+ wday: 5
38
+ 12:
39
+ - name: Christmas Day
40
+ regions: [ups]
41
+ mday: 25
42
+ observed: to_weekday_if_weekend
43
+ - name: New Year's Eve
44
+ regions: [ups]
45
+ mday: 31
46
+ tests: |
47
+ {Date.civil(2008,1,1) => 'New Year\'s Day',
48
+ Date.civil(2008,5,26) => 'Memorial Day',
49
+ Date.civil(2008,7,4) => 'Independence Day',
50
+ Date.civil(2008,9,1) => 'Labor Day',
51
+ Date.civil(2008,11,27) => 'Thanksgiving',
52
+ Date.civil(2008,11,28) => 'Day After Thanksgiving',
53
+ Date.civil(2008,12,25) => 'Christmas Day',
54
+ Date.civil(2008,12,31) => 'New Year\'s Eve',}.each do |date, name|
55
+ assert_equal name, Holidays.on(date, :ups)[0][:name]
56
+ end
@@ -15,9 +15,11 @@ The following definition files are included in this installation:
15
15
  * holidays/mx
16
16
  * holidays/nl
17
17
  * holidays/north_america
18
+ * holidays/nyse
18
19
  * holidays/pt
19
20
  * holidays/scandinavia
20
21
  * holidays/se
21
22
  * holidays/united_nations
23
+ * holidays/ups
22
24
  * holidays/us
23
25
  * holidays/za
@@ -0,0 +1,32 @@
1
+ module Holidays
2
+ # This file is generated by the Ruby Holiday gem.
3
+ #
4
+ # Definitions loaded: data/nyse.yaml
5
+ #
6
+ # To use the definitions in this file, load them right after you load the
7
+ # Holiday gem:
8
+ #
9
+ # require 'holidays'
10
+ # require 'holidays/nyse'
11
+ #
12
+ # More definitions are available at http://code.dunae.ca/holidays.
13
+ module NYSE # :nodoc:
14
+ DEFINED_REGIONS = [:nyse]
15
+
16
+ HOLIDAYS_BY_MONTH = {
17
+ 5 => [{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:nyse]}],
18
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:nyse]}],
19
+ 11 => [{:wday => 4, :week => 4, :name => "Thanksgiving", :regions => [:nyse]}],
20
+ 1 => [{:mday => 1, :name => "New Year's Day", :regions => [:nyse]},
21
+ {:wday => 1, :week => 3, :name => "Martin Luther King, Jr. Day", :regions => [:nyse]}],
22
+ 12 => [{:mday => 25, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Christmas Day", :regions => [:nyse]}],
23
+ 7 => [{:mday => 4, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Independence Day", :regions => [:nyse]}],
24
+ 2 => [{:wday => 1, :week => 3, :name => "Presidents' Day", :regions => [:nyse]}],
25
+ 9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:nyse]}]
26
+ }
27
+ end
28
+
29
+
30
+ end
31
+
32
+ Holidays.merge_defs(Holidays::NYSE::DEFINED_REGIONS, Holidays::NYSE::HOLIDAYS_BY_MONTH)
@@ -0,0 +1,31 @@
1
+ module Holidays
2
+ # This file is generated by the Ruby Holiday gem.
3
+ #
4
+ # Definitions loaded: data/ups.yaml
5
+ #
6
+ # To use the definitions in this file, load them right after you load the
7
+ # Holiday gem:
8
+ #
9
+ # require 'holidays'
10
+ # require 'holidays/ups'
11
+ #
12
+ # More definitions are available at http://code.dunae.ca/holidays.
13
+ module UPS # :nodoc:
14
+ DEFINED_REGIONS = [:ups]
15
+
16
+ HOLIDAYS_BY_MONTH = {
17
+ 5 => [{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:ups]}],
18
+ 11 => [{:wday => 4, :week => 4, :name => "Thanksgiving", :regions => [:ups]},
19
+ {:wday => 5, :week => 4, :name => "Day After Thanksgiving", :regions => [:ups]}],
20
+ 1 => [{:mday => 1, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "New Year's Day", :regions => [:ups]}],
21
+ 12 => [{:mday => 25, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Christmas Day", :regions => [:ups]},
22
+ {:mday => 31, :name => "New Year's Eve", :regions => [:ups]}],
23
+ 7 => [{:mday => 4, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Independence Day", :regions => [:ups]}],
24
+ 9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:ups]}]
25
+ }
26
+ end
27
+
28
+
29
+ end
30
+
31
+ Holidays.merge_defs(Holidays::UPS::DEFINED_REGIONS, Holidays::UPS::HOLIDAYS_BY_MONTH)
data/rakefile.rb CHANGED
@@ -46,7 +46,7 @@ end
46
46
 
47
47
  spec = Gem::Specification.new do |s|
48
48
  s.name = 'holidays'
49
- s.version = '0.9.2'
49
+ s.version = '0.9.3'
50
50
  s.author = 'Alex Dunae'
51
51
  s.homepage = 'http://code.dunae.ca/holidays'
52
52
  s.platform = Gem::Platform::RUBY
@@ -85,11 +85,11 @@ namespace :defs do
85
85
  files.uniq!
86
86
 
87
87
  module_src, test_src = parse_holiday_defs(region, files)
88
- File.open("lib/holidays/#{region.to_s}.rb","w") do |file|
88
+ File.open("lib/holidays/#{region.downcase.to_s}.rb","w") do |file|
89
89
  file.puts module_src
90
90
  end
91
91
  unless test_src.empty?
92
- File.open("test/defs/test_defs_#{region.to_s}.rb","w") do |file|
92
+ File.open("test/defs/test_defs_#{region.downcase.to_s}.rb","w") do |file|
93
93
  file.puts test_src
94
94
  end
95
95
  end
@@ -0,0 +1,22 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+ require 'holidays/nyse'
3
+
4
+ # This file is generated by the Ruby Holiday gem.
5
+ #
6
+ # Definitions loaded: data/nyse.yaml
7
+ class NyseDefinitionTests < Test::Unit::TestCase # :nodoc:
8
+
9
+ def test_nyse
10
+ {Date.civil(2008,1,1) => 'New Year\'s Day',
11
+ Date.civil(2008,1,21) => 'Martin Luther King, Jr. Day',
12
+ Date.civil(2008,2,18) => 'Presidents\' Day',
13
+ Date.civil(2008,3,21) => 'Good Friday',
14
+ Date.civil(2008,5,26) => 'Memorial Day',
15
+ Date.civil(2008,7,4) => 'Independence Day',
16
+ Date.civil(2008,9,1) => 'Labor 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, :nyse)[0][:name]
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,21 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+ require 'holidays/ups'
3
+
4
+ # This file is generated by the Ruby Holiday gem.
5
+ #
6
+ # Definitions loaded: data/ups.yaml
7
+ class UpsDefinitionTests < Test::Unit::TestCase # :nodoc:
8
+
9
+ def test_ups
10
+ {Date.civil(2008,1,1) => 'New Year\'s Day',
11
+ Date.civil(2008,5,26) => 'Memorial Day',
12
+ Date.civil(2008,7,4) => 'Independence Day',
13
+ Date.civil(2008,9,1) => 'Labor Day',
14
+ Date.civil(2008,11,27) => 'Thanksgiving',
15
+ Date.civil(2008,11,28) => 'Day After Thanksgiving',
16
+ Date.civil(2008,12,25) => 'Christmas Day',
17
+ Date.civil(2008,12,31) => 'New Year\'s Eve',}.each do |date, name|
18
+ assert_equal name, Holidays.on(date, :ups)[0][:name]
19
+ end
20
+ end
21
+ end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
3
3
  specification_version: 1
4
4
  name: holidays
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.9.2
7
- date: 2008-07-23 00:00:00 -07:00
6
+ version: 0.9.3
7
+ date: 2008-11-19 00:00:00 -08:00
8
8
  summary: A collection of Ruby methods to deal with statutory and other holidays. You deserve a holiday!
9
9
  require_paths:
10
10
  - lib
@@ -45,10 +45,12 @@ files:
45
45
  - lib/holidays/mx.rb
46
46
  - lib/holidays/nl.rb
47
47
  - lib/holidays/north_america.rb
48
+ - lib/holidays/nyse.rb
48
49
  - lib/holidays/pt.rb
49
50
  - lib/holidays/scandinavia.rb
50
51
  - lib/holidays/se.rb
51
52
  - lib/holidays/united_nations.rb
53
+ - lib/holidays/ups.rb
52
54
  - lib/holidays/us.rb
53
55
  - lib/holidays/za.rb
54
56
  - lib/holidays.rb
@@ -67,10 +69,12 @@ files:
67
69
  - data/mx.yaml
68
70
  - data/nl.yaml
69
71
  - data/north_america_informal.yaml
72
+ - data/nyse.yaml
70
73
  - data/pt.yaml
71
74
  - data/se.yaml
72
75
  - data/SYNTAX
73
76
  - data/united_nations.yaml
77
+ - data/ups.yaml
74
78
  - data/us.yaml
75
79
  - data/za.yaml
76
80
  - rakefile.rb
@@ -93,9 +97,11 @@ test_files:
93
97
  - test/defs/test_defs_mx.rb
94
98
  - test/defs/test_defs_nl.rb
95
99
  - test/defs/test_defs_north_america.rb
100
+ - test/defs/test_defs_nyse.rb
96
101
  - test/defs/test_defs_pt.rb
97
102
  - test/defs/test_defs_scandinavia.rb
98
103
  - test/defs/test_defs_se.rb
104
+ - test/defs/test_defs_ups.rb
99
105
  - test/defs/test_defs_us.rb
100
106
  - test/defs/test_defs_za.rb
101
107
  rdoc_options: