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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1a2f54ad9be7cba045db2d902ce3e3e4c071f917
4
- data.tar.gz: 191b3c86c948477d2d82cff9c66258e1348991ef
3
+ metadata.gz: 245392ec9efa63cc44d3d292397c47a32a03a16b
4
+ data.tar.gz: 4a07efc49acf876f734942c70b9f2e0fb6cd62d5
5
5
  SHA512:
6
- metadata.gz: d295f5e1379ad37a4992b11d79f048299ad90557cd47a6363806aca3bedb131e95616cfcc82c8e5dac0df17cb940f813ccad52af25a9d59b85a534a89ec0240d
7
- data.tar.gz: 3cca73816865d03d5e2347b485dbf98264fb441e176ae258492249ece3cba8e0c6ddbf1cc9f8f75838e19019cb5446f4e094ce8bcccc994d4dc0c0d65e0960ca
6
+ metadata.gz: a3a18069855ba1a1b7b5076d5428fc856729b1a90a47ac9eab4478ef248922683193317ddce8956602895adb466e4912500dcbd8e02a4fce25ab639fab73fea1
7
+ data.tar.gz: 3073ba5011c23cf91cd44041d660cf258a29ccb2857f677e57841cd880d7cc01e0fee1896db94b689807fc2a18b86640d263626e58cb438c724d0c7bfbd8d1a4
data/.rubocop.yml ADDED
@@ -0,0 +1,10 @@
1
+ # inherit_from: .rubocop_todo.yml
2
+ inherit_gem:
3
+ mad_rubocop: .rubocop.yml
4
+ AllCops:
5
+ TargetRubyVersion: 2.3
6
+ Include:
7
+ - 'Gemfile'
8
+ - 'Rakefile'
9
+ Style/FrozenStringLiteralComment:
10
+ Enabled: false
data/.travis.yml CHANGED
@@ -1,9 +1,11 @@
1
1
  language: ruby
2
+ rvm:
3
+ - 2.4
4
+ - 2.3
2
5
  sudo: false
3
6
  cache: bundler
4
- branches:
5
- only:
6
- - master
7
+ before_script:
8
+ - bundle exec rubocop
7
9
  notifications:
8
10
  email:
9
11
  on_success: never
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in mx-atrium-ruby.gemspec
4
4
  gemspec
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
- lib = File.expand_path('../lib', __FILE__)
2
+
3
+ lib = File.expand_path("../lib", __FILE__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'atrium/version'
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.exists?("tmp/settings.yml")
8
+ if ::File.exist?("tmp/settings.yml")
9
9
  puts "=> Using key and ID in tmp/settings.yml ¬"
10
- ::YAML.load(::File.read("tmp/settings.yml"))
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
@@ -5,6 +5,7 @@ require "atrium/paginate"
5
5
 
6
6
  require "atrium/account"
7
7
  require "atrium/client"
8
+ require "atrium/connect"
8
9
  require "atrium/credential"
9
10
  require "atrium/error"
10
11
  require "atrium/institution"
@@ -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
- accounts = accounts_response["accounts"].map do |account|
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/#{self.user_guid}/accounts/#{self.guid}/transactions"
53
+ endpoint = "/users/#{user_guid}/accounts/#{guid}/transactions"
54
54
  account_transactions_response = ::Atrium.client.make_request(:get, endpoint)
55
55
 
56
- transactions = account_transactions_response["transactions"].map do |transaction|
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 = "https://vestibule.mx.com")
6
- @mx_api_key = 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 = base_url
9
+ @base_url = base_url
9
10
  end
10
11
 
11
- def make_request(method, endpoint, body = {}, headers = {})
12
+ def make_request(method, endpoint, body = nil, headers = {})
12
13
  headers = default_headers.merge(headers)
13
- url = "#{self.base_url}#{endpoint}"
14
+ url = "#{base_url}#{endpoint}"
15
+ body = ::JSON.dump(body) if body
14
16
 
15
- response = http_client.public_send(method, url, ::JSON.dump(body), headers)
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" => "application/vnd.mx.atrium.v1+json",
30
+ "Accept" => "application/vnd.mx.atrium.v1+json",
29
31
  "Content-Type" => "application/json",
30
- "MX-API-KEY" => 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
- fail ::Atrium::Error, "#{response.status}: #{response.body}"
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
@@ -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: query_params, limit: limit)
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: query_params, limit: limit, &block)
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/#{self.user_guid}/members/#{self.guid}/accounts"
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/#{self.user_guid}/members/#{self.guid}/aggregate"
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
- self.assign_attributes(member_params)
62
+ assign_attributes(member_params)
64
63
  self
65
64
  end
66
65
 
67
66
  def aggregation_status
68
- endpoint = "/users/#{self.user_guid}/members/#{self.guid}/status"
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
- self.assign_attributes(member_params)
71
+ assign_attributes(member_params)
73
72
  self
74
73
  end
75
74
 
76
75
  def challenges
77
- endpoint = "/users/#{self.user_guid}/members/#{self.guid}/challenges"
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/#{self.user_guid}/members/#{self.guid}"
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/#{self.user_guid}/members/#{self.guid}/accounts/#{account_guid}"
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/#{self.user_guid}/members/#{self.guid}/resume"
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
- self.assign_attributes(member_params)
109
+ assign_attributes(member_params)
111
110
  self
112
111
  end
113
112
 
114
113
  def update(params)
115
- endpoint = "/users/#{self.user_guid}/members/#{self.guid}"
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
- self.assign_attributes(member_params)
119
+ assign_attributes(member_params)
121
120
  self
122
121
  end
123
122
 
124
123
  def transactions
125
- endpoint = "/users/#{self.user_guid}/members/#{self.guid}/transactions"
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
- def self.member_body(params)
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
@@ -9,12 +9,13 @@ module Atrium
9
9
 
10
10
  def endpoint_name(query_params: nil)
11
11
  @endpoint = if query_params.present?
12
- "/" + klass_name + "?" + URI.encode_www_form(query_params) + "&"
13
- else
14
- "/" + klass_name + "?"
15
- end
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 ||= self.name.gsub("Atrium::", "").downcase.pluralize
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: query_params)
35
+ endpoint_name(:query_params => query_params)
34
36
  get_total_pages
35
- response_list(limit: 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: query_params)
43
+ endpoint_name(:query_params => query_params)
42
44
  get_total_pages
43
- response_list_in_batches(limit: limit, &block)
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 = endpoint + "page=#{current_page}&records_per_page=#{records_per_page}"
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["#{klass_name}"].each do |params|
61
- list << self.new(params)
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, &block)
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 = endpoint + "page=#{current_page}&records_per_page=#{records_per_page}"
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["#{klass_name}"].each do |params|
83
- list << self.new(params)
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/#{self.guid}/accounts"
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/#{self.guid}"
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/#{self.guid}/members"
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/#{self.guid}/transactions"
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/#{self.guid}"
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
- self.assign_attributes(user_params)
83
+ assign_attributes(user_params)
84
84
  self
85
85
  end
86
86
 
87
- private
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
@@ -1,3 +1,3 @@
1
1
  module Atrium
2
- VERSION = "0.4.3"
2
+ VERSION = "0.5.0".freeze
3
3
  end
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.3
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-02 00:00:00.000000000 Z
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