holidate 0.0.0

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 (2) hide show
  1. data/lib/holidate.rb +63 -0
  2. metadata +46 -0
data/lib/holidate.rb ADDED
@@ -0,0 +1,63 @@
1
+ require 'date'
2
+
3
+ class Holidate
4
+ def self.new_years_day year
5
+ raise ArgumentError, "Invalid value for method #{__method__}: #{year.inspect}" unless year.is_a? Integer
6
+ Date.new year, 1
7
+ end
8
+ self.singleton_class.send(:alias_method, :new_year, :new_years_day)
9
+
10
+ def self.martin_luther_king_jr_day year
11
+ raise ArgumentError, "Invalid value for method #{__method__}: #{year.inspect}" unless year.is_a? Integer
12
+ Date.new year, 1, (15 + (1 - Date.new(year, 1).wday)%7)
13
+ end
14
+ self.singleton_class.send(:alias_method, :mlk, :martin_luther_king_jr_day)
15
+
16
+ def self.washingtons_birthday year
17
+ raise ArgumentError, "Invalid value for method #{__method__}: #{year.inspect}" unless year.is_a? Integer
18
+ Date.new year, 2, (15 + (1 - Date.new(year, 2).wday)%7)
19
+ end
20
+ self.singleton_class.send(:alias_method, :washington, :washingtons_birthday)
21
+
22
+ def self.memorial_day year
23
+ raise ArgumentError, "Invalid value for method #{__method__}: #{year.inspect}" unless year.is_a? Integer
24
+ Date.new year, 5, (31 - (Date.new(year, 5, 31).wday - 1)%7)
25
+ end
26
+ self.singleton_class.send(:alias_method, :memorial, :memorial_day)
27
+
28
+ def self.independence_day year
29
+ raise ArgumentError, "Invalid value for method #{__method__}: #{year.inspect}" unless year.is_a? Integer
30
+ Date.new year, 7, 4
31
+ end
32
+ self.singleton_class.send(:alias_method, :july_4, :independence_day)
33
+
34
+ def self.labor_day year
35
+ raise ArgumentError, "Invalid value for method #{__method__}: #{year.inspect}" unless year.is_a? Integer
36
+ Date.new year, 9, (1 + (1 - Date.new(year, 9).wday)%7)
37
+ end
38
+ self.singleton_class.send(:alias_method, :labor, :labor_day)
39
+
40
+ def self.columbus_day year
41
+ raise ArgumentError, "Invalid value for method #{__method__}: #{year.inspect}" unless year.is_a? Integer
42
+ Date.new year, 10, (8 + (1 - Date.new(year, 10).wday)%7)
43
+ end
44
+ self.singleton_class.send(:alias_method, :columbus, :columbus_day)
45
+
46
+ def self.veterans_day year
47
+ raise ArgumentError, "Invalid value for method #{__method__}: #{year.inspect}" unless year.is_a? Integer
48
+ Date.new year, 11, 11
49
+ end
50
+ self.singleton_class.send(:alias_method, :veteran, :veterans_day)
51
+
52
+ def self.thanksgiving_day year
53
+ raise ArgumentError, "Invalid value for method #{__method__}: #{year.inspect}" unless year.is_a? Integer
54
+ Date.new year, 11, (22 + (4 - Date.new(year, 11).wday)%7)
55
+ end
56
+ self.singleton_class.send(:alias_method, :thanksgiving, :thanksgiving_day)
57
+
58
+ def self.christmas_day year
59
+ raise ArgumentError, "Invalid value for method #{__method__}: #{year.inspect}" unless year.is_a? Integer
60
+ Date.new year, 12, 25
61
+ end
62
+ self.singleton_class.send(:alias_method, :xmas, :christmas_day)
63
+ end
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: holidate
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Cohen Carlisle
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-01-19 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: A simple gem that returns Date objects for holidays
15
+ email: holidate.gem@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/holidate.rb
21
+ homepage: http://rubygems.org/gems/holidate
22
+ licenses:
23
+ - MIT
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 1.8.23
43
+ signing_key:
44
+ specification_version: 3
45
+ summary: Holiday Dates
46
+ test_files: []