Class: Bankscrap::CLI
- Inherits:
-
Thor
- Object
- Thor
- Bankscrap::CLI
- Defined in:
- lib/bankscrap/cli.rb
Constant Summary collapse
- SPACER =
(' ' * 3).freeze
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.shared_options ⇒ Object
11 12 13 14 15 16 17 18 |
# File 'lib/bankscrap/cli.rb', line 11 def self. option :credentials, default: {}, type: :hash option :log, default: false, type: :boolean option :debug, default: false, type: :boolean option :iban, default: nil option :format option :output end |
Instance Method Details
#balance(bank) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/bankscrap/cli.rb', line 22 def balance(bank) initialize_client_for(bank) if [:format] export_to_file(nil, @client.accounts, [:format], [:output]) else @client.accounts.each do |account| say "Account: #{account.description} (#{account.iban})", :cyan say "Balance: #{account.balance.format}", :green if account.balance != account.available_balance say "Available: #{account.available_balance.format}", :yellow end end end end |
#cards(bank) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/bankscrap/cli.rb', line 41 def cards(bank) initialize_client_for(bank) if [:format] export_to_file(nil, @client.cards, [:format], [:output]) else @client.cards.each do |card| say "Card: #{card.name} #{card.description} #{card.amount.format}", :green end end end |
#loans(bank) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/bankscrap/cli.rb', line 56 def loans(bank) initialize_client_for(bank) if [:format] export_to_file(nil, @client.loans, [:format], [:output]) else @client.loans.each do |loan| say "Loan: #{loan.name} #{loan.description} #{loan.amount.format}", :green end end end |
#transactions(bank) ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/bankscrap/cli.rb', line 72 def transactions(bank) start_date = parse_date([:from]) if [:from] end_date = parse_date([:to]) if [:to] initialize_client_for(bank) account = @iban ? @client.account_with_iban(@iban) : @client.accounts.first if start_date && end_date if start_date > end_date say 'From date must be lower than to date', :red exit end transactions = account.fetch_transactions(start_date: start_date, end_date: end_date) else transactions = account.transactions end if [:format] export_to_file(account, transactions, [:format], [:output]) else say "Transactions for: #{account.description} (#{account.iban})", :cyan print_transactions_header transactions.each { |t| print_transaction(t) } end end |