signet 0.11.0 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +47 -36
  3. data/Gemfile +5 -4
  4. data/README.md +4 -5
  5. data/Rakefile +86 -37
  6. data/lib/signet.rb +17 -14
  7. data/lib/signet/errors.rb +4 -4
  8. data/lib/signet/oauth_1.rb +128 -153
  9. data/lib/signet/oauth_1/client.rb +309 -343
  10. data/lib/signet/oauth_1/credential.rb +40 -37
  11. data/lib/signet/oauth_1/server.rb +197 -203
  12. data/lib/signet/oauth_1/signature_methods/hmac_sha1.rb +11 -10
  13. data/lib/signet/oauth_1/signature_methods/plaintext.rb +8 -7
  14. data/lib/signet/oauth_1/signature_methods/rsa_sha1.rb +11 -11
  15. data/lib/signet/oauth_2.rb +41 -43
  16. data/lib/signet/oauth_2/client.rb +302 -313
  17. data/lib/signet/version.rb +2 -73
  18. data/signet.gemspec +37 -39
  19. data/spec/signet/oauth_1/client_spec.rb +313 -315
  20. data/spec/signet/oauth_1/credential_spec.rb +64 -56
  21. data/spec/signet/oauth_1/server_spec.rb +362 -362
  22. data/spec/signet/oauth_1/signature_methods/hmac_sha1_spec.rb +26 -26
  23. data/spec/signet/oauth_1/signature_methods/plaintext_spec.rb +28 -28
  24. data/spec/signet/oauth_1/signature_methods/rsa_sha1_spec.rb +34 -35
  25. data/spec/signet/oauth_1_spec.rb +527 -524
  26. data/spec/signet/oauth_2/client_spec.rb +612 -576
  27. data/spec/signet/oauth_2_spec.rb +88 -89
  28. data/spec/signet_spec.rb +41 -41
  29. data/spec/spec_helper.rb +7 -7
  30. data/spec/spec_helper_spec.rb +8 -8
  31. metadata +50 -43
  32. data/tasks/clobber.rake +0 -2
  33. data/tasks/gem.rake +0 -34
  34. data/tasks/git.rake +0 -40
  35. data/tasks/metrics.rake +0 -41
  36. data/tasks/spec.rake +0 -34
  37. data/tasks/wiki.rake +0 -38
  38. data/tasks/yard.rake +0 -21
@@ -12,15 +12,15 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require 'faraday'
16
- #require 'faraday/utils'
15
+ require "faraday"
16
+ # require 'faraday/utils'
17
17
 
18
- require 'stringio'
19
- require 'addressable/uri'
20
- require 'signet'
21
- require 'signet/errors'
22
- require 'signet/oauth_1'
23
- require 'signet/oauth_1/credential'
18
+ require "stringio"
19
+ require "addressable/uri"
20
+ require "signet"
21
+ require "signet/errors"
22
+ require "signet/oauth_1"
23
+ require "signet/oauth_1/credential"
24
24
 
25
25
  module Signet
26
26
  module OAuth1
@@ -53,8 +53,8 @@ module Signet
53
53
  # :client_credential_key => 'anonymous',
54
54
  # :client_credential_secret => 'anonymous'
55
55
  # )
56
- def initialize(options={})
57
- self.update!(options)
56
+ def initialize options = {}
57
+ update! options
58
58
  end
59
59
 
60
60
  ##
@@ -87,29 +87,29 @@ module Signet
87
87
  # )
88
88
  #
89
89
  # @see Signet::OAuth1::Client#initialize
90
- def update!(options={})
90
+ def update! options = {}
91
91
  # Normalize key to String to allow indifferent access.
92
- options = options.inject({}) { |accu, (k, v)| accu[k.to_s] = v; accu }
92
+ options = options.each_with_object({}) { |(k, v), accu| accu[k.to_s] = v; }
93
93
  self.temporary_credential_uri = options["temporary_credential_uri"]
94
94
  self.authorization_uri = options["authorization_uri"]
95
95
  self.token_credential_uri = options["token_credential_uri"]
96
96
  # Technically... this would allow you to pass in a :client key...
97
97
  # But that would be weird. Don't do that.
98
98
  self.client_credential_key =
99
- Signet::OAuth1.extract_credential_key_option("client", options)
99
+ Signet::OAuth1.extract_credential_key_option "client", options
100
100
  self.client_credential_secret =
101
- Signet::OAuth1.extract_credential_secret_option("client", options)
101
+ Signet::OAuth1.extract_credential_secret_option "client", options
102
102
  self.temporary_credential_key =
103
- Signet::OAuth1.extract_credential_key_option("temporary", options)
103
+ Signet::OAuth1.extract_credential_key_option "temporary", options
104
104
  self.temporary_credential_secret =
105
- Signet::OAuth1.extract_credential_secret_option("temporary", options)
105
+ Signet::OAuth1.extract_credential_secret_option "temporary", options
106
106
  self.token_credential_key =
107
- Signet::OAuth1.extract_credential_key_option("token", options)
107
+ Signet::OAuth1.extract_credential_key_option "token", options
108
108
  self.token_credential_secret =
109
- Signet::OAuth1.extract_credential_secret_option("token", options)
109
+ Signet::OAuth1.extract_credential_secret_option "token", options
110
110
  self.callback = options["callback"]
111
111
  self.two_legged = options["two_legged"] || false
112
- return self
112
+ self
113
113
  end
114
114
 
115
115
  ##
@@ -117,9 +117,9 @@ module Signet
117
117
  #
118
118
  # @return [Addressable::URI] The temporary credentials URI.
119
119
  def temporary_credential_uri
120
- return @temporary_credential_uri
120
+ @temporary_credential_uri
121
121
  end
122
- alias_method :request_token_uri, :temporary_credential_uri
122
+ alias request_token_uri temporary_credential_uri
123
123
 
124
124
  ##
125
125
  # Sets the temporary credentials URI for this client.
@@ -127,16 +127,16 @@ module Signet
127
127
  # @param [Addressable::URI, String, #to_str]
128
128
  # new_temporary_credential_uri
129
129
  # The temporary credentials URI.
130
- def temporary_credential_uri=(new_temporary_credential_uri)
131
- if new_temporary_credential_uri != nil
130
+ def temporary_credential_uri= new_temporary_credential_uri
131
+ if !new_temporary_credential_uri.nil?
132
132
  new_temporary_credential_uri =
