fine_ants 1.6.1 → 1.7.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: afc01c24a577ba95d9d23c9c6daab2e3833c89b1
4
- data.tar.gz: ffe1bc60b21b83b783fe4fa60f3fd1b5901a0525
3
+ metadata.gz: 93f5d15f0956372b0b8a42a5795f2db70f78338e
4
+ data.tar.gz: b82758ebec062d8146f7b57787e2d587f8bb45c0
5
5
  SHA512:
6
- metadata.gz: b318c2579b4fa40fb19c35181da68ff0bedc515042c3e2257ba3e237d877beadba50863d31cac13a0e98c743615027b169d3434e2530205208a505b314c4768e
7
- data.tar.gz: bc06c0830e8d859e7e58161eb03ddfc514cad9cce27fe252f669e4f3be71f7c64fcc2e258a4c69214fb83eda56e4effbb1047eab9f79395477dbc487bb230000
6
+ metadata.gz: ff28856051092d04aebf6209b519cc0dbaf70278688ee0ef35d1a25917ce41a1baa2dbb2b7edddd99828d04c179b7ec20531f09d7f5c26d00f3c17454f7f6fe1
7
+ data.tar.gz: d88e0c3c99362b1bac8b483d0f34b435e60368ee7bbef26172d03f9dc791227c60fc361962d02e70dc245221231d135eba3e16c8b027e92d263d14884342470d
data/README.md CHANGED
@@ -64,6 +64,7 @@ Right now, FineAnts ships with adapters for:
64
64
  | [Betterment](https://www.betterment.com) | `:betterment` |
65
65
  | [E*Trade](https://www.etrade.com) | `:etrade` |
66
66
  | [Chase](https://www.chase.com) | `:chase` |
67
+ | [American Express](https://www.americanexpress.com) | `:amex` |
67
68
  | [Simple (BBVA)](https://www.simple.com) | `:simple` |
68
69
  | [Simple (Bancorp)](https://www.simple.com) | `:simple_bancorp` |
69
70
  | [Target REDcard](https://rcam.target.com) | `:target` |
@@ -0,0 +1,57 @@
1
+ require "bigdecimal"
2
+
3
+ module FineAnts
4
+ module Adapters
5
+ class Amex
6
+ def initialize(credentials)
7
+ @user = credentials[:user]
8
+ @password = credentials[:password]
9
+ end
10
+
11
+ def login
12
+ visit "https://www.americanexpress.com"
13
+ within "#ssoform" do
14
+ fill_in "User ID", :with => @user
15
+ fill_in "Password", :with => @password
16
+ click_link "Log In"
17
+ end
18
+ verify_login!
19
+ end
20
+
21
+ def download
22
+ visit "https://global.americanexpress.com/accounts"
23
+ all(".card-block > div").map do |account|
24
+ name = account.find('.heading-3').text
25
+ owed = account.all("table td").size == 3
26
+ {
27
+ :adapter => :amex,
28
+ :user => @user,
29
+ :id => name,
30
+ :name => name,
31
+ :amount => BigDecimal.new(if owed
32
+ account.find("table td:nth-child(2) span").text.gsub(/[\$,]/,'')
33
+ else
34
+ "0"
35
+ end)
36
+ }
37
+ end.tap do
38
+ page.driver.go_back
39
+ click_button "Log Out"
40
+ end
41
+ end
42
+
43
+ private
44
+
45
+ def verify_login!
46
+ find_button "Log Out"
47
+ rescue
48
+ raise FineAnts::LoginFailedError.new
49
+ end
50
+ end
51
+ end
52
+ end
53
+
54
+
55
+
56
+
57
+
@@ -1,3 +1,3 @@
1
1
  module FineAnts
2
- VERSION = "1.6.1"
2
+ VERSION = "1.7.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fine_ants
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Searls
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-30 00:00:00.000000000 Z
11
+ date: 2017-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara
@@ -97,6 +97,7 @@ files:
97
97
  - fine_ants.gemspec
98
98
  - lib/fine_ants.rb
99
99
  - lib/fine_ants/adapters.rb
100
+ - lib/fine_ants/adapters/amex.rb
100
101
  - lib/fine_ants/adapters/betterment.rb
101
102
  - lib/fine_ants/adapters/chase.rb
102
103
  - lib/fine_ants/adapters/etrade.rb