oauth 0.5.0 → 0.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. checksums.yaml +5 -5
  2. data/README.rdoc +22 -9
  3. data/bin/oauth +8 -2
  4. data/lib/oauth.rb +2 -2
  5. data/lib/oauth/cli.rb +37 -359
  6. data/lib/oauth/cli/authorize_command.rb +71 -0
  7. data/lib/oauth/cli/base_command.rb +208 -0
  8. data/lib/oauth/cli/help_command.rb +22 -0
  9. data/lib/oauth/cli/query_command.rb +25 -0
  10. data/lib/oauth/cli/sign_command.rb +81 -0
  11. data/lib/oauth/cli/version_command.rb +7 -0
  12. data/lib/oauth/client/action_controller_request.rb +1 -1
  13. data/lib/oauth/client/em_http.rb +0 -1
  14. data/lib/oauth/client/helper.rb +8 -2
  15. data/lib/oauth/client/net_http.rb +0 -1
  16. data/lib/oauth/consumer.rb +69 -13
  17. data/lib/oauth/helper.rb +10 -6
  18. data/lib/oauth/request_proxy/action_controller_request.rb +2 -2
  19. data/lib/oauth/request_proxy/action_dispatch_request.rb +7 -0
  20. data/lib/oauth/request_proxy/base.rb +6 -2
  21. data/lib/oauth/tokens/request_token.rb +14 -7
  22. data/lib/oauth/version.rb +1 -1
  23. metadata +93 -96
  24. data/lib/oauth/core_ext.rb +0 -31
  25. data/test/cases/oauth_case.rb +0 -19
  26. data/test/cases/spec/1_0-final/test_construct_request_url.rb +0 -62
  27. data/test/cases/spec/1_0-final/test_normalize_request_parameters.rb +0 -88
  28. data/test/cases/spec/1_0-final/test_parameter_encodings.rb +0 -86
  29. data/test/cases/spec/1_0-final/test_signature_base_strings.rb +0 -77
  30. data/test/integration/consumer_test.rb +0 -307
  31. data/test/test_access_token.rb +0 -26
  32. data/test/test_action_controller_request_proxy.rb +0 -157
  33. data/test/test_consumer.rb +0 -226
  34. data/test/test_curb_request_proxy.rb +0 -77
  35. data/test/test_em_http_client.rb +0 -80
  36. data/test/test_em_http_request_proxy.rb +0 -115
  37. data/test/test_helper.rb +0 -33
  38. data/test/test_hmac_sha1.rb +0 -20
  39. data/test/test_net_http_client.rb +0 -298
  40. data/test/test_net_http_request_proxy.rb +0 -72
  41. data/test/test_oauth_helper.rb +0 -94
  42. data/test/test_rack_request_proxy.rb +0 -40
  43. data/test/test_request_token.rb +0 -56
  44. data/test/test_rest_client_request_proxy.rb +0 -81
  45. data/test/test_rsa_sha1.rb +0 -59
  46. data/test/test_server.rb +0 -41
  47. data/test/test_signature.rb +0 -15
  48. data/test/test_signature_base.rb +0 -32
  49. data/test/test_signature_hmac_sha1.rb +0 -40
  50. data/test/test_signature_plain_text.rb +0 -31
  51. data/test/test_token.rb +0 -14
  52. data/test/test_typhoeus_request_proxy.rb +0 -101
@@ -1,5 +1,4 @@
1
1
  require 'oauth/helper'
2
- require 'oauth/client/helper'
3
2
  require 'oauth/request_proxy/net_http'
4
3
 
5
4
  class Net::HTTPGenericRequest
@@ -8,11 +8,21 @@ require 'cgi'
8
8
  module OAuth
9
9
  class Consumer
10
10
  # determine the certificate authority path to verify SSL certs
