roo_on_rails 1.6.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 86a6e1968fee13a33195ed5cf08d932a4852e3b6
4
- data.tar.gz: 4d5aeb9679bdd99c13235f49135bd4128ed9a253
3
+ metadata.gz: 8adca9db27e5e65ab629420b4d02f4900a9c9629
4
+ data.tar.gz: e50c1756717e4f484684ae31de1653527ee1b081
5
5
  SHA512:
6
- metadata.gz: 5c00030e5e763d19b2270f5193aea9c0d678818bd68f3e87236a5fe8d6766d93c35a8e88fbb86c082e7aca02d9fb9b34e4af9e9bf749642303fc1faf25c29d11
7
- data.tar.gz: 3ac8b6245abd46a6ff7562b29234b58d5326f15b6cc052574b7aa7232815106b88b915c11fab4bbf65ffa3a5f319a07e112c556470e9124bbd30caeaf8dd7d1a
6
+ metadata.gz: fc9a1b2dfc35fff8b74f8a749e6f2858ac8c41d7a8d20b012d2d75d107581bc2643ec44ab2c01ec125f1419c92af06cbad55dca42b9eaa08f8487e554c0d62d9
7
+ data.tar.gz: 3d8545de35da3827a95ba6ad2d74367d662e4d09e5f0b900aaa567cf5f200b61ea0a7ed6f5110e64ccd0e81c82dbc59160ce877010d55a03a38d0540909093b7
@@ -1,8 +1,15 @@
1
+ # v1.7.0 (2017-07-18)
2
+
3
+ Features:
4
+
5
+ - Adds check for Papertrail integration (#43)
6
+
1
7
  # v1.6.0 (2017-07-11)
2
8
 
3
9
  Features:
4
10
 
5
- - Adds check for a `PLAYBOOK.md` file, which should detail how to deal with issues which might occur with the service.
11
+ - Adds check for a `PLAYBOOK.md` file, which should detail how to deal with
12
+ issues which might occur with the service (#41)
6
13
 
7
14
  Bug fixes:
8
15
 
data/Gemfile CHANGED
@@ -6,6 +6,7 @@ gemspec
6
6
  gem 'guard'
7
7
  gem 'guard-rspec'
8
8
  gem 'appraisal'
9
+ gem 'webmock'
9
10
 
10
11
  gem 'pg'
11
12
  gem 'sqlite3'
data/README.md CHANGED
@@ -1,6 +1,35 @@
1
1
  ## `roo_on_rails` [![Gem Version](https://badge.fury.io/rb/roo_on_rails.svg)](https://badge.fury.io/rb/roo_on_rails) [![Build Status](https://travis-ci.org/deliveroo/roo_on_rails.svg?branch=master)](https://travis-ci.org/deliveroo/roo_on_rails) [![Code Climate](https://codeclimate.com/repos/58809e664ab8420081007382/badges/3489b7689ab2e0cf5d61/gpa.svg)](https://codeclimate.com/repos/58809e664ab8420081007382/feed)
2
2
 
3
- A gem that makes following our [guidelines](http://deliveroo.engineering/guidelines/services/) easy.
3
+
4
+ `roo_on_rails` is:
5
+
6
+ 1. A library that extends Rails (as a set of Railties) and auto-configures common
7
+ dependencies.
8
+ 2. A command that checks whether an application's Github repository and Heroku
9
+ instanciations are compliant.
10
+
11
+ ... packaged into a gem, to make following our
12
+ [guidelines](http://deliveroo.engineering/guidelines/services/) easy.
13
+
14
+ <!-- START doctoc generated TOC please keep comment here to allow auto update -->
15
+ <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
16
+ **Table of Contents**
17
+
18
+ - [Installation](#installation)
19
+ - [Usage](#usage)
20
+ - [Library features](#library-features)
21
+ - [New Relic configuration](#new-relic-configuration)
22
+ - [Rack middleware](#rack-middleware)
23
+ - [Database configuration](#database-configuration)
24
+ - [Sidekiq](#sidekiq)
25
+ - [HireFire Workers](#hirefire-workers)
26
+ - [Logging](#logging)
27
+ - [Google Oauth](#google-oauth)
28
+ - [Command features](#command-features)
29
+ - [Contributing](#contributing)
30
+ - [License](#license)
31
+
32
+ <!-- END doctoc generated TOC please keep comment here to allow auto update -->
4
33
 
5
34
  ## Installation
6
35
 
@@ -30,25 +59,7 @@ Then re-run your test suite to make sure everything is shipshape.
30
59
 
31
60
  ## Usage
32
61
 
33
- Run the following from your app's top-level directory:
34
-
35
- ```
36
- bundle exec roo_on_rails
37
- ```
38
-
39
- This will run a series of checks of your application's setup, as descirbed
40
- below.
41
-
42
-
43
- ## Features
44
-
45
- ### App validation
46
-
47
- Running the `roo_on_rails` script currently checks for:
48
-
49
- - compliant Heroku app naming;
50
- - presence of the Heroku preboot flag;
51
- - correct Github master branch protection.
62
+ ## Configuration and usage
52
63
 
53
64
  ### New Relic configuration
54
65
 
@@ -63,73 +74,63 @@ We enforce configuration of New Relic.
63
74
  3. The `NEW_RELIC_APP_NAME` environment variable must be defined
64
75
  such that the app will be properly registered in New Relic.
65
76
 
66
- No further configuration is required for production apps as the gem configures our standard settings.
67
-
68
- However if you have Heroku's [review apps](https://devcenter.heroku.com/articles/github-integration-review-apps) enabled then you will need to update `app.json` so that it lists `NEW_RELIC_LICENSE_KEY` in the `env` section, so that this key is copied from the parent app (only keys listed here will be created on the review app; either generated, if that is specified, or otherwise copied).
69
-
70
- More documentation is available [directly from heroku](https://devcenter.heroku.com/articles/github-integration-review-apps#inheriting-config-vars) but the block below has been helpful in other apps:
71
-
72
- ```json
73
- "env": {
74
- "NEW_RELIC_LICENSE_KEY": {
75
- "description": "The New Relic licence key",
76
- "required": true
77
- },
78
- "NEW_RELIC_APP_NAME": {
79
- "description": "The application name to be registered in New Relic",
80
- "required": true
81
- },
82
- "SECRET_KEY_BASE": {
83
- "description": "A secret basis for the key which verifies the integrity of signed cookies.",
84
- "generator": "secret"
85
- },
86
- "RACK_ENV": {
87
- "description": "The name of the environment for Rack."
88
- },
89
- "RAILS_ENV": {
90
- "description": "The name of the environment for Rails."
91
- }
92
- },
93
- ```
77
+ No further configuration is required for production apps as the gem configures
78
+ our standard settings.
94
79
 
95
80
  ### Rack middleware
96
81
 
97
82
  We'll insert the following middlewares into the rails stack:
98
83
 
99
- 1. `Rack::Timeout`: sets a timeout for all requests. Use `RACK_SERVICE_TIMEOUT` (default 15) and `RACK_WAIT_TIMEOUT` (default 30) to customise.
84
+ 1. `Rack::Timeout`: sets a timeout for all requests. Use `RACK_SERVICE_TIMEOUT`
85
+ (default 15) and `RACK_WAIT_TIMEOUT` (default 30) to customise.
100
86
  2. `Rack::SslEnforcer`: enforces HTTPS.
101
- 3. `Rack::Deflater`: compresses responses from the application, can be disabled with `ROO_ON_RAILS_RACK_DEFLATE` (default: 'YES').
87
+ 3. `Rack::Deflater`: compresses responses from the application, can be disabled
88
+ with `ROO_ON_RAILS_RACK_DEFLATE` (default: 'YES').
89
+ 4. Optional middlewares for Google Oauth2 (more below).
102
90
 
103
91
  ### Database configuration
104
92
 
105
- The database statement timeout will be set to a low value by default. Use `DATABASE_STATEMENT_TIMEOUT` (milliseconds, default 200) to customise.
93
+ The database statement timeout will be set to a low value by default. Use
94
+ `DATABASE_STATEMENT_TIMEOUT` (milliseconds, default 200) to customise.
106
95
 
107
- For database creation and migration (specifically the `db:create`, `db:migrate`, `db:migrate:down` and `db:rollback` tasks) a much higher statement timeout is set by default. Use `MIGRATION_STATEMENT_TIMEOUT` (milliseconds, default 10000) to customise.
96
+ For database creation and migration (specifically the `db:create`, `db:migrate`,
97
+ `db:migrate:down` and `db:rollback` tasks) a much higher statement timeout is
98
+ set by default. Use `MIGRATION_STATEMENT_TIMEOUT` (milliseconds, default 10000)
99
+ to customise.
108
100
 
109
- _Note: This configuration is not supported in Rails 3 and will be skipped. Set statement timeouts directly in the database._
101
+ _Note: This configuration is not supported in Rails 3 and will be skipped. Set
102
+ statement timeouts directly in the database._
110
103
 
111
104
  ### Sidekiq
112
105
 
113
106
  When `SIDEKIQ_ENABLED` is set we'll:
114
107
 
115
- - check for the existence of a worker line in your Procfile
116
- - add SLA style queues to your worker list
117
- - check for a `HIREFIRE_TOKEN` and if it's set enable SLA based autoscaling
108
+ - check for the existence of a worker line in your Procfile;
109
+ - add SLA style queues to your worker list;
110
+ - check for a `HIREFIRE_TOKEN` and if it's set enable SLA based autoscaling;
118
111
 
119
112
  The following ENV are available:
120
113
 
121
- - `SIDEKIQ_ENABLED`
122
- - `SIDEKIQ_THREADS` (default: 25) - Sets sidekiq concurrency value
123
- - `SIDEKIQ_DATABASE_REAPING_FREQUENCY` (default: 10) - For sidekiq processes the amount of time in seconds rails will wait before attempting to find and recover connections from dead threads
114
+ - `SIDEKIQ_ENABLED`
115
+ - `SIDEKIQ_THREADS` (default: 25) - Sets sidekiq concurrency value
116
+ - `SIDEKIQ_DATABASE_REAPING_FREQUENCY` (default: 10) - For sidekiq processes the
117
+ amount of time in seconds rails will wait before attempting to find and
118
+ recover connections from dead threads
124
119
 
125
- ### HireFire Workers
120
+ ### HireFire (for Sidekiq workers)
126
121
 
127
- When `HIREFIRE_TOKEN` is set an endpoint will be mounted at /hirefire that reports the required worker count as a function of queue latency. By default we add queue names in the style 'within1day', so if we notice an average latency in that queue of more than an set threshold we'll request one more worker. If we notice less than a threshold we'll request one less worker. These settings can be customised via the following ENV variables
122
+ When `HIREFIRE_TOKEN` is set an endpoint will be mounted at `/hirefire` that
123
+ reports the required worker count as a function of queue latency. By default we
124
+ add queue names in the style 'within1day', so if we notice an average latency in
125
+ that queue of more than an set threshold we'll request one more worker. If we
126
+ notice less than a threshold we'll request one less worker. These settings can
127
+ be customised via the following ENV variables
128
128
 
129
- - `WORKER_INCREASE_THRESHOLD` (default 0.5)
130
- - `WORKER_DECREASE_THRESHOLD` (default 0.1)
129
+ - `WORKER_INCREASE_THRESHOLD` (default 0.5)
130
+ - `WORKER_DECREASE_THRESHOLD` (default 0.1)
131
131
 
132
- When setting the manager up in the HireFire web ui, the following settings must be used:
132
+ When setting the manager up in the HireFire web ui, the following settings must
133
+ be used:
133
134
 
134
135
  - name: 'worker'
135
136
  - type: 'Worker.HireFire.JobQueue'
@@ -138,7 +139,9 @@ When setting the manager up in the HireFire web ui, the following settings must
138
139
 
139
140
  ### Logging
140
141
 
141
- For clearer and machine-parseable log output, there in an extension to be able to add context to your logs which is output as [logfmt](https://brandur.org/logfmt) key/value pairs after the log message.
142
+ For clearer and machine-parseable log output, there in an extension to be able
143
+ to add context to your logs which is output as
144
+ [logfmt](https://brandur.org/logfmt) key/value pairs after the log message.
142
145
 
143
146
  ```ruby
144
147
  # application.rb
@@ -167,13 +170,68 @@ logger.with(a: 1) { logger.with(b: 2) { logger.info('Stuff') } }
167
170
  logger.with(a: 1, b: 2).info('Stuff')
168
171
  ```
169
172
 
170
- See the [class documentation](lib/roo_on_rails/context_logging.rb) for further details.
173
+ See the [class documentation](lib/roo_on_rails/context_logging.rb) for further
174
+ details.
175
+
176
+ ### Google Oauth
177
+
178
+ When `GOOGLE_AUTH_ENABLED` is set to true we'll:
179
+
180
+ * Inject a `Omniauth` Rack middleware with a pre-configured strategy for Google
181
+ Oauth2.
182
+ * Onject custom Rack middleare to handle Oauth callback requests.
183
+ * Generate the `config/initializers/google_oauth.rb` file that contains some
184
+ examples of how to wire in your authentication logic.
185
+
186
+ To use this functionality, you must:
187
+
188
+ * Obtain the Oauth2 credentials from Google and configure them in
189
+ `GOOGLE_AUTH_CLIENT_ID` and `GOOGLE_AUTH_CLIENT_SECRET`.
190
+ * Provide in `GOOGLE_AUTH_ALLOWED_DOMAINS` a comma-separated list of domains, to
191
+ whitelist the allowed email addresses.
192
+ * Customize the code in the generated Rails initializer to hook into your
193
+ application's authentication logic.
194
+ * Update your Rails controllers to require authentication, when necessary.
195
+
196
+
197
+ ## Command features
198
+
199
+ ### Usage
200
+
201
+ Run the following from your app's top-level directory:
202
+
203
+ ```
204
+ bundle exec roo_on_rails
205
+ ```
206
+
207
+ You will (currently) need to have admin privileges on the
208
+ `roo-dd-bridge-production` application for this to work. This will be addressed
209
+ eventually.
210
+
211
+
212
+ ### Description
213
+
214
+ Running the `roo_on_rails` command currently checks for:
215
+
216
+ - the presence of `PLAYBOOK.md`
217
+ - compliant Heroku app naming;
218
+ - presence of the Heroku preboot flag;
219
+ - correct Github master branch protection;
220
+ - integration with the Heroku-Datadog metrics bridge (for CPU, memory, request
221
+ throughput data);
222
+ - integration with Papertrail;
223
+ - correct Sidekiq configuration.
224
+
225
+ The command is designed to fix issues in many cases.
226
+
171
227
 
172
228
  ## Contributing
173
229
 
174
- Bug reports and pull requests are welcome on GitHub at https://github.com/deliveroo/roo_on_rails.
230
+ Pull requests are welcome on GitHub at
231
+ `https://github.com/deliveroo/roo_on_rails`.
175
232
 
176
233
 
177
234
  ## License
178
235
 
179
- The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
236
+ The gem is available as open source under the terms of the [MIT
237
+ License](http://opensource.org/licenses/MIT).
@@ -3,6 +3,11 @@
3
3
  require "bundler/setup"
4
4
  require "roo_on_rails"
5
5
 
6
+ require 'roo_on_rails/environment'
7
+ RooOnRails::Environment.load
8
+
9
+ require 'roo_on_rails/config'
10
+
6
11
  # You can add fixtures and/or initialization code here to make experimenting
7
12
  # with your gem easier. You can also use a different console, if you like.
8
13
 
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_RETRY: "1"
@@ -5,6 +5,7 @@ source "https://rubygems.org"
5
5
  gem "guard"
6
6
  gem "guard-rspec"
7
7
  gem "appraisal"
8
+ gem "webmock"
8
9
  gem "pg"
9
10
  gem "sqlite3"
10
11
  gem "rails", "~> 3.2"
@@ -1,13 +1,16 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- roo_on_rails (1.6.0)
4
+ roo_on_rails (1.7.0)
5
5
  dogstatsd-ruby
6
6
  dotenv-rails (~> 2.1)
7
+ faraday
8
+ faraday_middleware
7
9
  hashie (~> 3.4)
8
10
  hirefire-resource
9
11
  newrelic_rpm
10
12
  octokit
13
+ omniauth-google-oauth2
11
14
  platform-api (~> 2.0)
12
15
  rack-ssl-enforcer
13
16
  rack-timeout
@@ -60,6 +63,8 @@ GEM
60
63
  coderay (1.1.1)
61
64
  concurrent-ruby (1.0.5)
62
65
  connection_pool (2.2.1)
66
+ crack (0.4.3)
67
+ safe_yaml (~> 1.0.0)
63
68
  diff-lcs (1.3)
64
69
  docile (1.1.5)
65
70
  dogstatsd-ruby (3.0.0)
@@ -71,6 +76,8 @@ GEM
71
76
  excon (0.57.1)
72
77
  faraday (0.12.1)
73
78
  multipart-post (>= 1.2, < 3)
79
+ faraday_middleware (0.11.0.1)
80
+ faraday (>= 0.7.4, < 1.0)
74
81
  ffi (1.9.18)
75
82
  formatador (0.2.5)
76
83
  guard (2.14.1)
@@ -87,7 +94,8 @@ GEM
87
94
  guard (~> 2.1)
88
95
  guard-compat (~> 1.1)
89
96
  rspec (>= 2.99.0, < 4.0)
90
- hashie (3.5.5)
97
+ hashdiff (0.3.4)
98
+ hashie (3.5.6)
91
99
  heroics (0.0.23)
92
100
  erubis (~> 2.0)
93
101
  excon
@@ -97,6 +105,7 @@ GEM
97
105
  i18n (0.8.4)
98
106
  journey (1.0.4)
99
107
  json (1.8.6)
108
+ jwt (1.5.6)
100
109
  listen (3.1.5)
101
110
  rb-fsevent (~> 0.9, >= 0.9.4)
102
111
  rb-inotify (~> 0.9, >= 0.9.7)
@@ -110,14 +119,32 @@ GEM
110
119
  mime-types (1.25.1)
111
120
  moneta (0.8.1)
112
121
  multi_json (1.12.1)
122
+ multi_xml (0.6.0)
113
123
  multipart-post (2.0.0)
114
124
  nenv (0.3.0)
115
125
  newrelic_rpm (4.2.0.334)
116
126
  notiffany (0.1.1)
117
127
  nenv (~> 0.1)
118
128
  shellany (~> 0.0)
129
+ oauth2 (1.4.0)
130
+ faraday (>= 0.8, < 0.13)
131
+ jwt (~> 1.0)
132
+ multi_json (~> 1.3)
133
+ multi_xml (~> 0.5)
134
+ rack (>= 1.2, < 3)
119
135
  octokit (4.7.0)
120
136
  sawyer (~> 0.8.0, >= 0.5.3)
137
+ omniauth (1.4.2)
138
+ hashie (>= 1.2, < 4)
139
+ rack (>= 1.0, < 3)
140
+ omniauth-google-oauth2 (0.5.0)
141
+ jwt (~> 1.5)
142
+ multi_json (~> 1.3)
143
+ omniauth (>= 1.1.1)
144
+ omniauth-oauth2 (>= 1.3.1)
145
+ omniauth-oauth2 (1.4.0)
146
+ oauth2 (~> 1.0)
147
+ omniauth (~> 1.2)
121
148
  pg (0.21.0)
122
149
  platform-api (2.1.0)
123
150
  heroics (~> 0.0.23)
@@ -178,6 +205,7 @@ GEM
178
205
  rspec-support (~> 3.6.0)
179
206
  rspec-support (3.6.0)
180
207
  ruby_dep (1.5.0)
208
+ safe_yaml (1.0.4)
181
209
  sawyer (0.8.1)
182
210
  addressable (>= 2.3.5, < 2.6)
183
211
  faraday (~> 0.8, < 1.0)
@@ -206,6 +234,10 @@ GEM
206
234
  polyglot (>= 0.3.1)
207
235
  tzinfo (0.3.53)
208
236
  url (0.3.2)
237
+ webmock (3.0.1)
238
+ addressable (>= 2.3.6)
239
+ crack (>= 0.3.2)
240
+ hashdiff
209
241
 
210
242
  PLATFORMS
211
243
  ruby
@@ -219,6 +251,7 @@ DEPENDENCIES
219
251
  memfs
220
252
  pg
221
253
  pry-byebug
254
+ rack-test
222
255
  rails (~> 3.2)
223
256
  rake (~> 10.0)
224
257
  roo_on_rails!
@@ -227,6 +260,7 @@ DEPENDENCIES
227
260
  simplecov
228
261
  sqlite3
229
262
  thor (~> 0.19)
263
+ webmock
230
264
 
231
265
  BUNDLED WITH
232
266
  1.14.6
@@ -5,6 +5,7 @@ source "https://rubygems.org"
5
5
  gem "guard"
6
6
  gem "guard-rspec"
7
7
  gem "appraisal"
8
+ gem "webmock"
8
9
  gem "pg"
9
10
  gem "sqlite3"
10
11
  gem "rails", "~> 4.2"
@@ -1,13 +1,16 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- roo_on_rails (1.6.0)
4
+ roo_on_rails (1.7.0)
5
5
  dogstatsd-ruby
6
6
  dotenv-rails (~> 2.1)
7
+ faraday
8
+ faraday_middleware
7
9
  hashie (~> 3.4)
8
10
  hirefire-resource
9
11
  newrelic_rpm
10
12
  octokit
13
+ omniauth-google-oauth2
11
14
  platform-api (~> 2.0)
12
15
  rack-ssl-enforcer
13
16
  rack-timeout
@@ -67,6 +70,8 @@ GEM
67
70
  coderay (1.1.1)
68
71
  concurrent-ruby (1.0.5)
69
72
  connection_pool (2.2.1)
73
+ crack (0.4.3)
74
+ safe_yaml (~> 1.0.0)
70
75
  diff-lcs (1.3)
71
76
  docile (1.1.5)
72
77
  dogstatsd-ruby (3.0.0)
@@ -78,6 +83,8 @@ GEM
78
83
  excon (0.57.1)
79
84
  faraday (0.12.1)
80
85
  multipart-post (>= 1.2, < 3)
86
+ faraday_middleware (0.11.0.1)
87
+ faraday (>= 0.7.4, < 1.0)
81
88
  ffi (1.9.18)
82
89
  formatador (0.2.5)
83
90
  globalid (0.4.0)
@@ -96,7 +103,8 @@ GEM
96
103
  guard (~> 2.1)
97
104
  guard-compat (~> 1.1)
98
105
  rspec (>= 2.99.0, < 4.0)
99
- hashie (3.5.5)
106
+ hashdiff (0.3.4)
107
+ hashie (3.5.6)
100
108
  heroics (0.0.23)
101
109
  erubis (~> 2.0)
102
110
  excon
@@ -104,6 +112,7 @@ GEM
104
112
  hirefire-resource (0.4.2)
105
113
  i18n (0.8.4)
106
114
  json (2.1.0)
115
+ jwt (1.5.6)
107
116
  listen (3.1.5)
108
117
  rb-fsevent (~> 0.9, >= 0.9.4)
109
118
  rb-inotify (~> 0.9, >= 0.9.7)
@@ -122,6 +131,7 @@ GEM
122
131
  minitest (5.10.2)
123
132
  moneta (0.8.1)
124
133
  multi_json (1.12.1)
134
+ multi_xml (0.6.0)
125
135
  multipart-post (2.0.0)
126
136
  nenv (0.3.0)
127
137
  newrelic_rpm (4.2.0.334)
@@ -130,8 +140,25 @@ GEM
130
140
  notiffany (0.1.1)
131
141
  nenv (~> 0.1)
132
142
  shellany (~> 0.0)
143
+ oauth2 (1.4.0)
144
+ faraday (>= 0.8, < 0.13)
145
+ jwt (~> 1.0)
146
+ multi_json (~> 1.3)
147
+ multi_xml (~> 0.5)
148
+ rack (>= 1.2, < 3)
133
149
  octokit (4.7.0)
134
150
  sawyer (~> 0.8.0, >= 0.5.3)
151
+ omniauth (1.6.1)
152
+ hashie (>= 3.4.6, < 3.6.0)
153
+ rack (>= 1.6.2, < 3)
154
+ omniauth-google-oauth2 (0.5.0)
155
+ jwt (~> 1.5)
156
+ multi_json (~> 1.3)
157
+ omniauth (>= 1.1.1)
158
+ omniauth-oauth2 (>= 1.3.1)
159
+ omniauth-oauth2 (1.4.0)
160
+ oauth2 (~> 1.0)
161
+ omniauth (~> 1.2)
135
162
  pg (0.21.0)
136
163
  platform-api (2.1.0)
137
164
  heroics (~> 0.0.23)
@@ -194,6 +221,7 @@ GEM
194
221
  rspec-support (~> 3.6.0)
195
222
  rspec-support (3.6.0)
196
223
  ruby_dep (1.5.0)
224
+ safe_yaml (1.0.4)
197
225
  sawyer (0.8.1)
198
226
  addressable (>= 2.3.5, < 2.6)
199
227
  faraday (~> 0.8, < 1.0)
@@ -222,6 +250,10 @@ GEM
222
250
  tzinfo (1.2.3)
223
251
  thread_safe (~> 0.1)
224
252
  url (0.3.2)
253
+ webmock (3.0.1)
254
+ addressable (>= 2.3.6)
255
+ crack (>= 0.3.2)
256
+ hashdiff
225
257
 
226
258
  PLATFORMS
227
259
  ruby
@@ -235,6 +267,7 @@ DEPENDENCIES
235
267
  memfs
236
268
  pg
237
269
  pry-byebug
270
+ rack-test
238
271
  rails (~> 4.2)
239
272
  rake (~> 10.0)
240
273
  roo_on_rails!
@@ -242,6 +275,7 @@ DEPENDENCIES
242
275
  simplecov
243
276
  sqlite3
244
277
  thor (~> 0.19)
278
+ webmock
245
279
 
246
280
  BUNDLED WITH
247
281
  1.14.6