omniauth_openid_connect 0.3.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8916e5d71adfaa8dd6c64c168746671ba026fec61798ee85a9393c03b36c5bbd
4
- data.tar.gz: adfa760da9122452dc6cc486fb721ef1ce32a79910b8c16a32b6b153430b3e28
3
+ metadata.gz: a57713d348ab1dcc7869b8d10ed8b616958019a0c7003a0b5e43e00e85650b0a
4
+ data.tar.gz: e6ff5320c65348937e7fa2cf140aff27f89957415ded839debcd645e01031353
5
5
  SHA512:
6
- metadata.gz: 877b098cd0f6a167cd6486a91de34668a6a8c7329ab0fb0eddcbb5914e548895db64a5e9e2ecf20308a90685f3baf29327b0a1e163d007b76e992908b398ea96
7
- data.tar.gz: 0ae557ebfc1319225171bba2fdae139a7c6a98338812bec2d3a5b50c58946f825511565c0a0d4c8d07a658a892ba2b652f78c12fd79a7fd1466c16925b85a3e5
6
+ metadata.gz: 5664e73c24e1521b4b29461eb3ee558dfb143d75322c83f2c3d3f3ee48cd24c8e99f1a348915de574abb1b907103de948cf0c16ebfebd11fa13a2e8206f13d78
7
+ data.tar.gz: 272a32b0b75f54ca1d861fe361c380d6ee2d9170b9862322f7e9b6edd12e7e2a9cfc37db95b2b549896f9ebc1d6e90272ec0a24cefc4ed195ccc90edff5476d5
data/.rubocop.yml ADDED
@@ -0,0 +1,58 @@
1
+ LineLength:
2
+ Description: 'Limit lines to 130 characters.'
3
+ Max: 130
4
+
5
+ Layout/SpaceInsideStringInterpolation:
6
+ Enabled: false
7
+
8
+ Layout/MultilineOperationIndentation:
9
+ EnforcedStyle: indented
10
+
11
+ StringLiterals:
12
+ EnforcedStyle: single_quotes
13
+
14
+ Style/TrailingCommaInArrayLiteral:
15
+ EnforcedStyleForMultiline: comma
16
+ Style/TrailingCommaInHashLiteral:
17
+ EnforcedStyleForMultiline: comma
18
+
19
+ Style/SafeNavigation:
20
+ Enabled: false
21
+
22
+ Style/EmptyMethod:
23
+ Description: 'Checks the formatting of empty method definitions.'
24
+ StyleGuide: '#no-single-line-methods'
25
+ Enabled: false
26
+
27
+ HashSyntax:
28
+ Description: "Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax\n{ :a => 1, :b => 2 }"
29
+ EnforcedStyle: ruby19
30
+ Enabled: true
31
+
32
+ RedundantBegin:
33
+ Enabled: true
34
+
35
+ Documentation:
36
+ Enabled: false
37
+
38
+ Metrics/AbcSize:
39
+ Max: 50
40
+
41
+ Metrics/CyclomaticComplexity:
42
+ Max: 50
43
+
44
+ Metrics/PerceivedComplexity:
45
+ Max: 15
46
+
47
+ Metrics/BlockLength:
48
+ Max: 40
49
+
50
+ Metrics/MethodLength:
51
+ Max: 45
52
+
53
+ AllCops:
54
+ Exclude:
55
+ - bin/**/*
56
+ - Rakefile
57
+ - config/**/*
58
+ - test/**/*
data/.travis.yml CHANGED
@@ -2,3 +2,4 @@ language: ruby
2
2
  rvm:
3
3
  - 2.4
4
4
  - 2.5
5
+ - 2.6
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # v0.3.1 (08.06.2019)
2
+
3
+ - Set default OmniAuth name to openid_connect [#23](https://github.com/m0n9oose/omniauth_openid_connect/pull/23)
4
+
1
5
  # v0.3.0 (27.04.2019)
2
6
 
3
7
  - RP-Initiated Logout phase [#5](https://github.com/m0n9oose/omniauth_openid_connect/pull/5)
data/Gemfile CHANGED
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
  gemspec
data/Guardfile CHANGED
@@ -1,11 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # A sample Guardfile
2
4
  # More info at https://github.com/guard/guard#readme
3
5
 
4
6
  guard 'minitest' do
5
7
  # with Minitest::Unit
6
- watch(%r|^test/(.*)\/(.*)_test\.rb|)
7
- watch(%r|^lib/(.*)\.rb|) { |m| "test/lib/#{m[1]}_test.rb" }
8
- watch(%r|^test/test_helper\.rb|) { "test" }
8
+ watch(%r{^test/(.*)\/(.*)_test\.rb})
9
+ watch(%r{^lib/(.*)\.rb}) { |m| "test/lib/#{m[1]}_test.rb" }
10
+ watch(%r{^test/test_helper\.rb}) { 'test' }
9
11
  end
10
12
 
11
13
  guard :bundler do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'omniauth/openid_connect/errors'
2
4
  require 'omniauth/openid_connect/version'
3
5
  require 'omniauth/strategies/openid_connect'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OmniAuth
2
4
  module OpenIDConnect
3
5
  class Error < RuntimeError; end
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OmniAuth
2
4
  module OpenIDConnect
3
- VERSION = '0.3.0'
5
+ VERSION = '0.3.1'
4
6
  end
5
7
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'addressable/uri'
2
4
  require 'timeout'
3
5
  require 'net/http'
@@ -14,30 +16,30 @@ module OmniAuth
14
16
 
15
17
  def_delegator :request, :params
16
18
 
17
- option :client_options, {
18
- identifier: nil,
19
- secret: nil,
20
- redirect_uri: nil,
21
- scheme: 'https',
22
- host: nil,
23
- port: 443,
24
- authorization_endpoint: '/authorize',
25
- token_endpoint: '/token',
26
- userinfo_endpoint: '/userinfo',
27
- jwks_uri: '/jwk',
28
- end_session_endpoint: nil
29
- }
19
+ option :name, 'openid_connect'
20
+ option(:client_options, identifier: nil,
21
+ secret: nil,
22
+ redirect_uri: nil,
23
+ scheme: 'https',
24
+ host: nil,
25
+ port: 443,
26
+ authorization_endpoint: '/authorize',
27
+ token_endpoint: '/token',
28
+ userinfo_endpoint: '/userinfo',
29
+ jwks_uri: '/jwk',
30
+ end_session_endpoint: nil)
31
+
30
32
  option :issuer
31
33
  option :discovery, false
32
34
  option :client_signing_alg
33
35
  option :client_jwk_signing_key
34
36
  option :client_x509_signing_key
35
37
  option :scope, [:openid]
36
- option :response_type, "code"
38
+ option :response_type, 'code'
37
39
  option :state
38
40
  option :response_mode
39
- option :display, nil #, [:page, :popup, :touch, :wap]
40
- option :prompt, nil #, [:none, :login, :consent, :select_account]
41
+ option :display, nil # [:page, :popup, :touch, :wap]
42
+ option :prompt, nil # [:none, :login, :consent, :select_account]
41
43
  option :hd, nil
42
44
  option :max_age
43
45
  option :ui_locales
@@ -66,7 +68,7 @@ module OmniAuth
66
68
  gender: user_info.gender,
67
69
  image: user_info.picture,
68
70
  phone: user_info.phone_number,
69
- urls: { website: user_info.website }
71
+ urls: { website: user_info.website },
70
72
  }
71
73
  end
72
74
 
@@ -80,7 +82,7 @@ module OmniAuth
80
82
  token: access_token.access_token,
81
83
  refresh_token: access_token.refresh_token,
82
84
  expires_in: access_token.expires_in,
83
- scope: access_token.scope
85
+ scope: access_token.scope,
84
86
  }
85
87
  end
86
88
 
@@ -93,27 +95,28 @@ module OmniAuth
93
95
  end
94
96
 
95
97
  def request_phase
96
- options.issuer = issuer if options.issuer.nil? || options.issuer.empty?
98
+ options.issuer = issuer if options.issuer.to_s.empty?
97
99
  discover!
98
100
  redirect authorize_uri
99
101
  end
100
102
 
101
103
  def callback_phase
102
104
  error = params['error_reason'] || params['error']
103
- if error
104
- raise CallbackError.new(params['error'], params['error_description'] || params['error_reason'], params['error_uri'])
105
- elsif params['state'].to_s.empty? || params['state'] != stored_state
106
- raise CallbackError, 'Invalid state parameter'
107
- elsif !params['code']
108
- return fail!(:missing_code, OmniAuth::OpenIDConnect::MissingCodeError.new(params['error']))
109
- else
110
- options.issuer = issuer if options.issuer.nil? || options.issuer.empty?
111
- discover!
112
- client.redirect_uri = redirect_uri
113
- client.authorization_code = authorization_code
114
- access_token
115
- super
116
- end
105
+ error_description = params['error_description'] || params['error_reason']
106
+ invalid_state = params['state'].to_s.empty? || params['state'] != stored_state
107
+
108
+ raise CallbackError.new(params['error'], error_description, params['error_uri']) if error
109
+
110
+ raise CallbackError, 'Invalid state parameter' if invalid_state
111
+
112
+ return fail!(:missing_code, OmniAuth::OpenIDConnect::MissingCodeError.new(params['error'])) unless params['code']
113
+
114
+ options.issuer = issuer if options.issuer.nil? || options.issuer.empty?
115
+ discover!
116
+ client.redirect_uri = redirect_uri
117
+ client.authorization_code = authorization_code
118
+ access_token
119
+ super
117
120
  rescue CallbackError, ::Rack::OAuth2::Client::Error => e
118
121
  fail!(:invalid_credentials, e)
119
122
  rescue ::Timeout::Error, ::Errno::ETIMEDOUT => e
@@ -124,7 +127,7 @@ module OmniAuth
124
127
 
125
128
  def other_phase
126
129
  if logout_path_pattern.match?(current_path)
127
- options.issuer = issuer if options.issuer.nil? || options.issuer.empty?
130
+ options.issuer = issuer if options.issuer.to_s.empty?
128
131
  discover!
129
132
  return redirect(end_session_uri) if end_session_uri
130
133
  end
@@ -137,6 +140,7 @@ module OmniAuth
137
140
 
138
141
  def end_session_uri
139
142
  return unless end_session_endpoint_is_valid?
143
+
140
144
  end_session_uri = URI(client_options.end_session_endpoint)
141
145
  end_session_uri.query = encoded_post_logout_redirect_uri
142
146
  end_session_uri.to_s
@@ -155,11 +159,12 @@ module OmniAuth
155
159
  nonce: (new_nonce if options.send_nonce),
156
160
  hd: options.hd,
157
161
  }
158
- client.authorization_uri(opts.reject { |k, v| v.nil? })
162
+ client.authorization_uri(opts.reject { |_k, v| v.nil? })
159
163
  end
160
164
 
161
165
  def public_key
162
166
  return config.jwks if options.discovery
167
+
163
168
  key_or_secret
164
169
  end
165
170
 
@@ -173,6 +178,7 @@ module OmniAuth
173
178
 
174
179
  def discover!
175
180
  return unless options.discovery
181
+
176
182
  client_options.authorization_endpoint = config.authorization_endpoint
177
183
  client_options.token_endpoint = config.token_endpoint
178
184
  client_options.userinfo_endpoint = config.userinfo_endpoint
@@ -185,19 +191,19 @@ module OmniAuth
185
191
  end
186
192
 
187
193
  def access_token
188
- @access_token ||= begin
189
- _access_token = client.access_token!(
190
- scope: (options.scope if options.send_scope_to_token_endpoint),
191
- client_auth_method: options.client_auth_method
192
- )
193
- _id_token = decode_id_token _access_token.id_token
194
- _id_token.verify!(
195
- issuer: options.issuer,
196
- client_id: client_options.identifier,
197
- nonce: stored_nonce
198
- )
199
- _access_token
200
- end
194
+ return @access_token if @access_token
195
+
196
+ @access_token = client.access_token!(
197
+ scope: (options.scope if options.send_scope_to_token_endpoint),
198
+ client_auth_method: options.client_auth_method
199
+ )
200
+ id_token = decode_id_token(@access_token.id_token)
201
+ id_token.verify!(
202
+ issuer: options.issuer,
203
+ client_id: client_options.identifier,
204
+ nonce: stored_nonce
205
+ )
206
+ @access_token
201
207
  end
202
208
 
203
209
  def decode_id_token(id_token)
@@ -233,20 +239,20 @@ module OmniAuth
233
239
 
234
240
  def session
235
241
  return {} if @env.nil?
242
+
236
243
  super
237
244
  end
238
245
 
239
246
  def key_or_secret
240
247
  case options.client_signing_alg
241
248
  when :HS256, :HS384, :HS512
242
- return client_options.secret
249
+ client_options.secret
243
250
  when :RS256, :RS384, :RS512
244
251
  if options.client_jwk_signing_key
245
- return parse_jwk_key(options.client_jwk_signing_key)
252
+ parse_jwk_key(options.client_jwk_signing_key)
246
253
  elsif options.client_x509_signing_key
247
- return parse_x509_key(options.client_x509_signing_key)
254
+ parse_x509_key(options.client_x509_signing_key)
248
255
  end
249
- else
250
256
  end
251
257
  end
252
258
 
@@ -256,24 +262,24 @@ module OmniAuth
256
262
 
257
263
  def parse_jwk_key(key)
258
264
  json = JSON.parse(key)
259
- if json.has_key?('keys')
260
- JSON::JWK::Set.new json['keys']
261
- else
262
- JSON::JWK.new json
263
- end
265
+ return JSON::JWK::Set.new(json['keys']) if json.key?('keys')
266
+
267
+ JSON::JWK.new(json)
264
268
  end
265
269
 
266
270
  def decode(str)
267
- UrlSafeBase64.decode64(str).unpack('B*').first.to_i(2).to_s
271
+ UrlSafeBase64.decode64(str).unpack1('B*').to_i(2).to_s
268
272
  end
269
273
 
270
274
  def redirect_uri
271
275
  return client_options.redirect_uri unless params['redirect_uri']
276
+
272
277
  "#{ client_options.redirect_uri }?redirect_uri=#{ CGI.escape(params['redirect_uri']) }"
273
278
  end
274
279
 
275
280
  def encoded_post_logout_redirect_uri
276
281
  return unless options.post_logout_redirect_uri
282
+
277
283
  URI.encode_www_form(
278
284
  post_logout_redirect_uri: options.post_logout_redirect_uri
279
285
  )
@@ -291,7 +297,7 @@ module OmniAuth
291
297
  class CallbackError < StandardError
292
298
  attr_accessor :error, :error_reason, :error_uri
293
299
 
294
- def initialize(error, error_reason=nil, error_uri=nil)
300
+ def initialize(error, error_reason = nil, error_uri = nil)
295
301
  self.error = error
296
302
  self.error_reason = error_reason
297
303
  self.error_uri = error_uri
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'omniauth/openid_connect'
@@ -1,5 +1,6 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'omniauth/openid_connect/version'
5
6
 
@@ -14,21 +15,21 @@ Gem::Specification.new do |spec|
14
15
  spec.license = 'MIT'
15
16
 
16
17
  spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r(^bin/)) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r(^(test|spec|features)/))
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
20
  spec.require_paths = ['lib']
20
21
 
22
+ spec.add_dependency 'addressable', '~> 2.5'
21
23
  spec.add_dependency 'omniauth', '~> 1.3'
22
24
  spec.add_dependency 'openid_connect', '~> 1.1'
23
- spec.add_dependency 'addressable', '~> 2.5'
24
- spec.add_development_dependency 'minitest', '~> 5.1'
25
- spec.add_development_dependency 'mocha', '~> 1.7'
25
+ spec.add_development_dependency 'coveralls', '~> 0.8'
26
+ spec.add_development_dependency 'faker', '~> 1.6'
26
27
  spec.add_development_dependency 'guard', '~> 2.14'
28
+ spec.add_development_dependency 'guard-bundler', '~> 2.2'
27
29
  spec.add_development_dependency 'guard-minitest', '~> 2.4'
28
- spec.add_development_dependency 'guard-bundler', '~> 2.1'
30
+ spec.add_development_dependency 'minitest', '~> 5.1'
31
+ spec.add_development_dependency 'mocha', '~> 1.7'
29
32
  spec.add_development_dependency 'rake', '~> 12.0'
33
+ spec.add_development_dependency 'rubocop', '~> 0.63'
30
34
  spec.add_development_dependency 'simplecov', '~> 0.12'
31
- spec.add_development_dependency 'pry', '~> 0.9'
32
- spec.add_development_dependency 'coveralls', '~> 0.8'
33
- spec.add_development_dependency 'faker', '~> 1.6'
34
35
  end
@@ -35,7 +35,7 @@ module OmniAuth
35
35
  config.stubs(:end_session_endpoint).returns('https://example.com/logout')
36
36
  ::OpenIDConnect::Discovery::Provider::Config.stubs(:discover!).with('https://example.com/').returns(config)
37
37
 
38
- request.stubs(:path_info).returns('/auth/openidconnect/logout')
38
+ request.stubs(:path_info).returns('/auth/openid_connect/logout')
39
39
 
40
40
  strategy.expects(:redirect).with(regexp_matches(expected_redirect))
41
41
  strategy.other_phase
@@ -59,7 +59,7 @@ module OmniAuth
59
59
  config.stubs(:end_session_endpoint).returns('https://example.com/logout')
60
60
  ::OpenIDConnect::Discovery::Provider::Config.stubs(:discover!).with('https://example.com/').returns(config)
61
61
 
62
- request.stubs(:path_info).returns('/auth/openidconnect/logout')
62
+ request.stubs(:path_info).returns('/auth/openid_connect/logout')
63
63
 
64
64
  strategy.expects(:redirect).with(expected_redirect)
65
65
  strategy.other_phase
@@ -69,7 +69,7 @@ module OmniAuth
69
69
  strategy.options.issuer = 'example.com'
70
70
  strategy.options.client_options.host = 'example.com'
71
71
 
72
- request.stubs(:path_info).returns('/auth/openidconnect/logout')
72
+ request.stubs(:path_info).returns('/auth/openid_connect/logout')
73
73
 
74
74
  strategy.expects(:call_app!)
75
75
  strategy.other_phase
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth_openid_connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Bohn
@@ -9,78 +9,78 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-04-27 00:00:00.000000000 Z
12
+ date: 2019-06-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: omniauth
15
+ name: addressable
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '1.3'
20
+ version: '2.5'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '1.3'
27
+ version: '2.5'
28
28
  - !ruby/object:Gem::Dependency
29
- name: openid_connect
29
+ name: omniauth
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '1.1'
34
+ version: '1.3'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '1.1'
41
+ version: '1.3'
42
42
  - !ruby/object:Gem::Dependency
43
- name: addressable
43
+ name: openid_connect
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '2.5'
48
+ version: '1.1'
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '2.5'
55
+ version: '1.1'
56
56
  - !ruby/object:Gem::Dependency
57
- name: minitest
57
+ name: coveralls
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '5.1'
62
+ version: '0.8'
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '5.1'
69
+ version: '0.8'
70
70
  - !ruby/object:Gem::Dependency
71
- name: mocha
71
+ name: faker
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '1.7'
76
+ version: '1.6'
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '1.7'
83
+ version: '1.6'
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: guard
86
86
  requirement: !ruby/object:Gem::Requirement
@@ -96,103 +96,103 @@ dependencies:
96
96
  - !ruby/object:Gem::Version
97
97
  version: '2.14'
98
98
  - !ruby/object:Gem::Dependency
99
- name: guard-minitest
99
+ name: guard-bundler
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '2.4'
104
+ version: '2.2'
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: '2.4'
111
+ version: '2.2'
112
112
  - !ruby/object:Gem::Dependency
113
- name: guard-bundler
113
+ name: guard-minitest
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: '2.1'
118
+ version: '2.4'
119
119
  type: :development
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - "~>"
124
124
  - !ruby/object:Gem::Version
125
- version: '2.1'
125
+ version: '2.4'
126
126
  - !ruby/object:Gem::Dependency
127
- name: rake
127
+ name: minitest
128
128
  requirement: !ruby/object:Gem::Requirement
129
129
  requirements:
130
130
  - - "~>"
131
131
  - !ruby/object:Gem::Version
132
- version: '12.0'
132
+ version: '5.1'
133
133
  type: :development
134
134
  prerelease: false
135
135
  version_requirements: !ruby/object:Gem::Requirement
136
136
  requirements:
137
137
  - - "~>"
138
138
  - !ruby/object:Gem::Version
139
- version: '12.0'
139
+ version: '5.1'
140
140
  - !ruby/object:Gem::Dependency
141
- name: simplecov
141
+ name: mocha
142
142
  requirement: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: '0.12'
146
+ version: '1.7'
147
147
  type: :development
148
148
  prerelease: false
149
149
  version_requirements: !ruby/object:Gem::Requirement
150
150
  requirements:
151
151
  - - "~>"
152
152
  - !ruby/object:Gem::Version
153
- version: '0.12'
153
+ version: '1.7'
154
154
  - !ruby/object:Gem::Dependency
155
- name: pry
155
+ name: rake
156
156
  requirement: !ruby/object:Gem::Requirement
157
157
  requirements:
158
158
  - - "~>"
159
159
  - !ruby/object:Gem::Version
160
- version: '0.9'
160
+ version: '12.0'
161
161
  type: :development
162
162
  prerelease: false
163
163
  version_requirements: !ruby/object:Gem::Requirement
164
164
  requirements:
165
165
  - - "~>"
166
166
  - !ruby/object:Gem::Version
167
- version: '0.9'
167
+ version: '12.0'
168
168
  - !ruby/object:Gem::Dependency
169
- name: coveralls
169
+ name: rubocop
170
170
  requirement: !ruby/object:Gem::Requirement
171
171
  requirements:
172
172
  - - "~>"
173
173
  - !ruby/object:Gem::Version
174
- version: '0.8'
174
+ version: '0.63'
175
175
  type: :development
176
176
  prerelease: false
177
177
  version_requirements: !ruby/object:Gem::Requirement
178
178
  requirements:
179
179
  - - "~>"
180
180
  - !ruby/object:Gem::Version
181
- version: '0.8'
181
+ version: '0.63'
182
182
  - !ruby/object:Gem::Dependency
183
- name: faker
183
+ name: simplecov
184
184
  requirement: !ruby/object:Gem::Requirement
185
185
  requirements:
186
186
  - - "~>"
187
187
  - !ruby/object:Gem::Version
188
- version: '1.6'
188
+ version: '0.12'
189
189
  type: :development
190
190
  prerelease: false
191
191
  version_requirements: !ruby/object:Gem::Requirement
192
192
  requirements:
193
193
  - - "~>"
194
194
  - !ruby/object:Gem::Version
195
- version: '1.6'
195
+ version: '0.12'
196
196
  description: OpenID Connect Strategy for OmniAuth.
197
197
  email:
198
198
  - jjbohn@gmail.com
@@ -202,6 +202,7 @@ extensions: []
202
202
  extra_rdoc_files: []
203
203
  files:
204
204
  - ".gitignore"
205
+ - ".rubocop.yml"
205
206
  - ".travis.yml"
206
207
  - CHANGELOG.md
207
208
  - Gemfile