bank_scrap 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dd004b30d6dd4eb2d705fcbe0affc0579d104a37
4
- data.tar.gz: f47e2c334a704fe27b256548fab622723dc429dd
3
+ metadata.gz: 72a10733f8205d87884e40ba46e1d783317c0670
4
+ data.tar.gz: 03caab3dceaf26a5101bf18f1078b19c0382f6ef
5
5
  SHA512:
6
- metadata.gz: 9d6370a6ae37fb00162023fe6e500fa550f98ef49e1d6f58c4bf96a8b569b124a906dbed8837c669af3ba5224e216c97b2d60b67d5f7d6bb83fafd14acfc6356
7
- data.tar.gz: 171fef5e6ca580034f30f8c5e15007b817ef72c3d76ce318c829f6dd1c38ac1593d256ef77406115fb98ba296c3e694e1817616ccf773e3e89295cbd7c8bf015
6
+ metadata.gz: a0b2753998bdd9c2d523c0bf058080afd56b595d4fcb24a0199c8fcfed5d2b805b94b211b3d465359ed7a887e6c5bfa5f35eea8e3b78f954883be3198e4a3c87
7
+ data.tar.gz: 0a50ff4c20b0f2423f358dd7114f53960c1034629ed29b3b042bcfcb223564e8c526be6c38d1200d4bce6c0c746c4122fe780d429982fd26cfa5a3dc6c89cbc1
data/README.md CHANGED
@@ -29,7 +29,7 @@ BankScrap uses both methods depending on the bank.
29
29
 
30
30
  ## Requirements
31
31
 
32
- Some banks needs a JavaScript runtime in order to work. So if you find an error like "Could not find JavasScript runtime" try to install one. It has been tested with nodejs.
32
+ Some banks needs a JavaScript runtime in order to work. So if you find an error like "Could not find JavaScript runtime" try to install one. It has been tested with nodejs.
33
33
 
34
34
  ## Installation
35
35
 
@@ -37,7 +37,7 @@ Some banks needs a JavaScript runtime in order to work. So if you find an error
37
37
 
38
38
  You can check out the latest source from git:
39
39
 
40
- git clone git://github.com/ismaGNU/bank_scrap
40
+ git clone git://github.com/bank-scrap/bank_scrap
41
41
 
42
42
  ### From RubyGems
43
43
 
@@ -137,7 +137,7 @@ account.transactions
137
137
 
138
138
  ## Contributing
139
139
 
