figo 1.1 → 1.1.1
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 +7 -7
- data/.travis.yml +9 -1
- data/Gemfile +1 -0
- data/README.md +49 -17
- data/figo.gemspec +1 -1
- data/lib/cacert.pem +0 -41
- data/lib/figo.rb +15 -18
- data/lib/models.rb +7 -6
- data/test/test_figo.rb +2 -7
- metadata +46 -40
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
---
|
|
2
|
-
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
5
|
-
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 390163889160a8aefcb91f1f8b4f99e18c84efb9
|
|
4
|
+
data.tar.gz: 2a24495ecbb097b1659dbb29f8ad697b082d24a2
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: e0c1cc2c14a9b6db75c5724b949ec2d0b7d496103247bd4bdcd72993e549d6371465dcd1222105ca939d7837c99ee44d2f6937efe56b606cffb40982641eb52f
|
|
7
|
+
data.tar.gz: b5401f6d092be459e5165bb86564d4180e7529cfd750261604865e17d5fcac0e0b44c3ecc311b435b194fcb4dc0d3ffd936be1840ba9dda2c5e012a48de97f2a
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -6,35 +6,67 @@ Ruby bindings for the figo Connect API: http://developer.figo.me
|
|
|
6
6
|
Usage
|
|
7
7
|
=====
|
|
8
8
|
|
|
9
|
-
First, you've to install the gem
|
|
9
|
+
First, you've to install the gem:
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
|
|
12
|
+
gem install figo
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
and
|
|
15
|
+
Now you can create a new session and access data:
|
|
16
16
|
|
|
17
17
|
```ruby
|
|
18
|
-
|
|
18
|
+
require "figo"
|
|
19
|
+
|
|
20
|
+
session = Figo::Session.new("ASHWLIkouP2O6_bgA2wWReRhletgWKHYjLqDaqb0LFfamim9RjexTo22ujRIP_cjLiRiSyQXyt2kM1eXU2XLFZQ0Hro15HikJQT_eNeT_9XQ")
|
|
21
|
+
|
|
22
|
+
# Print out list of account numbers and balances.
|
|
23
|
+
session.accounts.each do |account|
|
|
24
|
+
puts account.account_number
|
|
25
|
+
puts account.balance.balance
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Print out the list of all transaction originators/recipients of a specific account.
|
|
29
|
+
session.get_account("A1.1").transactions.each do |transaction|
|
|
30
|
+
puts transaction.name
|
|
31
|
+
end
|
|
19
32
|
```
|
|
20
33
|
|
|
21
|
-
|
|
34
|
+
It is just as simple to allow users to login through the API:
|
|
22
35
|
|
|
23
36
|
```ruby
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
37
|
+
require "figo"
|
|
38
|
+
require "launchy"
|
|
39
|
+
|
|
40
|
+
connection = Figo::Connection.new("<client ID>", "<client secret>", "http://my-domain.org/redirect-url")
|
|
41
|
+
|
|
42
|
+
def start_login
|
|
43
|
+
# Open webbrowser to kick of the login process.
|
|
44
|
+
Launchy.open(connection.login_url("qweqwe"))
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def process_redirect(authorization_code, state)
|
|
48
|
+
# Handle the redirect URL invocation from the initial start_login call.
|
|
49
|
+
|
|
50
|
+
# Ignore bogus redirects.
|
|
51
|
+
if state != "qweqwe"
|
|
52
|
+
return
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Trade in authorization code for access token.
|
|
56
|
+
token_hash = connection.obtain_access_token(authorization_code)
|
|
57
|
+
|
|
58
|
+
# Start session.
|
|
59
|
+
session = Figo::Session.new(token_hash["access_token"])
|
|
60
|
+
|
|
61
|
+
# Print out list of account numbers.
|
|
62
|
+
session.accounts.each do |account|
|
|
63
|
+
puts account.account_number
|
|
64
|
+
end
|
|
65
|
+
end
|
|
36
66
|
```
|
|
37
67
|
|
|
68
|
+
You can find more documentation at http://rubydoc.info/github/figo-connect/ruby-figo/master/frames
|
|
69
|
+
|
|
38
70
|
Requirements
|
|
39
71
|
============
|
|
40
72
|
|
data/figo.gemspec
CHANGED
data/lib/cacert.pem
CHANGED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
|
2
|
-
MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
|
|
3
|
-
IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB
|
|
4
|
-
IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA
|
|
5
|
-
Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO
|
|
6
|
-
BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi
|
|
7
|
-
MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ
|
|
8
|
-
ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
|
|
9
|
-
CgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ
|
|
10
|
-
8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6
|
|
11
|
-
zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y
|
|
12
|
-
fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7
|
|
13
|
-
w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc
|
|
14
|
-
G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k
|
|
15
|
-
epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q
|
|
16
|
-
laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ
|
|
17
|
-
QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU
|
|
18
|
-
fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826
|
|
19
|
-
YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w
|
|
20
|
-
ggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY
|
|
21
|
-
gBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe
|
|
22
|
-
MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0
|
|
23
|
-
IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy
|
|
24
|
-
dC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw
|
|
25
|
-
czovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0
|
|
26
|
-
dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl
|
|
27
|
-
aHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC
|
|
28
|
-
AQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg
|
|
29
|
-
b3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB
|
|
30
|
-
ACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc
|
|
31
|
-
nWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg
|
|
32
|
-
18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c
|
|
33
|
-
gr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl
|
|
34
|
-
Jzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY
|
|
35
|
-
sONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T
|
|
36
|
-
SCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF
|
|
37
|
-
CpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum
|
|
38
|
-
GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk
|
|
39
|
-
zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW
|
|
40
|
-
omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD
|
|
41
|
-
-----END CERTIFICATE-----
|
data/lib/figo.rb
CHANGED
|
@@ -21,8 +21,7 @@
|
|
|
21
21
|
#
|
|
22
22
|
|
|
23
23
|
require "json"
|
|
24
|
-
require "
|
|
25
|
-
require 'net/http/persistent'
|
|
24
|
+
require "net/http/persistent"
|
|
26
25
|
require "digest/sha1"
|
|
27
26
|
require_relative "models.rb"
|
|
28
27
|
|
|
@@ -30,12 +29,9 @@ require_relative "models.rb"
|
|
|
30
29
|
# Ruby bindings for the figo Connect API: http://developer.figo.me
|
|
31
30
|
module Figo
|
|
32
31
|
|
|
33
|
-
$api_endpoint = "api.
|
|
32
|
+
$api_endpoint = "api.figo.me"
|
|
34
33
|
|
|
35
|
-
$valid_fingerprints = ["
|
|
36
|
-
"AD:A0:E3:2B:1F:CE:E8:44:F2:83:BA:AE:E4:7D:F2:AD:44:48:7F:1E"]
|
|
37
|
-
|
|
38
|
-
$logger = Logger.new(STDOUT)
|
|
34
|
+
$valid_fingerprints = ["3A:62:54:4D:86:B4:34:38:EA:34:64:4E:95:10:A9:FF:37:27:69:C0"]
|
|
39
35
|
|
|
40
36
|
# Base class for all errors transported via the figo Connect API.
|
|
41
37
|
class Error < RuntimeError
|
|
@@ -104,7 +100,6 @@ module Figo
|
|
|
104
100
|
when Net::HTTPServiceUnavailable
|
|
105
101
|
raise Error.new("service_unavailable", "Exceeded rate limit.")
|
|
106
102
|
else
|
|
107
|
-
$logger.warn("Querying the API failed when accessing '#{path}': #{response.code}")
|
|
108
103
|
raise Error.new("internal_server_error", "We are very sorry, but something went wrong.")
|
|
109
104
|
end
|
|
110
105
|
end
|
|
@@ -141,7 +136,7 @@ module Figo
|
|
|
141
136
|
request.basic_auth(@client_id, @client_secret)
|
|
142
137
|
request["Accept"] = "application/json"
|
|
143
138
|
request["Content-Type"] = "application/x-www-form-urlencoded"
|
|
144
|
-
request[
|
|
139
|
+
request["User-Agent"] = "ruby-figo"
|
|
145
140
|
request.body = URI.encode_www_form(data) unless data.nil?
|
|
146
141
|
|
|
147
142
|
# Send HTTP request.
|
|
@@ -163,6 +158,7 @@ module Figo
|
|
|
163
158
|
# validated the authenticity of the call to the redirect URL
|
|
164
159
|
# @param scope [String] optional scope of data access to ask the user for,
|
|
165
160
|
# e.g. `accounts=ro`
|
|
161
|
+
# @return [String] the URL to be opened by the user.
|
|
166
162
|
def login_url(state, scope = nil)
|
|
167
163
|
data = { "response_type" => "code", "client_id" => @client_id, "state" => state }
|
|
168
164
|
data["redirect_uri"] = @redirect_uri unless @redirect_uri.nil?
|
|
@@ -179,7 +175,7 @@ module Figo
|
|
|
179
175
|
# @param scope [String] optional scope of data access to ask the user for,
|
|
180
176
|
# e.g. `accounts=ro`
|
|
181
177
|
# @return [Hash] object with the keys `access_token`, `refresh_token` and
|
|
182
|
-
# `expires
|
|
178
|
+
# `expires`, as documented in the figo Connect API specification.
|
|
183
179
|
def obtain_access_token(authorization_code_or_refresh_token, scope = nil)
|
|
184
180
|
# Authorization codes always start with "O" and refresh tokens always start with "R".
|
|
185
181
|
if authorization_code_or_refresh_token[0] == "O"
|
|
@@ -196,7 +192,7 @@ module Figo
|
|
|
196
192
|
#
|
|
197
193
|
# @note this action has immediate effect, i.e. you will not be able use that token anymore after this call.
|
|
198
194
|
#
|
|
199
|
-
# @param
|
|
195
|
+
# @param refresh_token_or_access_token [String] access or refresh token to be revoked
|
|
200
196
|
# @return [nil]
|
|
201
197
|
def revoke_token(refresh_token_or_access_token)
|
|
202
198
|
data = { "token" => refresh_token_or_access_token }
|
|
@@ -221,6 +217,7 @@ module Figo
|
|
|
221
217
|
#
|
|
222
218
|
# @param path [String] the URL path on the server
|
|
223
219
|
# @param data [hash] this optional object will be used as JSON-encoded POST content.
|
|
220
|
+
# @param method [String] the HTTP method
|
|
224
221
|
# @return [Hash] JSON response
|
|
225
222
|
def query_api(path, data=nil, method="GET") # :nodoc:
|
|
226
223
|
uri = URI("https://#{$api_endpoint}#{path}")
|
|
@@ -240,7 +237,7 @@ module Figo
|
|
|
240
237
|
request["Authorization"] = "Bearer #{@access_token}"
|
|
241
238
|
request["Accept"] = "application/json"
|
|
242
239
|
request["Content-Type"] = "application/json"
|
|
243
|
-
request[
|
|
240
|
+
request["User-Agent"] = "ruby-figo"
|
|
244
241
|
request.body = JSON.generate(data) unless data.nil?
|
|
245
242
|
|
|
246
243
|
# Send HTTP request.
|
|
@@ -270,14 +267,14 @@ module Figo
|
|
|
270
267
|
# @return [Account] account object
|
|
271
268
|
def get_account(account_id)
|
|
272
269
|
response = query_api("/rest/accounts/#{account_id}")
|
|
273
|
-
return Account.new(self, response)
|
|
270
|
+
return response.nil? ? nil : Account.new(self, response)
|
|
274
271
|
end
|
|
275
272
|
|
|
276
273
|
# Request list of transactions.
|
|
277
274
|
#
|
|
278
|
-
# @param since [String] this parameter can either be a transaction ID or a date
|
|
275
|
+
# @param since [String, Date] this parameter can either be a transaction ID or a date
|
|
279
276
|
# @param start_id [String] do only return transactions which were booked after the start transaction ID
|
|
280
|
-
# @param count [
|
|
277
|
+
# @param count [Integer] limit the number of returned transactions
|
|
281
278
|
# @param include_pending [Boolean] this flag indicates whether pending transactions should be included
|
|
282
279
|
# in the response; pending transactions are always included as a complete set, regardless of
|
|
283
280
|
# the `since` parameter
|
|
@@ -294,7 +291,7 @@ module Figo
|
|
|
294
291
|
|
|
295
292
|
# Request the URL a user should open in the web browser to start the synchronization process.
|
|
296
293
|
#
|
|
297
|
-
# @param redirect_uri [String]
|
|
294
|
+
# @param redirect_uri [String] the user will be redirected to this URL after the process completes
|
|
298
295
|
# @param state [String] this string will be passed on through the complete synchronization process
|
|
299
296
|
# and to the redirect target at the end. It should be used to validated the authenticity of
|
|
300
297
|
# the call to the redirect URL
|
|
@@ -338,13 +335,13 @@ module Figo
|
|
|
338
335
|
return Notification.new(self, response)
|
|
339
336
|
end
|
|
340
337
|
|
|
341
|
-
# Modify
|
|
338
|
+
# Modify notification.
|
|
342
339
|
#
|
|
343
340
|
# @param notification [Notification] modified notification object
|
|
344
341
|
# @return [nil]
|
|
345
342
|
def modify_notification(notification)
|
|
346
343
|
data = { "observe_key" => notification.observe_key, "notify_uri" => notification.notify_uri, "state" => notification.state }
|
|
347
|
-
|
|
344
|
+
query_api("/rest/notifications/#{notification.notification_id}", data, "PUT")
|
|
348
345
|
return nil
|
|
349
346
|
end
|
|
350
347
|
|
data/lib/models.rb
CHANGED
|
@@ -36,6 +36,7 @@ module Figo
|
|
|
36
36
|
CREDIT_CARD = "Credit card"
|
|
37
37
|
LOAN = "Loan account"
|
|
38
38
|
PAYPAL = "PayPal"
|
|
39
|
+
CASH_BOOK = "Cash book"
|
|
39
40
|
UNKNOWN = "Unknown"
|
|
40
41
|
end
|
|
41
42
|
|
|
@@ -155,13 +156,13 @@ module Figo
|
|
|
155
156
|
|
|
156
157
|
# Request list of transactions of this account.
|
|
157
158
|
#
|
|
158
|
-
# @param since [String] this parameter can either be a transaction ID or a date
|
|
159
|
+
# @param since [String, Date] this parameter can either be a transaction ID or a date
|
|
159
160
|
# @param start_id [String] do only return transactions which were booked after the start transaction ID
|
|
160
|
-
# @param count [
|
|
161
|
+
# @param count [Integer] limit the number of returned transactions
|
|
161
162
|
# @param include_pending [Boolean] this flag indicates whether pending transactions should be included
|
|
162
163
|
# in the response; pending transactions are always included as a complete set, regardless of
|
|
163
164
|
# the `since` parameter
|
|
164
|
-
# @return [Array] an array of `Transaction` objects, one for each transaction of
|
|
165
|
+
# @return [Array] an array of `Transaction` objects, one for each transaction of this account
|
|
165
166
|
def transactions(since = nil, start_id = nil, count = 1000, include_pending = false)
|
|
166
167
|
data = {}
|
|
167
168
|
data["since"] = (since.is_a?(Date) ? since.to_s : since) unless since.nil?
|
|
@@ -172,13 +173,13 @@ module Figo
|
|
|
172
173
|
return response["transactions"].map {|transaction| Transaction.new(@session, transaction)}
|
|
173
174
|
end
|
|
174
175
|
|
|
175
|
-
# Request
|
|
176
|
+
# Request specific transaction.
|
|
176
177
|
#
|
|
177
178
|
# @param transaction_id [String] ID of the transaction to be retrieved
|
|
178
179
|
# @return [Transaction] transaction object
|
|
179
180
|
def transaction(transaction_id)
|
|
180
181
|
response = @session.query_api("/rest/accounts/#{@account_id}/transactions/#{transaction_id}")
|
|
181
|
-
return Transaction.new(@session, response)
|
|
182
|
+
return response.nil? ? nil : Transaction.new(@session, response)
|
|
182
183
|
end
|
|
183
184
|
|
|
184
185
|
end
|
|
@@ -227,7 +228,7 @@ module Figo
|
|
|
227
228
|
# @return [String]
|
|
228
229
|
attr_accessor :account_number
|
|
229
230
|
|
|
230
|
-
# Bank code of originator or
|
|
231
|
+
# Bank code of originator or recipient.
|
|
231
232
|
# @return [String]
|
|
232
233
|
attr_accessor :bank_code
|
|
233
234
|
|
data/test/test_figo.rb
CHANGED
|
@@ -20,17 +20,12 @@
|
|
|
20
20
|
# THE SOFTWARE.
|
|
21
21
|
#
|
|
22
22
|
|
|
23
|
-
require "
|
|
23
|
+
require "minitest/autorun"
|
|
24
24
|
require_relative "../lib/figo"
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
class FigoTest <
|
|
27
|
+
class FigoTest < MiniTest::Unit::TestCase
|
|
28
28
|
|
|
29
|
-
def setup
|
|
30
|
-
$api_endpoint = "api.staging.figo.me"
|
|
31
|
-
$valid_fingerprints = ["AF:FF:C3:2A:45:13:86:FB:28:57:55:80:0A:58:23:C7:7A:70:B6:2D"]
|
|
32
|
-
end
|
|
33
|
-
|
|
34
29
|
def test_accounts
|
|
35
30
|
sut = Figo::Session.new("ASHWLIkouP2O6_bgA2wWReRhletgWKHYjLqDaqb0LFfamim9RjexTo22ujRIP_cjLiRiSyQXyt2kM1eXU2XLFZQ0Hro15HikJQT_eNeT_9XQ")
|
|
36
31
|
|
metadata
CHANGED
|
@@ -1,47 +1,52 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: figo
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.1.1
|
|
5
5
|
platform: ruby
|
|
6
|
-
authors:
|
|
6
|
+
authors:
|
|
7
7
|
- Stefan Richter
|
|
8
8
|
- Michael Haller
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- !ruby/object:Gem::Dependency
|
|
12
|
+
date: 2014-04-10 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
16
15
|
name: flt
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
- !ruby/object:Gem::Version
|
|
23
|
-
version: "0"
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
17
|
+
requirements:
|
|
18
|
+
- - '>='
|
|
19
|
+
- !ruby/object:Gem::Version
|
|
20
|
+
version: '0'
|
|
24
21
|
type: :runtime
|
|
25
|
-
version_requirements: *id001
|
|
26
|
-
- !ruby/object:Gem::Dependency
|
|
27
|
-
name: net-http-persistent
|
|
28
22
|
prerelease: false
|
|
29
|
-
|
|
30
|
-
requirements:
|
|
31
|
-
-
|
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
24
|
+
requirements:
|
|
25
|
+
- - '>='
|
|
26
|
+
- !ruby/object:Gem::Version
|
|
27
|
+
version: '0'
|
|
28
|
+
- !ruby/object:Gem::Dependency
|
|
29
|
+
name: net-http-persistent
|
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
|
31
|
+
requirements:
|
|
32
|
+
- - '>='
|
|
33
|
+
- !ruby/object:Gem::Version
|
|
34
|
+
version: '0'
|
|
32
35
|
type: :runtime
|
|
33
|
-
|
|
36
|
+
prerelease: false
|
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
38
|
+
requirements:
|
|
39
|
+
- - '>='
|
|
40
|
+
- !ruby/object:Gem::Version
|
|
41
|
+
version: '0'
|
|
34
42
|
description: Library to easily use the API of http://www.figo.me
|
|
35
|
-
email:
|
|
43
|
+
email:
|
|
36
44
|
- stefan.richter@figo.me
|
|
37
45
|
- michael.haller@figo.me
|
|
38
46
|
executables: []
|
|
39
|
-
|
|
40
47
|
extensions: []
|
|
41
|
-
|
|
42
48
|
extra_rdoc_files: []
|
|
43
|
-
|
|
44
|
-
files:
|
|
49
|
+
files:
|
|
45
50
|
- .gitignore
|
|
46
51
|
- .travis.yml
|
|
47
52
|
- Gemfile
|
|
@@ -53,27 +58,28 @@ files:
|
|
|
53
58
|
- lib/models.rb
|
|
54
59
|
- test/test_figo.rb
|
|
55
60
|
homepage: https://github.com/figo-connect/ruby-figo
|
|
56
|
-
licenses:
|
|
61
|
+
licenses:
|
|
57
62
|
- MIT
|
|
58
63
|
metadata: {}
|
|
59
|
-
|
|
60
64
|
post_install_message:
|
|
61
65
|
rdoc_options: []
|
|
62
|
-
|
|
63
|
-
require_paths:
|
|
66
|
+
require_paths:
|
|
64
67
|
- lib
|
|
65
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
66
|
-
requirements:
|
|
67
|
-
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
69
|
+
requirements:
|
|
70
|
+
- - '>='
|
|
71
|
+
- !ruby/object:Gem::Version
|
|
72
|
+
version: '0'
|
|
73
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
74
|
+
requirements:
|
|
75
|
+
- - '>='
|
|
76
|
+
- !ruby/object:Gem::Version
|
|
77
|
+
version: '0'
|
|
71
78
|
requirements: []
|
|
72
|
-
|
|
73
79
|
rubyforge_project:
|
|
74
|
-
rubygems_version: 2.
|
|
80
|
+
rubygems_version: 2.1.11
|
|
75
81
|
signing_key:
|
|
76
82
|
specification_version: 4
|
|
77
83
|
summary: API wrapper for figo Connect.
|
|
78
|
-
test_files:
|
|
84
|
+
test_files:
|
|
79
85
|
- test/test_figo.rb
|