time_value 0.1.0 → 0.1.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
  SHA1:
3
- metadata.gz: 96e4ad82d62c670fec471ea4f8aadf88af94b5f2
4
- data.tar.gz: d4caa002f101a1941564dbd097966a3972877a54
3
+ metadata.gz: c9adc69a58238719d597b04365a769516bacaa1a
4
+ data.tar.gz: 0d522a20351d5c6b85e297c686c9abbd886a60f2
5
5
  SHA512:
6
- metadata.gz: e6697021a95ef94d39cc788855c7cf54fd87f032a0430534eab0226c8965b8083259821ce3c5ee094d30146a0783932248dea59fc85f05846db955e33b13a7c5
7
- data.tar.gz: a99e9e6a7fcd828dae68f38040fd3f9dc0ec30152a751823a7aea9bbf09dc844c9f7ab97ae85f78fdcfc92836f59dbce7e80c3ce9613e36292b1728bd26759f3
6
+ metadata.gz: aa9ebc0a7ff6e09a3e773d9eadab8ee8b3b807db7298cbd6099da16dc7c8273b90b230382dffd30be7ea87abeb42e4486f4843fb72c05882adf10ad230131478
7
+ data.tar.gz: 538d7e32757dc58e73a1676cf5b91c2c741255004d4ad3e13fe9ff51192371f99db354bcb32f300bab5fde9e5367f1d24fa400e934f9a51399e9a5c52ac95674
data/README.md CHANGED
@@ -11,6 +11,11 @@
11
11
 
12
12
  ## Usage
13
13
 
14
+ Install the gem:
15
+ ```
16
+ gem install time_value
17
+ ```
18
+
14
19
  Initialize with values:
15
20
  ```
16
21
  time_value = TimeValue.new(n, i, pv, pmt, fv)
@@ -31,4 +36,4 @@ Remember to follow a convention for signs of values:
31
36
  * Money being paid should have a negative value (-)
32
37
  * Money being received should have a positive value (+)
33
38
 
34
- Failing to follow this convention may yield unexpected results
39
+ Failing to follow this convention may yield unexpected results
data/lib/solver.rb CHANGED
@@ -18,7 +18,7 @@ class Solver
18
18
  iteration_count += 1
19
19
  begin
20
20
  result = time_value.calc_fv
21
- rescue FloatDomainError => error
21
+ rescue FloatDomainError
22
22
  return nil
23
23
  end
24
24
  adjust_bounds(result)
@@ -39,4 +39,4 @@ class Solver
39
39
  end
40
40
  self.guess = ((upper_bound + lower_bound) / 2).round(2)
41
41
  end
42
- end
42
+ end
data/lib/time_value.rb CHANGED
@@ -1,10 +1,9 @@
1
- require 'byebug'
2
1
  require 'solver'
3
2
 
4
3
  class TimeValue
5
-
4
+
6
5
  attr_accessor :n, :i, :pv, :pmt, :fv
7
-
6
+
8
7
  def initialize(n = 0, i = 0, pv = 0.0, pmt = 0.0, fv = 0.0)
9
8
  @n = n
10
9
  @i = i.to_f
@@ -12,7 +11,7 @@ class TimeValue
12
11
  @pmt = pmt.to_f
13
12
  @fv = fv.to_f
14
13
  end
15
-
14
+
16
15
  #Base formula, ordinary annuity: -PV = [FV/((1+i)^n)] + (PMT/i)*[1-(1/(1+i)^n)]
17
16
  def calc_pv()
18
17
  i = @i / 100.0
@@ -24,7 +23,7 @@ class TimeValue
24
23
  #Round
25
24
  @pv = (@pv*100).round / 100.0
26
25
  end
27
-
26
+
28
27
  def calc_fv()
29
28
  i = @i / 100.0
30
29
  #Growth of initial contribution
@@ -35,7 +34,7 @@ class TimeValue
35
34
  #Round
36
35
  @fv = (@fv*100).round / 100.0
37
36
  end
38
-
37
+
39
38
  def calc_n()
40
39
  i = @i / 100.0
41
40
  @n = (Math.log((@pmt - (i * @fv))/(@pmt + (i * @pv)))/Math.log(1 + i)).round(0)
@@ -0,0 +1,3 @@
1
+ module TimeValue
2
+ VERSION = '0.1.1'
3
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: time_value
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Randall Reed, Jr.
@@ -36,6 +36,7 @@ files:
36
36
  - README.md
37
37
  - lib/solver.rb
38
38
  - lib/time_value.rb
39
+ - lib/time_value/version.rb
39
40
  homepage: http://rubygems.org/gems/timevalue
40
41
  licenses:
41
42
  - MIT
@@ -56,7 +57,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
56
57
  version: '0'
57
58
  requirements: []
58
59
  rubyforge_project:
59
- rubygems_version: 2.4.6
60
+ rubygems_version: 2.5.1
60
61
  signing_key:
61
62
  specification_version: 4
62
63
  summary: Time value of money financial calculations