bankscrap 2.0.6 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1481cd3fa9e6859cd8afaed3ddf47a7fcafa66d1
4
- data.tar.gz: 3c11cce2190b9c058e2a28be2934015bbd63a9dc
3
+ metadata.gz: 65f598489f53a242aa5cb5a24f13ac4cb7311743
4
+ data.tar.gz: 75729f1b0fceb649218919b8a58a416ddaddb321
5
5
  SHA512:
6
- metadata.gz: c1d7ec05a3268e4760d387bb77172c3b20a9d8052c78253b40c8f0e53656f9532e2d260fcf5aaa62e0e115ab6c09f42376be65cdb460f03880b08bfe1c1519ff
7
- data.tar.gz: 4bd5ddeb61e0f411a65ed0aa30c6581e5ece111d32856832a512c41ee5de416e532d3f29f7176efc6266f2151f3a0e0a5c7dd99fba1d80f964831fc4d3b6d69b
6
+ metadata.gz: 9304e7a9d6df0162edc510847e99a9a037214d7cd2237e6cde5b4c4cef183bcdea4cd2fbfe8f4f30a45f4460114e07489522d02dc3661874b3ab0062d0ccf3e5
7
+ data.tar.gz: 2c6e2c11d7613f0c7ad1f5721663d4a601ee7897c105746a47b1f69f6167f8dbb42cd6a43f971b87fcdae495f7e3b12e85235ab4c617b18da54d6b91896fcca8
@@ -12,14 +12,14 @@ module Bankscrap
12
12
  self.destination_root = File.expand_path('.', gem_name)
13
13
  directory '.'
14
14
 
15
- say ''
16
- say "Great! Now you can start implementing your bank's adapter for Bankscrap.", :yellow
17
- say ''
18
- say 'To get started take a look to:', :yellow
19
- say "#{destination_root}/lib/bankscrap/#{bank_name_dasherized}/bank.rb", :yellow
20
- say ''
21
- say 'If you need help you can join our Slack chat room. Click the Slack badge on Github:', :yellow
22
- say 'https://github.com/bankscrap/bankscrap', :yellow
15
+ STDERR.puts ''
16
+ STDERR.puts "Great! Now you can start implementing your bank's adapter for Bankscrap.".yellow
17
+ STDERR.puts ''
18
+ STDERR.puts 'To get started take a look to:', :yellow
19
+ STDERR.puts "#{destination_root}/lib/bankscrap/#{bank_name_dasherized}/bank.rb".yellow
20
+ STDERR.puts ''
21
+ STDERR.puts 'If you need help you can join our Slack chat room. Click the Slack badge on Github:'.yellow
22
+ STDERR.puts 'https://github.com/bankscrap/bankscrap'.yellow
23
23
  end
24
24
 
25
25
  protected
@@ -10,6 +10,8 @@ module Bankscrap
10
10
  # LOGIN_ENDPOINT = '/login'.freeze
11
11
  # ACCOUNTS_ENDPOINT = '/accounts'.freeze
12
12
  # TRANSACTIONS_ENDPOINT = '/transactions'.freeze
13
+ # CARDS_ENDPOINT = '/cards'.freeze
14
+ # LOANS_ENDPOINT = '/loans'.freeze
13
15
 
14
16
  # TODO: change this for the proper credentials required in your adapter.
15
17
  # It can be anything (user, birthday, ID, whatever you need).
@@ -35,6 +37,26 @@ module Bankscrap
35
37
  # json['accounts'].map { |data| build_account(data) }
36
38
  end
37
39
 
