Class: FinModeling::ReformulatedShareholderEquityStatement

Inherits:
Object
  • Object
show all
Defined in:
lib/finmodeling/reformulated_shareholder_equity_statement.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(period, equity_change_summary) ⇒ ReformulatedShareholderEquityStatement

Returns a new instance of ReformulatedShareholderEquityStatement.



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

def initialize(period, equity_change_summary)
  @period                = period

  @share_issue   = equity_change_summary.filter_by_type(:share_issue  )
  @minority_int  = equity_change_summary.filter_by_type(:minority_int )
  @share_repurch = equity_change_summary.filter_by_type(:share_repurch)
  @common_div    = equity_change_summary.filter_by_type(:common_div   )
  @net_income    = equity_change_summary.filter_by_type(:net_income   )
  @oci           = equity_change_summary.filter_by_type(:oci          )
  @preferred_div = equity_change_summary.filter_by_type(:preferred_div)
end

Instance Attribute Details

#periodObject

Returns the value of attribute period.



3
4
5
# File 'lib/finmodeling/reformulated_shareholder_equity_statement.rb', line 3

def period
  @period
end

Instance Method Details

#analysisObject



36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/finmodeling/reformulated_shareholder_equity_statement.rb', line 36

def analysis
  analysis = CalculationSummary.new
  
  analysis.title = ""
  analysis.header_row = CalculationHeader.new(:key => "", :vals => [@period.value["end_date"].to_s])
  
  analysis.rows = []
  analysis.rows << CalculationRow.new(:key => "Tx w Shareholders ($MM)", :vals => [transactions_with_shareholders.total.to_nearest_million])
  analysis.rows << CalculationRow.new(:key => "CI ($MM)",                :vals => [comprehensive_income.total.to_nearest_million])
 
  return analysis
end

#comprehensive_incomeObject



27
28
29
30
31
32
33
34
# File 'lib/finmodeling/reformulated_shareholder_equity_statement.rb', line 27

def comprehensive_income
  cs = FinModeling::CalculationSummary.new
  cs.title = "Comprehensive Income"
  cs.rows = [ CalculationRow.new(:key => "Net Income",                 :vals => [@net_income   .total] ),
              CalculationRow.new(:key => "Other Comprehensive Income", :vals => [@oci          .total] ),
              CalculationRow.new(:key => "Preferred Dividends",        :vals => [@preferred_div.total] ) ]
  return cs
end

#transactions_with_shareholdersObject



17
18
19
20
21
22
23
24
25
# File 'lib/finmodeling/reformulated_shareholder_equity_statement.rb', line 17

def transactions_with_shareholders
  cs = FinModeling::CalculationSummary.new
  cs.title = "Transactions with Shareholders"
  cs.rows = [ CalculationRow.new(:key => "Share Issues",      :vals => [@share_issue  .total] ),
              CalculationRow.new(:key => "Minority Interest", :vals => [@minority_int .total] ),
              CalculationRow.new(:key => "Share Repurchases", :vals => [@share_repurch.total] ),
              CalculationRow.new(:key => "Common Dividends",  :vals => [@common_div   .total] ) ]
  return cs
end