class Moneymanager::Parser
Public Class Methods
new(f)
click to toggle source
# File lib/moneymanager/parser.rb, line 25 def initialize(f) @local_file = f end
Public Instance Methods
keys()
click to toggle source
# File lib/moneymanager/parser.rb, line 5 def keys %i[auftragskonto buchungstag valutadatum buchungstext verwendungszweck glaeubiger_id mandatsreferenz kundenreferenz_endtoend sammlerreferenz lastschrift_ursprungsbetrag auslagenersatz_ruecklastschrift beguenstigterzahlungspflichtiger kontonummeriban bic_swiftcode betrag waehrung info] end
parse()
click to toggle source
# File lib/moneymanager/parser.rb, line 29 def parse options = { headers: true, return_headers: false, header_converters: :symbol, converters: :all, col_sep: ';' } entries = [] invalid = 0 CSV.foreach(@local_file, options) do |row| if row[:info] == 'Umsatz gebucht' entry = Entry.new entry.date = Date.strptime(row[:buchungstag], '%d.%m.%y') entry.reason = row[:verwendungszweck].squeeze(' ') entry.amount = row[:betrag].to_s.tr(',', '.').to_f entry.company = row[:beguenstigterzahlungspflichtiger].squeeze(' ') entry.raw = row.to_csv.gsub(/\s+/, "") entries << entry else invalid += 1 end end puts "Invalid: #{invalid}" entries end