40
+ # Fetch all the loans for the given user
41
+ #
42
+ # Should returns an array of Bankscrap::Loan objects
43
+ def fetch_loans
44
+ # Example if the API expects a JSON POST request
45
+ # response = post(BASE_ENDPOINT + LOANS_ENDPOINT, fields: {}.to_json)
46
+ # json = JSON.parse(response)
47
+ # json['accounts'].map { |data| build_loan(data) }
48
+ end
49
+
50
+ # Fetch all the credit cards for the given user
51
+ #
52
+ # Should returns an array of Bankscrap::Card objects
53
+ def fetch_cards
54
+ # Example if the API expects a JSON POST request
55
+ # response = post(BASE_ENDPOINT + CARDS_ENDPOINT, fields: {}.to_json)
56
+ # json = JSON.parse(response)
57
+ # json['accounts'].map { |data| build_card(data) }
58
+ end
59
+
38
60
  # Fetch transactions for the given account.
39
61
  #
40
62
  # Account should be a Bankscrap::Account object
@@ -68,6 +90,30 @@ module Bankscrap
68
90
  )
69
91
  end
70
92
 
93
+ # Build a loan object from API data
94
+ def build_loan(data)
95
+ Loan.new(
96
+ bank: self,
97
+ id: REPLACE_ME,
98
+ name: REPLACE_ME,
99
+ description: REPLACE_ME,
100
+ amount: REPLACE_ME,
101
+ is_mortage: REPLACE_ME
102
+ )
103
+ end
104
+
105
+ # Build a card object from API data
106
+ def build_card(data)
107
+ Card.new(
108
+ bank: self,
109
+ id: REPLACE_ME,
110
+ name: REPLACE_ME,
111
+ description: REPLACE_ME,
112
+ amount: REPLACE_ME,
113
+ is_credit: REPLACE_ME
114
+ )
115
+ end
116
+
71
117
  # Build a transaction object from API data
72
118
  def build_transaction(data, account)
