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,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require 'addressable/uri'
15
+ require "addressable/uri"
16
16
 
17
17
  module Signet
18
18
  ##
@@ -66,14 +66,14 @@ module Signet
66
66
  # - <code>:uri</code> -
67
67
  # A URI identifying a human-readable web page with additional
68
68
  # information about the error, indended for the resource owner.
69
- def initialize(message, options={})
70
- super(message)
69
+ def initialize message, options = {}
70
+ super message
71
71
  @options = options
72
72
  @request = options[:request]
73
73
  @response = options[:response]
74
74
  @code = options[:code]
75
75
  @description = options[:description]
76
- @uri = Addressable::URI.parse(options[:uri])
76
+ @uri = Addressable::URI.parse options[:uri]
77
77
  end
78
78
 
79
79
  ##
@@ -1,11 +1,11 @@
1
- require 'addressable/uri'
2
- require 'signet'
1
+ require "addressable/uri"
2
+ require "signet"
3
3
 
4
- require 'securerandom'
4
+ require "securerandom"
5
5
 
6
6
  module Signet #:nodoc:
7
7
  module OAuth1
8
- OUT_OF_BAND = 'oob'
8
+ OUT_OF_BAND = "oob".freeze
9
9
 
10
10
  ##
11
11
  # Converts a value to a percent-encoded <code>String</code> according to
@@ -15,9 +15,9 @@ module Signet #:nodoc:
15
15
  # @param [Symbol, #to_str] value The value to be encoded.
16
16
  #
17
17
  # @return [String] The percent-encoded value.