140
- 1. Fork it ( https://github.com/ismaGNU/bank_scrap/fork )
140
+ 1. Fork it ( https://github.com/bank-scrap/bank_scrap/fork )
141
141
  2. Create your feature branch (`git checkout -b my-new-feature`)
142
142
  3. Commit your changes (`git commit -am 'Add some feature'`)
143
143
  4. Push to the branch (`git push origin my-new-feature`)
data/lib/bank_scrap.rb CHANGED
@@ -6,12 +6,13 @@ require 'bank_scrap/config'
6
6
  require 'bank_scrap/cli'
7
7
  require 'bank_scrap/bank'
8
8
  require 'bank_scrap/account'
9
+ require 'bank_scrap/investment'
9
10
  require 'bank_scrap/transaction'
10
11
 
11
12
  module BankScrap
12
13
  # autoload only requires the file when the specified
13
14
  # constant is used for the first time
14
- autoload :Bankinter, 'bank_scrap/banks/bankinter'
15
- autoload :Bbva, 'bank_scrap/banks/bbva'
16
- autoload :Ing, 'bank_scrap/banks/ing'
15
+ autoload :Bankinter, 'bank_scrap/banks/bankinter'
16
+ autoload :Bbva, 'bank_scrap/banks/bbva'
17
+ autoload :Ing, 'bank_scrap/banks/ing'
17
18
  end
@@ -2,10 +2,10 @@ module BankScrap
2
2
  class Account
3
3
  include Utils::Inspectable
4
4
 
5
- attr_accessor :bank, :id, :name, :balance, :currency,
5
+ attr_accessor :bank, :id, :name, :balance, :currency,
6
6
  :available_balance, :description,
7
7
  :transactions, :iban, :bic
8
-
8
+
9
9
  def initialize(params = {})
10
10
  params.each { |key, value| send "#{key}=", value }
11
11
  end
@@ -22,7 +22,7 @@ module BankScrap
22
22
 
23
23
  def inspect_attributes
24
24
  [
25
- :id, :name, :balance, :currency,
25
+ :id, :name, :balance, :currency,
26
26
  :available_balance, :description,
27
27
  :iban, :bic
28
28
  ]
@@ -3,26 +3,31 @@ require 'logger'
3
3
 
4
4
  module BankScrap
5
5
  class Bank
6
-
7
6
  WEB_USER_AGENT = 'Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 4 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'
8
- attr_accessor :headers, :accounts
7
+ attr_accessor :headers, :accounts, :investments
9
8
 
10
9
  def initialize(user, password, log: false, debug: false, extra_args: nil)
11
- @accounts = fetch_accounts
10
+ @accounts = fetch_accounts
12
11
  end
13
12
 
14
13
  # Interface method placeholders
15
14
 
16
15
  def fetch_accounts
17
- raise Exception.new "#{self.class} should implement a fetch_account method"
16
+ fail "#{self.class} should implement a fetch_account method"
17
+ end
18
+
19
+ def fetch_investments
20
+ fail "#{self.class} should implement a fetch_investment method"
18
21
  end
19
22
 
20
- def fetch_transactions_for(account, start_date: Date.today - 1.month, end_date: Date.today)
21
- raise Exception.new "#{self.class} should implement a fetch_transactions method"
23
+ def fetch_transactions_for(*)
24
+ fail "#{self.class} should implement a fetch_transactions method"
22
25
  end
23
26
 
24
27
  def account_with_iban(iban)
25
- accounts.find { |account| account.iban.gsub(' ','') == iban.gsub(' ','') }
28
+ accounts.find do |account|
29
+ account.iban.gsub(' ', '') == iban.gsub(' ', '')
30
+ end
26
31
  end
27
32
 
28
33
  private
@@ -43,19 +48,17 @@ module BankScrap
43
48
  # and resets the headers
44
49
  def with_headers(tmp_headers)
45
50
  current_headers = @headers
46
- set_headers(tmp_headers)
51
+ add_headers(tmp_headers)
47
52
  yield
48
53
  ensure
49
- set_headers(current_headers)
54
+ add_headers(current_headers)
50
55
  end
51
56
 
52
-
53
- def set_headers(headers)
57
+ def add_headers(headers)
54
58
  @headers.merge! headers
55
59
  @http.request_headers = @headers
56
60
  end
57
61
 
58
-
59
62
  def initialize_cookie(url)
60
63
  @http.get(url).body
61
64
  end
@@ -2,12 +2,12 @@ require 'json'
2
2
 
3
3
  module BankScrap
4
4
  class Bbva < Bank
5
- BASE_ENDPOINT = 'https://bancamovil.grupobbva.com'
6
- LOGIN_ENDPOINT = '/DFAUTH/slod/DFServletXML'
5
+ BASE_ENDPOINT = 'https://bancamovil.grupobbva.com'
6
+ LOGIN_ENDPOINT = '/DFAUTH/slod/DFServletXML'
7
7
  PRODUCTS_ENDPOINT = '/ENPP/enpp_mult_web_mobility_02/products/v1'
8
- ACCOUNT_ENDPOINT = '/ENPP/enpp_mult_web_mobility_02/accounts/'
8
+ ACCOUNT_ENDPOINT = '/ENPP/enpp_mult_web_mobility_02/accounts/'
9
9
  # BBVA expects an identifier before the actual User Agent, but 12345 works fine
10
- USER_AGENT = '12345;Android;LGE;Nexus 5;1080x1776;Android;4.4.4;BMES;4.0.4'
10
+ USER_AGENT = '12345;Android;LGE;Nexus 5;1080x1776;Android;4.4.4;BMES;4.0.4'
11
11
 
12
12
  def initialize(user, password, log: false, debug: false, extra_args: nil)
13
13
  @user = format_user(user.dup)
@@ -17,8 +17,8 @@ module BankScrap
17
17
 
18
18
  initialize_connection
19
19
 
20
- set_headers({
21
- "User-Agent" => USER_AGENT,
20
+ add_headers(
21
+ 'User-Agent' => USER_AGENT,
22
22
  'BBVA-User-Agent' => USER_AGENT,
23
23
  'Accept-Language' => 'spa',
24
24
  'Content-Language' => 'spa',
@@ -27,7 +27,7 @@ module BankScrap
27
27
  'Connection' => 'Keep-Alive',
28
28
  'Host' => 'bancamovil.grupobbva.com',
29
29
  'Cookie2' => '$Version=1'
30
- })
30
+ )
31
31
 
32
32
  login
33
33
  super
@@ -37,27 +37,27 @@ module BankScrap
37
37
  # Returns an array of BankScrap::Account objects
38
38
  def fetch_accounts
39
39
  log 'fetch_accounts'
40
-
40
+
41
41
  # Even if the required method is an HTTP POST
42
42
  # the API requires a funny header that says is a GET
43
43
  # otherwise the request doesn't work.
44
- response = with_headers({'BBVA-Method' => 'GET'}) do
44
+ response = with_headers('BBVA-Method' => 'GET') do
45
45
  post(BASE_ENDPOINT + PRODUCTS_ENDPOINT, {})
46
46
  end
47
47
 
48
48
  json = JSON.parse(response)
49
- json["accounts"].collect { |data| build_account(data) }
49
+ json['accounts'].map { |data| build_account(data) }
50
50
  end
51
51
 
52
- # Fetch transactions for the given account.
52
+ # Fetch transactions for the given account.
53
53
  # By default it fetches transactions for the last month,
54
54
  # The maximum allowed by the BBVA API is the last 3 years.
55
55
  #
56
56
  # Account should be a BankScrap::Account object
57
57
  # Returns an array of BankScrap::Transaction objects
58
58
  def fetch_transactions_for(account, start_date: Date.today - 1.month, end_date: Date.today)
59
- fromDate = start_date.strftime("%Y-%m-%d")
60
- toDate = end_date.strftime("%Y-%m-%d")
59
+ from_date = start_date.strftime('%Y-%m-%d')
60
+ to_date = end_date.strftime('%Y-%m-%d')
61
61
 
62
62
  # Misteriously we need a specific content-type here
63
63
  funny_headers = {
@@ -65,29 +65,34 @@ module BankScrap
65
65
  'BBVA-Method' => 'GET'
66
66
  }
67
67
 
68
- url = BASE_ENDPOINT + ACCOUNT_ENDPOINT + account.id+ "/movements/v1?fromDate=#{fromDate}&toDate=#{toDate}"
68
+ url = BASE_ENDPOINT +
69
+ ACCOUNT_ENDPOINT +
70
+ account.id +
71
+ "/movements/v1?fromDate=#{from_date}&toDate=#{to_date}"
69
72
  offset = nil
70
73
  transactions = []
71
-
74
+
72
75
  with_headers(funny_headers) do
73
76
  # Loop over pagination
74
77
  loop do
75
78
  new_url = offset ? (url + "&offset=#{offset}") : url
76
79
  json = JSON.parse(post(new_url, {}))
77
80
 
78
- unless json["movements"].blank?
79
- transactions += json["movements"].collect { |data| build_transaction(data, account) }
80
- offset = json["offset"]
81
+ unless json['movements'].blank?
82
+ transactions += json['movements'].map do |data|
83
+ build_transaction(data, account)
84
+ end
85
+ offset = json['offset']
81
86
  end
82
87
 
83
- break unless json["thereAreMoreMovements"] == true
88
+ break unless json['thereAreMoreMovements'] == true
84
89
  end
85
90
  end
86
91
 
87
92
  transactions
88
93
  end
89
-
90
- private
94
+
95
+ private
91
96
 
92
97
  # As far as we know there are two types of identifiers BBVA uses
93
98
  # 1) A number of 7 characters that gets passed to the API as it is
@@ -95,24 +100,25 @@ module BankScrap
95
100
  # Example: "49021740T" will become "0019-049021740T"
96
101
  def format_user(user)
97
102
  user.upcase!
98
-
99
- if user.match /^[0-9]{8}[A-Z]$/
103
+
104
+ if user.match(/^[0-9]{8}[A-Z]$/)
100
105
  # It's a DNI
101
106
  "0019-0#{user}"
102
107
  else
103
108
  user
104
- end
109
+ end
105
110
  end
106
111
 
107
112
  def login
108
113
  log 'login'
109
- post(BASE_ENDPOINT + LOGIN_ENDPOINT, {
114
+ params = {
110
115
  'origen' => 'enpp',
111
116
  'eai_tipoCP' => 'up',
112
117
  'eai_user' => @user,
113
118
  'eai_password' => @password,
114
119
  'eai_URLDestino' => '/ENPP/enpp_mult_web_mobility_02/sessions/v1'
115
- })
120
+ }
121
+ post(BASE_ENDPOINT + LOGIN_ENDPOINT, params)
116
122
  end
117
123
 
118
124
  # Build an Account object from API data
@@ -126,22 +132,29 @@ module BankScrap
126
132
  currency: data['currency'],
127
133
  iban: data['iban'],
128
134
  description: "#{data['typeDescription']} #{data['familyCode']}"
129
- )
130
- end
135
+ )
136
+ end
131
137
 