73
119
  Transaction.new(
@@ -8,8 +8,8 @@ module Bankscrap
8
8
  :raw_data
9
9
 
10
10
  def initialize(params = {})
11
- raise NotMoneyObjectError.new(:balance) unless params[:balance].is_a?(Money)
12
- raise NotMoneyObjectError.new(:available_balance) unless params[:available_balance].is_a?(Money)
11
+ raise NotMoneyObjectError, :balance unless params[:balance].is_a?(Money)
12
+ raise NotMoneyObjectError, :available_balance unless params[:available_balance].is_a?(Money)
13
13
 
14
14
  params.each { |key, value| send "#{key}=", value }
15
15
  end
@@ -26,10 +26,18 @@ module Bankscrap
26
26
  balance.try(:currency)
27
27
  end
28
28
 
29
+ def to_s
30
+ description
31
+ end
32
+
33
+ def to_a
34
+ [id, iban, name, description, balance]
35
+ end
36
+
29
37
  private
30
38
 
31
39
  def inspect_attributes
32
- %i(id name balance available_balance description iban bic)
40
+ %i[id name balance available_balance description iban bic]
33
41
  end
34
42
  end
35
43
  end
@@ -5,9 +5,9 @@ module Bankscrap
5
5
  class Bank
6
6
  WEB_USER_AGENT = 'Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 4 Build/JOP40D) AppleWebKit/535.19 (KHTML, ' \
7
7
  'like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'.freeze
8
- attr_accessor :headers, :accounts, :investments
8
+ attr_accessor :headers, :accounts, :cards, :loans, :investments
9
9
 
10
- REQUIRED_CREDENTIALS = %i(user password).freeze
10
+ REQUIRED_CREDENTIALS = %i[user password].freeze
11
11
 
12
12
  class MissingCredential < ArgumentError; end
13
13
 
@@ -29,8 +29,10 @@ module Bankscrap
29
29
  login
30
30
  @accounts = fetch_accounts
31
31
 
32
- # Not all the adapters have support for investments
32
+ # Not all the adapters have support for investments, loans or cards
33
33
  @investments = fetch_investments if respond_to?(:fetch_investments)
34
+ @loans = fetch_loans if respond_to?(:fetch_loans)
35
+ @cards = fetch_cards if respond_to?(:fetch_cards)
34
36
  end
35
37
 
36
38
  # Interface method placeholders
@@ -0,0 +1,34 @@
1
+ module Bankscrap
2
+ class Card
3
+ include Utils::Inspectable
4
+
5
+ attr_accessor :bank, :id, :name, :pan, :amount,
6
+ :avaliable, :is_credit, :description,
7
+ :raw_data
8
+
9
+ def initialize(params = {})
10
+ raise NotMoneyObjectError, :amount unless params[:amount].is_a?(Money)
11
+ raise NotMoneyObjectError, :avaliable unless params[:avaliable].is_a?(Money)
12
+
13
+ params.each { |key, value| send "#{key}=", value }
14
+ end
15
+
16
+ def currency
17
+ amount.try(:currency)
18
+ end
19
+
20
+ def to_s
21
+ description
22
+ end
23
+
24
+ def to_a
25
+ [id, name, description, pan, amount, avaliable, is_credit]
26
+ end
27
+
28
+ private
29
+
30
+ def inspect_attributes
31
+ %i[id name description pan amount avaliable is_credit]
32
+ end
33
+ end
34
+ end
data/lib/bankscrap/cli.rb CHANGED
@@ -17,17 +17,51 @@ module Bankscrap
17
17
  option :output
18
18
  end
19
19
 
20
- desc 'balance BankName', "get accounts' balance"
20
+ desc 'balance BankName', "get account's balance"
21
21
  shared_options
22
22
  def balance(bank)
23
23
  assign_shared_options
24
24
  initialize_client_for(bank)
25
25
 
26
- @client.accounts.each do |account|
27
- say "Account: #{account.description} (#{account.iban})", :cyan
28
- say "Balance: #{account.balance.format}", :green
29
- if account.balance != account.available_balance
30
- say "Available: #{account.available_balance.format}", :yellow
26
+ if options[:format]
27
+ export_to_file(nil, @client.accounts, options[:format], options[:output])
28
+ else
29
+ @client.accounts.each do |account|
30
+ STDERR.puts "Account: #{account.description} (#{account.iban})".cyan
31
+ STDERR.puts "Balance: #{account.balance.format}".green
32
+ if account.balance != account.available_balance
33
+ STDERR.puts "Available: #{account.available_balance.format}".yellow
34
+ end
35
+ end
36
+ end
37
+ end
38
+
39
+ desc 'cards BankName', "get account's credit cards"
40
+ shared_options
41
+ def cards(bank)
42
+ assign_shared_options
43
+ initialize_client_for(bank)
44
+
45
+ if options[:format]
46
+ export_to_file(nil, @client.cards, options[:format], options[:output])
47
+ else
48
+ @client.cards.each do |card|
49
+ STDERR.puts "Card: #{card.name} #{card.description} #{card.amount.format}".green
50
+ end
51
+ end
52
+ end
53
+
54
+ desc 'loans BankName', "get account's loans"
55
+ shared_options
56
+ def loans(bank)
57
+ assign_shared_options
58
+ initialize_client_for(bank)
59
+
60
+ if options[:format]
61
+ export_to_file(nil, @client.loans, options[:format], options[:output])
62
+ else
63
+ @client.loans.each do |loan|
64
+ STDERR.puts "Loan: #{loan.name} #{loan.description} #{loan.amount.format}".green
31
65
  end
32
66
  end
33
67
  end
@@ -47,7 +81,7 @@ module Bankscrap
47
81
 
48
82
  if start_date && end_date
49
83
  if start_date > end_date
50
- say 'From date must be lower than to date', :red
84
+ STDERR.puts 'From date must be lower than to date'.red
51
85
  exit
52
86
  end
53
87
 
@@ -56,11 +90,13 @@ module Bankscrap
56
90
  transactions = account.transactions
57
91
  end
58
92
 
59
- export_to_file(transactions, options[:format], options[:output]) if options[:format]
60
-
61
- say "Transactions for: #{account.description} (#{account.iban})", :cyan
62
- print_transactions_header
63
- transactions.each { |t| print_transaction(t) }
93
+ if options[:format]
94
+ export_to_file(account, transactions, options[:format], options[:output])
95
+ else
96
+ STDERR.puts "Transactions for: #{account.description} (#{account.iban})".cyan
97
+ print_transactions_header
98
+ transactions.each { |t| print_transaction(t) }
99
+ end
64
100
  end
65
101
 
66
102
  register(Bankscrap::AdapterGenerator, 'generate_adapter', 'generate_adapter MyBankName',
@@ -69,10 +105,10 @@ module Bankscrap
69
105
  private
70
106
 
71
107
  def assign_shared_options
72
- @credentials = options[:credentials]
73
- @iban = options[:iban]
74
- @log = options[:log]
75
- @debug = options[:debug]
108
+ @credentials = options[:credentials]
109
+ @iban = options[:iban]
110
+ @log = options[:log]
111
+ @debug = options[:debug]
76
112
  end
77
113
 
78
114
  def initialize_client_for(bank_name)
@@ -86,46 +122,49 @@ module Bankscrap
86
122
  require "bankscrap-#{bank_name.underscore.dasherize}"
87
123
  Object.const_get("Bankscrap::#{bank_name}::Bank")
88
124
  rescue LoadError
89
- raise ArgumentError.new('Invalid bank name.')
125
+ raise ArgumentError, 'Invalid bank name.'
90
126
  rescue NameError
91
- raise ArgumentError.new("Invalid bank name. Did you mean \"#{bank_name.upcase}\"?")
127
+ raise ArgumentError, "Invalid bank name. Did you mean \"#{bank_name.upcase}\"?"
92
128
  end
93
129
 
94
130
  def parse_date(string)
95
131
  Date.strptime(string, '%d-%m-%Y')
96
132
  rescue ArgumentError
97
- say 'Invalid date format. Correct format d-m-Y (eg: 31-12-2016)', :red
133
+ STDERR.puts 'Invalid date format. Correct format d-m-Y (eg: 31-12-2016)'.red
98
134
  exit
99
135
  end
100
136
 
101
- def export_to_file(data, format, path)
102
- exporter(format, path).write_to_file(data)
137
+ def export_to_file(account, data, format, path)
138
+ exporter(account, format).write_to_file(data, path)
103
139
  end
104
140
 
105
- def exporter(format, path)
141
+ def exporter(account, format)
106
142
  case format.downcase
107
- when 'csv' then BankScrap::Exporter::Csv.new(path)
143
+ when 'csv'
144
+ BankScrap::Exporter::Csv.new(account)
145
+ when 'json'
146
+ BankScrap::Exporter::Json.new(account)
108
147
  else
109
- say 'Sorry, file format not supported.', :red
148
+ STDERR.puts 'Sorry, file format not supported.'.red
110
149
  exit
111
150
  end
112
151
  end
113
152
 
114
153
  def print_transactions_header
115
- say "\n"
116
- say 'DATE'.ljust(13)
117
- say 'DESCRIPTION'.ljust(50) + SPACER
118
- say 'AMOUNT'.rjust(15) + SPACER
119
- say 'BALANCE'.rjust(15)
120
- say '-' * 99
154
+ STDERR.puts "\n"
155
+ STDERR.puts 'DATE'.ljust(13)
156
+ STDERR.puts 'DESCRIPTION'.ljust(50) + SPACER
157
+ STDERR.puts 'AMOUNT'.rjust(15) + SPACER
158
+ STDERR.puts 'BALANCE'.rjust(15)
159
+ STDERR.puts '-' * 99
121
160
  end
122
161
 
123
162
  def print_transaction(transaction)
124
163
  color = (transaction.amount.to_i > 0 ? :green : :red)
125
- say transaction.effective_date.strftime('%d/%m/%Y') + SPACER
126
- say Utils::CliString.new(transaction.description).squish.truncate(50).ljust(50) + SPACER, color
127
- say Utils::CliString.new(transaction.amount.format).rjust(15) + SPACER, color
128
- say Utils::CliString.new(transaction.balance.format).rjust(15)
164
+ STDERR.puts transaction.effective_date.strftime('%d/%m/%Y') + SPACER
165
+ STDERR.puts Utils::CliString.new(transaction.description).squish.truncate(50).ljust(50) + SPACER.colorize(color)
166
+ STDERR.puts Utils::CliString.new(transaction.amount.format).rjust(15) + SPACER.colorize(color)
167
+ STDERR.puts Utils::CliString.new(transaction.balance.format).rjust(15)
129
168
  end
130
169
  end
131
170
  end
@@ -1,18 +1,64 @@
1
1
  require 'csv'
2
+ require 'thor'
2
3
 
3
4
  module BankScrap
4
5
  module Exporter
6
+ # Csv exporter
5
7
  class Csv
6
- HEADERS = %w(ID Date Description DescriptionDetail Amount).freeze
8
+ def initialize(account)
9
+ @account = account
10
+ end
11
+
12
+ def get_filename(data, output)
13
+ if output
14
+ if output == '-'
15
+ '/dev/stdout'
16
+ else
17
+ output
18
+ end
19
+ else
20
+ if check_array_class(data, Bankscrap::Transaction)
21
+ 'transactions.json'
22
+ elsif check_array_class(data, Bankscrap::Account)
23
+ 'accounts.json'
24
+ elsif check_array_class(data, Bankscrap::Loan)
25
+ 'loans.json'
26
+ elsif check_array_class(data, Bankscrap::Card)
27
+ 'cards.json'
28
+ end
29
+ end
30
+ end
7
31
 
8
- def initialize(output = nil)
9
- @output = output || 'transactions.csv'
32
+ def check_array_class(data, tclass)
33
+ data.all? { |x| x.is_a? tclass }
10
34
  end
11
35
 
12
- def write_to_file(data)
13
- CSV.open(@output, 'wb') do |csv|
14
- csv << HEADERS
15
- data.each { |line| csv << line.to_a }
36
+ def write_to_file(data, output)
37
+ output = get_filename(data, output)
38
+ if check_array_class(data, Bankscrap::Transaction)
39
+ CSV.open(output, 'wb') do |csv|
40
+ csv << %w[Date Description Amount]
41
+ data.each { |line| csv << line.to_a }
42
+ end
43
+ STDERR.puts "Transactions for: #{@account.description} (#{@account.iban}) exported to #{output}".cyan
44
+ elsif check_array_class(data, Bankscrap::Account)
45
+ CSV.open(output, 'wb') do |csv|
46
+ csv << %w[Id Iban Name Description Bank Balance]
47
+ data.each { |line| csv << line.to_a }
48
+ end
49
+ STDERR.puts "Accounts exported to #{output}".cyan
50
+ elsif check_array_class(data, Bankscrap::Loan)
51
+ CSV.open(output, 'wb') do |csv|
52
+ csv << %w[Id Name Description Amount]
53
+ data.each { |line| csv << line.to_a }
54
+ end
55
+ STDERR.puts "Accounts exported to #{output}".cyan
56
+ elsif check_array_class(data, Bankscrap::Card)
57
+ CSV.open(output, 'wb') do |csv|
58
+ csv << %w[Id Name Description Pan Amount Avaliable Is_credit]
59
+ data.each { |line| csv << line.to_a }
60
+ end
61
+ STDERR.puts "Accounts exported to #{output}".cyan
16
62
  end
17
63
  end
18
64
  end
@@ -0,0 +1,89 @@
1
+ require 'json'
2
+ require 'colorize'
3
+
4
+ module BankScrap
5
+ module Exporter
6
+ # Json exporter
7
+ class Json
8
+ def initialize(account)
9
+ @account = account
10
+ end
11
+
12
+ def get_filename(data, output)
13
+ if output
14
+ if output == '-'
15
+ '/dev/stdout'
16
+ else
17
+ output
18
+ end
19
+ else
20
+ if check_array_class(data, Bankscrap::Transaction)
21
+ 'transactions.json'
22
+ elsif check_array_class(data, Bankscrap::Account)
23
+ 'accounts.json'
24
+ elsif check_array_class(data, Bankscrap::Loan)
25
+ 'loans.json'
26
+ elsif check_array_class(data, Bankscrap::Card)
27
+ 'cards.json'
28
+ end
29
+ end
30
+ end
31
+
32
+ def check_array_class(data, tclass)
33
+ data.all? { |x| x.is_a? tclass }
34
+ end
35
+
36
+ def write_to_file(data, output)
37
+ output = get_filename(data, output)
38
+ json_array = []
39
+ if check_array_class(data, Bankscrap::Transaction)
40
+ data.each do |line|
41
+ array = line.to_a
42
+ hash = { date: array[0], description: array[1], amount: array[2] }
43
+ json_array << hash
44
+ end
45
+ json_hash = { account: { description: @account.description, iban: @account.iban }, transactions: json_array }
46
+ elsif check_array_class(data, Bankscrap::Account)
47
+ data.each do |line|
48
+ array = line.to_a
49
+
50
+ hash = { iban: array[1], name: array[2], description: array[3], amount: array[4] }
51
+ json_array << hash
52
+ end
53
+
54
+ json_hash = { accounts: json_array }
55
+ elsif check_array_class(data, Bankscrap::Loan)
56
+ data.each do |line|
57
+ array = line.to_a
58
+
59
+ hash = { id: array[0], name: array[1], description: array[2], amount: array[3] }
60
+ json_array << hash
61
+ end
62
+
63
+ json_hash = { loans: json_array }
64
+ elsif check_array_class(data, Bankscrap::Card)
65
+ data.each do |line|
66
+ array = line.to_a
67
+
68
+ hash = { id: array[0], name: array[1], description: array[2], pan: array[3], amount: array[4], avaliable: array[5], isCredit: array[6] }
69
+ json_array << hash
70
+ end
71
+
72
+ json_hash = { cards: json_array }
73
+ end
74
+ File.open(output, 'w') do |f|
75
+ f.write(JSON.pretty_generate(json_hash) + "\n")
76
+ end
77
+ if check_array_class(data, Bankscrap::Transaction)
78
+ STDERR.puts "Transactions for: #{@account.description} (#{@account.iban}) exported to #{output}".cyan
79
+ elsif check_array_class(data, Bankscrap::Account)
80
+ STDERR.puts "Accounts exported to #{output}".cyan
81
+ elsif check_array_class(data, Bankscrap::Loan)
82
+ STDERR.puts "Loans exported to #{output}".cyan
83
+ elsif check_array_class(data, Bankscrap::Card)
84
+ STDERR.puts "Cards exported to #{output}".cyan
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
@@ -11,7 +11,7 @@ module Bankscrap
11
11
  private
12
12
 
13
13
  def inspect_attributes
14
- %i(id name balance currency investment)
14
+ %i[id name balance currency investment]
15
15
  end
16
16
  end
17
17
  end
@@ -0,0 +1,33 @@
1
+ module Bankscrap
2
+ class Loan
3
+ include Utils::Inspectable
4
+
5
+ attr_accessor :bank, :id, :name, :amount,
6
+ :description,
7
+ :raw_data
8
+
9
+ def initialize(params = {})
10
+ raise NotMoneyObjectError, :amount unless params[:amount].is_a?(Money)
11
+
12
+ params.each { |key, value| send "#{key}=", value }
13
+ end
14
+
15
+ def currency
16
+ amount.try(:currency)
17
+ end
18
+
19
+ def to_s
20
+ description
21
+ end
22
+
23
+ def to_a
24
+ [id, name, description, amount]
25
+ end
26
+
27
+ private
28
+
29
+ def inspect_attributes
30
+ %i[id name description amount]
31
+ end
32
+ end
33
+ end
@@ -5,7 +5,7 @@ module Bankscrap
5
5
  attr_accessor :id, :amount, :description, :description_detail, :effective_date, :operation_date, :balance, :account
6
6
 
7
7
  def initialize(params = {})
8
- raise NotMoneyObjectError.new(:amount) unless params[:amount].is_a?(Money)
8
+ raise NotMoneyObjectError, :amount unless params[:amount].is_a?(Money)
9
9
 
10
10
  params.each { |key, value| send "#{key}=", value }
11
11
  end
@@ -25,7 +25,7 @@ module Bankscrap
25
25
  private
26
26
 
27
27
  def inspect_attributes
28
- %i(id amount effective_date description balance)
28
+ %i[id amount effective_date description balance]
29
29
  end
30
30
  end
31
31
  end
@@ -1,3 +1,3 @@
1
1
  module Bankscrap
2
- VERSION = '2.0.6'.freeze
2
+ VERSION = '2.1.0'.freeze
3
3
  end
data/lib/bankscrap.rb CHANGED
@@ -10,7 +10,10 @@ require_relative 'bankscrap/bank'
10
10
  require_relative 'bankscrap/account'
11
11
  require_relative 'bankscrap/investment'
12
12
  require_relative 'bankscrap/transaction'
13
+ require_relative 'bankscrap/card'
14
+ require_relative 'bankscrap/loan'
13
15
  require_relative 'bankscrap/exporters/csv'
16
+ require_relative 'bankscrap/exporters/json'
14
17
 
15
18
  module Bankscrap
16
19
  class << self
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bankscrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.6
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Javier Cuevas
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-11-14 00:00:00.000000000 Z
12
+ date: 2018-07-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -54,7 +54,7 @@ dependencies:
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  - !ruby/object:Gem::Dependency
57
- name: thor
57
+ name: activesupport
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - ">="
@@ -68,7 +68,7 @@ dependencies:
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
70
  - !ruby/object:Gem::Dependency
71
- name: mechanize
71
+ name: colorize
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - ">="
@@ -82,7 +82,21 @@ dependencies:
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
84
  - !ruby/object:Gem::Dependency
85
- name: activesupport
85
+ name: json
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :runtime
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: mechanize
86
100
  requirement: !ruby/object:Gem::Requirement
87
101
  requirements:
88
102
  - - ">="
@@ -109,6 +123,20 @@ dependencies:
109
123
  - - ">="
110
124
  - !ruby/object:Gem::Version
111
125
  version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: thor
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :runtime
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
112
140
  - !ruby/object:Gem::Dependency
113
141
  name: unicode-display_width
114
142
  requirement: !ruby/object:Gem::Requirement
@@ -147,10 +175,13 @@ files:
147
175
  - lib/bankscrap.rb
148
176
  - lib/bankscrap/account.rb
149
177
  - lib/bankscrap/bank.rb
178
+ - lib/bankscrap/card.rb
150
179
  - lib/bankscrap/cli.rb
151
180
  - lib/bankscrap/config.rb
152
181
  - lib/bankscrap/exporters/csv.rb
182
+ - lib/bankscrap/exporters/json.rb
153
183
  - lib/bankscrap/investment.rb
184
+ - lib/bankscrap/loan.rb
154
185
  - lib/bankscrap/locale/en.yml
155
186
  - lib/bankscrap/transaction.rb
156
187
  - lib/bankscrap/utils/cli_string.rb
@@ -176,7 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
176
207
  version: '0'
177
208
  requirements: []
178
209
  rubyforge_project:
179
- rubygems_version: 2.4.8
210
+ rubygems_version: 2.6.14
180
211
  signing_key:
181
212
  specification_version: 4
182
213
  summary: Get your bank account details.