Class: RockBooks::ReceiptsReport

Inherits:
Object
  • Object
show all
Includes:
Reporter
Defined in:
lib/rock_books/reports/receipts_report.rb

Constant Summary

Constants included from Reporter

RockBooks::Reporter::SHORT_NAME_FORMAT_STRING, RockBooks::Reporter::SHORT_NAME_MAX_LENGTH

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Reporter

account_code_name_type_string, banner_line, center, format_account_code, format_acct_amount, format_amount, format_multidoc_entry, generate_account_type_section, generate_and_format_totals, max_account_code_length, page_width

Constructor Details

#initialize(report_context, missing, existing) ⇒ ReceiptsReport

Returns a new instance of ReceiptsReport.



12
13
14
15
16
# File 'lib/rock_books/reports/receipts_report.rb', line 12

def initialize(report_context, missing, existing)
  @context = report_context
  @missing = missing
  @existing = existing
end

Instance Attribute Details

#contextObject (readonly)

Returns the value of attribute context.



9
10
11
# File 'lib/rock_books/reports/receipts_report.rb', line 9

def context
  @context
end

#existingObject (readonly)

Returns the value of attribute existing.



9
10
11
# File 'lib/rock_books/reports/receipts_report.rb', line 9

def existing
  @existing
end

#missingObject (readonly)

Returns the value of attribute missing.



9
10
11
# File 'lib/rock_books/reports/receipts_report.rb', line 9

def missing
  @missing
end

Instance Method Details

#column_headingsObject



36
37
38
39
# File 'lib/rock_books/reports/receipts_report.rb', line 36

def column_headings
  format_string = "%-16.16s  %s\n"
  (format_string % ['Journal', 'Receipt Filespec']) << (format_string % %w(------- ----------------)) << "\n"
end

#generate_headerObject



19
20
21
22
23
24
25
26
27
28
# File 'lib/rock_books/reports/receipts_report.rb', line 19

def generate_header
  lines = [banner_line]
  lines << center(context.entity || 'Unspecified Entity')
  lines << "#{center("Receipts Report")}"
  lines << banner_line
  lines << ''
  lines << ''
  lines << ''
  lines.join("\n")
end

#generate_reportObject Also known as: to_s, call



42
43
44
45
46
47
48
49
50
51
52
# File 'lib/rock_books/reports/receipts_report.rb', line 42

def generate_report
  output = generate_header

  output << "Missing Receipts:\n\n" << column_headings
  missing.each { |info| output << receipt_info_line(info) }

  output << "\n\n\nExisting Receipts:\n\n" << column_headings
  existing.each { |info| output << receipt_info_line(info) }

  output
end

#receipt_info_line(info) ⇒ Object



31
32
33
# File 'lib/rock_books/reports/receipts_report.rb', line 31

def receipt_info_line(info)
  "%-16.16s  %s\n" % [info[:journal], info[:receipt]]
end