class BankAccountStatement::Inputs::TXT::CPBKGB22::Business::Current::V_2015_12_06

TXT statement parsing for The Co-operative Bank business current accounts.

Constants

TH

Private Instance Methods

_bank_account_ids() click to toggle source
# File lib/bank-account-statement/inputs/TXT/CPBKGB22/Business/Current/V_2015_12_06.rb, line 31
def _bank_account_ids
  @doc_e[0].match(/\b(?<bank_id>\d{6})(?<account_id>\d{8})\d{2}\b/)
end
_clean_amount(str) click to toggle source
# File lib/bank-account-statement/inputs/TXT/CPBKGB22/Business/Current/V_2015_12_06.rb, line 26
def _clean_amount(str)
  a = str.tr(',', '')
  BigDecimal(a)
end
_columns(header_row) click to toggle source
# File lib/bank-account-statement/inputs/TXT/CPBKGB22/Business/Current/V_2015_12_06.rb, line 47
def _columns(header_row)
  hi = Hash[TH.map { |k, v|
    i = header_row.index(v)
    [k, i...(i + v.length)]
  }]
  
  cs = {}
  cs[:date]       = 0...10
  cs[:desc]       = (cs[:date].last)...(hi[:withdrawal].first)
  cs[:withdrawal] = (cs[:desc].last)...(hi[:withdrawal].last)
  cs[:deposit]    = (cs[:withdrawal].last)...(hi[:deposit].last)
  cs[:balance]    = (cs[:deposit].last)...(hi[:balance].last)
  
  cs
end
_transaction_rows() click to toggle source
# File lib/bank-account-statement/inputs/TXT/CPBKGB22/Business/Current/V_2015_12_06.rb, line 35
def _transaction_rows
  hr = @doc_e[3]
  
  cs = _columns(hr)
  
  body_rs = @doc_e[4..-1]
  
  body_rs.map { |r|
    Hash[TH.keys.map { |e| [e, r[cs[e]]] }]
  }
end