atrium-ruby 0.4.3 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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 [![Build Status](https://travis-ci.org/mxenabled/atrium-ruby.svg?branch=master)](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
|