business 1.2.0 → 1.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: de8e68f0e25bccfb8401fc38270aaf57207a1731
4
- data.tar.gz: 446353f2bb1b28f85cf4fc93523e6037a932340e
3
+ metadata.gz: a2d2cb8f2fd7a20e32ebd77079819fd74a32e8d0
4
+ data.tar.gz: 9490bfa2e494111d15b3402b88ae0b4181ba8f51
5
5
  SHA512:
6
- metadata.gz: feb11f72fb884e77f2b09ac672adff297d9153c0c867b223fee919bf775c92e57d21eeb3d61048e664815e683590c773910911a3bf89cff6169dcffe9c8d21be
7
- data.tar.gz: 595bdd737ab023e537f02904997d84ed4a23f314a7543559259f7a3816f943efd59f485ec39ca2eb3a77d076274af8d2cbba93f7799c5022768fa5996421a0a9
6
+ metadata.gz: 565f7bcaa097777c83efbfaefb54e09ba96608f910fe4b823a1a14625419ba1177c87dfbbaf7d2566b847a75653669a65a0bf9730015e776ce69a780dff563e8
7
+ data.tar.gz: cde6cbeecffd912f1673b0174dd425ee2e43ab4ff8027d3124d19a0dcf5c6a43c45f358b80ea4387ef74aeb3af0b45d758693db91c365af603cc4633285fbf8c
@@ -0,0 +1,19 @@
1
+ ## 1.3.0 - December 2, 2014
2
+
3
+ - Add `Calendar#previous_business_day`
4
+
5
+
6
+ ## 1.2.0 - November 15, 2014
7
+
8
+ - Add TARGET calendar
9
+
10
+
11
+ ## 1.1.0 - September 30, 2014
12
+
13
+ - Add 2015 holiday definitions
14
+
15
+
16
+ ## 1.0.0 - June 11, 2014
17
+
18
+ - Initial public release
19
+
@@ -63,6 +63,15 @@ module Business
63
63
  date
64
64
  end
65
65
 
66
+ # Roll backward to the previous business day regardless of whether the given
67
+ # date is a business day or not.
68
+ def previous_business_day(date)
69
+ begin
70
+ date -= day_interval_for(date)
71
+ end until business_day?(date)
72
+ date
73
+ end
74
+
66
75
  # Add a number of business days to a date. If a non-business day is given,
67
76
  # counting will start from the next business day. So,
68
77
  # monday + 1 = tuesday
@@ -1,3 +1,3 @@
1
1
  module Business
2
- VERSION = "1.2.0"
2
+ VERSION = "1.3.0"
3
3
  end
@@ -181,6 +181,30 @@ describe Business::Calendar do
181
181
  end
182
182
  end
183
183
 
184
+ describe "#previous_business_day" do
185
+ let(:calendar) do
186
+ Business::Calendar.new(holidays: ["Tuesday 1st Jan, 2013"])
187
+ end
188
+ subject { calendar.previous_business_day(date) }
189
+
190
+ context "given a business day" do
191
+ let(:date) { date_class.parse("Thursday 3nd Jan, 2013") }
192
+ it { is_expected.to eq(date - day_interval) }
193
+ end
194
+
195
+ context "given a non-business day" do
196
+ context "with a business day before it" do
197
+ let(:date) { date_class.parse("Tuesday 1st Jan, 2013") }
198
+ it { is_expected.to eq(date - day_interval) }
199
+ end
200
+
201
+ context "preceeded by another non-business day" do
202
+ let(:date) { date_class.parse("Sunday 6th Jan, 2013") }
203
+ it { is_expected.to eq(date - 2 * day_interval) }
204
+ end
205
+ end
206
+ end
207
+
184
208
  describe "#add_business_days" do
185
209
  let(:calendar) do
186
210
  Business::Calendar.new(holidays: ["Tuesday 1st Jan, 2013"])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: business
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harry Marr
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-15 00:00:00.000000000 Z
11
+ date: 2014-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -47,6 +47,7 @@ extra_rdoc_files: []
47
47
  files:
48
48
  - .gitignore
49
49
  - .travis.yml
50
+ - CHANGELOG.md
50
51
  - Gemfile
51
52
  - LICENSE
52
53
  - README.md