11
- CA_FILES = %W(#{ENV['SSL_CERT_FILE']} /etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt /usr/share/curl/curl-ca-bundle.crt)
12
- CA_FILES.each do |ca_file|
13
- if File.exist?(ca_file)
14
- CA_FILE = ca_file
15
- break
11
+ if ENV['SSL_CERT_FILE']
12
+ if File.exist?(ENV['SSL_CERT_FILE'])
13
+ CA_FILE = ENV['SSL_CERT_FILE']
14
+ else
15
+ raise "The SSL CERT provided does not exist."
16
+ end
17
+ end
18
+
19
+ if !defined?(CA_FILE)
20
+ CA_FILES = %W(/etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt /usr/share/curl/curl-ca-bundle.crt)
21
+ CA_FILES.each do |ca_file|
22
+ if File.exist?(ca_file)
23
+ CA_FILE = ca_file
24
+ break
25
+ end
16
26
  end
17
27
  end
18
28
  CA_FILE = nil unless defined?(CA_FILE)
@@ -23,6 +33,7 @@ module OAuth
23
33
 
24
34
  # default paths on site. These are the same as the defaults set up by the generators
25
35
  :request_token_path => '/oauth/request_token',
36
+ :authenticate_path => '/oauth/authenticate',
26
37
  :authorize_path => '/oauth/authorize',
27
38
  :access_token_path => '/oauth/access_token',
28
39
 
@@ -43,6 +54,13 @@ module OAuth
43
54
  # Add a custom ca_file for consumer
44
55
  # :ca_file => '/etc/certs.pem'
45
56
 
57
+ # Possible values:
58
+ #
59
+ # nil, false - no debug output
60
+ # true - uses $stdout
61
+ # some_value - uses some_value
62
+ :debug_output => nil,
63
+
46
64
  :oauth_version => "1.0"
47
65
  }
48
66
 
@@ -87,6 +105,18 @@ module OAuth
87
105
  @http_method ||= @options[:http_method] || :post
88
106
  end
89
107
 
108
+ def debug_output
109
+ @debug_output ||= begin
110
+ case @options[:debug_output]
111
+ when nil, false
112
+ when true
113
+ $stdout
114
+ else
115
+ @options[:debug_output]
116
+ end
117
+ end
118
+ end
119
+
90
120
  # The HTTP object for the site. The HTTP Object is what you get when you do Net::HTTP.new
91
121
  def http
92
122
  @http ||= create_http
@@ -210,8 +240,15 @@ module OAuth
210
240
  end
211
241
  when (300..399)
212
242
  # this is a redirect
213
- uri = URI.parse(response.header['location'])
214
- response.error! if uri.path == path # careful of those infinite redirects
243
+ uri = URI.parse(response['location'])
244
+ our_uri = URI.parse(site)
245
+
246
+ if uri.path == path && our_uri.host != uri.host
247
+ options[:site] = "#{uri.scheme}://#{uri.host}"
248
+ @http = create_http
249
+ end
250
+
251
+ response.error! if uri.path == path && our_uri.host == uri.host # careful of those infinite redirects
215
252
  self.token_request(http_method, uri.path, token, request_options, arguments)
216
253
  when (400..499)
217
254
  raise OAuth::Unauthorized, response
@@ -247,6 +284,10 @@ module OAuth
247
284
  @options[:request_token_path]
248
285
  end
249
286
 
287
+ def authenticate_path
288
+ @options[:authenticate_path]
289
+ end
290
+
250
291
  def authorize_path
251
292
  @options[:authorize_path]
252
293
  end
@@ -264,6 +305,14 @@ module OAuth
264
305
  @options.has_key?(:request_token_url)
265
306
  end
266
307
 
308
+ def authenticate_url
309
+ @options[:authenticate_url] || site + authenticate_path
310
+ end
311
+
312
+ def authenticate_url?
313
+ @options.has_key?(:authenticate_url)
314
+ end
315
+
267
316
  def authorize_url
268
317
  @options[:authorize_url] || site + authorize_path
269
318
  end
@@ -311,16 +360,21 @@ module OAuth
311
360
 
312
361
  http_object.use_ssl = (our_uri.scheme == 'https')
313
362
 
314
- if @options[:ca_file] || CA_FILE
315
- http_object.ca_file = @options[:ca_file] || CA_FILE
363
+ if @options[:no_verify]
364
+ http_object.verify_mode = OpenSSL::SSL::VERIFY_NONE
365
+ else
366
+ ca_file = @options[:ca_file] || CA_FILE
367
+ if ca_file
368
+ http_object.ca_file = ca_file
369
+ end
316
370
  http_object.verify_mode = OpenSSL::SSL::VERIFY_PEER
