ri_state_holidays 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 27b0452f71bc567689c0bbd5b433bce3ea18be15
4
+ data.tar.gz: 08398f9a809ad09a951adb311c7ded5c6ef1127a
5
+ SHA512:
6
+ metadata.gz: a38ef1249b1c85e69699c4bfd03d55923080564596098a904bcef0629241b1aa5f4eb67651903993c2f6d07d43daba265b95192ea0551812d9e4966852a3895f
7
+ data.tar.gz: fa84791c444292cc3a15d0bd10174201e15588124abd027bb71f0d333fa4b04182e687072f9c993d88741164bb78c7734ef3ddd4c93de607fb1c19aea081d329
data/README.md CHANGED
@@ -5,3 +5,9 @@ Calculate Rhode Island state holidays and observances
5
5
  ## Usage
6
6
 
7
7
  RiStateHolidays.holiday? Date.today [true or false]
8
+
9
+ ## Sources
10
+
11
+ * http://sos.ri.gov/library/stateholidays/
12
+ * http://www.hr.ri.gov/
13
+ * http://webserver.rilin.state.ri.us/Statutes/TITLE25/25-1/25-1-1.HTM
@@ -34,9 +34,6 @@ module RiStateHolidays
34
34
  end
35
35
 
36
36
 
37
- private
38
-
39
-
40
37
  def self.between(start_date, end_date, *options)
41
38
  # remove the timezone
42
39
  start_date = start_date.new_offset(0) + start_date.offset if start_date.respond_to?(:new_offset)
@@ -143,12 +140,14 @@ module RiStateHolidays
143
140
  ]
144
141
  }
145
142
  end
143
+ private_class_method :get_holidays_by_month
146
144
 
147
145
 
148
146
  # January 20, every fourth year, following Presidential election
149
147
  def self.us_inauguration_day(year)
150
148
  year % 4 == 1 ? 20 : nil
151
149
  end
150
+ private_class_method :us_inauguration_day
152
151
 
153
152
 
154
153
  # Return the Tuesday after the first Monday
@@ -168,13 +167,15 @@ module RiStateHolidays
168
167
 
169
168
  return nil
170
169
  end
170
+ private_class_method :us_election_day
171
171
 
172
172
 
173
173
  def self.to_weekday_if_weekend(date)
174
174
  date += 1 if date.wday == 0
175
- date -= 1 if date.wday == 6
175
+ date += 2 if date.wday == 6
176
176
  date
177
177
  end
178
+ private_class_method :to_weekday_if_weekend
178
179
 
179
180
 
180
181
  def self.calculate_mday(year, month, week, wday)
@@ -191,18 +192,22 @@ module RiStateHolidays
191
192
  if week > 0
192
193
  return ((week - 1) * 7) + 1 + ((wday - Date.civil(year, month,(week-1)*7 + 1).wday) % 7)
193
194
  end
194
-
195
+
195
196
  days = MONTH_LENGTHS[month-1]
196
197
 
197
198
  days = 29 if month == 2 and Date.leap?(year)
198
-
199
+
199
200
  return days - ((Date.civil(year, month, days).wday - wday + 7) % 7) - (7 * (week.abs - 1))
200
201
  end
202
+ private_class_method :calculate_mday
203
+
201
204
 
202
205
  def self.call_proc(function, year) # :nodoc:
203
206
  proc_key = Digest::MD5.hexdigest("#{function.to_s}_#{year.to_s}")
204
207
  function.call(year)
205
208
  end
209
+ private_class_method :call_proc
210
+
206
211
 
207
212
  def self.parse_options(options)
208
213
  regions = [:us_ri]
@@ -210,6 +215,6 @@ module RiStateHolidays
210
215
  informal = nil
211
216
  return regions, observed, informal
212
217
  end
213
-
218
+ private_class_method :parse_options
214
219
 
215
220
  end
@@ -1,8 +1,8 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  Gem::Specification.new do |gem|
4
- gem.authors = ["Joseph Alba"]
5
- gem.email = ["jalba@egov.com"]
4
+ gem.authors = ["Joe Alba"]
5
+ gem.email = ["joe@joealba.com"]
6
6
  gem.description = %q{Calculate Rhode Island state holidays}
7
7
  gem.summary = %q{Based off the Holidays Ruby gem -- but without altering the Date class}
8
8
  gem.homepage = ""