132
138
  # Build a transaction object from API data
133
139
  def build_transaction(data, account)
134
- amount = Money.new(data['amount'] * 100, data['currency'])
135
- balance = data['accountBalanceAfterMovement'] ? Money.new(data['accountBalanceAfterMovement'] * 100, data['currency']) : nil
136
140
  Transaction.new(
137
141
  account: account,
138
142
  id: data['id'],
139
- amount: amount,
143
+ amount: transaction_amount(data),
140
144
  description: data['conceptDescription'] || data['description'],
141
- effective_date: Date.strptime(data['operationDate'], "%Y-%m-%d"),
145
+ effective_date: Date.strptime(data['operationDate'], '%Y-%m-%d'),
142
146
  currency: data['currency'],
143
- balance: balance
147
+ balance: transaction_balance(data)
144
148
  )
145
149
  end
150
+
151
+ def transaction_amount(data)
152
+ Money.new(data['amount'] * 100, data['currency'])
153
+ end
154
+
155
+ def transaction_balance(data)
156
+ return unless data['accountBalanceAfterMovement']
157
+ Money.new(data['accountBalanceAfterMovement'] * 100, data['currency'])
158
+ end
146
159
  end
147
- end
160
+ end
@@ -1,6 +1,6 @@
1
1
  require 'json'