317
371
  http_object.verify_depth = 5
318
- else
319
- http_object.verify_mode = OpenSSL::SSL::VERIFY_NONE
320
372
  end
321
373
 
322
374
  http_object.read_timeout = http_object.open_timeout = @options[:timeout] || 30
323
375
  http_object.open_timeout = @options[:open_timeout] if @options[:open_timeout]
376
+ http_object.ssl_version = @options[:ssl_version] if @options[:ssl_version]
377
+ http_object.set_debug_output(debug_output) if debug_output
324
378
 
325
379
  http_object
326
380
  end
@@ -334,8 +388,10 @@ module OAuth
334
388
  end
335
389
 
336
390
  # if the base site contains a path, add it now
337
- uri = URI.parse(site)
338
- path = uri.path + path if uri.path && uri.path != '/'
391
+ # only add if the site host matches the current http object's host
392
+ # (in case we've specified a full url for token requests)
393
+ uri = URI.parse(site)
394
+ path = uri.path + path if uri.path && uri.path != '/' && uri.host == http.address
339
395
 
340
396
  headers = arguments.first.is_a?(Hash) ? arguments.shift : {}
341
397
 
@@ -9,9 +9,17 @@ module OAuth
9
9
  #
10
10
  # See Also: {OAuth core spec version 1.0, section 5.1}[http://oauth.net/core/1.0#rfc.section.5.1]
11
11
  def escape(value)
12
- URI::escape(value.to_s.to_str, OAuth::RESERVED_CHARACTERS)
12
+ _escape(value.to_s.to_str)
13
13
  rescue ArgumentError
14
- URI::escape(value.to_s.to_str.force_encoding(Encoding::UTF_8), OAuth::RESERVED_CHARACTERS)
14
+ _escape(value.to_s.to_str.force_encoding(Encoding::UTF_8))
15
+ end
16
+
17
+ def _escape(string)
18
+ URI::DEFAULT_PARSER.escape(string, OAuth::RESERVED_CHARACTERS)
19
+ end
20
+
21
+ def unescape(value)
22
+ URI::DEFAULT_PARSER.unescape(value.gsub('+', '%2B'))
15
23
  end
16
24
 
17
25
  # Generate a random key of up to +size+ bytes. The value returned is Base64 encoded with non-word
@@ -94,10 +102,6 @@ module OAuth
94
102
  Hash[*params.flatten]
95
103
  end
96
104
 
97
- def unescape(value)
98
- URI.unescape(value.gsub('+', '%2B'))
99
- end
100
-
101
105
  def stringify_keys(hash)
102
106
  new_h = {}
103
107
  hash.each do |k, v|
@@ -23,7 +23,7 @@ then # rails 3.x
23
23
  ActionDispatch::Request::HTTP_METHOD_LOOKUP["patch"] = :patch
24
24
  end
25
25
 
26
- else # rails 4.x - already has patch
26
+ else # rails 4.x and later - already has patch
27
27
  require 'action_dispatch/http/request'
28
28
  end
29
29
 
@@ -67,7 +67,7 @@ module OAuth::RequestProxy
67
67
 
68
68
  params.
69
69
  join('&').split('&').
70
- reject(&:blank?).
70
+ reject { |s| s.match(/\A\s*\z/) }.
71
71
  map { |p| p.split('=').map{|esc| CGI.unescape(esc)} }.
72
72
  reject { |kv| kv[0] == 'oauth_signature'}
73
73
  end
@@ -0,0 +1,7 @@
1
+ require 'oauth/request_proxy/rack_request'
2
+
3
+ module OAuth::RequestProxy
4
+ class ActionDispatchRequest < OAuth::RequestProxy::RackRequest
5
+ proxies ActionDispatch::Request
6
+ end
7
+ end
@@ -76,7 +76,7 @@ module OAuth::RequestProxy
76
76
  end
77
77
 
78
78
  def parameters_for_signature
79
- parameters.reject { |k,v| k == "oauth_signature" || unsigned_parameters.include?(k)}
79
+ parameters.select { |k,v| not signature_and_unsigned_parameters.include?(k) }
80
80
  end
