|
1 | 1 | require 'date'
|
2 | 2 | require 'bigdecimal'
|
3 | 3 |
|
4 |
| -def convert_money_line money_line |
5 |
| - money_line.split(" ").map {|money_string| money_string.gsub(/\$|,/,"").to_f } |
| 4 | +def convert_money_line(money_line) |
| 5 | + money_line.split(" ").map { |money_string| money_string.gsub(/\$|,/, "").to_f } |
6 | 6 | end
|
7 | 7 |
|
8 | 8 | class InterestingStatementLines
|
9 | 9 | attr_reader :balances, :funds, :date, :contributions, :units, :units_funds
|
10 | 10 |
|
11 |
| - def parse_funds funds_line |
| 11 | + def parse_funds(funds_line) |
12 | 12 | @funds = split_funds funds_line
|
13 | 13 | @funds << "TOTAL"
|
14 | 14 | end
|
15 | 15 |
|
16 |
| - def split_funds funds_line |
| 16 | + def split_funds(funds_line) |
17 | 17 | funds_line.strip
|
18 | 18 | funds_line.gsub!("iShares", "XXXiShares")
|
19 | 19 | funds_line.gsub!("Vanguard", "XXXVanguard")
|
20 |
| - funds_line.gsub!("SPDR","XXXSPDR") |
21 |
| - funds_line.sub!("XXX","") |
22 |
| - funds_line.split("XXX").map {|f| f.strip } |
| 20 | + funds_line.gsub!("SPDR", "XXXSPDR") |
| 21 | + funds_line.sub!("XXX", "") |
| 22 | + funds_line.split("XXX").map { |f| f.strip } |
23 | 23 | end
|
24 | 24 |
|
25 |
| - def parse_balances balances_line |
| 25 | + def parse_balances(balances_line) |
26 | 26 | @balances = convert_money_line balances_line
|
27 | 27 | end
|
28 | 28 |
|
29 |
| - def parse_date filename |
30 |
| - @date = Date.parse(filename.sub(".txt","")) |
| 29 | + def parse_date(filename) |
| 30 | + @date = Date.parse(filename.sub(".txt", "")) |
31 | 31 | end
|
32 | 32 |
|
33 |
| - def parse_contributions contributions_line |
| 33 | + def parse_contributions(contributions_line) |
34 | 34 | @contributions = convert_money_line contributions_line
|
35 | 35 | first = @contributions.size / 3
|
36 | 36 | last = 2 * first - 1
|
37 | 37 | @contributions = @contributions[first..last]
|
38 | 38 | end
|
39 | 39 |
|
40 |
| - def parse_units_funds line |
41 |
| - @units_funds = split_funds line.gsub(/(^| )\d\d? /," ") |
| 40 | + def parse_units_funds(line) |
| 41 | + @units_funds = split_funds line.gsub(/(^| )\d\d? /, " ") |
42 | 42 | end
|
43 | 43 |
|
44 |
| - def parse_units line |
45 |
| - @units = line.split(" ").map {|unit| unit.to_f} |
| 44 | + def parse_units(line) |
| 45 | + @units = line.split(" ").map { |unit| unit.to_f } |
46 | 46 | end
|
47 | 47 | end
|
0 commit comments