2
2
  require 'base64'
3
- require 'RMagick'
3
+ require 'rmagick'
4
4
  require 'tempfile'
5
5
 
6
6
  module BankScrap
@@ -25,6 +25,8 @@ module BankScrap
25
25
  initialize_connection
26
26
  bundled_login
27
27
 
28
+ @investments = fetch_investments
29
+
28
30
  super
29
31
  end
30
32
 
@@ -43,18 +45,28 @@ module BankScrap
43
45
 
44
46
  def fetch_accounts
45
47
  log 'fetch_accounts'
46
- set_headers(
48
+ add_headers(
47
49
  'Accept' => '*/*',
48
50
  'Content-Type' => 'application/json; charset=utf-8'
49
51
  )
50
52
 
51
- @raw_accounts_data = JSON.parse(get(PRODUCTS_ENDPOINT))
52
-
53
- @raw_accounts_data.map do |account|
53
+ JSON.parse(get(PRODUCTS_ENDPOINT)).map do |account|
54
54
  build_account(account) if account['iban']
55
55
  end.compact
56
56
  end
57
57
 
58
+ def fetch_investments
59
+ log 'fetch_investments'
60
+ add_headers(
61
+ 'Accept' => '*/*',
62
+ 'Content-Type' => 'application/json; charset=utf-8'
63
+ )
64
+
65
+ JSON.parse(get(PRODUCTS_ENDPOINT)).map do |investment|
66
+ build_investment(investment) if investment['investment']
67
+ end.compact
68
+ end
69
+
58
70
  def fetch_transactions_for(account, start_date: Date.today - 1.month, end_date: Date.today)
59
71
  log "fetch_transactions for #{account.id}"
60
72
 
@@ -71,7 +83,7 @@ module BankScrap
71
83
  loop do
72
84
  request = get("#{PRODUCTS_ENDPOINT}/#{account.id}/movements", params)
73
85
  json = JSON.parse(request)
74
- transactions += json['elements'].map do |transaction|
86
+ transactions += (json['elements'] || []).map do |transaction|
75
87
  build_transaction(transaction, account)
76
88
  end
77
89
  params[:offset] += 25
@@ -89,7 +101,7 @@ module BankScrap
89
101
  end
90
102
 
91
103
  def login
92
- set_headers(
104
+ add_headers(
93
105
  'Accept' => 'application/json, text/javascript, */*; q=0.01',
94
106
  'Content-Type' => 'application/json; charset=utf-8'
95
107
  )
@@ -117,7 +129,7 @@ module BankScrap
117
129
  end
118
130
 
119
131
  def post_auth(ticket)
120
- set_headers(
132
+ add_headers(
121
133
  'Accept' => 'application/json, text/javascript, */*; q=0.01',
122
134
  'Content-Type' => 'application/x-www-form-urlencoded; charset=UTF-8'
123
135
  )
@@ -203,6 +215,17 @@ module BankScrap
203
215
  )
204
216
  end
205
217
 
218
+ def build_investment(data)
219
+ Investment.new(
220
+ bank: self,
221
+ id: data['uuid'],
222
+ name: data['name'],
223
+ balance: data['balance'],
224
+ currency: 'EUR',
225
+ investment: data['investment']
226
+ )
227
+ end
228
+
206
229
  # Build a transaction object from API data
207
230
  def build_transaction(data, account)
208
231
  amount = Money.new(data['amount'] * 100, data['currency'])
@@ -15,7 +15,7 @@ module BankScrap
15
15
  option :extra, type: :hash, default: {}
16
16
  end
17
17
 
18
- desc "balance BANK", "get accounts' balance"
18
+ desc 'balance BANK', "get accounts' balance"
19
19
  shared_options
20
20
  def balance(bank)
21
21
  assign_shared_options
@@ -27,7 +27,7 @@ module BankScrap
27
27
  end
28
28
  end
29
29
 
30
- desc "transactions BANK", "get account's transactions"
30
+ desc 'transactions BANK', "get account's transactions"
31
31
  shared_options
32
32
  def transactions(bank, iban = nil)
33
33
  assign_shared_options
@@ -55,13 +55,13 @@ module BankScrap
55
55
  end
56
56
 
57
57
  say "Transactions for: #{account.description} (#{account.iban})", :cyan
58
-
58
+
59
59
  transactions.each do |transaction|
60
60
  say transaction.to_s, (transaction.amount > Money.new(0) ? :green : :red)
61
61
  end
62
62
  end
63
63
 
64
- private
64
+ private
65
65
 
66
66
  def assign_shared_options
67
67
  @user = options[:user]
@@ -72,15 +72,14 @@ module BankScrap
72
72
  end
73
73
 
74
74
  def initialize_client_for(bank_name)
75
- bank_class = find_bank_class_for(bank_name)
75
+ bank_class = find_bank_class_for(bank_name)
76
76
  @client = bank_class.new(@user, @password, log: @log, debug: @debug, extra_args: @extra_args)
77
77
  end
78
-
78
+
79
79
  def find_bank_class_for(bank_name)
80
- Object.const_get("BankScrap::" + bank_name.classify)
80
+ Object.const_get('BankScrap::' + bank_name.classify)
81
81
  rescue NameError
82
82
  raise ArgumentError.new('Invalid bank name')
83
83
  end
84
-
85
84
  end
86
85
  end
@@ -1,5 +1,5 @@
1
1
  module BankScrap
2
2
  # Default format for money: 1.000,00 €
3
- Money.default_formatting_rules = {symbol_position: :after}
3
+ Money.default_formatting_rules = { symbol_position: :after }
4
4
  I18n.load_path += Dir.glob(File.expand_path('../locale/*.yml', __FILE__))
5
- end
5
+ end
@@ -0,0 +1,18 @@
1
+ module BankScrap
2
+ class Investment
3
+ include Utils::Inspectable
4
+
5
+ attr_accessor :bank, :id, :name, :balance, :currency, :investment
6
+
7
+ def initialize(params = {})
8
+ params.each { |key,value| send "#{key}=", value }
9
+ end
10
+
11
+ private
12
+ def inspect_attributes
13
+ [
14
+ :id, :name, :balance, :currency, :investment
15
+ ]
16
+ end
17
+ end
18
+ end
@@ -2,11 +2,11 @@ en:
2
2
  number:
3
3
  currency:
4
4
  format:
5
- delimiter: "."
6
- format: "%n %u"
7
- negative_format: "-%n %u"
5
+ delimiter: '.'
6
+ format: '%n %u'
7
+ negative_format: '-%n %u'
8
8
  precision: 2
9
- separator: ","
9
+ separator: ','
10
10
  significant: false
11
11
  strip_insignificant_zeros: false
12
- unit: ""
12
+ unit: ''
@@ -7,11 +7,11 @@ module BankScrap
7
7
  :balance, :account
8
8
 
9
9
  def initialize(params = {})
10
- params.each{ |key, value| send "#{key}=", value }
10
+ params.each { |key, value| send "#{key}=", value }
11
11
  end
12
12
 
13
13
  def to_s
14
- "#{effective_date.strftime("%d/%m/%Y")} #{description.ljust(45)} #{amount.format.rjust(20)}"
14
+ "#{effective_date.strftime('%d/%m/%Y')} #{description.ljust(45)} #{amount.format.rjust(20)}"
15
15
  end
16
16
 
17
17
  private
@@ -2,17 +2,17 @@ module BankScrap
2
2
  module Utils
3
3
  module Inspectable
4
4
  def inspect
5
- attributes = inspect_attributes.reject { |x|
5
+ attributes = inspect_attributes.reject do |x|
6
6
  begin
7
7
  attribute = send x
8
8
  !attribute || (attribute.respond_to?(:empty?) && attribute.empty?)
9
9
  rescue NoMethodError
10
10
  true
11
11
  end
12
- }.map { |attribute|
12
+ end.map do |attribute|
13
13
  "#{attribute.to_s}: #{send(attribute).inspect}"
14
- }.join ' '
15
- "#<#{self.class.name}:#{sprintf("0x%x", object_id)} #{attributes}>"
14
+ end.join ' '
15
+ "#<#{self.class.name}:#{sprintf('0x%x', object_id)} #{attributes}>"
16
16
  end
17
17
  end
18
18
  end
@@ -1,3 +1,3 @@
1
1
  module BankScrap
2
- VERSION = "0.0.12"
2
+ VERSION = '0.0.13'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bank_scrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ismael Sánchez
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-02-08 00:00:00.000000000 Z
14
+ date: 2015-05-12 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -168,18 +168,11 @@ dependencies:
168
168
  description: Command line tools to get bank account details from some banks.
169
169
  email:
170
170
  - root@ismagnu.com
171
- executables:
172
- - bank_scrap
171
+ executables: []
173
172
  extensions: []
174
173
  extra_rdoc_files: []
175
174
  files:
176
- - ".gitignore"
177
- - Gemfile
178
- - LICENSE.txt
179
175
  - README.md
180
- - Rakefile
181
- - bank_scrap.gemspec
182
- - bin/bank_scrap
183
176
  - lib/bank_scrap.rb
184
177
  - lib/bank_scrap/account.rb
185
178
  - lib/bank_scrap/bank.rb
@@ -198,11 +191,12 @@ files:
198
191
  - lib/bank_scrap/banks/ing/numbers/9.png
199
192
  - lib/bank_scrap/cli.rb
200
193
  - lib/bank_scrap/config.rb
194
+ - lib/bank_scrap/investment.rb
201
195
  - lib/bank_scrap/locale/en.yml
202
196
  - lib/bank_scrap/transaction.rb
203
197
  - lib/bank_scrap/utils/inspectable.rb
204
198
  - lib/bank_scrap/version.rb
205
- homepage: https://github.com/ismaGNU/bank_scrap
199
+ homepage: https://github.com/bank-scrap/bank_scrap
206
200
  licenses:
207
201
  - MIT
208
202
  metadata: {}
data/.gitignore DELETED
@@ -1,19 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- *.bundle
11
- *.so
12
- *.o
13
- *.a
14
- mkmf.log
15
-
16
- *.gem
17
-
18
- # MAC OS X files
19
- .DS_Store
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in bankscrap.gemspec
4
- gemspec
data/LICENSE.txt DELETED
@@ -1,22 +0,0 @@
1
- Copyright (c) 2014 TODO: Write your name
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile DELETED
@@ -1,2 +0,0 @@
1
- require "bundler/gem_tasks"
2
-
data/bank_scrap.gemspec DELETED
@@ -1,34 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'bank_scrap/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "bank_scrap"
8
- spec.version = BankScrap::VERSION
9
- spec.authors = ["Ismael Sánchez", "Javier Cuevas", "Fernando Blat", "Raúl Marcos"]
10
- spec.email = ["root@ismagnu.com"]
11
- spec.summary = %q{Get your bank account details.}
12
- spec.description = %q{Command line tools to get bank account details from some banks.}
13
- spec.homepage = "https://github.com/ismaGNU/bank_scrap"
14
- spec.license = "MIT"
15
-
16
- spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
-
21
- spec.required_ruby_version = '~> 2.1'
22
-
23
- spec.add_development_dependency 'bundler', '~> 1.7'
24
- spec.add_development_dependency 'rake', '~> 10.0'
25
- spec.add_development_dependency 'byebug', '~> 3.5', '>= 3.5.1'
26
-
27
- spec.add_dependency 'thor', "~> 0.19"
28
- spec.add_dependency 'nokogiri', "~> 1.6"
29
- spec.add_dependency 'execjs', "~> 2.2"
30
- spec.add_dependency 'mechanize', "~> 2.7.3"
31
- spec.add_dependency 'activesupport', "~> 4.1"
32
- spec.add_dependency 'rmagick', '~> 2.2', '>= 2.2.2'
33
- spec.add_dependency 'money', '~> 6.5.0'
34
- end
data/bin/bank_scrap DELETED
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env ruby
2
- $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib')))
3
-
4
- require 'bank_scrap'
5
- BankScrap::Cli.start(ARGV)