Class: FinModeling::LiabsAndEquityCalculation
Constant Summary
collapse
- BASE_FILENAME =
File.join(FinModeling::BASE_PATH, "summaries/liabs_and_equity_")
- ALL_STATES =
[ :ol, :fl, :cse, :mi ]
- NEXT_STATES =
{ nil => [ :ol, :fl, :cse, :mi ],
:ol => [ :ol, :fl, :cse, :mi ], :fl => [ :ol, :fl, :cse, :mi ], :cse => [ :ol, :fl, :cse, :mi ], :mi => [ :fl, :cse, :mi ] }
Instance Attribute Summary
#calculation
Instance Method Summary
collapse
#initialize, #label, #leaf_items, #leaf_items_sum, #periods, #write_constructor
Instance Method Details
#has_equity_item ⇒ Object
39
40
41
42
43
|
# File 'lib/finmodeling/liabs_and_equity_calculation.rb', line 39
def has_equity_item
@has_equity_item ||= leaf_items.any? do |leaf|
leaf.name.downcase.matches_any_regex?([/equity/, /stock/])
end
end
|
#mapping ⇒ Object
33
34
35
36
37
|
# File 'lib/finmodeling/liabs_and_equity_calculation.rb', line 33
def mapping
m = Xbrlware::ValueMapping.new
m.policy[:debit] = :flip
m
end
|
#summary(args) ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/finmodeling/liabs_and_equity_calculation.rb', line 16
def summary(args)
summary_cache_key = args[:period].to_pretty_s
summary = lookup_cached_summary(summary_cache_key)
return summary if !summary.nil?
summary = super(:period => args[:period], :mapping => mapping) if !lookup_cached_classifications(BASE_FILENAME, summary.rows)
lookahead = [4, summary.rows.length-1].min
classify_rows(ALL_STATES, NEXT_STATES, summary.rows, FinModeling::LiabsAndEquityItem, lookahead)
save_cached_classifications(BASE_FILENAME, summary.rows)
end
save_cached_summary(summary_cache_key, summary)
return summary
end
|