@@ -13,8 +13,8 @@ Gem::Specification.new do |gem|
13
13
  gem.name = "ri_state_holidays"
14
14
  gem.require_paths = ["lib"]
15
15
 
16
- gem.version = '0.1.0'
16
+ gem.version = '0.1.2'
17
17
 
18
- gem.add_development_dependency "rspec"
18
+ gem.add_development_dependency "rspec", ">= 3.0.0"
19
19
  gem.add_development_dependency "rake"
20
20
  end
@@ -4,19 +4,19 @@ describe RiStateHolidays do
4
4
 
5
5
  describe "easy day-of-month holidays" do
6
6
  it "knows New Years Day" do
7
- RiStateHolidays.holiday?(Date.new(2013, 1, 1)).should be_true
7
+ expect(RiStateHolidays.holiday?(Date.new(2013, 1, 1))).to eq(true)
8
8
  end
9
9
 
10
10
  it "knows Independence Day" do
11
- RiStateHolidays.holiday?(Date.new(2012, 7, 4)).should be_true
11
+ expect(RiStateHolidays.holiday?(Date.new(2012, 7, 4))).to eq(true)
12
12
  end
13
13
 
14
14
  it "knows Christmas" do
15
- RiStateHolidays.holiday?(Date.new(2012, 12, 25)).should be_true
15
+ expect(RiStateHolidays.holiday?(Date.new(2012, 12, 25))).to eq(true)
16
16
  end
17
17
 
18
18
  it "knows a non-holiday" do
19
- RiStateHolidays.holiday?(Date.new(2012, 2, 28)).should be_false
19
+ expect(RiStateHolidays.holiday?(Date.new(2012, 2, 28))).to eq(false)
20
20
  end
21
21
  end
22
22
 
@@ -24,43 +24,48 @@ describe RiStateHolidays do
24
24
  describe "observed holidays" do
25
25
  # When any legal holiday falls on a Sunday, the day following it is a full holiday.
26
26
  it "observed New Years from a Sunday" do
27
- RiStateHolidays.holiday?(Date.new(2012, 1, 2)).should be_true
27
+ expect(RiStateHolidays.holiday?(Date.new(2012, 1, 2))).to eq(true)
28
28
  end
29
29
 
30
30
  it "observed Veterans Day from a Sunday" do
31
- RiStateHolidays.holiday?(Date.new(2012, 11, 12)).should be_true
31
+ expect(RiStateHolidays.holiday?(Date.new(2012, 11, 12))).to eq(true)
32
+ end
33
+
34
+ it 'observed a Saturday holiday on the following Monday, not the previous Friday' do
35
+ expect(RiStateHolidays.holiday?(Date.new(2015, 7, 3))).to eq(false)
36
+ expect(RiStateHolidays.holiday?(Date.new(2015, 7, 6))).to eq(true)
32
37
  end
33
38
  end
34
39
 
35
40
 
36
41
  describe "calculated holidays" do
37
42
  it "knows Veteran's Day" do
38
- RiStateHolidays.holiday?(Date.new(2013, 11, 11)).should be_true
39
- RiStateHolidays.holiday?(Date.new(2014, 11, 11)).should be_true
43
+ expect(RiStateHolidays.holiday?(Date.new(2013, 11, 11))).to eq(true)
44
+ expect(RiStateHolidays.holiday?(Date.new(2014, 11, 11))).to eq(true)
40
45
  end
41
46
 
42
47
  it "knows Victory Day" do
43
- RiStateHolidays.holiday?(Date.new(2012, 8, 13)).should be_true
44
- RiStateHolidays.holiday?(Date.new(2013, 8, 12)).should be_true
45
- RiStateHolidays.holiday?(Date.new(2014, 8, 11)).should be_true
48
+ expect(RiStateHolidays.holiday?(Date.new(2012, 8, 13))).to eq(true)
49
+ expect(RiStateHolidays.holiday?(Date.new(2013, 8, 12))).to eq(true)
50
+ expect(RiStateHolidays.holiday?(Date.new(2014, 8, 11))).to eq(true)
46
51
  end
47
52
 
48
53
  it "knows Labor Day" do
