bankscrap 2.0.5 → 2.0.6

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: 99d6ad8497281047d3900aba58f6264727231e3d
4
- data.tar.gz: 0387949b4ac135e26d194816e8dfe3807b7a3e52
3
+ metadata.gz: 1481cd3fa9e6859cd8afaed3ddf47a7fcafa66d1
4
+ data.tar.gz: 3c11cce2190b9c058e2a28be2934015bbd63a9dc
5
5
  SHA512:
6
- metadata.gz: d5a694b436ff3b72990a872211930f4883879ed75306745af7cdb600148a9eed2bd36fb0bbf4cc065bd5ae5f4e3f60031f0d71c8808b47778fe3b8c19bbd839b
7
- data.tar.gz: b1a9e088ae08d230bef00e3a647f89ceb3494d2e778e5dc8c7773dcea169ace61b916760dc8ef308d54f6a8c11b9a924beee56e4a07bf1e689771de321268c21
6
+ metadata.gz: c1d7ec05a3268e4760d387bb77172c3b20a9d8052c78253b40c8f0e53656f9532e2d260fcf5aaa62e0e115ab6c09f42376be65cdb460f03880b08bfe1c1519ff
7
+ data.tar.gz: 4bd5ddeb61e0f411a65ed0aa30c6581e5ece111d32856832a512c41ee5de416e532d3f29f7176efc6266f2151f3a0e0a5c7dd99fba1d80f964831fc4d3b6d69b
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # 💸 Bankscrap 💸
2
2
 
