fat_core 0.2.7 → 0.2.8

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
  SHA1:
3
- metadata.gz: 864810f594f41bc38df56e4968c5c945c95a9fdf
4
- data.tar.gz: 6aae1699bfce083fa87f859b4842ec2f3f666cfa
3
+ metadata.gz: c5ed9e5648eeb55ee7853b351b5f2f9fa3cb2b4e
4
+ data.tar.gz: 8b2cf74d3c6cb40a6adae6ed48fd4077da877e00
5
5
  SHA512:
6
- metadata.gz: 058e2009876d4a273c81d0cde59c1f24f8075e61d752cf0db2910f38ea112ac5e5797286b002908d1f087d2922cc48645d060c0dc6958d41a86d72bac043cdb6
7
- data.tar.gz: 98188d77914b9fcef0deab00faadcfc152e72f5142f6fb39b0dae316b2e8605ec46607a75db2b621b1b095fd293f5554d03d26c7457a9edb8b99634af1b5f6f4
6
+ metadata.gz: 0d9379cabd3a65bc7db3260d467d86edf7c7288ba09bb343cbe2024e67b7d1b0bb6b50e7ca5bed5fe3e90d41e7c9a31c757a3ac4cecdbaeeb98c5da73cb71cd4
7
+ data.tar.gz: aeddbd7df46977a283259415bc3e2739d82280e19fe1380886dad050e888c3e9e3dd349a45b3c64f67201f03f77007b8bdd9a352a2eb0d8cc220675e8502a006
@@ -100,6 +100,25 @@ class Period
100
100
  self.contains?(date)
101
101
  end
102
102
 
103
+ # Return the number of days in the period
104
+ def days
105
+ last - first + 1
106
+ end
107
+
108
+ # Return the fractional number of months in the period. By default, use the
109
+ # average number of days in a month, but allow the user to override the
110
+ # assumption with a parameter.
111
+ def months(days_in_month = 30.436875)
112
+ (days / days_in_month).to_f
113
+ end
114
+
115
+ # Return the fractional number of years in the period. By default, use the
116
+ # average number of days in a year, but allow the user to override the
117
+ # assumption with a parameter.
118
+ def years(days_in_year = 365.2425)
119
+ (days / days_in_year).to_f
120
+ end
121
+
103
122
  def trading_days
104
123
  select(&:nyse_workday?)
105
124
  end
@@ -1,7 +1,7 @@
1
1
  module FatCore
2
2
  MAJOR = 0
3
3
  MINOR = 2
4
- PATCH = 7
4
+ PATCH = 8
5
5
 
6
6
  VERSION = [MAJOR, MINOR, PATCH].compact.join('.')
7
7
  end
@@ -199,6 +199,24 @@ describe Period do
199
199
  expect(pp === Date.parse('2012-07-04')).to be false
200
200
  end
201
201
 
202
+ it "should be able to convert itself to days" do
203
+ expect(Period.new('2013-01-01', '2013-01-01').days).to eq(1)
204
+ expect(Period.new('2013-01-01', '2013-12-31').days).to eq(365)
205
+ end
206
+
207
+ it "should be able to convert itself to fractional months" do
208
+ expect(Period.new('2013-01-01', '2013-01-01').months).to eq(1/30.436875)
209
+ expect(Period.new('2013-01-01', '2013-12-31').months(30)).
210
+ to eq(365 / 30.0)
211
+ expect(Period.new('2013-01-01', '2013-06-30').months.round(0)).to eq(6.0)
212
+ end
213
+
214
+ it "should be able to convert itself to fractional years" do
215
+ expect(Period.new('2013-01-01', '2013-01-01').years).to eq(1/365.2425)
216
+ expect(Period.new('2013-01-01', '2013-12-31').years(365)).to eq(1.0)
217
+ expect(Period.new('2013-01-01', '2013-06-30').years.round(1)).to eq(0.5)
218
+ end
219
+
202
220
  it "should be able to enumerate its days" do
203
221
  Period.parse_spec('2014-12').each do |dy|
204
222
  expect(dy.class).to eq Date
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fat_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel E. Doherty
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-22 00:00:00.000000000 Z
11
+ date: 2015-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: simplecov