49
- RiStateHolidays.holiday?(Date.new(2012, 9, 3)).should be_true
50
- RiStateHolidays.holiday?(Date.new(2013, 9, 2)).should be_true
51
- RiStateHolidays.holiday?(Date.new(2014, 9, 1)).should be_true
54
+ expect(RiStateHolidays.holiday?(Date.new(2012, 9, 3))).to eq(true)
55
+ expect(RiStateHolidays.holiday?(Date.new(2013, 9, 2))).to eq(true)
56
+ expect(RiStateHolidays.holiday?(Date.new(2014, 9, 1))).to eq(true)
52
57
  end
53
58
 
54
59
  it "knows election day" do
55
- RiStateHolidays.holiday?(Date.new(2012, 11, 6)).should be_true
56
- RiStateHolidays.holiday?(Date.new(2013, 11, 5)).should be_false
57
- RiStateHolidays.holiday?(Date.new(2014, 11, 4)).should be_true
60
+ expect(RiStateHolidays.holiday?(Date.new(2012, 11, 6))).to eq(true)
61
+ expect(RiStateHolidays.holiday?(Date.new(2013, 11, 5))).to eq(false)
62
+ expect(RiStateHolidays.holiday?(Date.new(2014, 11, 4))).to eq(true)
58
63
  end
59
64
 
60
65
  it "knows Thanksgiving" do
61
- RiStateHolidays.holiday?(Date.new(2012, 11, 22)).should be_true
62
- RiStateHolidays.holiday?(Date.new(2013, 11, 28)).should be_true
63
- RiStateHolidays.holiday?(Date.new(2014, 11, 27)).should be_true
66
+ expect(RiStateHolidays.holiday?(Date.new(2012, 11, 22))).to eq(true)
67
+ expect(RiStateHolidays.holiday?(Date.new(2013, 11, 28))).to eq(true)
68
+ expect(RiStateHolidays.holiday?(Date.new(2014, 11, 27))).to eq(true)
64
69
  end
65
70
  end
66
71
 
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'ri_state_holidays'
2
2
 
3
3
  RSpec.configure do |config|
4
- config.treat_symbols_as_metadata_keys_with_true_values = true
5
4
  config.run_all_when_everything_filtered = true
6
5
  config.order = 'random'
6
+ config.raise_errors_for_deprecations!
7
7
  end
metadata CHANGED
@@ -1,58 +1,53 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ri_state_holidays
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
5
- prerelease:
4
+ version: 0.1.2
6
5
  platform: ruby
7
6
  authors:
8
- - Joseph Alba
7
+ - Joe Alba
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-01-23 00:00:00.000000000 Z
11
+ date: 2015-11-10 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
- version: '0'
19
+ version: 3.0.0
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: '0'
26
+ version: 3.0.0
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  description: Calculate Rhode Island state holidays
47
42
  email:
48
- - jalba@egov.com
43
+ - joe@joealba.com
49
44
  executables:
50
45
  - ri_state_holiday
51
46
  extensions: []
52
47
  extra_rdoc_files: []
53
48
  files:
54
- - .gitignore
55
- - .rspec
49
+ - ".gitignore"
50
+ - ".rspec"
56
51
  - Gemfile
57
52
  - LICENSE
58
53
  - README.md
@@ -64,33 +59,26 @@ files:
64
59
  - spec/spec_helper.rb
65
60
  homepage: ''
66
61
  licenses: []
62
+ metadata: {}
67
63
  post_install_message:
68
64
  rdoc_options: []
69
65
  require_paths:
70
66
  - lib
71
67
  required_ruby_version: !ruby/object:Gem::Requirement
72
- none: false
73
68
  requirements:
74
- - - ! '>='
69
+ - - ">="
75
70
  - !ruby/object:Gem::Version
76
71
  version: '0'
77
- segments:
78
- - 0
79
- hash: 2455822407572811696
80
72
  required_rubygems_version: !ruby/object:Gem::Requirement
81
- none: false
82
73
  requirements:
83
- - - ! '>='
74
+ - - ">="
84
75
  - !ruby/object:Gem::Version
85
76
  version: '0'
86
- segments:
87
- - 0
88
- hash: 2455822407572811696
89
77
  requirements: []
90
78
  rubyforge_project:
91
- rubygems_version: 1.8.24
79
+ rubygems_version: 2.4.8
92
80
  signing_key:
93
- specification_version: 3
81
+ specification_version: 4
94
82
  summary: Based off the Holidays Ruby gem -- but without altering the Date class
95
83
  test_files:
96
84
  - spec/ri_state_holidays_spec.rb