Class: Moneymanager::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/moneymanager/parser.rb

Instance Method Summary collapse

Constructor Details

#initialize(f) ⇒ Parser

Returns a new instance of Parser.



25
26
27
# File 'lib/moneymanager/parser.rb', line 25

def initialize(f)
  @local_file = f
end

Instance Method Details

#keysObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 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

#parseObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/moneymanager/parser.rb', line 29

def parse
  options = { headers: true, return_headers: false, header_converters: :symbol, converters: :all, col_sep: ';' }
  entries = []
  CSV.foreach(@local_file, options) do |row|
    entry = Entry.new
    entry.date = Date.strptime(row[:buchungstag], '%d.%m.%y')
    entry.reason = row[:verwendungszweck].squeeze(' ')
    entry.amount = row[:betrag].to_f
    entry.company = row[:beguenstigterzahlungspflichtiger].squeeze(' ')
    entry.raw = row.to_csv.squeeze(' ')
    entries << entry
  end
  entries
end