ri_state_holidays 0.1.0 → 0.1.2

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.
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