business_calendar 1.1.0 → 2.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.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +30 -0
- data/.github/workflows/gem-push.yml +29 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +0 -2
- data/README.md +1 -3
- data/business_calendar.gemspec +0 -4
- data/data/GB.yml +12 -12
- data/gemfiles/ruby_1.9.3.gemfile +6 -0
- data/lib/business_calendar.rb +1 -2
- data/lib/business_calendar/version.rb +1 -1
- data/spec/acceptance_gb_spec.rb +12 -12
- data/spec/business_calendar_spec.rb +1 -1
- data/spec/spec_helper.rb +0 -2
- metadata +9 -50
- data/.simplecov +0 -8
- data/.travis.yml +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 565c792e03739cdb3e5f506afba3f18c45098b204dda20051978333bcb5a5acc
|
4
|
+
data.tar.gz: 39de2f975e53ab66e32408c7591ec620b7596784277eebf1994c7231ecdd27af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a671409be0e036f24dd0d15a8125702b37c0218387026a2a609cd1c22a6a8b25523dd4a78a16b2b5dfb688230fe2286bbf3f9f273cbdf26f0bca3a74b3b3d30
|
7
|
+
data.tar.gz: 59d51361f35e15405f208288c9865e1d602fdb4baef607a509e191273c5ba1f38600a6d70a80e76104dc944cdab8539b25c33c8881a811dde5d11aec8a91d00e
|
@@ -0,0 +1,30 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ master ]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
test:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
continue-on-error: ${{ matrix.experimental }}
|
13
|
+
strategy:
|
14
|
+
matrix:
|
15
|
+
ruby-version: [2.3.1, 2.7.0]
|
16
|
+
experimental: [false]
|
17
|
+
include:
|
18
|
+
- ruby-version: head
|
19
|
+
experimental: true
|
20
|
+
|
21
|
+
steps:
|
22
|
+
- uses: actions/checkout@v2
|
23
|
+
- name: Set up Ruby ${{ matrix.ruby-version }}
|
24
|
+
uses: ruby/setup-ruby@v1
|
25
|
+
with:
|
26
|
+
ruby-version: ${{ matrix.ruby-version }}
|
27
|
+
- name: Install dependencies
|
28
|
+
run: bundle install
|
29
|
+
- name: Run tests
|
30
|
+
run: bundle exec rspec
|
@@ -0,0 +1,29 @@
|
|
1
|
+
name: Ruby Gem
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
tags:
|
6
|
+
- '*'
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
build:
|
10
|
+
name: Build + Publish
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@v2
|
15
|
+
- name: Set up Ruby 2.7
|
16
|
+
uses: actions/setup-ruby@v1
|
17
|
+
with:
|
18
|
+
ruby-version: 2.7
|
19
|
+
|
20
|
+
- name: Publish to RubyGems
|
21
|
+
run: |
|
22
|
+
mkdir -p $HOME/.gem
|
23
|
+
touch $HOME/.gem/credentials
|
24
|
+
chmod 0600 $HOME/.gem/credentials
|
25
|
+
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
26
|
+
gem build *.gemspec
|
27
|
+
gem push *.gem
|
28
|
+
env:
|
29
|
+
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# BusinessCalendar
|
2
2
|
|
3
3
|
[](https://rubygems.org/gems/business_calendar)
|
4
|
-
[](https://travis-ci.org/enova/business_calendar)
|
5
|
-
[](https://coveralls.io/github/enova/business_calendar?branch=master)
|
6
4
|
[](https://gemnasium.com/enova/business_calendar)
|
7
5
|
|
8
6
|
Need to know what days you can actually debit a customer on in excruciating detail? Fed up with singleton-based gems
|
@@ -32,7 +30,7 @@ Instantiate a calendar object with:
|
|
32
30
|
bc = BusinessCalendar.for(:US)
|
33
31
|
```
|
34
32
|
|
35
|
-
This will automatically load holidays based on the US banking holiday schedule, as configured in `data/
|
33
|
+
This will automatically load holidays based on the US banking holiday schedule, as configured in `data/US.yml`.
|
36
34
|
Currently, this gem supports `:GB` and `:US` regions.
|
37
35
|
|
38
36
|
Now, you can use it:
|
data/business_calendar.gemspec
CHANGED
@@ -18,15 +18,11 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
|
22
21
|
spec.add_dependency "holidays", "~> 1.0"
|
23
22
|
spec.add_dependency "faraday"
|
24
|
-
spec.add_dependency "faraday-conductivity"
|
25
23
|
|
26
|
-
spec.add_development_dependency "bundler", "~> 1.3"
|
27
24
|
spec.add_development_dependency "rake"
|
28
25
|
spec.add_development_dependency "rspec", "~> 3.2"
|
29
26
|
spec.add_development_dependency "webmock"
|
30
|
-
spec.add_development_dependency "simplecov"
|
31
27
|
spec.add_development_dependency "pry"
|
32
28
|
end
|
data/data/GB.yml
CHANGED
@@ -26,12 +26,12 @@ GB:
|
|
26
26
|
- '2015-12-26'
|
27
27
|
- '2016-12-25'
|
28
28
|
- '2017-01-01'
|
29
|
-
- '2020-12-
|
30
|
-
- '2021-12-
|
31
|
-
- '2021-12-
|
32
|
-
- '2022-01-
|
33
|
-
- '2022-12-
|
34
|
-
- '2023-01-
|
29
|
+
- '2020-12-28'
|
30
|
+
- '2021-12-27'
|
31
|
+
- '2021-12-28'
|
32
|
+
- '2022-01-03'
|
33
|
+
- '2022-12-27'
|
34
|
+
- '2023-01-02'
|
35
35
|
removals:
|
36
36
|
- '2002-05-28'
|
37
37
|
- '2007-04-08'
|
@@ -44,9 +44,9 @@ GB:
|
|
44
44
|
- '2013-03-31'
|
45
45
|
- '2014-04-20'
|
46
46
|
- '2015-12-28'
|
47
|
-
- '2020-12-
|
48
|
-
- '2021-12-
|
49
|
-
- '2021-12-
|
50
|
-
- '2022-01-
|
51
|
-
- '2022-12-
|
52
|
-
- '2023-01-
|
47
|
+
- '2020-12-26'
|
48
|
+
- '2021-12-25'
|
49
|
+
- '2021-12-26'
|
50
|
+
- '2022-01-01'
|
51
|
+
- '2022-12-25'
|
52
|
+
- '2023-01-01'
|
data/lib/business_calendar.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'faraday'
|
2
|
-
require 'faraday/conductivity'
|
3
2
|
|
4
3
|
module BusinessCalendar
|
5
4
|
CountryNotSupported = Class.new(StandardError)
|
@@ -51,7 +50,7 @@ module BusinessCalendar
|
|
51
50
|
|
52
51
|
def holiday_determiner_for_endpoint(additions_endpoint, removals_endpoint, opts)
|
53
52
|
client = Faraday.new do |conn|
|
54
|
-
conn.response :
|
53
|
+
conn.response :raise_error
|
55
54
|
conn.adapter :net_http
|
56
55
|
end
|
57
56
|
|
data/spec/acceptance_gb_spec.rb
CHANGED
@@ -20,12 +20,12 @@ describe "GB bank holidays" do
|
|
20
20
|
2015-12-26
|
21
21
|
2016-12-25
|
22
22
|
2017-01-01
|
23
|
-
2020-12-
|
24
|
-
2021-12-
|
25
|
-
2021-12-
|
26
|
-
2022-01-
|
27
|
-
2022-12-
|
28
|
-
2023-01-
|
23
|
+
2020-12-28
|
24
|
+
2021-12-27
|
25
|
+
2021-12-28
|
26
|
+
2022-01-03
|
27
|
+
2022-12-27
|
28
|
+
2023-01-02
|
29
29
|
).map { |x| Date.parse x }.each do |expected_holiday|
|
30
30
|
it "treats #{expected_holiday} as a holiday" do
|
31
31
|
expect(BusinessCalendar.for(:GB).is_holiday?(expected_holiday)).to be true
|
@@ -35,12 +35,12 @@ describe "GB bank holidays" do
|
|
35
35
|
%w(
|
36
36
|
2012-05-28
|
37
37
|
2015-12-28
|
38
|
-
2020-12-
|
39
|
-
2021-12-
|
40
|
-
2021-12-
|
41
|
-
2022-01-
|
42
|
-
2022-12-
|
43
|
-
2023-01-
|
38
|
+
2020-12-26
|
39
|
+
2021-12-25
|
40
|
+
2021-12-26
|
41
|
+
2022-01-01
|
42
|
+
2022-12-25
|
43
|
+
2023-01-01
|
44
44
|
).map { |x| Date.parse x }.each do |date|
|
45
45
|
it "treats #{date} as not a holiday" do
|
46
46
|
expect(BusinessCalendar.for(:GB).is_holiday?(date)).to be false
|
@@ -366,7 +366,7 @@ describe BusinessCalendar do
|
|
366
366
|
before { stub_request(:get, additions).to_return(:status => 500) }
|
367
367
|
|
368
368
|
it 'raises an error' do
|
369
|
-
expect { subject.is_business_day?('2014-07-04'.to_date) }.to raise_error Faraday::
|
369
|
+
expect { subject.is_business_day?('2014-07-04'.to_date) }.to raise_error Faraday::Error
|
370
370
|
end
|
371
371
|
end
|
372
372
|
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: business_calendar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Nubel
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-12-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: holidays
|
@@ -38,34 +38,6 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: faraday-conductivity
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: bundler
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '1.3'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '1.3'
|
69
41
|
- !ruby/object:Gem::Dependency
|
70
42
|
name: rake
|
71
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,20 +80,6 @@ dependencies:
|
|
108
80
|
- - ">="
|
109
81
|
- !ruby/object:Gem::Version
|
110
82
|
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: simplecov
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
83
|
- !ruby/object:Gem::Dependency
|
126
84
|
name: pry
|
127
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -144,10 +102,10 @@ executables: []
|
|
144
102
|
extensions: []
|
145
103
|
extra_rdoc_files: []
|
146
104
|
files:
|
105
|
+
- ".github/workflows/ci.yml"
|
106
|
+
- ".github/workflows/gem-push.yml"
|
147
107
|
- ".gitignore"
|
148
108
|
- ".rspec"
|
149
|
-
- ".simplecov"
|
150
|
-
- ".travis.yml"
|
151
109
|
- CHANGELOG.md
|
152
110
|
- Gemfile
|
153
111
|
- LICENSE.txt
|
@@ -160,6 +118,7 @@ files:
|
|
160
118
|
- data/US.yml
|
161
119
|
- data/org/captalys.yml
|
162
120
|
- gemfiles/ree.gemfile
|
121
|
+
- gemfiles/ruby_1.9.3.gemfile
|
163
122
|
- lib/business_calendar.rb
|
164
123
|
- lib/business_calendar/calendar.rb
|
165
124
|
- lib/business_calendar/holiday_determiner.rb
|
@@ -177,7 +136,7 @@ homepage: ''
|
|
177
136
|
licenses:
|
178
137
|
- MIT
|
179
138
|
metadata: {}
|
180
|
-
post_install_message:
|
139
|
+
post_install_message:
|
181
140
|
rdoc_options: []
|
182
141
|
require_paths:
|
183
142
|
- lib
|
@@ -192,8 +151,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
192
151
|
- !ruby/object:Gem::Version
|
193
152
|
version: '0'
|
194
153
|
requirements: []
|
195
|
-
rubygems_version: 3.
|
196
|
-
signing_key:
|
154
|
+
rubygems_version: 3.1.2
|
155
|
+
signing_key:
|
197
156
|
specification_version: 4
|
198
157
|
summary: Country-aware business-date logic and handling.
|
199
158
|
test_files:
|
data/.simplecov
DELETED
data/.travis.yml
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
sudo: false
|
2
|
-
language: ruby
|
3
|
-
cache: bundler
|
4
|
-
|
5
|
-
matrix:
|
6
|
-
include:
|
7
|
-
- rmv: ree
|
8
|
-
gemfile: gemfiles/ree.gemfile
|
9
|
-
script: bundle exec rspec
|
10
|
-
- rvm: 1.9.3
|
11
|
-
script: bundle exec rspec
|
12
|
-
- rvm: 2.3.1
|
13
|
-
script: bundle exec rspec
|
14
|
-
|
15
|
-
env:
|
16
|
-
global:
|
17
|
-
secure: klQ3BQNdKkGIq3Zfv8Sr6oZqaMg9GHx+LGhynQ5xt7A6SGvxbMuoXJlE9wW4me6u+B9S2D+q+pdKgGPE/+fHsVt/d0zDXRnrjVyo1eexT220AMfpjiFDAtya8sAcuuAICLhw8AmzTjns8yAWInv5U5vC6oejkLA71FXtHU//210=
|
18
|
-
|
19
|
-
deploy:
|
20
|
-
provider: rubygems
|
21
|
-
api_key:
|
22
|
-
secure: "c9QcNX+nk0Yzl22ZVknZtv+/G4fUeLph0TH9PS6hQ92zywM61wtXTJExZdBHulvKAaQbKaq20LcFjLw41qwJc6tvIEYXpOinfOaiemTKaGmKscDrIi3wUAxfjmTacXZAaTdEORQVqTOmppqsuKnP7cqmSNxTSI901Sz5Cy6Jpl0="
|
23
|
-
on:
|
24
|
-
tags: true
|
25
|
-
repo: enova/business_calendar
|