81
81
 
82
82
  def oauth_parameters
@@ -87,6 +87,10 @@ module OAuth::RequestProxy
87
87
  parameters.reject { |k,v| OAuth::PARAMETERS.include?(k) }
88
88
  end
89
89
 
90
+ def signature_and_unsigned_parameters
91
+ unsigned_parameters+["oauth_signature"]
92
+ end
93
+
90
94
  # See 9.1.2 in specs
91
95
  def normalized_uri
92
96
  u = URI.parse(uri)
@@ -146,7 +150,7 @@ module OAuth::RequestProxy
146
150
  if uri = request.env['REQUEST_URI']
147
151
  uri.split('?', 2)[1].nil?
148
152
  else
149
- request.query_string.blank?
153
+ request.query_string.match(/\A\s*\z/)
150
154
  end
151
155
  end
152
156
 
@@ -8,7 +8,14 @@ module OAuth
8
8
  return nil if self.token.nil?
9
9
 
10
10
  params = (params || {}).merge(:oauth_token => self.token)
11
- build_authorize_url(consumer.authorize_url, params)
11
+ build_url(consumer.authorize_url, params)
12
+ end
13
+
14
+ def authenticate_url(params = nil)
15
+ return nil if self.token.nil?
16
+
17
+ params = (params || {}).merge(:oauth_token => self.token)
18
+ build_url(consumer.authenticate_url, params)
12
19
  end
13
20
 
14
21
  def callback_confirmed?
@@ -23,14 +30,14 @@ module OAuth
23
30
 
24
31
  protected
25
32
 
26
- # construct an authorization url
27
- def build_authorize_url(base_url, params)
33
+ # construct an authorization or authentication url
34
+ def build_url(base_url, params)
28
35
  uri = URI.parse(base_url.to_s)
29
- if(!uri.query.blank? && !params.empty?)
30
- uri.query += "&"
31
- end
36
+ queries = {}
37
+ queries = Hash[URI.decode_www_form(uri.query)] if uri.query
32
38
  # TODO doesn't handle array values correctly
33
- uri.query = params.map { |k,v| [k, CGI.escape(v)] * "=" } * "&"
39
+ queries.merge!(params) if params
40
+ uri.query = URI.encode_www_form(queries) if !queries.empty?
34
41
  uri.to_s
35
42
  end
36
43
  end
@@ -1,3 +1,3 @@
1
1
  module OAuth
2
- VERSION = "0.5.0"
2
+ VERSION = "0.5.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pelle Braendgaard
@@ -12,10 +12,10 @@ authors:
12
12
  - Seth Fitzsimmons
13
13
  - Matt Sanford
14
14
  - Aaron Quint
15
- autorequire:
15
+ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2016-02-20 00:00:00.000000000 Z
18
+ date: 2021-01-20 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rake
@@ -59,62 +59,48 @@ dependencies:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: jeweler
64
- requirement: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- type: :development
70
- prerelease: false
71
- version_requirements: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
62
  - !ruby/object:Gem::Dependency
77
63
  name: actionpack
78
64
  requirement: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - ">="
81
67
  - !ruby/object:Gem::Version
82
- version: 4.0.2
68
+ version: '5.0'
83
69
  type: :development
84
70
  prerelease: false
85
71
  version_requirements: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - ">="
88
74
  - !ruby/object:Gem::Version
89
- version: 4.0.2
75
+ version: '5.0'
90
76
  - !ruby/object:Gem::Dependency
91
77
  name: iconv
92
78
  requirement: !ruby/object:Gem::Requirement
93
79
  requirements:
94
- - - "~>"
80
+ - - ">="
95
81
  - !ruby/object:Gem::Version
96
- version: 1.0.3
82
+ version: '0'
97
83
  type: :development
98
84
  prerelease: false
99
85
  version_requirements: !ruby/object:Gem::Requirement
100
86
  requirements:
101
- - - "~>"
87
+ - - ">="
102
88
  - !ruby/object:Gem::Version
103
- version: 1.0.3
89
+ version: '0'
104
90
  - !ruby/object:Gem::Dependency
105
91
  name: rack