18
- def self.encode(value)
19
- value = value.to_s if value.kind_of?(Symbol)
20
- return Addressable::URI.encode_component(
18
+ def self.encode value
19
+ value = value.to_s if value.is_a? Symbol
20
+ Addressable::URI.encode_component(
21
21
  value,
22
22
  Addressable::URI::CharacterClasses::UNRESERVED
23
23
  )
@@ -30,8 +30,8 @@ module Signet #:nodoc:
30
30
  # The percent-encoded <code>String</code> to be unencoded.
31
31
  #
32
32
  # @return [String] The unencoded value.
33
- def self.unencode(value)
34
- return Addressable::URI.unencode_component(value)
33
+ def self.unencode value
34
+ Addressable::URI.unencode_component value
35
35
  end
36
36
 
37
37
  ##
@@ -39,8 +39,8 @@ module Signet #:nodoc:
39
39
  # value.
40
40
  #
41
41
  # @return [String] The current timestamp.
42
- def self.generate_timestamp()
43
- return Time.now.to_i.to_s
42
+ def self.generate_timestamp
43
+ Time.now.to_i.to_s
44
44
  end
45
45
 
46
46
  ##
@@ -48,9 +48,10 @@ module Signet #:nodoc:
48
48
  # value.
49
49
  #
50
50
  # @return [String] A random nonce.
51
- def self.generate_nonce()
52
- return SecureRandom.random_bytes(16).unpack('H*').join('')
51
+ def self.generate_nonce
52
+ SecureRandom.random_bytes(16).unpack("H*").join ""
53
53
  end
54
+ # rubocop:disable Metrics/MethodLength
54
55
 
55
56
  ##
56
57
  # Processes an options <code>Hash</code> to find a credential key value.
@@ -62,36 +63,36 @@ module Signet #:nodoc:
62
63
  # or <code>:access</code>.
63
64
  #
64
65
  # @return [String] The credential key value.
65
- def self.extract_credential_key_option(credential_type, options)
66
+ def self.extract_credential_key_option credential_type, options
66
67
  # Normalize key to String to allow indifferent access.
67
- options = options.inject({}) { |accu, (k, v)| accu[k.to_s] = v; accu }
68
+ options = options.each_with_object({}) { |(k, v), accu| accu[k.to_s] = v; }
68
69
  credential_key = "#{credential_type}_credential_key"
69
70
  credential = "#{credential_type}_credential"
70
71
  if options[credential_key]
71
72
  credential_key = options[credential_key]
72
73
  elsif options[credential]
73
- require 'signet/oauth_1/credential'
74
- if !options[credential].respond_to?(:key)
74
+ require "signet/oauth_1/credential"
75
+ unless options[credential].respond_to? :key
75
76
  raise TypeError,
76
- "Expected Signet::OAuth1::Credential, " +
77
- "got #{options[credential].class}."
77
+ "Expected Signet::OAuth1::Credential, " \
78
+ "got #{options[credential].class}."
78
79
  end
79
80
  credential_key = options[credential].key
80
81
  elsif options["client"]
81
- require 'signet/oauth_1/client'
82
- if !options["client"].kind_of?(::Signet::OAuth1::Client)
82
+ require "signet/oauth_1/client"
83
+ unless options["client"].is_a? ::Signet::OAuth1::Client
83
84
  raise TypeError,
84
- "Expected Signet::OAuth1::Client, got #{options["client"].class}."
85
+ "Expected Signet::OAuth1::Client, got #{options['client'].class}."
85
86
  end
86
- credential_key = options["client"].send(credential_key)
87
+ credential_key = options["client"].send credential_key
87
88
  else
88
89
  credential_key = nil
89
90
  end
90
- if credential_key != nil && !credential_key.kind_of?(String)
91
+ if !credential_key.nil? && !credential_key.is_a?(String)
91
92
  raise TypeError,
92
- "Expected String, got #{credential_key.class}."
93
+ "Expected String, got #{credential_key.class}."
93
94
  end
94
- return credential_key
95
+ credential_key
95
96
  end
96
97
 
97
98
  ##
@@ -104,37 +105,38 @@ module Signet #:nodoc:
104
105
  # or <code>:access</code>.
105
106
  #
106
107
  # @return [String] The credential secret value.
107
- def self.extract_credential_secret_option(credential_type, options)
108
+ def self.extract_credential_secret_option credential_type, options
108
109
  # Normalize key to String to allow indifferent access.
109
- options = options.inject({}) { |accu, (k, v)| accu[k.to_s] = v; accu }
110
+ options = options.each_with_object({}) { |(k, v), accu| accu[k.to_s] = v; }
110
111
  credential_secret = "#{credential_type}_credential_secret"
111
112
  credential = "#{credential_type}_credential"
112
113
  if options[credential_secret]
113
114
  credential_secret = options[credential_secret]
114
115
  elsif options[credential]
115
- require 'signet/oauth_1/credential'
116
- if !options[credential].respond_to?(:secret)
116
+ require "signet/oauth_1/credential"
117
+ unless options[credential].respond_to? :secret
117
118
  raise TypeError,
118
- "Expected Signet::OAuth1::Credential, " +
119
- "got #{options[credential].class}."
119
+ "Expected Signet::OAuth1::Credential, " \
120
+ "got #{options[credential].class}."
120
121
  end
121
122
  credential_secret = options[credential].secret
122
123
  elsif options["client"]
123
- require 'signet/oauth_1/client'
124
- if !options["client"].kind_of?(::Signet::OAuth1::Client)
124
+ require "signet/oauth_1/client"
125
+ unless options["client"].is_a? ::Signet::OAuth1::Client
125
126
  raise TypeError,
126
- "Expected Signet::OAuth1::Client, got #{options["client"].class}."
127
+ "Expected Signet::OAuth1::Client, got #{options['client'].class}."
127
128
  end
128
- credential_secret = options["client"].send(credential_secret)
129
+ credential_secret = options["client"].send credential_secret
129
130
  else
130
131
  credential_secret = nil
131
132
  end
132
- if credential_secret != nil && !credential_secret.kind_of?(String)
133
+ if !credential_secret.nil? && !credential_secret.is_a?(String)
133
134
  raise TypeError,
134
- "Expected String, got #{credential_secret.class}."
135
+ "Expected String, got #{credential_secret.class}."
135
136
  end
136
- return credential_secret
137
+ credential_secret
137
138
  end
139
+ # rubocop:enable Metrics/MethodLength
138
140
 
139
141
  ##
140
142
  # Normalizes a set of OAuth parameters according to the algorithm given
@@ -145,16 +147,14 @@ module Signet #:nodoc:
145
147
  # @param [Enumerable] parameters The OAuth parameter list.
146
148
  #
147
149
  # @return [String] The normalized parameter list.
148
- def self.normalize_parameters(parameters)
149
- if !parameters.kind_of?(Enumerable)
150
- raise TypeError, "Expected Enumerable, got #{parameters.class}."
151
- end
150
+ def self.normalize_parameters parameters
151
+ raise TypeError, "Expected Enumerable, got #{parameters.class}." unless parameters.is_a? Enumerable
152
152
  parameter_list = parameters.map do |k, v|
153
153
  next if k == "oauth_signature"
154
154
  # This is probably the wrong place to try to exclude the realm
155
- "#{self.encode(k)}=#{self.encode(v)}"
155
+ "#{encode k}=#{encode v}"
156
156
  end
157
- return parameter_list.compact.sort.join("&")
157
+ parameter_list.compact.sort.join "&"
158
158
  end
159
159
 
160
160
  ##
@@ -167,29 +167,27 @@ module Signet #:nodoc:
167
167
  # @param [Enumerable] parameters The OAuth parameter list.
168
168
  #
169
169
  # @return [String] The signature base string.
170
- def self.generate_base_string(method, uri, parameters)
171
- if !parameters.kind_of?(Enumerable)
172
- raise TypeError, "Expected Enumerable, got #{parameters.class}."
173
- end
170
+ def self.generate_base_string method, uri, parameters
171
+ raise TypeError, "Expected Enumerable, got #{parameters.class}." unless parameters.is_a? Enumerable
174
172
  method = method.to_s.upcase
175
- parsed_uri = Addressable::URI.parse(uri)
173
+ parsed_uri = Addressable::URI.parse uri
176
174
  uri = Addressable::URI.new(
177
- :scheme => parsed_uri.normalized_scheme,
178
- :authority => parsed_uri.normalized_authority,
179
- :path => parsed_uri.path,
180
- :query => parsed_uri.query,
181
- :fragment => parsed_uri.fragment
175
+ scheme: parsed_uri.normalized_scheme,
176
+ authority: parsed_uri.normalized_authority,
177
+ path: parsed_uri.path,
178
+ query: parsed_uri.query,
179
+ fragment: parsed_uri.fragment
182
180
  )
183
181
  uri_parameters = uri.query_values.to_a
184
182
  uri = uri.omit(:query, :fragment).to_s
185
183
  merged_parameters =
186
184
  uri_parameters.concat(parameters.map { |k, v| [k, v] })
187
- parameter_string = self.normalize_parameters(merged_parameters)
188
- return [
189
- self.encode(method),
190
- self.encode(uri),
191
- self.encode(parameter_string)
192
- ].join('&')
185
+ parameter_string = normalize_parameters merged_parameters
186
+ [
187
+ encode(method),
188
+ encode(uri),
189
+ encode(parameter_string)
190
+ ].join("&")
193
191
  end
194
192
 
195
193
  ##
@@ -201,48 +199,45 @@ module Signet #:nodoc:
201
199
  # The <code>Authorization</code> realm. See RFC 2617.
202
200
  #
203
201
  # @return [String] The <code>Authorization</code> header.
204
- def self.generate_authorization_header(parameters, realm=nil)
205
- if !parameters.kind_of?(Enumerable) || parameters.kind_of?(String)
202
+ def self.generate_authorization_header parameters, realm = nil
203
+ if !parameters.is_a?(Enumerable) || parameters.is_a?(String)
206
204
  raise TypeError, "Expected Enumerable, got #{parameters.class}."
207
205
  end
208
206
  parameter_list = parameters.map do |k, v|
209
- if k == 'realm'
207
+ if k == "realm"
210
208
  raise ArgumentError,
211
- 'The "realm" parameter must be specified as a separate argument.'
209
+ 'The "realm" parameter must be specified as a separate argument.'
212
210
  end
213
- "#{self.encode(k)}=\"#{self.encode(v)}\""
211
+ "#{encode k}=\"#{encode v}\""
214
212
  end
215
213
  if realm
216
- realm = realm.gsub('"', '\"')
217
- parameter_list.unshift("realm=\"#{realm}\"")
214
+ realm = realm.gsub '"', '\"'
215
+ parameter_list.unshift "realm=\"#{realm}\""
218
216
  end
219
- return 'OAuth ' + parameter_list.join(", ")
217
+ "OAuth " + parameter_list.join(", ")
220
218
  end
221
219
 
222
220
  ##
223
221
  # Parses an <code>Authorization</code> header into its component
224
222
  # parameters. Parameter keys and values are decoded according to the
225
223
  # rules given in RFC 5849.
226
- def self.parse_authorization_header(field_value)
227
- if !field_value.kind_of?(String)
228
- raise TypeError, "Expected String, got #{field_value.class}."
229
- end
224
+ def self.parse_authorization_header field_value
225
+ raise TypeError, "Expected String, got #{field_value.class}." unless field_value.is_a? String
230
226
  auth_scheme = field_value[/^([-._0-9a-zA-Z]+)/, 1]
231
227
  case auth_scheme
232
228
  when /^OAuth$/i
233
229
  # Other token types may be supported eventually
234
230
  pairs = Signet.parse_auth_param_list(field_value[/^OAuth\s+(.*)$/i, 1])
235
- return (pairs.inject([]) do |accu, (k, v)|
236
- if k != 'realm'
237
- k = self.unencode(k)
238
- v = self.unencode(v)
231
+ return (pairs.each_with_object [] do |(k, v), accu|
232
+ if k != "realm"
233
+ k = unencode k
234
+ v = unencode v
239
235
  end
240
236
  accu << [k, v]
241
- accu
242
237
  end)
243
238
  else
244
239
  raise ParseError,
245
- 'Parsing non-OAuth Authorization headers is out of scope.'
240
+ "Parsing non-OAuth Authorization headers is out of scope."
246
241
  end
247
242
  end
248
243
 
@@ -253,11 +248,9 @@ module Signet #:nodoc:
253
248
  # @param [String] body The response body.
254
249
  #
255
250
  # @return [Signet::OAuth1::Credential] The OAuth credentials.
256
- def self.parse_form_encoded_credentials(body)
257
- if !body.kind_of?(String)
258
- raise TypeError, "Expected String, got #{body.class}."
259
- end
260
- return Signet::OAuth1::Credential.new(
251
+ def self.parse_form_encoded_credentials body
252
+ raise TypeError, "Expected String, got #{body.class}." unless body.is_a? String
253
+ Signet::OAuth1::Credential.new(
261
254
  Addressable::URI.form_unencode(body)
262
255
  )
263
256
  end
@@ -275,33 +268,33 @@ module Signet #:nodoc:
275
268
  # The token credential secret. Omitted when unavailable.
276
269
  #
277
270
  # @return [String] The signature.
278
- def self.sign_parameters(method, uri, parameters,
279
- client_credential_secret, token_credential_secret=nil)
271
+ def self.sign_parameters method, uri, parameters,
272
+ client_credential_secret, token_credential_secret = nil
280
273
  # Technically, the token_credential_secret parameter here may actually
281
274
  # be a temporary credential secret when obtaining a token credential
282
275
  # for the first time
283
- base_string = self.generate_base_string(method, uri, parameters)
284
- parameters = parameters.inject({}) { |h,(k,v)| h[k.to_s]=v; h }
285
- signature_method = parameters['oauth_signature_method']
276
+ base_string = generate_base_string method, uri, parameters
277
+ parameters = parameters.each_with_object({}) { |(k, v), h| h[k.to_s] = v; }
278
+ signature_method = parameters["oauth_signature_method"]
286
279
  case signature_method
287
- when 'HMAC-SHA1'
288
- require 'signet/oauth_1/signature_methods/hmac_sha1'
280
+ when "HMAC-SHA1"
281
+ require "signet/oauth_1/signature_methods/hmac_sha1"
289
282
  return Signet::OAuth1::HMACSHA1.generate_signature(
290
283
  base_string, client_credential_secret, token_credential_secret
291
284
  )
292
- when 'RSA-SHA1'
293
- require 'signet/oauth_1/signature_methods/rsa_sha1'
285
+ when "RSA-SHA1"
286
+ require "signet/oauth_1/signature_methods/rsa_sha1"
294
287
  return Signet::OAuth1::RSASHA1.generate_signature(
295
288
  base_string, client_credential_secret, token_credential_secret
296
289
  )
297
- when 'PLAINTEXT'
298
- require 'signet/oauth_1/signature_methods/plaintext'
290
+ when "PLAINTEXT"
291
+ require "signet/oauth_1/signature_methods/plaintext"
299
292
  return Signet::OAuth1::PLAINTEXT.generate_signature(
300
293
  base_string, client_credential_secret, token_credential_secret
301
294
  )
302
295
  else
303
296
  raise NotImplementedError,
304
- "Unsupported signature method: #{signature_method}"
297
+ "Unsupported signature method: #{signature_method}"
305
298
  end
306
299
  end
307
300
 
@@ -322,22 +315,20 @@ module Signet #:nodoc:
322
315
  #
323
316
  # @return [Array]
324
317
  # The parameter list as an <code>Array</code> of key/value pairs.
325
- def self.unsigned_temporary_credential_parameters(options={})
318
+ def self.unsigned_temporary_credential_parameters options = {}
326
319
  options = {
327
- :callback => ::Signet::OAuth1::OUT_OF_BAND,
328
- :signature_method => 'HMAC-SHA1',
329
- :additional_parameters => []
320
+ callback: ::Signet::OAuth1::OUT_OF_BAND,
321
+ signature_method: "HMAC-SHA1",
322
+ additional_parameters: []
330
323
  }.merge(options)
331
324
  client_credential_key =
332
- self.extract_credential_key_option(:client, options)
333
- if client_credential_key == nil
334
- raise ArgumentError, "Missing :client_credential_key parameter."
335
- end
325
+ extract_credential_key_option :client, options
326
+ raise ArgumentError, "Missing :client_credential_key parameter." if client_credential_key.nil?
336
327
  parameters = [
337
328
  ["oauth_consumer_key", client_credential_key],
338
329
  ["oauth_signature_method", options[:signature_method]],
339
- ["oauth_timestamp", self.generate_timestamp()],
340
- ["oauth_nonce", self.generate_nonce()],
330
+ ["oauth_timestamp", generate_timestamp],
331
+ ["oauth_nonce", generate_nonce],
341
332
  ["oauth_version", "1.0"],
342
333
  ["oauth_callback", options[:callback]]
343
334
  ]
@@ -345,7 +336,7 @@ module Signet #:nodoc:
345
336
  options[:additional_parameters].each do |key, value|
346
337
  parameters << [key, value]
347
338
  end
348
- return parameters
339
+ parameters
349
340
  end
350
341
 
351
342
  ##
@@ -356,28 +347,24 @@ module Signet #:nodoc:
356
347
  # The base authorization URI.
357
348
  #
358
349
  # @return [String] The authorization URI to redirect the user to.
359
- def self.generate_authorization_uri(authorization_uri, options={})
350
+ def self.generate_authorization_uri authorization_uri, options = {}
360
351
  options = {
361
- :callback => nil,
362
- :additional_parameters => {}
352
+ callback: nil,
353
+ additional_parameters: {}
363
354
  }.merge(options)
364
355
  temporary_credential_key =
365
- self.extract_credential_key_option(:temporary, options)
356
+ extract_credential_key_option :temporary, options
366
357
  parsed_uri = Addressable::URI.parse(authorization_uri).dup
367
358
  query_values = parsed_uri.query_values || {}
368
359
  if options[:additional_parameters]
369
360
  query_values = query_values.merge(
370
- options[:additional_parameters].inject({}) { |h,(k,v)| h[k]=v; h }
361
+ options[:additional_parameters].each_with_object({}) { |(k, v), h| h[k] = v; }
371
362
  )
372
363
  end
373
- if temporary_credential_key
374
- query_values['oauth_token'] = temporary_credential_key
375
- end
376
- if options[:callback]
377
- query_values['oauth_callback'] = options[:callback]
378
- end
364
+ query_values["oauth_token"] = temporary_credential_key if temporary_credential_key
365
+ query_values["oauth_callback"] = options[:callback] if options[:callback]
379
366
  parsed_uri.query_values = query_values
380
- return parsed_uri.normalize.to_s
367
+ parsed_uri.normalize.to_s
381
368
  end
382
369
 
383
370
  ##
@@ -397,35 +384,29 @@ module Signet #:nodoc:
397
384
  #
398
385
  # @return [Array]
399
386
  # The parameter list as an <code>Array</code> of key/value pairs.
400
- def self.unsigned_token_credential_parameters(options={})
387
+ def self.unsigned_token_credential_parameters options = {}
401
388
  options = {
402
- :signature_method => 'HMAC-SHA1',
403
- :verifier => nil
389
+ signature_method: "HMAC-SHA1",
390
+ verifier: nil
404
391
  }.merge(options)
405
392
  client_credential_key =
406
- self.extract_credential_key_option(:client, options)
393
+ extract_credential_key_option :client, options
407
394
  temporary_credential_key =
408
- self.extract_credential_key_option(:temporary, options)
409
- if client_credential_key == nil
410
- raise ArgumentError, "Missing :client_credential_key parameter."
411
- end
412
- if temporary_credential_key == nil
413
- raise ArgumentError, "Missing :temporary_credential_key parameter."
414
- end
415
- if options[:verifier] == nil
416
- raise ArgumentError, "Missing :verifier parameter."
417
- end
395
+ extract_credential_key_option :temporary, options
396
+ raise ArgumentError, "Missing :client_credential_key parameter." if client_credential_key.nil?
397
+ raise ArgumentError, "Missing :temporary_credential_key parameter." if temporary_credential_key.nil?
398
+ raise ArgumentError, "Missing :verifier parameter." if options[:verifier].nil?
418
399
  parameters = [
419
400
  ["oauth_consumer_key", client_credential_key],
420
401
  ["oauth_token", temporary_credential_key],
421
402
  ["oauth_signature_method", options[:signature_method]],
422
- ["oauth_timestamp", self.generate_timestamp()],
423
- ["oauth_nonce", self.generate_nonce()],
403
+ ["oauth_timestamp", generate_timestamp],
404
+ ["oauth_nonce", generate_nonce],
424
405
  ["oauth_verifier", options[:verifier]],
425
406
  ["oauth_version", "1.0"]
426
407
  ]
427
408
  # No additional parameters allowed here
428
- return parameters
409
+ parameters
429
410
  end
430
411
 
431
412
  ##
@@ -445,35 +426,29 @@ module Signet #:nodoc:
445
426
  #
446
427
  # @return [Array]
447
428
  # The parameter list as an <code>Array</code> of key/value pairs.
448
- def self.unsigned_resource_parameters(options={})
429
+ def self.unsigned_resource_parameters options = {}
449
430
  options = {
450
- :signature_method => 'HMAC-SHA1',
451
- :two_legged => false
431
+ signature_method: "HMAC-SHA1",
432
+ two_legged: false
452
433
  }.merge(options)
453
434
  client_credential_key =
454
- self.extract_credential_key_option(:client, options)
455
- if client_credential_key == nil
456
- raise ArgumentError, "Missing :client_credential_key parameter."
457
- end
435
+ extract_credential_key_option :client, options
436
+ raise ArgumentError, "Missing :client_credential_key parameter." if client_credential_key.nil?
458
437
  unless options[:two_legged]
459
438
  token_credential_key =
460
- self.extract_credential_key_option(:token, options)
461
- if token_credential_key == nil
462
- raise ArgumentError, "Missing :token_credential_key parameter."
463
- end
439
+ extract_credential_key_option :token, options
440
+ raise ArgumentError, "Missing :token_credential_key parameter." if token_credential_key.nil?
464
441
  end
465
442
  parameters = [
466
443
  ["oauth_consumer_key", client_credential_key],
467
444
  ["oauth_signature_method", options[:signature_method]],
468
- ["oauth_timestamp", self.generate_timestamp()],
469
- ["oauth_nonce", self.generate_nonce()],
445
+ ["oauth_timestamp", generate_timestamp],
446
+ ["oauth_nonce", generate_nonce],
470
447
  ["oauth_version", "1.0"]
471
448
  ]
472
- unless options[:two_legged]
473
- parameters << ["oauth_token", token_credential_key]
474
- end
449
+ parameters << ["oauth_token", token_credential_key] unless options[:two_legged]
475
450
  # No additional parameters allowed here
476
- return parameters
451
+ parameters
477
452
  end
478
453
  end
479
454
  end