Class: FinModeling::BalanceSheetAnalyses

Inherits:
CalculationSummary show all
Defined in:
lib/finmodeling/balance_sheet_analyses.rb

Instance Attribute Summary

Attributes inherited from CalculationSummary

#header_row, #key_width, #max_decimals, #rows, #title, #totals_row_enabled, #val_width

Instance Method Summary collapse

Methods inherited from CalculationSummary

#+, #auto_scale!, #filter_by_type, #insert_column_before, #num_value_columns, #print, #total, #totals, #write_constructor

Constructor Details

#initialize(calc_summary) ⇒ BalanceSheetAnalyses

Returns a new instance of BalanceSheetAnalyses.



6
7
8
9
10
11
12
13
14
# File 'lib/finmodeling/balance_sheet_analyses.rb', line 6

def initialize(calc_summary)
  @title              = calc_summary.title
  @rows               = calc_summary.rows
  @header_row         = calc_summary.header_row
  @key_width          = calc_summary.key_width
  @val_width          = calc_summary.val_width
  @max_decimals       = calc_summary.max_decimals
  @totals_row_enabled = false
end

Instance Method Details

#composition_ratio_rowObject



38
39
40
# File 'lib/finmodeling/balance_sheet_analyses.rb', line 38

def composition_ratio_row
  find_row_by_key('Composition Ratio')
end

#find_row_by_key(key) ⇒ Object

FIXME: move this to CalculationSummary



42
43
44
# File 'lib/finmodeling/balance_sheet_analyses.rb', line 42

def find_row_by_key(key) # FIXME: move this to CalculationSummary
  self.rows.find{ |x| x.key == key }
end

#noa_growth_rowObject



34
35
36
# File 'lib/finmodeling/balance_sheet_analyses.rb', line 34

def noa_growth_row
  find_row_by_key('NOA Growth')
end

FIXME: rename



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/finmodeling/balance_sheet_analyses.rb', line 16

def print_regressions # FIXME: rename
  lr = noa_growth_row.valid_vals.linear_regression
  puts "\t\tNOA growth:        "+
       "a:#{lr.a.to_s.cap_decimals(4)}, "+
       "b:#{lr.b.to_s.cap_decimals(4)}, "+
       "r²:#{lr.r2.to_s.cap_decimals(4)}, "+
       "σ²:#{noa_growth_row.valid_vals.variance.to_s.cap_decimals(4)}, " +
       ( (lr.r2 > 0.6) ? "strong fit" : ( (lr.r2 < 0.2) ? "weak fit [**]" : "avg fit") )

  lr = composition_ratio_row.valid_vals.linear_regression
  puts "\t\tComposition ratio: "+
       "a:#{lr.a.to_s.cap_decimals(4)}, "+
       "b:#{lr.b.to_s.cap_decimals(4)}, "+
       "r²:#{lr.r2.to_s.cap_decimals(4)}, "+
       "σ²:#{composition_ratio_row.valid_vals.variance.to_s.cap_decimals(4)}, " +
       ( (lr.r2 > 0.6) ? "strong fit" : ( (lr.r2 < 0.2) ? "weak fit [**]" : "avg fit") )
end