133
- Addressable::URI.parse(new_temporary_credential_uri)
133
+ Addressable::URI.parse new_temporary_credential_uri
134
134
  @temporary_credential_uri = new_temporary_credential_uri
135
135
  else
136
136
  @temporary_credential_uri = nil
137
137
  end
138
138
  end
139
- alias_method :request_token_uri=, :temporary_credential_uri=
139
+ alias request_token_uri= temporary_credential_uri=
140
140
 
141
141
  ##
142
142
  # Returns the authorization URI that the user should be redirected to.
@@ -144,13 +144,13 @@ module Signet
144
144
  # @return [Addressable::URI] The authorization URI.
145
145
  #
146
146
  # @see Signet::OAuth1.generate_authorization_uri
147
- def authorization_uri(options={})
147
+ def authorization_uri options = {}
148
148
  options = options.merge(
149
- :temporary_credential_key => self.temporary_credential_key,
150
- :callback => self.callback
149
+ temporary_credential_key: temporary_credential_key,
150
+ callback: callback
151
151
  )
152
- return nil if @authorization_uri == nil
153
- return Addressable::URI.parse(
152
+ return nil if @authorization_uri.nil?
153
+ Addressable::URI.parse(
154
154
  ::Signet::OAuth1.generate_authorization_uri(
155
155
  @authorization_uri, options
156
156
  )
@@ -162,10 +162,10 @@ module Signet
162
162
  #
163
163
  # @param [Addressable::URI, String, #to_str] new_authorization_uri
164
164
  # The authorization URI.
165
- def authorization_uri=(new_authorization_uri)
166
- if new_authorization_uri != nil
165
+ def authorization_uri= new_authorization_uri
166
+ if !new_authorization_uri.nil?
167
167
  new_authorization_uri = Addressable::URI.send(
168
- new_authorization_uri.kind_of?(Hash) ? :new : :parse,
168
+ new_authorization_uri.is_a?(Hash) ? :new : :parse,
169
169
  new_authorization_uri
170
170
  )
171
171
  @authorization_uri = new_authorization_uri
@@ -179,19 +179,19 @@ module Signet
179
179
  #
180
180
  # @return [Addressable::URI] The token credential URI.
181
181
  def token_credential_uri
182
- return @token_credential_uri
182
+ @token_credential_uri
183
183
  end
184
- alias_method :access_token_uri, :token_credential_uri
184
+ alias access_token_uri token_credential_uri
185
185
 
186
186
  ##
187
187
  # Sets the token credential URI for this client.
188
188
  #
189
189
  # @param [Addressable::URI, Hash, String, #to_str] new_token_credential_uri
190
190
  # The token credential URI.
191
- def token_credential_uri=(new_token_credential_uri)
192
- if new_token_credential_uri != nil
191
+ def token_credential_uri= new_token_credential_uri
192
+ if !new_token_credential_uri.nil?
193
193
  new_token_credential_uri = Addressable::URI.send(
194
- new_token_credential_uri.kind_of?(Hash) ? :new : :parse,
194
+ new_token_credential_uri.is_a?(Hash) ? :new : :parse,
195
195
  new_token_credential_uri
196
196
  )
197
197
  @token_credential_uri = new_token_credential_uri
@@ -199,7 +199,7 @@ module Signet
199
199
  @token_credential_uri = nil
200
200
  end
201
201
  end
202
- alias_method :access_token_uri=, :token_credential_uri=
202
+ alias access_token_uri= token_credential_uri=
203
203
 
204
204
  # Lots of duplicated code here, but for the sake of auto-generating
205
205
  # documentation, we're going to let it slide. Oh well.
@@ -209,31 +209,31 @@ module Signet
209
209
  #
210
210
  # @return [Signet::OAuth1::Credential] The client credentials.
211
211
  def client_credential
212
- if self.client_credential_key && self.client_credential_secret
213
- return ::Signet::OAuth1::Credential.new(
214
- self.client_credential_key,
215
- self.client_credential_secret
212
+ if client_credential_key && client_credential_secret
213
+ ::Signet::OAuth1::Credential.new(
214
+ client_credential_key,
215
+ client_credential_secret
216
216
  )
217
- elsif !self.client_credential_key && !self.client_credential_secret
218
- return nil
217
+ elsif !client_credential_key && !client_credential_secret
218
+ nil
219
219
  else
220
220
  raise ArgumentError,
221
- "The client credential key and secret must be set."
221
+ "The client credential key and secret must be set."
222
222
  end
223
223
  end
224
- alias_method :consumer_token, :client_credential
224
+ alias consumer_token client_credential
225
225
 
226
226
  ##
227
227
  # Sets the client credential for this client.
228
228
  #
229
229
  # @param [Signet::OAuth1::Credential] new_client_credential
230
230
  # The client credentials.
231
- def client_credential=(new_client_credential)
232
- if new_client_credential != nil
233
- if !new_client_credential.kind_of?(::Signet::OAuth1::Credential)
231
+ def client_credential= new_client_credential
232
+ if !new_client_credential.nil?
233
+ unless new_client_credential.is_a? ::Signet::OAuth1::Credential
234
234
  raise TypeError,
235
- "Expected Signet::OAuth1::Credential, " +
236
- "got #{new_client_credential.class}."
235
+ "Expected Signet::OAuth1::Credential, " \
236
+ "got #{new_client_credential.class}."
237
237
  end
238
238
  @client_credential_key = new_client_credential.key
239
239
  @client_credential_secret = new_client_credential.secret
@@ -242,27 +242,27 @@ module Signet
242
242
  @client_credential_secret = nil
243
243
  end
244
244
  end
245
- alias_method :consumer_token=, :client_credential=
245
+ alias consumer_token= client_credential=
246
246
 
247
247
  ##
248
248
  # Returns the client credential key for this client.
249
249
  #
250
250
  # @return [String] The client credential key.
251
251
  def client_credential_key
252
- return @client_credential_key
252
+ @client_credential_key
253
253
  end
254
- alias_method :consumer_key, :client_credential_key
254
+ alias consumer_key client_credential_key
255
255
 
256
256
  ##
257
257
  # Sets the client credential key for this client.
258
258
  #
259
259
  # @param [String, #to_str] new_client_credential_key
260
260
  # The client credential key.
261
- def client_credential_key=(new_client_credential_key)
262
- if new_client_credential_key != nil
263
- if !new_client_credential_key.respond_to?(:to_str)
261
+ def client_credential_key= new_client_credential_key
262
+ if !new_client_credential_key.nil?
263
+ unless new_client_credential_key.respond_to? :to_str
264
264
  raise TypeError,
265
- "Can't convert #{new_client_credential_key.class} into String."
265
+ "Can't convert #{new_client_credential_key.class} into String."
266
266
  end
267
267
  new_client_credential_key = new_client_credential_key.to_str
268
268
  @client_credential_key = new_client_credential_key
@@ -270,28 +270,28 @@ module Signet
270
270
  @client_credential_key = nil
271
271
  end
272
272
  end
273
- alias_method :consumer_key=, :client_credential_key=
273
+ alias consumer_key= client_credential_key=
274
274
 
275
275
  ##
276
276
  # Returns the client credential secret for this client.
277
277
  #
278
278
  # @return [String] The client credential secret.
279
279
  def client_credential_secret
280
- return @client_credential_secret
280
+ @client_credential_secret
281
281
  end
282
- alias_method :consumer_secret, :client_credential_secret
282
+ alias consumer_secret client_credential_secret
283
283
 
284
284
  ##
285
285
  # Sets the client credential secret for this client.
286
286
  #
287
287
  # @param [String, #to_str] new_client_credential_secret
288
288
  # The client credential secret.
289
- def client_credential_secret=(new_client_credential_secret)
290
- if new_client_credential_secret != nil
291
- if !new_client_credential_secret.respond_to?(:to_str)
289
+ def client_credential_secret= new_client_credential_secret
290
+ if !new_client_credential_secret.nil?
291
+ unless new_client_credential_secret.respond_to? :to_str
292
292
  raise TypeError,
293
- "Can't convert #{new_client_credential_secret.class} " +
294
- "into String."
293
+ "Can't convert #{new_client_credential_secret.class} " \
294
+ "into String."
295
295
  end
296
296
  new_client_credential_secret = new_client_credential_secret.to_str
297
297
  @client_credential_secret = new_client_credential_secret
@@ -299,39 +299,39 @@ module Signet
299
299
  @client_credential_secret = nil
300
300
  end
301
301
  end
302
- alias_method :consumer_secret=, :client_credential_secret=
302
+ alias consumer_secret= client_credential_secret=
303
303
 
304
304
  ##
305
305
  # Returns the temporary credential for this client.
306
306
  #
307
307
  # @return [Signet::OAuth1::Credential] The temporary credentials.
308
308
  def temporary_credential
309
- if self.temporary_credential_key && self.temporary_credential_secret
310
- return ::Signet::OAuth1::Credential.new(
311
- self.temporary_credential_key,
312
- self.temporary_credential_secret
309
+ if temporary_credential_key && temporary_credential_secret
310
+ ::Signet::OAuth1::Credential.new(
311
+ temporary_credential_key,
312
+ temporary_credential_secret
313
313
  )
314
- elsif !self.temporary_credential_key &&
315
- !self.temporary_credential_secret
316
- return nil
314
+ elsif !temporary_credential_key &&
315
+ !temporary_credential_secret
316
+ nil
317
317
  else
318
318
  raise ArgumentError,
319
- "The temporary credential key and secret must be set."
319
+ "The temporary credential key and secret must be set."
320
320
  end
321
321
  end
322
- alias_method :request_token, :temporary_credential
322
+ alias request_token temporary_credential
323
323
 
324
324
  ##
325
325
  # Sets the temporary credential for this client.
326
326
  #
327
327
  # @param [Signet::OAuth1::Credential] new_temporary_credential
328
328
  # The temporary credentials.
329
- def temporary_credential=(new_temporary_credential)
330
- if new_temporary_credential != nil
331
- if !new_temporary_credential.kind_of?(::Signet::OAuth1::Credential)
329
+ def temporary_credential= new_temporary_credential
330
+ if !new_temporary_credential.nil?
331
+ unless new_temporary_credential.is_a? ::Signet::OAuth1::Credential
332
332
  raise TypeError,
333
- "Expected Signet::OAuth1::Credential, " +
334
- "got #{new_temporary_credential.class}."
333
+ "Expected Signet::OAuth1::Credential, " \
334
+ "got #{new_temporary_credential.class}."
335
335
  end
336
336
  @temporary_credential_key = new_temporary_credential.key
337
337
  @temporary_credential_secret = new_temporary_credential.secret
@@ -340,28 +340,28 @@ module Signet
340
340
  @temporary_credential_secret = nil
341
341
  end
342
342
  end
343
- alias_method :request_token=, :temporary_credential=
343
+ alias request_token= temporary_credential=
344
344
 
345
345
  ##
346
346
  # Returns the temporary credential key for this client.
347
347
  #
348
348
  # @return [String] The temporary credential key.
349
349
  def temporary_credential_key
350
- return @temporary_credential_key
350
+ @temporary_credential_key
351
351
  end
352
- alias_method :request_token_key, :temporary_credential_key
352
+ alias request_token_key temporary_credential_key
353
353
 
354
354
  ##
355
355
  # Sets the temporary credential key for this client.
356
356
  #
357
357
  # @param [String, #to_str] new_temporary_credential_key
358
358
  # The temporary credential key.
359
- def temporary_credential_key=(new_temporary_credential_key)
360
- if new_temporary_credential_key != nil
361
- if !new_temporary_credential_key.respond_to?(:to_str)
359
+ def temporary_credential_key= new_temporary_credential_key
360
+ if !new_temporary_credential_key.nil?
361
+ unless new_temporary_credential_key.respond_to? :to_str
362
362
  raise TypeError,
363
- "Can't convert #{new_temporary_credential_key.class} " +
364
- "into String."
363
+ "Can't convert #{new_temporary_credential_key.class} " \
364
+ "into String."
365
365
  end
366
366
  new_temporary_credential_key = new_temporary_credential_key.to_str
367
367
  @temporary_credential_key = new_temporary_credential_key
@@ -369,28 +369,28 @@ module Signet
369
369
  @temporary_credential_key = nil
370
370
  end
371
371
  end
372
- alias_method :request_token_key=, :temporary_credential_key=
372
+ alias request_token_key= temporary_credential_key=
373
373
 
374
374
  ##
375
375
  # Returns the temporary credential secret for this client.
376
376
  #
377
377
  # @return [String] The temporary credential secret.
378
378
  def temporary_credential_secret
379
- return @temporary_credential_secret
379
+ @temporary_credential_secret
380
380
  end
381
- alias_method :request_token_secret, :temporary_credential_secret
381
+ alias request_token_secret temporary_credential_secret
382
382
 
383
383
  ##
384
384
  # Sets the temporary credential secret for this client.
385
385
  #
386
386
  # @param [String, #to_str] new_temporary_credential_secret
387
387
  # The temporary credential secret.
388
- def temporary_credential_secret=(new_temporary_credential_secret)
389
- if new_temporary_credential_secret != nil
390
- if !new_temporary_credential_secret.respond_to?(:to_str)
388
+ def temporary_credential_secret= new_temporary_credential_secret
389
+ if !new_temporary_credential_secret.nil?
390
+ unless new_temporary_credential_secret.respond_to? :to_str
391
391
  raise TypeError,
392
- "Can't convert #{new_temporary_credential_secret.class} " +
393
- "into String."
392
+ "Can't convert #{new_temporary_credential_secret.class} " \
393
+ "into String."
394
394
  end
395
395
  new_temporary_credential_secret =
396
396
  new_temporary_credential_secret.to_str
@@ -399,39 +399,39 @@ module Signet
399
399
  @temporary_credential_secret = nil
400
400
  end
401
401
  end
402
- alias_method :request_token_secret=, :temporary_credential_secret=
402
+ alias request_token_secret= temporary_credential_secret=
403
403
 
404
404
  ##
405
405
  # Returns the token credential for this client.
406
406
  #
407
407
  # @return [Signet::OAuth1::Credential] The token credentials.
408
408
  def token_credential
409
- if self.token_credential_key && self.token_credential_secret
410
- return ::Signet::OAuth1::Credential.new(
411
- self.token_credential_key,
412
- self.token_credential_secret
409
+ if token_credential_key && token_credential_secret
410
+ ::Signet::OAuth1::Credential.new(
411
+ token_credential_key,
412
+ token_credential_secret
413
413
  )
414
- elsif !self.token_credential_key &&
415
- !self.token_credential_secret
416
- return nil
414
+ elsif !token_credential_key &&
415
+ !token_credential_secret
416
+ nil
417
417
  else
418
418
  raise ArgumentError,
419
- "The token credential key and secret must be set."
419
+ "The token credential key and secret must be set."
420
420
  end
421
421
  end
422
- alias_method :access_token, :token_credential
422
+ alias access_token token_credential
423
423
 
424
424
  ##
425
425
  # Sets the token credential for this client.
426
426
  #
427
427
  # @param [Signet::OAuth1::Credential] new_token_credential
428
428
  # The token credentials.
429
- def token_credential=(new_token_credential)
430
- if new_token_credential != nil
431
- if !new_token_credential.kind_of?(::Signet::OAuth1::Credential)
429
+ def token_credential= new_token_credential
430
+ if !new_token_credential.nil?
431
+ unless new_token_credential.is_a? ::Signet::OAuth1::Credential
432
432
  raise TypeError,
433
- "Expected Signet::OAuth1::Credential, " +
434
- "got #{new_token_credential.class}."
433
+ "Expected Signet::OAuth1::Credential, " \
434
+ "got #{new_token_credential.class}."
435
435
  end
436
436
  @token_credential_key = new_token_credential.key
437
437
  @token_credential_secret = new_token_credential.secret
@@ -440,28 +440,28 @@ module Signet
440
440
  @token_credential_secret = nil
441
441
  end
442
442
  end
443
- alias_method :access_token=, :token_credential=
443
+ alias access_token= token_credential=
444
444
 
445
445
  ##
446
446
  # Returns the token credential key for this client.
447
447
  #
448
448
  # @return [String] The token credential key.
449
449
  def token_credential_key
450
- return @token_credential_key
450
+ @token_credential_key
451
451
  end
452
- alias_method :access_token_key, :token_credential_key
452
+ alias access_token_key token_credential_key
453
453
 
454
454
  ##
455
455
  # Sets the token credential key for this client.
456
456
  #
457
457
  # @param [String, #to_str] new_token_credential_key
458
458
  # The token credential key.
459
- def token_credential_key=(new_token_credential_key)
460
- if new_token_credential_key != nil
461
- if !new_token_credential_key.respond_to?(:to_str)
459
+ def token_credential_key= new_token_credential_key
460
+ if !new_token_credential_key.nil?
461
+ unless new_token_credential_key.respond_to? :to_str
462
462
  raise TypeError,
463
- "Can't convert #{new_token_credential_key.class} " +
464
- "into String."
463
+ "Can't convert #{new_token_credential_key.class} " \
464
+ "into String."
465
465
  end
466
466
  new_token_credential_key = new_token_credential_key.to_str
467
467
  @token_credential_key = new_token_credential_key
@@ -469,28 +469,28 @@ module Signet
469
469
  @token_credential_key = nil
470
470
  end
471
471
  end
472
- alias_method :access_token_key=, :token_credential_key=
472
+ alias access_token_key= token_credential_key=
473
473
 
474
474
  ##
475
475
  # Returns the token credential secret for this client.
476
476
  #
477
477
  # @return [String] The token credential secret.
478
478
  def token_credential_secret
479
- return @token_credential_secret
479
+ @token_credential_secret
480
480
  end
481
- alias_method :access_token_secret, :token_credential_secret
481
+ alias access_token_secret token_credential_secret
482
482
 
483
483
  ##
484
484
  # Sets the token credential secret for this client.
485
485
  #
486
486
  # @param [String, #to_str] new_token_credential_secret
487
487
  # The token credential secret.
488
- def token_credential_secret=(new_token_credential_secret)
489
- if new_token_credential_secret != nil
490
- if !new_token_credential_secret.respond_to?(:to_str)
488
+ def token_credential_secret= new_token_credential_secret
489
+ if !new_token_credential_secret.nil?
490
+ unless new_token_credential_secret.respond_to? :to_str
491
491
  raise TypeError,
492
- "Can't convert #{new_token_credential_secret.class} " +
493
- "into String."
492
+ "Can't convert #{new_token_credential_secret.class} " \
493
+ "into String."
494
494
  end
495
495
  new_token_credential_secret =
496
496
  new_token_credential_secret.to_str
@@ -499,14 +499,14 @@ module Signet
499
499
  @token_credential_secret = nil
500
500
  end
501
501
  end
502
- alias_method :access_token_secret=, :token_credential_secret=
502
+ alias access_token_secret= token_credential_secret=
503
503
 
504
504
  ##
505
505
  # Returns the callback for this client.
506
506
  #
507
507
  # @return [String] The OAuth callback.
508
508
  def callback
509
- return @callback || ::Signet::OAuth1::OUT_OF_BAND
509
+ @callback || ::Signet::OAuth1::OUT_OF_BAND
510
510
  end
511
511
 
512
512
  ##
@@ -514,11 +514,11 @@ module Signet
514
514
  #
515
515
  # @param [String, #to_str] new_callback
516
516
  # The OAuth callback.
517
- def callback=(new_callback)
518
- if new_callback != nil
519
- if !new_callback.respond_to?(:to_str)
517
+ def callback= new_callback
518
+ if !new_callback.nil?
519
+ unless new_callback.respond_to? :to_str
520
520
  raise TypeError,
521
- "Can't convert #{new_callback.class} into String."
521
+ "Can't convert #{new_callback.class} into String."
522
522
  end
523
523
  new_callback = new_callback.to_str
524
524
  @callback = new_callback
@@ -533,7 +533,7 @@ module Signet
533
533
  # @return [TrueClass, FalseClass]
534
534
  # <code>true</code> for two-legged mode, <code>false</code> otherwise.
535
535
  def two_legged
536
- return @two_legged ||= false
536
+ @two_legged ||= false
537
537
  end
538
538
 
539
539
  ##
@@ -541,10 +541,10 @@ module Signet
541
541
  #
542
542
  # @param [TrueClass, FalseClass] new_two_legged
543
543
  # <code>true</code> for two-legged mode, <code>false</code> otherwise.
544
- def two_legged=(new_two_legged)
544
+ def two_legged= new_two_legged
545
545
  if new_two_legged != true && new_two_legged != false
546
546
  raise TypeError,
547
- "Expected true or false, got #{new_two_legged.class}."
547
+ "Expected true or false, got #{new_two_legged.class}."
548
548
  else
549
549
  @two_legged = new_two_legged
550
550
  end
@@ -557,20 +557,22 @@ module Signet
557
557
  #
558
558
  # @return [String] A serialized JSON representation of the client.
559
559
  def to_json
560
- return MultiJson.dump({
561
- 'temporary_credential_uri' => self.temporary_credential_uri,
562
- 'authorization_uri' => self.authorization_uri,
563
- 'token_credential_uri' => self.token_credential_uri,
564
- 'callback' => self.callback,
565
- 'two_legged' => self.two_legged,
566
- 'client_credential_key' => self.client_credential_key,
567
- 'client_credential_secret' => self.client_credential_secret,
568
- 'temporary_credential_key' => self.temporary_credential_key,
569
- 'temporary_credential_secret' => self.temporary_credential_secret,
570
- 'token_credential_key' => self.token_credential_key,
571
- 'token_credential_secret' => self.token_credential_secret
572
- })
560
+ MultiJson.dump(
561
+ "temporary_credential_uri" => temporary_credential_uri,
562
+ "authorization_uri" => authorization_uri,
563
+ "token_credential_uri" => token_credential_uri,
564
+ "callback" => callback,
565
+ "two_legged" => two_legged,
566
+ "client_credential_key" => client_credential_key,
567
+ "client_credential_secret" => client_credential_secret,
568
+ "temporary_credential_key" => temporary_credential_key,
569
+ "temporary_credential_secret" => temporary_credential_secret,
570
+ "token_credential_key" => token_credential_key,
571
+ "token_credential_secret" => token_credential_secret
572
+ )
573
573
  end
574
+ # rubocop:disable Metrics/AbcSize
575
+ # rubocop:disable Metrics/MethodLength
574
576
 
575
577
  ##
576
578
  # Generates a request for temporary credentials.
@@ -585,60 +587,57 @@ module Signet
585
587
  # The Authorization realm. See RFC 2617.
586
588
  #
587
589
  # @return [Array] The request object.
588
- def generate_temporary_credential_request(options={})
590
+ def generate_temporary_credential_request options = {}
589
591
  verifications = {
590
- :temporary_credential_uri => 'Temporary credentials URI',
591
- :client_credential_key => 'Client credential key',
592
- :client_credential_secret => 'Client credential secret'
592
+ temporary_credential_uri: "Temporary credentials URI",
593
+ client_credential_key: "Client credential key",
594
+ client_credential_secret: "Client credential secret"
593
595
  }
594
596
  # Make sure all required state is set
595
597
  verifications.each do |(key, _value)|
596
- unless self.send(key)
597
- raise ArgumentError, "#{key} was not set."
598
- end
598
+ raise ArgumentError, "#{key} was not set." unless send key
599
599
  end
600
600
  options = {
601
- :signature_method => 'HMAC-SHA1',
602
- :additional_parameters => [],
603
- :realm => nil,
604
- :connection => Faraday.default_connection
601
+ signature_method: "HMAC-SHA1",
602
+ additional_parameters: [],
603
+ realm: nil,
604
+ connection: Faraday.default_connection
605
605
  }.merge(options)
606
606
  method = :post
607
607
  parameters = ::Signet::OAuth1.unsigned_temporary_credential_parameters(
608
- :client_credential_key => self.client_credential_key,
609
- :callback => self.callback,
610
- :signature_method => options[:signature_method],
611
- :additional_parameters => options[:additional_parameters]
608
+ client_credential_key: client_credential_key,
609
+ callback: callback,
610
+ signature_method: options[:signature_method],
611
+ additional_parameters: options[:additional_parameters]
612
612
  )
613
613
  signature = ::Signet::OAuth1.sign_parameters(
614
614
  method,
615
- self.temporary_credential_uri,
615
+ temporary_credential_uri,
616
616
  parameters,
617
- self.client_credential_secret
617
+ client_credential_secret
618
618
  )
619
- parameters << ['oauth_signature', signature]
619
+ parameters << ["oauth_signature", signature]
620
620
  authorization_header = [
621
- 'Authorization',
621
+ "Authorization",
622
622
  ::Signet::OAuth1.generate_authorization_header(
623
623
  parameters, options[:realm]
624
624
  )
625
625
  ]
626
626
  headers = [authorization_header]
627
627
  if method == :post
628
- headers << ['Content-Type', 'application/x-www-form-urlencoded']
629
- headers << ['Content-Length', '0']
628
+ headers << ["Content-Type", "application/x-www-form-urlencoded"]
629
+ headers << ["Content-Length", "0"]
630
630
  end
631
- return options[:connection].build_request(method.to_s.downcase.to_sym) do |req|
631
+ options[:connection].build_request method.to_s.downcase.to_sym do |req|
632
632
  req.url(Addressable::URI.parse(
633
- self.temporary_credential_uri.to_str
633
+ temporary_credential_uri.to_str
634
634
  ).normalize.to_s)
635
- req.headers = Faraday::Utils::Headers.new(headers)
635
+ req.headers = Faraday::Utils::Headers.new headers
636
636
  end
637
637
  end
638
- alias_method(
639
- :generate_request_token_request,
640
- :generate_temporary_credential_request
641
- )
638
+ # rubocop:enable Metrics/AbcSize
639
+ # rubocop:enable Metrics/MethodLength
640
+ alias generate_request_token_request generate_temporary_credential_request
642
641
 
643
642
  ##
644
643
  # Transmits a request for a temporary credential. This method does not
@@ -664,36 +663,24 @@ module Signet
664
663
  # :scope => 'https://mail.google.com/mail/feed/atom'
665
664
  # }
666
665
  # )
667
- def fetch_temporary_credential(options={})
666
+ def fetch_temporary_credential options = {}
668
667
  options[:connection] ||= Faraday.default_connection
669
- request = self.generate_temporary_credential_request(options)
670
- request_env = request.to_env(options[:connection])
668
+ request = generate_temporary_credential_request options
669
+ request_env = request.to_env options[:connection]
671
670
  request_env[:request] ||= request
672
- response = options[:connection].app.call(request_env)
673
- if response.status.to_i == 200
674
- return ::Signet::OAuth1.parse_form_encoded_credentials(response.body)
675
- elsif [400, 401, 403].include?(response.status.to_i)
676
- message = 'Authorization failed.'
677
- if response.body.to_s.strip.length > 0
678
- message += " Server message:\n#{response.body.to_s.strip}"
679
- end
680
- raise ::Signet::AuthorizationError.new(
681
- message, :request => request, :response => response
682
- )
683
- else
684
- message = "Unexpected status code: #{response.status}."
685
- if response.body.to_s.strip.length > 0
686
- message += " Server message:\n#{response.body.to_s.strip}"
687
- end
688
- raise ::Signet::AuthorizationError.new(
689
- message, :request => request, :response => response
690
- )
691
- end
671
+ response = options[:connection].app.call request_env
672
+ return ::Signet::OAuth1.parse_form_encoded_credentials response.body if response.status.to_i == 200
673
+ message = if [400, 401, 403].include? response.status.to_i
674
+ "Authorization failed."
675
+ else
676
+ "Unexpected status code: #{response.status}."
677
+ end
678
+ message += " Server message:\n#{response.body.to_s.strip}" unless response.body.to_s.strip.empty?
679
+ raise ::Signet::AuthorizationError.new(
680
+ message, request: request, response: response
681
+ )
692
682
  end
693
- alias_method(
694
- :fetch_request_token,
695
- :fetch_temporary_credential
696
- )
683
+ alias fetch_request_token fetch_temporary_credential
697
684
 
698
685
  ##
699
686
  # Transmits a request for a temporary credential. This method updates
@@ -717,14 +704,13 @@ module Signet
717
704
  # client.fetch_temporary_credential!(:additional_parameters => {
718
705
  # :scope => 'https://mail.google.com/mail/feed/atom'
719
706
  # })
720
- def fetch_temporary_credential!(options={})
721
- credential = self.fetch_temporary_credential(options)
707
+ def fetch_temporary_credential! options = {}
708
+ credential = fetch_temporary_credential options
722
709
  self.temporary_credential = credential
723
710
  end
724
- alias_method(
725
- :fetch_request_token!,
726
- :fetch_temporary_credential!
727
- )
711
+ alias fetch_request_token! fetch_temporary_credential!
712
+ # rubocop:disable Metrics/AbcSize
713
+ # rubocop:disable Metrics/MethodLength
728
714
 
729
715
  ##
730
716
  # Generates a request for token credentials.
@@ -739,63 +725,59 @@ module Signet
739
725
  # The Authorization realm. See RFC 2617.
740
726
  #
741
727
  # @return [Array] The request object.
742
- def generate_token_credential_request(options={})
728
+ def generate_token_credential_request options = {}
743
729
  verifications = {
744
- :token_credential_uri => 'Token credentials URI',
745
- :client_credential_key => 'Client credential key',
746
- :client_credential_secret => 'Client credential secret',
747
- :temporary_credential_key => 'Temporary credential key',
748
- :temporary_credential_secret => 'Temporary credential secret'
730
+ token_credential_uri: "Token credentials URI",
731
+ client_credential_key: "Client credential key",
732
+ client_credential_secret: "Client credential secret",
733
+ temporary_credential_key: "Temporary credential key",
734
+ temporary_credential_secret: "Temporary credential secret"
749
735
  }
750
736
  # Make sure all required state is set
751
737
  verifications.each do |(key, _value)|
752
- unless self.send(key)
753
- raise ArgumentError, "#{key} was not set."
754
- end
738
+ raise ArgumentError, "#{key} was not set." unless send key
755
739
  end
756
740
  options = {
757
- :signature_method => 'HMAC-SHA1',
758
- :realm => nil,
759
- :connection => Faraday.default_connection
741
+ signature_method: "HMAC-SHA1",
742
+ realm: nil,
743
+ connection: Faraday.default_connection
760
744
  }.merge(options)
761
745
  method = :post
762
746
  parameters = ::Signet::OAuth1.unsigned_token_credential_parameters(
763
- :client_credential_key => self.client_credential_key,
764
- :temporary_credential_key => self.temporary_credential_key,
765
- :signature_method => options[:signature_method],
766
- :verifier => options[:verifier]
747
+ client_credential_key: client_credential_key,
748
+ temporary_credential_key: temporary_credential_key,
749
+ signature_method: options[:signature_method],
750
+ verifier: options[:verifier]
767
751
  )
768
752
  signature = ::Signet::OAuth1.sign_parameters(
769
753
  method,
770
- self.token_credential_uri,
754
+ token_credential_uri,
771
755
  parameters,
772
- self.client_credential_secret,
773
- self.temporary_credential_secret
756
+ client_credential_secret,
757
+ temporary_credential_secret
774
758
  )
775
- parameters << ['oauth_signature', signature]
759
+ parameters << ["oauth_signature", signature]
776
760
  authorization_header = [
777
- 'Authorization',
761
+ "Authorization",
778
762
  ::Signet::OAuth1.generate_authorization_header(
779
763
  parameters, options[:realm]
780
764
  )
781
765
  ]
782
766
  headers = [authorization_header]
783
- headers << ['Cache-Control', 'no-store']
767
+ headers << ["Cache-Control", "no-store"]
784
768
  if method == :post
785
- headers << ['Content-Type', 'application/x-www-form-urlencoded']
786
- headers << ['Content-Length', '0']
769
+ headers << ["Content-Type", "application/x-www-form-urlencoded"]
770
+ headers << ["Content-Length", "0"]
787
771
  end
788
- return options[:connection].build_request(method.to_s.downcase.to_sym) do |req|
772
+ options[:connection].build_request method.to_s.downcase.to_sym do |req|
789
773
  req.url(Addressable::URI.parse(
790
- self.token_credential_uri.to_str
774
+ token_credential_uri.to_str
791
775
  ).normalize.to_s)
792
- req.headers = Faraday::Utils::Headers.new(headers)
776
+ req.headers = Faraday::Utils::Headers.new headers
793
777
  end
794
778
  end
795
- alias_method(
796
- :generate_access_token_request,
797
- :generate_token_credential_request
798
- )
779
+ # rubocop:enable Metrics/MethodLength
780
+ alias generate_access_token_request generate_token_credential_request
799
781
 
800
782
  ##
801
783
  # Transmits a request for a token credential. This method does not
@@ -819,36 +801,25 @@ module Signet
819
801
  # token_credential = client.fetch_token_credential(
820
802
  # :verifier => '12345'
821
803
  # )
822
- def fetch_token_credential(options={})
804
+ def fetch_token_credential options = {}
823
805
  options[:connection] ||= Faraday.default_connection
824
- request = self.generate_token_credential_request(options)
825
- request_env = request.to_env(options[:connection])
806
+ request = generate_token_credential_request options
807
+ request_env = request.to_env options[:connection]
826
808
  request_env[:request] ||= request
827
- response = options[:connection].app.call(request_env)
828
- if response.status.to_i == 200
829
- return ::Signet::OAuth1.parse_form_encoded_credentials(response.body)
830
- elsif [400, 401, 403].include?(response.status.to_i)
831
- message = 'Authorization failed.'
832
- if response.body.to_s.strip.length > 0
833
- message += " Server message:\n#{response.body.to_s.strip}"
834
- end
835
- raise ::Signet::AuthorizationError.new(
836
- message, :request => request, :response => response
837
- )
838
- else
839
- message = "Unexpected status code: #{response.status}."
840
- if response.body.to_s.strip.length > 0
841
- message += " Server message:\n#{response.body.to_s.strip}"
842
- end
843
- raise ::Signet::AuthorizationError.new(
844
- message, :request => request, :response => response
845
- )
846
- end
809
+ response = options[:connection].app.call request_env
810
+ return ::Signet::OAuth1.parse_form_encoded_credentials response.body if response.status.to_i == 200
811
+ message = if [400, 401, 403].include? response.status.to_i
812
+ "Authorization failed."
813
+ else
814
+ "Unexpected status code: #{response.status}."
815
+ end
816
+ message += " Server message:\n#{response.body.to_s.strip}" unless response.body.to_s.strip.empty?
817
+ raise ::Signet::AuthorizationError.new(
818
+ message, request: request, response: response
819
+ )
847
820
  end
848
- alias_method(
849
- :fetch_access_token,
850
- :fetch_token_credential
851
- )
821
+ # rubocop:enable Metrics/AbcSize
822
+ alias fetch_access_token fetch_token_credential
852
823
 
853
824
  ##
854
825
  # Transmits a request for a token credential. This method updates
@@ -870,14 +841,15 @@ module Signet
870
841
  #
871
842
  # @example
872
843
  # client.fetch_token_credential!(:verifier => '12345')
873
- def fetch_token_credential!(options={})
874
- credential = self.fetch_token_credential(options)
844
+ def fetch_token_credential! options = {}
845
+ credential = fetch_token_credential options
875
846
  self.token_credential = credential
876
847
  end
877
- alias_method(
878
- :fetch_access_token!,
879
- :fetch_token_credential!
880
- )
848
+ alias fetch_access_token! fetch_token_credential!
849
+ # rubocop:disable Metrics/AbcSize
850
+ # rubocop:disable Metrics/CyclomaticComplexity
851
+ # rubocop:disable Metrics/MethodLength
852
+ # rubocop:disable Metrics/PerceivedComplexity
881
853
 
882
854
  ##
883
855
  # Generates an authenticated request for protected resources.
@@ -900,91 +872,85 @@ module Signet
900
872
  # The Authorization realm. See RFC 2617.
901
873
  #
902
874
  # @return [Array] The request object.
903
- def generate_authenticated_request(options={})
875
+ def generate_authenticated_request options = {}
904
876
  verifications = {
905
- :client_credential_key => 'Client credential key',
906
- :client_credential_secret => 'Client credential secret'
877
+ client_credential_key: "Client credential key",
878
+ client_credential_secret: "Client credential secret"
907
879
  }
908
- unless self.two_legged
880
+ unless two_legged
909
881
  verifications.update(
910
- :token_credential_key => 'Token credential key',
911
- :token_credential_secret => 'Token credential secret'
882
+ token_credential_key: "Token credential key",
883
+ token_credential_secret: "Token credential secret"
912
884
  )
913
885
  end
914
886
  # Make sure all required state is set
915
887
  verifications.each do |(key, _value)|
916
- unless self.send(key)
917
- raise ArgumentError, "#{key} was not set."
918
- end
888
+ raise ArgumentError, "#{key} was not set." unless send key
919
889
  end
920
890
  options = {
921
- :signature_method => 'HMAC-SHA1',
922
- :realm => nil,
923
- :connection => Faraday.default_connection
891
+ signature_method: "HMAC-SHA1",
892
+ realm: nil,
893
+ connection: Faraday.default_connection
924
894
  }.merge(options)
925
895
 
926
- if options[:request].kind_of?(Faraday::Request)
896
+ if options[:request].is_a? Faraday::Request
927
897
  request = options[:request]
928
898
  else
929
- if options[:request].kind_of?(Array)
899
+ if options[:request].is_a? Array
930
900
  method, uri, headers, body = options[:request]
931
901
  else
932
902
  method = options[:method] || :get
933
903
  uri = options[:uri]
934
904
  headers = options[:headers] || []
935
- body = options[:body] || ''
905
+ body = options[:body] || ""
936
906
  end
937
- headers = headers.to_a if headers.kind_of?(Hash)
907
+ headers = headers.to_a if headers.is_a? Hash
938
908
  request_components = {
939
- :method => method,
940
- :uri => uri,
941
- :headers => headers,
942
- :body => body
909
+ method: method,
910
+ uri: uri,
911
+ headers: headers,
912
+ body: body
943
913
  }
944
914
  # Verify that we have all pieces required to return an HTTP request
945
915
  request_components.each do |(key, value)|
946
- unless value
947
- raise ArgumentError, "Missing :#{key} parameter."
948
- end
916
+ raise ArgumentError, "Missing :#{key} parameter." unless value
949
917
  end
950
- if !body.kind_of?(String) && body.respond_to?(:each)
918
+ if !body.is_a?(String) && body.respond_to?(:each)
951
919
  # Just in case we get a chunked body
952
920
  merged_body = StringIO.new
953
921
  body.each do |chunk|
954
- merged_body.write(chunk)
922
+ merged_body.write chunk
955
923
  end
956
924
  body = merged_body.string
957
925
  end
958
- if !body.kind_of?(String)
959
- raise TypeError, "Expected String, got #{body.class}."
960
- end
926
+ raise TypeError, "Expected String, got #{body.class}." unless body.is_a? String
961
927
  method = method.to_s.downcase.to_sym
962
- request = options[:connection].build_request(method) do |req|
963
- req.url(Addressable::URI.parse(uri).normalize.to_s)
964
- req.headers = Faraday::Utils::Headers.new(headers)
928
+ request = options[:connection].build_request method do |req|
929
+ req.url Addressable::URI.parse(uri).normalize.to_s
930
+ req.headers = Faraday::Utils::Headers.new headers
965
931
  req.body = body
966
932
  end
967
933
  end
968
934
 
969
935
  parameters = ::Signet::OAuth1.unsigned_resource_parameters(
970
- :client_credential_key => self.client_credential_key,
971
- :token_credential_key => self.token_credential_key,
972
- :signature_method => options[:signature_method],
973
- :two_legged => self.two_legged
936
+ client_credential_key: client_credential_key,
937
+ token_credential_key: token_credential_key,
938
+ signature_method: options[:signature_method],
939
+ two_legged: two_legged
974
940
  )
975
941
 
976
- env = request.to_env(options[:connection])
942
+ env = request.to_env options[:connection]
977
943
 
978
- content_type = request['Content-Type'].to_s
979
- content_type = content_type.split(';', 2).first if content_type.index(';')
980
- if request.method == :post && content_type == 'application/x-www-form-urlencoded'
944
+ content_type = request["Content-Type"].to_s
945
+ content_type = content_type.split(";", 2).first if content_type.index ";"
946
+ if request.method == :post && content_type == "application/x-www-form-urlencoded"
981
947
  # Serializes the body in case a hash/array was passed. Noop if already string like
982
- encoder = Faraday::Request::UrlEncoded.new(lambda { |_env| })
983
- encoder.call(env)
948
+ encoder = Faraday::Request::UrlEncoded.new(->(_env) {})
949
+ encoder.call env
984
950
  request.body = env[:body]
985
951
 
986
- post_parameters = Addressable::URI.form_unencode(env[:body])
987
- parameters = parameters.concat(post_parameters)
952
+ post_parameters = Addressable::URI.form_unencode env[:body]
953
+ parameters = parameters.concat post_parameters
988
954
  end
989
955
 
990
956
  # No need to attach URI query parameters, the .sign_parameters
@@ -993,16 +959,21 @@ module Signet
993
959
  env[:method],
994
960
  env[:url],
995
961
  parameters,
996
- self.client_credential_secret,
997
- self.token_credential_secret
962
+ client_credential_secret,
963
+ token_credential_secret
998
964
  )
999
965
 
1000
- parameters << ['oauth_signature', signature]
1001
- request['Authorization'] = ::Signet::OAuth1.generate_authorization_header(
1002
- parameters, options[:realm])
1003
- request['Cache-Control'] = 'no-store'
1004
- return request
966
+ parameters << ["oauth_signature", signature]
967
+ request["Authorization"] = ::Signet::OAuth1.generate_authorization_header(
968
+ parameters, options[:realm]
969
+ )
970
+ request["Cache-Control"] = "no-store"
971
+ request
1005
972
  end
973
+ # rubocop:enable Metrics/AbcSize
974
+ # rubocop:enable Metrics/CyclomaticComplexity
975
+ # rubocop:enable Metrics/MethodLength
976
+ # rubocop:enable Metrics/PerceivedComplexity
1006
977
 
1007
978
  ##
1008
979
  # Transmits a request for a protected resource.
@@ -1043,25 +1014,20 @@ module Signet
1043
1014
  # )
1044
1015
  #
1045
1016
  # @return [Array] The response object.
1046
- def fetch_protected_resource(options={})
1017
+ def fetch_protected_resource options = {}
1047
1018
  options[:connection] ||= Faraday.default_connection
1048
- request = self.generate_authenticated_request(options)
1049
- request_env = request.to_env(options[:connection])
1019
+ request = generate_authenticated_request options
1020
+ request_env = request.to_env options[:connection]
1050
1021
  request_env[:request] ||= request
1051
- response = options[:connection].app.call(request_env)
1052
- if response.status.to_i == 401
1053
- # When accessing a protected resource, we only want to raise an
1054
- # error for 401 responses.
1055
- message = 'Authorization failed.'
1056
- if response.body.to_s.strip.length > 0
1057
- message += " Server message:\n#{response.body.to_s.strip}"
1058
- end
1059
- raise ::Signet::AuthorizationError.new(
1060
- message, :request => request, :response => response
1061
- )
1062
- else
1063
- return response
1064
- end
1022
+ response = options[:connection].app.call request_env
1023
+ return response unless response.status.to_i == 401
1024
+ # When accessing a protected resource, we only want to raise an
1025
+ # error for 401 responses.
1026
+ message = "Authorization failed."
1027
+ message += " Server message:\n#{response.body.to_s.strip}" unless response.body.to_s.strip.empty?
1028
+ raise ::Signet::AuthorizationError.new(
1029
+ message, request: request, response: response
1030
+ )
1065
1031
  end
1066
1032
  end
1067
1033
  end