3
- [![](http://188.166.39.57:3000/badge.svg)](http://188.166.39.57:3000)
3
+ [![Slack](https://now-examples-slackin-hiyfeggjfn.now.sh/badge.svg)](https://now-examples-slackin-hiyfeggjfn.now.sh/)
4
4
  [![Gem Version](https://badge.fury.io/rb/bankscrap.svg)](https://badge.fury.io/rb/bankscrap)
5
5
  [![Build Status](https://travis-ci.org/bankscrap/bankscrap.svg?branch=master)](https://travis-ci.org/bankscrap/bankscrap)
6
6
 
@@ -16,7 +16,9 @@ Feel free to contribute and add your bank if it isn't supported.
16
16
  * **Arquia Banca**: [bankscrap-arquia](https://github.com/bankscrap/bankscrap-arquia)
17
17
  * **Openbank**: [bankscrap-openbank](https://github.com/bankscrap/bankscrap-openbank)
18
18
  * **Sabadell**: [bankscrap-sabadell](https://github.com/bankscrap/bankscrap-sabadell)
19
+ * **Ibercaja**: [bankscrap-ibercaja](https://github.com/bankscrap/bankscrap-ibercaja)
19
20
  * **Santander** (WIP): [bankscrap-santander](https://github.com/bankscrap/bankscrap-santander)
21
+ * **Shinsei Bank**: [bankscrap-shinsei](https://github.com/bankscrap/bankscrap-shinsei)
20
22
 
21
23
  Interested in any other bank? Open a new Issue and we'll try to help.
22
24
 
@@ -175,6 +177,34 @@ ing = Bankscrap::ING::Bank.new(dni: YOUR_DNI, password: YOUR_ING_PASSWORD, birth
175
177
  4. Push to the branch (`git push origin my-new-feature`)
176
178
  5. Create a new Pull Request
177
179
 
180
+ ### Start a new Bank Adapter with the generator
181
+ You can use a generator to create the basic template for your new bank adapter.
182
+ 1. Install the bankscrap gem (`gem install bankscrap`) if you don't have it already.
183
+ 2. Use the name of your *BankName* like: `bankscrap generate_adapter BankName`, you will get:
184
+
185
+ ```
186
+ create
187
+ create bankscrap-my-bank-name.gemspec
188
+ create .gitignore
189
+ create Gemfile
190
+ create LICENSE.txt
191
+ create README.md
192
+ create Rakefile
193
+ create lib/bankscrap-my-bank-name.rb
194
+ create lib/bankscrap/my-bank-name/bank.rb
195
+ create lib/bankscrap/my-bank-name/version.rb
196
+
197
+ Great! Now you can start implementing your bank's adapter for Bankscrap.
198
+
199
+ To get started take a look to:
200
+ /Users/username/bankscrap/bankscrap-my-bank-name/lib/bankscrap/my-bank-name/bank.rb
201
+
202
+ If you need help you can join our Slack chat room. Click the Slack badge on Github:
203
+ https://github.com/bankscrap/bankscrap
204
+ ```
205
+ 3. Create a git repository on the newly created directory (`git init`) and start commiting.
206
+ 4. Push your repo to github and open an Issue at https://github.com/bankscrap/bankscrap/issues referencing it
207
+
178
208
  ## Thanks
179
209
 
180
210
  Thanks to Javier Cuevas (@javiercr) for his [BBVA](https://github.com/javiercr/bbva) gem.
@@ -75,6 +75,7 @@ module Bankscrap
75
75
  id: REPLACE_ME,
76
76
  amount: REPLACE_ME, # Should be a Money object
77
77
  description: REPLACE_ME,
78
+ description_detail: REPLACE_ME, # Optional
78
79
  effective_date: REPLACE_ME,
79
80
  operation_date: REPLACE_ME,
80
81
  balance: REPLACE_ME # Should be a Money object
data/lib/bankscrap/cli.rb CHANGED
@@ -6,6 +6,8 @@ end
6
6
 
7
7
  module Bankscrap
8
8
  class CLI < Thor
9
+ SPACER = (' ' * 3).freeze
10
+
9
11
  def self.shared_options
10
12
  option :credentials, default: {}, type: :hash
11
13
  option :log, default: false, type: :boolean
@@ -112,18 +114,18 @@ module Bankscrap
112
114
  def print_transactions_header
113
115
  say "\n"
114
116
  say 'DATE'.ljust(13)
115
- say 'DESCRIPTION'.ljust(50) + ' '
116
- say 'AMOUNT'.rjust(15) + ' '
117
+ say 'DESCRIPTION'.ljust(50) + SPACER
118
+ say 'AMOUNT'.rjust(15) + SPACER
117
119
  say 'BALANCE'.rjust(15)
118
120
  say '-' * 99
119
121
  end
120
122
 
121
123
  def print_transaction(transaction)
122
124
  color = (transaction.amount.to_i > 0 ? :green : :red)
123
- say transaction.effective_date.strftime('%d/%m/%Y') + ' '
124
- say transaction.description.squish.truncate(50).ljust(50) + ' ', color
125
- say transaction.amount.format.rjust(15) + ' ', color
126
- say transaction.balance.format.rjust(15)
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)
127
129
  end
128
130
  end
129
131
  end
@@ -3,7 +3,7 @@ require 'csv'
3
3
  module BankScrap
4
4
  module Exporter
5
5
  class Csv
6
- HEADERS = %w(Date Description Amount).freeze
6
+ HEADERS = %w(ID Date Description DescriptionDetail Amount).freeze
7
7
 
8
8
  def initialize(output = nil)
9
9
  @output = output || 'transactions.csv'
@@ -2,7 +2,7 @@ module Bankscrap
2
2
  class Transaction
3
3
  include Utils::Inspectable
4
4
 
5
- attr_accessor :id, :amount, :description, :effective_date, :operation_date, :balance, :account
5
+ attr_accessor :id, :amount, :description, :description_detail, :effective_date, :operation_date, :balance, :account
6
6
 
7
7
  def initialize(params = {})
8
8
  raise NotMoneyObjectError.new(:amount) unless params[:amount].is_a?(Money)
@@ -15,7 +15,7 @@ module Bankscrap
15
15
  end
16
16
 
17
17
  def to_a
18
- [effective_date.strftime('%d/%m/%Y'), description, amount]
18
+ [id, effective_date.strftime('%d/%m/%Y'), description, description_detail, amount]
19
19
  end
20
20
 
21
21
  def currency
@@ -0,0 +1,40 @@
1
+ require 'unicode/display_width'
2
+
3
+ module Bankscrap
4
+ module Utils
5
+ class CliString < String
6
+ def ljust(to_length, padstr = ' ')
7
+ self.class.new(self + padding(to_length, padstr))
8
+ end
9
+
10
+ def rjust(to_length, padstr = ' ')
11
+ self.class.new(padding(to_length, padstr) + self)
12
+ end
13
+
14
+ def truncate(truncate_at)
15
+ if display_width > truncate_at
16
+ self.class.new(self[0..-2]).truncate(truncate_at)
17
+ else
18
+ self.class.new(self)
19
+ end
20
+ end
21
+
22
+ private
23
+
24
+ def padding(to_length, padstr)
25
+ padstr.to_str * padding_length(to_length)
26
+ end
27
+
28
+ def padding_length(to_length)
29
+ [
30
+ 0,
31
+ to_length - display_width
32
+ ].max
33
+ end
34
+
35
+ def display_width
36
+ Unicode::DisplayWidth.of(self)
37
+ end
38
+ end
39
+ end
40
+ end
@@ -1,3 +1,3 @@
1
1
  module Bankscrap
2
- VERSION = '2.0.5'.freeze
2
+ VERSION = '2.0.6'.freeze
3
3
  end
data/lib/bankscrap.rb CHANGED
@@ -2,6 +2,7 @@ require 'active_support/all'
2
2
  require 'money'
3
3
  require 'rubygems'
4
4
  require_relative 'bankscrap/utils/inspectable'
5
+ require_relative 'bankscrap/utils/cli_string'
5
6
  require_relative 'bankscrap/version'
6
7
  require_relative 'bankscrap/config'
7
8
  require_relative 'bankscrap/cli'
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.5
4
+ version: 2.0.6
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-04-29 00:00:00.000000000 Z
12
+ date: 2017-11-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -109,6 +109,20 @@ dependencies:
109
109
  - - ">="
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: unicode-display_width
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
112
126
  description: Command line tools to get bank account details from some banks.
113
127
  email:
114
128
  - javi@diacode.com
@@ -139,9 +153,10 @@ files:
139
153
  - lib/bankscrap/investment.rb
140
154
  - lib/bankscrap/locale/en.yml
141
155
  - lib/bankscrap/transaction.rb
156
+ - lib/bankscrap/utils/cli_string.rb
142
157
  - lib/bankscrap/utils/inspectable.rb
143
158
  - lib/bankscrap/version.rb
144
- homepage: https://github.com/bank-scrap/bank_scrap
159
+ homepage: https://github.com/bankscrap/bankscrap
145
160
  licenses:
146
161
  - MIT
147
162
  metadata: {}