stock_market_days 1.1.3 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 55e734a319706844412c3aa8b4bb90185a4e2ca879946ddb34beec276d139f7d
4
- data.tar.gz: 7f8b91d99c626293323a4c9cf1f57e8f07e09eedacd9f85f7c231f7bbf094dec
3
+ metadata.gz: e824858c3ddb3a1012e7500b350d828a6acc24d1dbc7c7144ba2196149f0469f
4
+ data.tar.gz: 87318b90f7aae3c0ce8533f2a1a5f814c8cb113ac2747f20a2420221294cf0b9
5
5
  SHA512:
6
- metadata.gz: 7b7e188ee4d06846612654246b52d1783820975d7d03deb63dc74433c4b4b3ab40b383932926afba20bf3aab2faab60ee3090e1a7f3a46323e4ef0f876b29a8d
7
- data.tar.gz: 8cf48b6f8f54a955f71c4ec90414801768d0232e5077cfa4ab5d6e130b33cee8e6e9b71d7927a7b5c5ddb7458187721e3ee33d644c7db0dff742b3288bdc5c7e
6
+ metadata.gz: cc7acc5605614dc40a2ead182d1255e333598d7705774171575d2bb1dea9cfd4abfa796a1079f9294a0eeec087d6efa0f980e5b585678f1329a892c5a038fd2f
7
+ data.tar.gz: acc414f62188c452c5a9ee2ff155fd0950c67cd02f1eee8af467be0ea4f543ee77844b4f59c98dc23a069edcf5a14e858a6046811ba364621e4e7382c3060ccd
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ Version 1.2.1 (10/25/2024)
2
+ * Fixes a bug in the date calculation when given date is a weekend. (thanks wtn!)
3
+
4
+ Version 1.2.0 (8/26/2024)
5
+ * Several date corrections on future market days (thanks to the community)
6
+ * Improved benchmarks on date calculation
7
+ * Added `previous_market_day` method
8
+
1
9
  Version 1.1.1 (5/22/2024)
2
10
  * A few historical date corrections
3
11
 
@@ -5,4 +13,4 @@ Version 1.1.0 (6/19/2022)
5
13
  * Adjusted market days for new Juneteenth federal holiday
6
14
 
7
15
  Version 1.0.1 (12/30/2019)
8
- * Fixed bug where methods were not calling properly when including StockMarketDays as a mixin
16
+ * Fixed bug where methods were not calling properly when including StockMarketDays as a mixin
@@ -40,12 +40,16 @@ module StockMarketDays
40
40
  if market_days_list[begin_index] == begin_day
41
41
  market_days_list[begin_index + days]
42
42
  elsif market_days_list[begin_index] > begin_day
43
- market_days_list[begin_index - 1 + days]
43
+ if days == 0
44
+ market_days_list[begin_index - 1]
45
+ else
46
+ offset = days > 0 ? -1 : 0
47
+ market_days_list[begin_index + offset + days]
48
+ end
44
49
  else
45
50
  raise "Calculator Error - This shouldn't happen in StockMarketDays#market_days_from"
46
51
  end
47
52
  end
48
53
 
49
-
50
54
  end
51
- end
55
+ end
@@ -1,3 +1,3 @@
1
1
  module StockMarketDays
2
- VERSION = '1.1.3'
2
+ VERSION = '1.2.1'
3
3
  end
@@ -23,4 +23,8 @@ module StockMarketDays
23
23
  @@default_calculator.market_days_from(from_date, 1)
24
24
  end
25
25
 
26
+ def previous_market_day(from_date=Date.today)
27
+ @@default_calculator.market_days_from(from_date, -1)
28
+ end
29
+
26
30
  end
@@ -211,4 +211,32 @@ describe StockMarketDays do
211
211
  end
212
212
  end
213
213
 
214
- end
214
+ context '#previous_market_day' do
215
+ subject { described_class.previous_market_day(from_date) }
216
+
217
+ context 'on a Saturday' do
218
+ let(:from_date) { Date.new(2020,1,4) }
219
+
220
+ it { is_expected.to eql(Date.new(2020,1,3)) }
221
+ end
222
+
223
+ context 'on Labor Day' do
224
+ let(:from_date) { Date.new(2019,9,2) }
225
+
226
+ it { is_expected.to eql(Date.new(2019,8,30)) }
227
+ end
228
+
229
+ context 'on a regular trading day' do
230
+ let(:from_date) { Date.new(2019,9,5) }
231
+
232
+ it { is_expected.to eql(Date.new(2019,9,4)) }
233
+ end
234
+
235
+ context 'on a Monday' do
236
+ let(:from_date) { Date.new(2019,9,23) }
237
+
238
+ it { is_expected.to eql(Date.new(2019,9,20)) }
239
+ end
240
+ end
241
+
242
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stock_market_days
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Winston Kotzan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-26 00:00:00.000000000 Z
11
+ date: 2024-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler