omniauth_openid_connect 0.3.0 → 0.3.1

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
  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