Class: Financo::CLI::Program

Inherits:
Object
  • Object
show all
Defined in:
lib/financo/cli/program.rb,
lib/financo/cli/program/parser.rb

Overview

Program

Defined Under Namespace

Classes: Parser

Instance Method Summary collapse

Constructor Details

#initialize(stdout: STDOUT) ⇒ Program



12
13
14
15
16
# File 'lib/financo/cli/program.rb', line 12

def initialize(stdout: STDOUT)
  @stdout = stdout

  @parser = Parser.new
end

Instance Method Details

#run(argv: ARGV, bank: Financo::N26::Bank.new) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/financo/cli/program.rb', line 18

def run(argv: ARGV, bank: Financo::N26::Bank.new)
  args, options = @parser.parse(argv)

  return show_help if options[:help]
  return show_version if options[:version]

  bank.authenticate(*args)

  open_journal(filename: options[:output]) do |journal|
    bank
      .transactions(checking: options[:checking])
      .each { |t| journal.add(t) }
  end
rescue Financo::Bank::AuthenticationError => e
  raise ProgramError, "Could not authenticate with the bank: #{e}"
end