Class: Treasurer::Reporter::Equity

Inherits:
Account
  • Object
show all
Defined in:
lib/treasurer/accounts.rb

Instance Attribute Summary

Attributes inherited from Account

#average, #currency, #external, #original_currency, #projection, #runs

Instance Method Summary collapse

Methods inherited from Account

#available, #balance_graph_string, #cache, #currency_label, #deposited, #discretionary, #generate_report_account, #has_balance?, #info, #linked_projected_account_info, #money_in_sign, #name_c, #name_c_file, #non_discretionary_projected_balance, #opening_balance, #opening_date, #report_account, #report_start, #sub_accounts, #withdrawn, #write_balance_graph

Constructor Details

#initialize(reporter, runner, accounts, options = {}) ⇒ Equity

Returns a new instance of Equity.



376
377
378
379
380
381
# File 'lib/treasurer/accounts.rb', line 376

def initialize(reporter, runner, accounts, options={})
  @reporter = reporter
  @runner = runner
  @accounts = accounts #.find_all{|acc| not acc.external}
  @currency = options[:currency]
end

Instance Method Details

#balance(date = @reporter.today) ⇒ Object



403
404
405
406
407
408
409
410
411
412
413
414
# File 'lib/treasurer/accounts.rb', line 403

def balance(date=@reporter.today)
  @accounts.map{|acc|
    case acc.type
    when :Asset
      acc.balance(date)
    when :Liability
      -acc.balance(date)
    else
      0.0
    end
  }.sum + sum_of_assets
end

#nameObject



388
389
390
# File 'lib/treasurer/accounts.rb', line 388

def name
  :Equity
end

#projected_balance(date = @reporter.today) ⇒ Object



415
416
417
418
419
420
421
422
423
424
425
426
# File 'lib/treasurer/accounts.rb', line 415

def projected_balance(date=@reporter.today)
  @accounts.map{|acc|
    case acc.type
    when :Asset
      acc.projected_balance(date)
    when :Liability
      -acc.projected_balance(date)
    else
      0.0
    end
  }.sum + sum_of_assets
end

#red_line(date = @reporter.today) ⇒ Object



391
392
393
394
395
396
397
398
399
400
401
402
# File 'lib/treasurer/accounts.rb', line 391

def red_line(date=@reporter.today)
  @accounts.map{|acc|
    case acc.type
    when :Asset
      acc.red_line(date)
    when :Liability
      -acc.red_line(date)
    else
      0.0
    end
  }.sum + sum_of_assets
end

#should_report?Boolean

Returns:

  • (Boolean)


382
383
384
# File 'lib/treasurer/accounts.rb', line 382

def should_report?
  true
end

#sum_of_assetsObject



427
428
429
# File 'lib/treasurer/accounts.rb', line 427

def sum_of_assets
  ASSETS.find_all{|name,details| details[:currency] == currency}.map{|name,details| details[:size]}.sum or 0.0
end

#summary_line(today, days_before) ⇒ Object



439
440
441
# File 'lib/treasurer/accounts.rb', line 439

def summary_line(today, days_before)
  "#{name_c} & #{balance(today).to_tex} &  & "
end

#summary_table(today, days_before) ⇒ Object



430
431
432
433
434
435
436
437
438
# File 'lib/treasurer/accounts.rb', line 430

def summary_table(today, days_before)

  <<EOF
\\subsubsection{#{name}}
\\begin{tabulary}{0.8\\textwidth}{ r | l}
Balance & #{balance} \\\\
\\end{tabulary}
EOF
end

#typeObject



385
386
387
# File 'lib/treasurer/accounts.rb', line 385

def type
  :Equity
end