atrium-ruby 0.4.3 → 0.5.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 +4 -4
- data/.rubocop.yml +10 -0
- data/.travis.yml +5 -3
- data/Gemfile +1 -1
- data/README.md +1 -1
- data/atrium-ruby.gemspec +7 -2
- data/bin/demo +3 -4
- data/lib/atrium.rb +1 -0
- data/lib/atrium/account.rb +3 -3
- data/lib/atrium/client.rb +11 -9
- data/lib/atrium/connect.rb +22 -0
- data/lib/atrium/institution.rb +13 -4
- data/lib/atrium/member.rb +15 -27
- data/lib/atrium/paginate.rb +18 -16
- data/lib/atrium/user.rb +8 -7
- data/lib/atrium/version.rb +1 -1
- metadata +60 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 245392ec9efa63cc44d3d292397c47a32a03a16b
|
4
|
+
data.tar.gz: 4a07efc49acf876f734942c70b9f2e0fb6cd62d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3a18069855ba1a1b7b5076d5428fc856729b1a90a47ac9eab4478ef248922683193317ddce8956602895adb466e4912500dcbd8e02a4fce25ab639fab73fea1
|
7
|
+
data.tar.gz: 3073ba5011c23cf91cd44041d660cf258a29ccb2857f677e57841cd880d7cc01e0fee1896db94b689807fc2a18b86640d263626e58cb438c724d0c7bfbd8d1a4
|
data/.rubocop.yml
ADDED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Atrium-Ruby
|
1
|
+
# Atrium-Ruby [](https://travis-ci.org/mxenabled/atrium-ruby)
|
2
2
|
|
3
3
|
A Ruby wrapper for use with the [MX Atrium API](https://atrium.mx.com). In order to make requests, you will need to [sign up for MX Atrium API](https://atrium.mx.com/developers/sign_up) and get a `MX-API-KEY` and `MX-CLIENT-ID`. Then, configure your instance with:
|
4
4
|
```ruby
|
data/atrium-ruby.gemspec
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
|
2
|
+
|
3
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require
|
5
|
+
require "atrium/version"
|
5
6
|
|
6
7
|
Gem::Specification.new do |spec|
|
7
8
|
spec.name = "atrium-ruby"
|
@@ -25,4 +26,8 @@ Gem::Specification.new do |spec|
|
|
25
26
|
spec.add_development_dependency "pry"
|
26
27
|
spec.add_development_dependency "rake", "~> 10.0"
|
27
28
|
spec.add_development_dependency "rspec"
|
29
|
+
spec.add_development_dependency "simplecov"
|
30
|
+
spec.add_development_dependency "vcr"
|
31
|
+
spec.add_development_dependency "webmock"
|
32
|
+
spec.add_development_dependency "mad_rubocop"
|
28
33
|
end
|
data/bin/demo
CHANGED
@@ -5,9 +5,9 @@ require "pry"
|
|
5
5
|
require "yaml"
|
6
6
|
|
7
7
|
def load_settings
|
8
|
-
if ::File.
|
8
|
+
if ::File.exist?("tmp/settings.yml")
|
9
9
|
puts "=> Using key and ID in tmp/settings.yml ¬"
|
10
|
-
::YAML.
|
10
|
+
::YAML.safe_load(::File.read("tmp/settings.yml"))
|
11
11
|
else
|
12
12
|
settings = {}
|
13
13
|
puts "What is your MX-API-KEY?"
|
@@ -27,11 +27,10 @@ def load_settings
|
|
27
27
|
settings
|
28
28
|
end
|
29
29
|
end
|
30
|
-
|
31
30
|
end
|
32
31
|
|
33
32
|
settings = load_settings
|
34
|
-
settings.each { |k,v| puts "\t#{k}: #{v}" }
|
33
|
+
settings.each { |k, v| puts "\t#{k}: #{v}" }
|
35
34
|
|
36
35
|
::Atrium.configure do |config|
|
37
36
|
config.mx_client_id = settings[:mx_client_id]
|
data/lib/atrium.rb
CHANGED
data/lib/atrium/account.rb
CHANGED
@@ -36,7 +36,7 @@ module Atrium
|
|
36
36
|
endpoint = "/users/#{user_guid}/accounts"
|
37
37
|
accounts_response = ::Atrium.client.make_request(:get, endpoint)
|
38
38
|
|
39
|
-
|
39
|
+
accounts_response["accounts"].map do |account|
|
40
40
|
::Atrium::Account.new(account)
|
41
41
|
end
|
42
42
|
end
|
@@ -50,10 +50,10 @@ module Atrium
|
|
50
50
|
end
|
51
51
|
|
52
52
|
def transactions
|
53
|
-
endpoint = "/users/#{
|
53
|
+
endpoint = "/users/#{user_guid}/accounts/#{guid}/transactions"
|
54
54
|
account_transactions_response = ::Atrium.client.make_request(:get, endpoint)
|
55
55
|
|
56
|
-
|
56
|
+
account_transactions_response["transactions"].map do |transaction|
|
57
57
|
::Atrium::Transaction.new(transaction)
|
58
58
|
end
|
59
59
|
end
|
data/lib/atrium/client.rb
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
module Atrium
|
2
2
|
class Client
|
3
|
+
DEVELOPMENT_URL = "https://vestibule.mx.com".freeze
|
3
4
|
attr_accessor :mx_api_key, :mx_client_id, :base_url
|
4
5
|
|
5
|
-
def initialize(api_key = nil, client_id = nil, base_url =
|
6
|
-
@mx_api_key
|
6
|
+
def initialize(api_key = nil, client_id = nil, base_url = DEVELOPMENT_URL)
|
7
|
+
@mx_api_key = api_key
|
7
8
|
@mx_client_id = client_id
|
8
|
-
@base_url
|
9
|
+
@base_url = base_url
|
9
10
|
end
|
10
11
|
|
11
|
-
def make_request(method, endpoint, body =
|
12
|
+
def make_request(method, endpoint, body = nil, headers = {})
|
12
13
|
headers = default_headers.merge(headers)
|
13
|
-
url
|
14
|
+
url = "#{base_url}#{endpoint}"
|
15
|
+
body = ::JSON.dump(body) if body
|
14
16
|
|
15
|
-
response = http_client.public_send(method, url,
|
17
|
+
response = http_client.public_send(method, url, body, headers)
|
16
18
|
|
17
19
|
handle_response(response)
|
18
20
|
end
|
@@ -25,9 +27,9 @@ module Atrium
|
|
25
27
|
|
26
28
|
def default_headers
|
27
29
|
{
|
28
|
-
"Accept"
|
30
|
+
"Accept" => "application/vnd.mx.atrium.v1+json",
|
29
31
|
"Content-Type" => "application/json",
|
30
|
-
"MX-API-KEY"
|
32
|
+
"MX-API-KEY" => mx_api_key,
|
31
33
|
"MX-CLIENT-ID" => mx_client_id
|
32
34
|
}
|
33
35
|
end
|
@@ -35,7 +37,7 @@ module Atrium
|
|
35
37
|
def handle_response(response)
|
36
38
|
# Handle 200-206 responses as acceptable
|
37
39
|
unless response.status.between?(200, 206)
|
38
|
-
|
40
|
+
raise ::Atrium::Error, "#{response.status}: #{response.body}"
|
39
41
|
end
|
40
42
|
|
41
43
|
::JSON.parse(response.body) unless response.body.empty?
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Atrium
|
2
|
+
class Connect
|
3
|
+
include ::ActiveAttr::Model
|
4
|
+
|
5
|
+
SCRIPT_SOURCE = "https://atrium.mx.com/connect.js".freeze
|
6
|
+
|
7
|
+
# ATTRIBUTES
|
8
|
+
attribute :connect_widget_url
|
9
|
+
attribute :guid
|
10
|
+
|
11
|
+
##
|
12
|
+
# CLASS METHODS
|
13
|
+
#
|
14
|
+
def self.create(user_guid:)
|
15
|
+
endpoint = "/users/#{user_guid}/connect_widget_url"
|
16
|
+
connect_response = ::Atrium.client.make_request(:post, endpoint)
|
17
|
+
|
18
|
+
connect_params = connect_response["user"]
|
19
|
+
::Atrium::Connect.new(connect_params)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/atrium/institution.rb
CHANGED
@@ -4,11 +4,12 @@ module Atrium
|
|
4
4
|
include ::ActiveAttr::Model
|
5
5
|
|
6
6
|
attribute :code
|
7
|
-
attribute :medium_logo_url
|
8
7
|
attribute :name
|
9
|
-
attribute :small_logo_url
|
10
8
|
attribute :url
|
9
|
+
attribute :small_logo_url
|
10
|
+
attribute :medium_logo_url
|
11
11
|
|
12
|
+
# @todo Normalize params interface across gem, most of gem favors hash
|
12
13
|
def self.credentials(institution_code)
|
13
14
|
endpoint = "/institutions/#{institution_code}/credentials"
|
14
15
|
response = ::Atrium.client.make_request(:get, endpoint)
|
@@ -18,12 +19,20 @@ module Atrium
|
|
18
19
|
end
|
19
20
|
end
|
20
21
|
|
22
|
+
def self.read(institution_code:)
|
23
|
+
endpoint = "/institutions/#{institution_code}"
|
24
|
+
response = ::Atrium.client.make_request(:get, endpoint)
|
25
|
+
|
26
|
+
institution_params = response["institution"]
|
27
|
+
::Atrium::Institution.new(institution_params)
|
28
|
+
end
|
29
|
+
|
21
30
|
def self.list(query_params: nil, limit: nil)
|
22
|
-
paginate_endpoint(query_params
|
31
|
+
paginate_endpoint(:query_params => query_params, :limit => limit)
|
23
32
|
end
|
24
33
|
|
25
34
|
def self.list_in_batches(query_params: nil, limit: nil, &block)
|
26
|
-
paginate_endpoint_in_batches(query_params
|
35
|
+
paginate_endpoint_in_batches(:query_params => query_params, :limit => limit, &block)
|
27
36
|
end
|
28
37
|
end
|
29
38
|
end
|
data/lib/atrium/member.rb
CHANGED
@@ -13,7 +13,6 @@ module Atrium
|
|
13
13
|
attribute :successfully_aggregated_at
|
14
14
|
attribute :user_guid
|
15
15
|
|
16
|
-
|
17
16
|
##
|
18
17
|
# CLASS METHODS
|
19
18
|
#
|
@@ -47,7 +46,7 @@ module Atrium
|
|
47
46
|
# INSTANCE METHODS
|
48
47
|
#
|
49
48
|
def accounts
|
50
|
-
endpoint = "/users/#{
|
49
|
+
endpoint = "/users/#{user_guid}/members/#{guid}/accounts"
|
51
50
|
accounts_response = ::Atrium.client.make_request(:get, endpoint)
|
52
51
|
|
53
52
|
accounts_response["accounts"].map do |account|
|
@@ -56,25 +55,25 @@ module Atrium
|
|
56
55
|
end
|
57
56
|
|
58
57
|
def aggregate
|
59
|
-
endpoint = "/users/#{
|
58
|
+
endpoint = "/users/#{user_guid}/members/#{guid}/aggregate"
|
60
59
|
member_response = ::Atrium.client.make_request(:post, endpoint)
|
61
60
|
|
62
61
|
member_params = member_response["member"]
|
63
|
-
|
62
|
+
assign_attributes(member_params)
|
64
63
|
self
|
65
64
|
end
|
66
65
|
|
67
66
|
def aggregation_status
|
68
|
-
endpoint = "/users/#{
|
67
|
+
endpoint = "/users/#{user_guid}/members/#{guid}/status"
|
69
68
|
member_response = ::Atrium.client.make_request(:get, endpoint)
|
70
69
|
|
71
70
|
member_params = member_response["member"]
|
72
|
-
|
71
|
+
assign_attributes(member_params)
|
73
72
|
self
|
74
73
|
end
|
75
74
|
|
76
75
|
def challenges
|
77
|
-
endpoint = "/users/#{
|
76
|
+
endpoint = "/users/#{user_guid}/members/#{guid}/challenges"
|
78
77
|
challenge_response = ::Atrium.client.make_request(:get, endpoint)
|
79
78
|
|
80
79
|
return nil if challenge_response.nil?
|
@@ -87,14 +86,14 @@ module Atrium
|
|
87
86
|
end
|
88
87
|
|
89
88
|
def delete
|
90
|
-
endpoint = "/users/#{
|
89
|
+
endpoint = "/users/#{user_guid}/members/#{guid}"
|
91
90
|
::Atrium.client.make_request(:delete, endpoint)
|
92
91
|
|
93
92
|
self
|
94
93
|
end
|
95
94
|
|
96
95
|
def read_account(account_guid:)
|
97
|
-
endpoint = "/users/#{
|
96
|
+
endpoint = "/users/#{user_guid}/members/#{guid}/accounts/#{account_guid}"
|
98
97
|
account_response = ::Atrium.client.make_request(:get, endpoint)
|
99
98
|
|
100
99
|
account_params = account_response["account"]
|
@@ -102,27 +101,27 @@ module Atrium
|
|
102
101
|
end
|
103
102
|
|
104
103
|
def resume(challenge_credentials)
|
105
|
-
endpoint = "/users/#{
|
104
|
+
endpoint = "/users/#{user_guid}/members/#{guid}/resume"
|
106
105
|
body = resume_params(challenge_credentials)
|
107
106
|
member_response = ::Atrium.client.make_request(:put, endpoint, body)
|
108
107
|
|
109
108
|
member_params = member_response["member"]
|
110
|
-
|
109
|
+
assign_attributes(member_params)
|
111
110
|
self
|
112
111
|
end
|
113
112
|
|
114
113
|
def update(params)
|
115
|
-
endpoint = "/users/#{
|
114
|
+
endpoint = "/users/#{user_guid}/members/#{guid}"
|
116
115
|
body = member_body(params)
|
117
116
|
member_response = ::Atrium.client.make_request(:put, endpoint, body)
|
118
117
|
|
119
118
|
member_params = member_response["member"]
|
120
|
-
|
119
|
+
assign_attributes(member_params)
|
121
120
|
self
|
122
121
|
end
|
123
122
|
|
124
123
|
def transactions
|
125
|
-
endpoint = "/users/#{
|
124
|
+
endpoint = "/users/#{user_guid}/members/#{guid}/transactions"
|
126
125
|
transactions_response = ::Atrium.client.make_request(:get, endpoint)
|
127
126
|
|
128
127
|
transactions_response["transactions"].map do |transaction|
|
@@ -141,20 +140,9 @@ module Atrium
|
|
141
140
|
}
|
142
141
|
}
|
143
142
|
end
|
143
|
+
private_class_method :create_params
|
144
144
|
|
145
|
-
|
146
|
-
{
|
147
|
-
:member => {
|
148
|
-
:credentials => params[:credentials],
|
149
|
-
:identifier => params[:identifier],
|
150
|
-
:institution_code => params[:institution_code],
|
151
|
-
:metadata => params[:metadata]
|
152
|
-
}
|
153
|
-
}
|
154
|
-
end
|
155
|
-
private_class_method :create_params, :member_body
|
156
|
-
|
157
|
-
private
|
145
|
+
private
|
158
146
|
|
159
147
|
##
|
160
148
|
# PRIVATE INSTANCE METHODS
|
data/lib/atrium/paginate.rb
CHANGED
@@ -9,12 +9,13 @@ module Atrium
|
|
9
9
|
|
10
10
|
def endpoint_name(query_params: nil)
|
11
11
|
@endpoint = if query_params.present?
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
"/" + klass_name + "?" + URI.encode_www_form(query_params) + "&"
|
13
|
+
else
|
14
|
+
"/" + klass_name + "?"
|
15
|
+
end
|
16
16
|
end
|
17
17
|
|
18
|
+
# rubocop:disable Style/AccessorMethodName
|
18
19
|
def get_total_pages
|
19
20
|
@current_page = INITIAL_PAGE
|
20
21
|
|
@@ -24,23 +25,24 @@ module Atrium
|
|
24
25
|
pagination = response["pagination"]
|
25
26
|
@total_pages = pagination["total_pages"]
|
26
27
|
end
|
28
|
+
# rubocop:enable Style/AccessorMethodName
|
27
29
|
|
28
30
|
def klass_name
|
29
|
-
@klass_name ||=
|
31
|
+
@klass_name ||= name.gsub("Atrium::", "").downcase.pluralize
|
30
32
|
end
|
31
33
|
|
32
34
|
def paginate_endpoint(query_params: nil, limit: nil)
|
33
|
-
endpoint_name(query_params
|
35
|
+
endpoint_name(:query_params => query_params)
|
34
36
|
get_total_pages
|
35
|
-
response_list(limit
|
37
|
+
response_list(:limit => limit)
|
36
38
|
end
|
37
39
|
|
38
40
|
def paginate_endpoint_in_batches(query_params: nil, limit: nil, &block)
|
39
41
|
return "method requires block to be passed" unless block_given?
|
40
42
|
|
41
|
-
endpoint_name(query_params
|
43
|
+
endpoint_name(:query_params => query_params)
|
42
44
|
get_total_pages
|
43
|
-
response_list_in_batches(limit
|
45
|
+
response_list_in_batches(:limit => limit, &block)
|
44
46
|
end
|
45
47
|
|
46
48
|
def records_per_page
|
@@ -53,12 +55,12 @@ module Atrium
|
|
53
55
|
list = []
|
54
56
|
|
55
57
|
until current_page > total_pages
|
56
|
-
paginated_endpoint =
|
58
|
+
paginated_endpoint = endpoint + "page=#{current_page}&records_per_page=#{records_per_page}"
|
57
59
|
response = ::Atrium.client.make_request(:get, paginated_endpoint)
|
58
60
|
|
59
61
|
# Add new objects to the list
|
60
|
-
response[
|
61
|
-
list <<
|
62
|
+
response[klass_name.to_s].each do |params|
|
63
|
+
list << new(params)
|
62
64
|
end
|
63
65
|
@current_page += 1
|
64
66
|
end
|
@@ -70,17 +72,17 @@ module Atrium
|
|
70
72
|
end
|
71
73
|
end
|
72
74
|
|
73
|
-
def response_list_in_batches(limit: nil
|
75
|
+
def response_list_in_batches(limit: nil)
|
74
76
|
# "total_pages > 1" check exists since some query_params only return 1 page
|
75
77
|
@total_pages = limit / records_per_page if limit.present? && total_pages > 1
|
76
78
|
|
77
79
|
until current_page > total_pages
|
78
|
-
paginated_endpoint =
|
80
|
+
paginated_endpoint = endpoint + "page=#{current_page}&records_per_page=#{records_per_page}"
|
79
81
|
response = ::Atrium.client.make_request(:get, paginated_endpoint)
|
80
82
|
list = []
|
81
83
|
|
82
|
-
response[
|
83
|
-
list <<
|
84
|
+
response[klass_name.to_s].each do |params|
|
85
|
+
list << new(params)
|
84
86
|
end
|
85
87
|
@current_page += 1
|
86
88
|
yield list
|
data/lib/atrium/user.rb
CHANGED
@@ -41,7 +41,7 @@ module Atrium
|
|
41
41
|
# INSTANCE METHODS
|
42
42
|
#
|
43
43
|
def accounts
|
44
|
-
endpoint = "/users/#{
|
44
|
+
endpoint = "/users/#{guid}/accounts"
|
45
45
|
response = ::Atrium.client.make_request(:get, endpoint)
|
46
46
|
|
47
47
|
response["accounts"].map do |account|
|
@@ -50,14 +50,14 @@ module Atrium
|
|
50
50
|
end
|
51
51
|
|
52
52
|
def delete
|
53
|
-
endpoint = "/users/#{
|
53
|
+
endpoint = "/users/#{guid}"
|
54
54
|
::Atrium.client.make_request(:delete, endpoint)
|
55
55
|
|
56
56
|
self
|
57
57
|
end
|
58
58
|
|
59
59
|
def members
|
60
|
-
endpoint = "/users/#{
|
60
|
+
endpoint = "/users/#{guid}/members"
|
61
61
|
response = ::Atrium.client.make_request(:get, endpoint)
|
62
62
|
|
63
63
|
response["members"].map do |member|
|
@@ -66,7 +66,7 @@ module Atrium
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def transactions
|
69
|
-
endpoint = "/users/#{
|
69
|
+
endpoint = "/users/#{guid}/transactions"
|
70
70
|
response = ::Atrium.client.make_request(:get, endpoint)
|
71
71
|
|
72
72
|
response["transactions"].map do |transaction|
|
@@ -75,16 +75,16 @@ module Atrium
|
|
75
75
|
end
|
76
76
|
|
77
77
|
def update(params)
|
78
|
-
endpoint = "/users/#{
|
78
|
+
endpoint = "/users/#{guid}"
|
79
79
|
body = update_params(params)
|
80
80
|
response = ::Atrium.client.make_request(:put, endpoint, body)
|
81
81
|
|
82
82
|
user_params = response["user"]
|
83
|
-
|
83
|
+
assign_attributes(user_params)
|
84
84
|
self
|
85
85
|
end
|
86
86
|
|
87
|
-
|
87
|
+
private
|
88
88
|
|
89
89
|
def update_params(params)
|
90
90
|
{
|
@@ -101,5 +101,6 @@ module Atrium
|
|
101
101
|
}
|
102
102
|
}
|
103
103
|
end
|
104
|
+
private_class_method :user_body
|
104
105
|
end
|
105
106
|
end
|
data/lib/atrium/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: atrium-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Carstens, Dan Jones, Zach Toolson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-08-
|
11
|
+
date: 2017-08-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active_attr
|
@@ -94,6 +94,62 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: simplecov
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: vcr
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: webmock
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: mad_rubocop
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
97
153
|
description: Ruby wrapper for the Atrium API by MX
|
98
154
|
email:
|
99
155
|
- jon.carstens@mx.com, dan.jones@mx.com, zach.toolson@mx.com
|
@@ -102,6 +158,7 @@ extensions: []
|
|
102
158
|
extra_rdoc_files: []
|
103
159
|
files:
|
104
160
|
- ".gitignore"
|
161
|
+
- ".rubocop.yml"
|
105
162
|
- ".travis.yml"
|
106
163
|
- Gemfile
|
107
164
|
- README.md
|
@@ -114,6 +171,7 @@ files:
|
|
114
171
|
- lib/atrium/account.rb
|
115
172
|
- lib/atrium/challenge.rb
|
116
173
|
- lib/atrium/client.rb
|
174
|
+
- lib/atrium/connect.rb
|
117
175
|
- lib/atrium/credential.rb
|
118
176
|
- lib/atrium/error.rb
|
119
177
|
- lib/atrium/institution.rb
|