lib/bankscrap/cli.rb in bankscrap-1.0.4 vs lib/bankscrap/cli.rb in bankscrap-2.0.0

- old
+ new

@@ -6,38 +6,34 @@ module Bankscrap class CLI < Thor def self.shared_options - option :user, default: ENV['BANKSCRAP_USER'] - option :password, default: ENV['BANKSCRAP_PASSWORD'] - option :log, default: false - option :debug, default: false - option :iban, default: nil - + option :credentials, default: {}, type: :hash + option :log, default: false + option :debug, default: false + option :iban, default: nil option :format option :output - - # Some bank needs more input, like birthday, this would go here - # Usage: - # bankscrap balance BANK_NAME --extra=birthday:01/12/1980 - option :extra, type: :hash, default: {} end - desc 'balance BANK', "get accounts' balance" + desc 'balance BankName', "get accounts' balance" shared_options def balance(bank) assign_shared_options initialize_client_for(bank) @client.accounts.each do |account| say "Account: #{account.description} (#{account.iban})", :cyan - say "Balance: #{account.balance}", :green + say "Balance: #{account.balance.format}", :green + if account.balance != account.available_balance + say "Available: #{account.available_balance.format}", :yellow + end end end - desc 'transactions BANK', "get account's transactions" + desc 'transactions BankName', "get account's transactions" shared_options options from: :string, to: :string def transactions(bank) assign_shared_options @@ -72,20 +68,20 @@ "generates a template for a new Bankscrap bank adapter") private def assign_shared_options - @user = options[:user] - @password = options[:password] - @iban = options[:iban] - @log = options[:log] - @debug = options[:debug] - @extra_args = options[:extra] + @credentials = options[:credentials] + @iban = options[:iban] + @log = options[:log] + @debug = options[:debug] end def initialize_client_for(bank_name) bank_class = find_bank_class_for(bank_name) - @client = bank_class.new(@user, @password, log: @log, debug: @debug, extra_args: @extra_args) + Bankscrap.log = @log + Bankscrap.debug = @debug + @client = bank_class.new(@credentials) end def find_bank_class_for(bank_name) require "bankscrap-#{bank_name.underscore.dasherize}" Object.const_get("Bankscrap::#{bank_name}::Bank")