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.
- data/lib/holidate.rb +63 -0
- 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: []
|