holidate 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: []