106
92
  requirement: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: 1.6.1
96
+ version: '2.0'
111
97
  type: :development
112
98
  prerelease: false
113
99
  version_requirements: !ruby/object:Gem::Requirement
114
100
  requirements:
115
101
  - - "~>"
116
102
  - !ruby/object:Gem::Version
117
- version: 1.6.1
103
+ version: '2.0'
118
104
  - !ruby/object:Gem::Dependency
119
105
  name: rack-test
120
106
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +122,9 @@ dependencies:
136
122
  - - ">="
137
123
  - !ruby/object:Gem::Version
138
124
  version: 0.9.12
125
+ - - "<="
126
+ - !ruby/object:Gem::Version
127
+ version: 1.1.0
139
128
  type: :development
140
129
  prerelease: false
141
130
  version_requirements: !ruby/object:Gem::Requirement
@@ -143,6 +132,9 @@ dependencies:
143
132
  - - ">="
144
133
  - !ruby/object:Gem::Version
145
134
  version: 0.9.12
135
+ - - "<="
136
+ - !ruby/object:Gem::Version
137
+ version: 1.1.0
146
138
  - !ruby/object:Gem::Dependency
147
139
  name: typhoeus
148
140
  requirement: !ruby/object:Gem::Requirement
@@ -175,17 +167,73 @@ dependencies:
175
167
  name: curb
176
168
  requirement: !ruby/object:Gem::Requirement
177
169
  requirements:
178
- - - '='
170
+ - - ">="
179
171
  - !ruby/object:Gem::Version
180
- version: 0.7.16
172
+ version: '0'
181
173
  type: :development
182
174
  prerelease: false
183
175
  version_requirements: !ruby/object:Gem::Requirement
184
176
  requirements:
185
- - - '='
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ - !ruby/object:Gem::Dependency
181
+ name: webmock
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "<"
185
+ - !ruby/object:Gem::Version
186
+ version: '2.0'
187
+ type: :development
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "<"
192
+ - !ruby/object:Gem::Version
193
+ version: '2.0'
194
+ - !ruby/object:Gem::Dependency
195
+ name: codeclimate-test-reporter
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ type: :development
202
+ prerelease: false
203
+ version_requirements: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ - !ruby/object:Gem::Dependency
209
+ name: simplecov
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ - !ruby/object:Gem::Dependency
223
+ name: rest-client
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - ">="
186
227
  - !ruby/object:Gem::Version
187
- version: 0.7.16
188
- description:
228
+ version: '0'
229
+ type: :development
230
+ prerelease: false
231
+ version_requirements: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - ">="
234
+ - !ruby/object:Gem::Version
235
+ version: '0'
236
+ description:
189
237
  email: oauth-ruby@googlegroupspec.com
190
238
  executables:
191
239
  - oauth
@@ -201,13 +249,18 @@ files:
201
249
  - bin/oauth
202
250
  - lib/oauth.rb
203
251
  - lib/oauth/cli.rb
252
+ - lib/oauth/cli/authorize_command.rb
253
+ - lib/oauth/cli/base_command.rb
254
+ - lib/oauth/cli/help_command.rb
255
+ - lib/oauth/cli/query_command.rb
256
+ - lib/oauth/cli/sign_command.rb
257
+ - lib/oauth/cli/version_command.rb
204
258
  - lib/oauth/client.rb
205
259
  - lib/oauth/client/action_controller_request.rb
206
260
  - lib/oauth/client/em_http.rb
207
261
  - lib/oauth/client/helper.rb
208
262
  - lib/oauth/client/net_http.rb
209
263
  - lib/oauth/consumer.rb
210
- - lib/oauth/core_ext.rb
211
264
  - lib/oauth/errors.rb
212
265
  - lib/oauth/errors/error.rb
213
266
  - lib/oauth/errors/problem.rb
@@ -217,6 +270,7 @@ files:
217
270
  - lib/oauth/oauth_test_helper.rb
218
271
  - lib/oauth/request_proxy.rb
219
272
  - lib/oauth/request_proxy/action_controller_request.rb
273
+ - lib/oauth/request_proxy/action_dispatch_request.rb
220
274
  - lib/oauth/request_proxy/base.rb
