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")