module UnionBank::ECrediting::PipeDelimitedFile

Defines common methods of a pipe delimited file (CSV file with “|” as the column separator).

Attributes

date[R]
details[R]
org_short_code[R]
total_no_of_refs[R]

Public Class Methods

new(org_short_code:, date:, total_no_of_refs: 0, details: []) click to toggle source

@param [String] org_short_code @param [Date] date @param [Integer] total_no_of_refs @param [Array] details

# File lib/union_bank/e_crediting/pipe_delimited_file.rb, line 18
def initialize(org_short_code:, date:, total_no_of_refs: 0, details: [])
  @org_short_code = org_short_code
  @date = date
  @total_no_of_refs = total_no_of_refs
  @details = details
end

Public Instance Methods

content() click to toggle source

@return [String]

# File lib/union_bank/e_crediting/pipe_delimited_file.rb, line 26
def content
  CSV.generate(col_sep: "|", row_sep: "\r\n") do |csv|
    csv << header_line.ordered_field_values

    detail_lines.each do |line|
      csv << line.ordered_field_values
    end
  end
end
detail_lines() click to toggle source
# File lib/union_bank/e_crediting/pipe_delimited_file.rb, line 43
def detail_lines
  raise NotImplementedError, "#{self.class} must implement #detail_lines"
end
header_line() click to toggle source

@return [UnionBank::ECrediting::Common::HeaderLine]

# File lib/union_bank/e_crediting/pipe_delimited_file.rb, line 37
def header_line
  @header_line ||= Common::HeaderLine.new org_short_code: org_short_code,
                                          date: date,
                                          total_no_of_refs: total_no_of_refs
end