221
275
  - lib/oauth/request_proxy/curb_request.rb
222
276
  - lib/oauth/request_proxy/em_http_request.rb
@@ -239,38 +293,11 @@ files:
239
293
  - lib/oauth/tokens/server_token.rb
240
294
  - lib/oauth/tokens/token.rb
241
295
  - lib/oauth/version.rb
242
- - test/cases/oauth_case.rb
243
- - test/cases/spec/1_0-final/test_construct_request_url.rb
244
- - test/cases/spec/1_0-final/test_normalize_request_parameters.rb
245
- - test/cases/spec/1_0-final/test_parameter_encodings.rb
246
- - test/cases/spec/1_0-final/test_signature_base_strings.rb
247
- - test/integration/consumer_test.rb
248
- - test/test_access_token.rb
249
- - test/test_action_controller_request_proxy.rb
250
- - test/test_consumer.rb
251
- - test/test_curb_request_proxy.rb
252
- - test/test_em_http_client.rb
253
- - test/test_em_http_request_proxy.rb
254
- - test/test_helper.rb
255
- - test/test_hmac_sha1.rb
256
- - test/test_net_http_client.rb
257
- - test/test_net_http_request_proxy.rb
258
- - test/test_oauth_helper.rb
259
- - test/test_rack_request_proxy.rb
260
- - test/test_request_token.rb
261
- - test/test_rest_client_request_proxy.rb
262
- - test/test_rsa_sha1.rb
263
- - test/test_server.rb
264
- - test/test_signature.rb
265
- - test/test_signature_base.rb
266
- - test/test_signature_hmac_sha1.rb
267
- - test/test_signature_plain_text.rb
268
- - test/test_token.rb
269
- - test/test_typhoeus_request_proxy.rb
270
- homepage:
271
- licenses: []
296
+ homepage:
297
+ licenses:
298
+ - MIT
272
299
  metadata: {}
273
- post_install_message:
300
+ post_install_message:
274
301
  rdoc_options: []
275
302
  require_paths:
276
303
  - lib
@@ -278,45 +305,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
278
305
  requirements:
279
306
  - - ">="
280
307
  - !ruby/object:Gem::Version
281
- version: '0'
308
+ version: '2.0'
282
309
  required_rubygems_version: !ruby/object:Gem::Requirement
283
310
  requirements:
284
311
  - - ">="
285
312
  - !ruby/object:Gem::Version
286
313
  version: '0'
287
314
  requirements: []
288
- rubyforge_project:
289
- rubygems_version: 2.5.1
290
- signing_key:
315
+ rubygems_version: 3.0.8
316
+ signing_key:
291
317
  specification_version: 4
292
318
  summary: OAuth Core Ruby implementation
293
- test_files:
294
- - test/test_rsa_sha1.rb
295
- - test/test_helper.rb
296
- - test/test_server.rb
297
- - test/test_em_http_client.rb
298
- - test/test_signature_hmac_sha1.rb
299
- - test/test_signature.rb
300
- - test/test_em_http_request_proxy.rb
301
- - test/test_net_http_client.rb
302
- - test/test_rest_client_request_proxy.rb
303
- - test/cases/oauth_case.rb
304
- - test/cases/spec/1_0-final/test_parameter_encodings.rb
305
- - test/cases/spec/1_0-final/test_signature_base_strings.rb
306
- - test/cases/spec/1_0-final/test_normalize_request_parameters.rb
307
- - test/cases/spec/1_0-final/test_construct_request_url.rb
308
- - test/test_hmac_sha1.rb
309
- - test/test_consumer.rb
310
- - test/test_rack_request_proxy.rb
311
- - test/test_signature_base.rb
312
- - test/test_typhoeus_request_proxy.rb
313
- - test/integration/consumer_test.rb
314
- - test/test_signature_plain_text.rb
315
- - test/test_curb_request_proxy.rb
316
- - test/test_token.rb
317
- - test/test_action_controller_request_proxy.rb
318
- - test/test_oauth_helper.rb
319
- - test/test_access_token.rb
320
- - test/test_request_token.rb
321
- - test/test_net_http_request_proxy.rb
322
- has_rdoc:
319
+ test_files: []