oauth 0.5.14 → 0.6.2

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -3
  3. data/README.md +56 -46
  4. data/SECURITY.md +0 -2
  5. data/bin/oauth +8 -4
  6. data/lib/oauth/cli/authorize_command.rb +58 -54
  7. data/lib/oauth/cli/base_command.rb +163 -159
  8. data/lib/oauth/cli/help_command.rb +9 -5
  9. data/lib/oauth/cli/query_command.rb +26 -17
  10. data/lib/oauth/cli/sign_command.rb +58 -52
  11. data/lib/oauth/cli/version_command.rb +8 -4
  12. data/lib/oauth/cli.rb +2 -0
  13. data/lib/oauth/client/action_controller_request.rb +4 -1
  14. data/lib/oauth/client/em_http.rb +3 -1
  15. data/lib/oauth/client/helper.rb +76 -72
  16. data/lib/oauth/client/net_http.rb +111 -104
  17. data/lib/oauth/client.rb +2 -0
  18. data/lib/oauth/consumer.rb +89 -68
  19. data/lib/oauth/errors/error.rb +2 -0
  20. data/lib/oauth/errors/problem.rb +3 -0
  21. data/lib/oauth/errors/unauthorized.rb +4 -0
  22. data/lib/oauth/errors.rb +2 -0
  23. data/lib/oauth/helper.rb +9 -5
  24. data/lib/oauth/oauth.rb +4 -2
  25. data/lib/oauth/oauth_test_helper.rb +2 -0
  26. data/lib/oauth/request_proxy/base.rb +4 -4
  27. data/lib/oauth/request_proxy/mock_request.rb +1 -1
  28. data/lib/oauth/request_proxy/net_http.rb +8 -8
  29. data/lib/oauth/request_proxy/rest_client_request.rb +4 -3
  30. data/lib/oauth/request_proxy.rb +4 -1
  31. data/lib/oauth/server.rb +8 -4
  32. data/lib/oauth/signature/base.rb +73 -65
  33. data/lib/oauth/signature/hmac/sha1.rb +15 -9
  34. data/lib/oauth/signature/hmac/sha256.rb +15 -9
  35. data/lib/oauth/signature/plaintext.rb +18 -20
  36. data/lib/oauth/signature/rsa/sha1.rb +46 -38
  37. data/lib/oauth/signature.rb +3 -0
  38. data/lib/oauth/token.rb +2 -0
  39. data/lib/oauth/tokens/access_token.rb +2 -0
  40. data/lib/oauth/tokens/consumer_token.rb +2 -0
  41. data/lib/oauth/tokens/request_token.rb +5 -2
  42. data/lib/oauth/tokens/server_token.rb +2 -0
  43. data/lib/oauth/tokens/token.rb +2 -0
  44. data/lib/oauth/version.rb +5 -1
  45. data/lib/oauth.rb +9 -2
  46. metadata +43 -32
@@ -1,97 +1,105 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "oauth/signature"
2
4
  require "oauth/helper"
3
5
  require "oauth/request_proxy/base"
4
6
  require "base64"
5
7
 
6
- module OAuth::Signature
7
- class Base
8
- include OAuth::Helper
8
+ module OAuth
9
+ module Signature
10
+ class Base
11
+ include OAuth::Helper
9
12
 
10
- attr_accessor :options
11
- attr_reader :token_secret, :consumer_secret, :request
13
+ attr_accessor :options
14
+ attr_reader :token_secret, :consumer_secret, :request
12
15
 
13
- def self.implements(signature_method = nil)
14
- return @implements if signature_method.nil?
15
- @implements = signature_method
16
- OAuth::Signature.available_methods[@implements] = self
17
- end
16
+ def self.implements(signature_method = nil)
17
+ return @implements if signature_method.nil?
18
18
 
19
- def initialize(request, options = {}, &block)
20
- raise TypeError unless request.is_a?(OAuth::RequestProxy::Base)
21
- @request = request
22
- @options = options
19
+ @implements = signature_method
20
+ OAuth::Signature.available_methods[@implements] = self
21
+ end
23
22
 
24
- ## consumer secret was determined beforehand
23
+ def initialize(request, options = {}, &block)
24
+ raise TypeError unless request.is_a?(OAuth::RequestProxy::Base)
25
25
 
26
- @consumer_secret = options[:consumer].secret if options[:consumer]
26
+ @request = request
27
+ @options = options
27
28
 
28
- # presence of :consumer_secret option will override any Consumer that's provided
29
- @consumer_secret = options[:consumer_secret] if options[:consumer_secret]
29
+ ## consumer secret was determined beforehand
30
30
 
31
- ## token secret was determined beforehand
31
+ @consumer_secret = options[:consumer].secret if options[:consumer]
32
32
 
33
- @token_secret = options[:token].secret if options[:token]
33
+ # presence of :consumer_secret option will override any Consumer that's provided
34
+ if options[:consumer_secret]
35
+ @consumer_secret = options[:consumer_secret]
36
+ end
34
37
 
35
- # presence of :token_secret option will override any Token that's provided
36
- @token_secret = options[:token_secret] if options[:token_secret]
38
+ ## token secret was determined beforehand
37
39
 
38
- # override secrets based on the values returned from the block (if any)
39
- if block_given?
40
- # consumer secret and token secret need to be looked up based on pieces of the request
41
- secrets = yield block.arity == 1 ? request : [token, consumer_key, nonce, request.timestamp]
42
- if secrets.is_a?(Array) && secrets.size == 2
43
- @token_secret = secrets[0]
44
- @consumer_secret = secrets[1]
40
+ @token_secret = options[:token].secret if options[:token]
41
+
42
+ # presence of :token_secret option will override any Token that's provided
43
+ @token_secret = options[:token_secret] if options[:token_secret]
44
+
45
+ # override secrets based on the values returned from the block (if any)
46
+ if block
47
+ # consumer secret and token secret need to be looked up based on pieces of the request
48
+ secrets = yield block.arity == 1 ? request : [token, consumer_key, nonce, request.timestamp]
49
+ if secrets.is_a?(Array) && secrets.size == 2
50
+ @token_secret = secrets[0]
51
+ @consumer_secret = secrets[1]
52
+ end
45
53
  end
46
54
  end
47
- end
48
55
 
49
- def signature
50
- Base64.encode64(digest).chomp.delete("\n")
51
- end
56
+ def signature
57
+ Base64.encode64(digest).chomp.delete("\n")
58
+ end
52
59
 
53
- def ==(cmp_signature)
54
- check = signature.bytesize ^ cmp_signature.bytesize
55
- signature.bytes.zip(cmp_signature.bytes) { |x, y| check |= x ^ y.to_i }
56
- check.zero?
57
- end
60
+ def ==(other)
61
+ check = signature.bytesize ^ other.bytesize
62
+ signature.bytes.zip(other.bytes) { |x, y| check |= x ^ y.to_i }
63
+ check.zero?
64
+ end
58
65
 
59
- def verify
60
- self == request.signature
61
- end
66
+ def verify
67
+ self == request.signature
68
+ end
62
69
 
63
- def signature_base_string
64
- request.signature_base_string
65
- end
70
+ def signature_base_string
71
+ request.signature_base_string
72
+ end
66
73
 
67
- def body_hash
68
- raise_instantiation_error
69
- end
74
+ def body_hash
75
+ raise_instantiation_error
76
+ end
70
77
 
71
- private
78
+ private
72
79
 
73
- def token
74
- request.token
75
- end
80
+ def token
81
+ request.token
82
+ end
76
83
 
77
- def consumer_key
78
- request.consumer_key
79
- end
84
+ def consumer_key
85
+ request.consumer_key
86
+ end
80
87
 
81
- def nonce
82
- request.nonce
83
- end
88
+ def nonce
89
+ request.nonce
90
+ end
84
91
 
85
- def secret
86
- "#{escape(consumer_secret)}&#{escape(token_secret)}"
87
- end
92
+ def secret
93
+ "#{escape(consumer_secret)}&#{escape(token_secret)}"
94
+ end
88
95
 
89
- def digest
90
- raise_instantiation_error
91
- end
96
+ def digest
97
+ raise_instantiation_error
98
+ end
92
99
 
93
- def raise_instantiation_error
94
- raise NotImplementedError, "Cannot instantiate #{self.class.name} class directly."
100
+ def raise_instantiation_error
101
+ raise NotImplementedError, "Cannot instantiate #{self.class.name} class directly."
102
+ end
95
103
  end
96
104
  end
97
105
  end
@@ -1,17 +1,23 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "oauth/signature/base"
2
4
 
3
- module OAuth::Signature::HMAC
4
- class SHA1 < OAuth::Signature::Base
5
- implements "hmac-sha1"
5
+ module OAuth
6
+ module Signature
7
+ module HMAC
8
+ class SHA1 < OAuth::Signature::Base
9
+ implements "hmac-sha1"
6
10
 
7
- def body_hash
8
- Base64.encode64(OpenSSL::Digest::SHA1.digest(request.body || "")).chomp.delete("\n")
9
- end
11
+ def body_hash
12
+ Base64.encode64(OpenSSL::Digest.digest("SHA1", request.body || "")).chomp.delete("\n")
13
+ end
10
14
 
11
- private
15
+ private
12
16
 
13
- def digest
14
- OpenSSL::HMAC.digest(OpenSSL::Digest.new("sha1"), secret, signature_base_string)
17
+ def digest
18
+ OpenSSL::HMAC.digest(OpenSSL::Digest.new("sha1"), secret, signature_base_string)
19
+ end
20
+ end
15
21
  end
16
22
  end
17
23
  end
@@ -1,17 +1,23 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "oauth/signature/base"
2
4
 
3
- module OAuth::Signature::HMAC
4
- class SHA256 < OAuth::Signature::Base
5
- implements "hmac-sha256"
5
+ module OAuth
6
+ module Signature
7
+ module HMAC
8
+ class SHA256 < OAuth::Signature::Base
9
+ implements "hmac-sha256"
6
10
 
7
- def body_hash
8
- Base64.encode64(OpenSSL::Digest::SHA256.digest(request.body || "")).chomp.delete("\n")
9
- end
11
+ def body_hash
12
+ Base64.encode64(OpenSSL::Digest.digest("SHA256", request.body || "")).chomp.delete("\n")
13
+ end
10
14
 
11
- private
15
+ private
12
16
 
13
- def digest
14
- OpenSSL::HMAC.digest(OpenSSL::Digest.new("sha256"), secret, signature_base_string)
17
+ def digest
18
+ OpenSSL::HMAC.digest(OpenSSL::Digest.new("sha256"), secret, signature_base_string)
19
+ end
20
+ end
15
21
  end
16
22
  end
17
23
  end
@@ -1,29 +1,27 @@
1
- require "oauth/signature/base"
1
+ # frozen_string_literal: true
2
2
 
3
- module OAuth::Signature
4
- class PLAINTEXT < Base
5
- implements "plaintext"
3
+ require "oauth/signature/base"
6
4
 
7
- def signature
8
- signature_base_string
9
- end
5
+ module OAuth
6
+ module Signature
7
+ class PLAINTEXT < Base
8
+ implements "plaintext"
10
9
 
11
- def ==(cmp_signature)
12
- signature.to_s == cmp_signature.to_s
13
- end
10
+ def signature
11
+ signature_base_string
12
+ end
14
13
 
15
- def signature_base_string
16
- secret
17
- end
18
-
19
- def body_hash
20
- nil
21
- end
14
+ def ==(other)
15
+ signature.to_s == other.to_s
16
+ end
22
17
 
23
- private
18
+ def signature_base_string
19
+ secret
20
+ end
24
21
 
25
- def secret
26
- super
22
+ def body_hash
23
+ nil
24
+ end
27
25
  end
28
26
  end
29
27
  end
@@ -1,50 +1,58 @@
1
- require "oauth/signature/base"
1
+ # frozen_string_literal: true
2
2
 
3
- module OAuth::Signature::RSA
4
- class SHA1 < OAuth::Signature::Base
5
- implements "rsa-sha1"
3
+ require "oauth/signature/base"
6
4
 
7
- def ==(cmp_signature)
8
- public_key.verify(OpenSSL::Digest::SHA1.new, Base64.decode64(cmp_signature.is_a?(Array) ? cmp_signature.first : cmp_signature), signature_base_string)
9
- end
5
+ module OAuth
6
+ module Signature
7
+ module RSA
8
+ class SHA1 < OAuth::Signature::Base
9
+ implements "rsa-sha1"
10
10
 
11
- def public_key
12
- if consumer_secret.is_a?(String)
13
- decode_public_key
14
- elsif consumer_secret.is_a?(OpenSSL::X509::Certificate)
15
- consumer_secret.public_key
16
- else
17
- consumer_secret
18
- end
19
- end
11
+ def ==(other)
12
+ public_key.verify(OpenSSL::Digest.new("SHA1"),
13
+ Base64.decode64(other.is_a?(Array) ? other.first : other), signature_base_string)
14
+ end
20
15
 
21
- def body_hash
22
- Base64.encode64(OpenSSL::Digest::SHA1.digest(request.body || "")).chomp.delete("\n")
23
- end
16
+ def public_key
17
+ case consumer_secret
18
+ when String
19
+ decode_public_key
20
+ when OpenSSL::X509::Certificate
21
+ consumer_secret.public_key
22
+ else
23
+ consumer_secret
24
+ end
25
+ end
24
26
 
25
- private
27
+ def body_hash
28
+ Base64.encode64(OpenSSL::Digest.digest("SHA1", request.body || "")).chomp.delete("\n")
29
+ end
26
30
 
27
- def decode_public_key
28
- case consumer_secret
29
- when /-----BEGIN CERTIFICATE-----/
30
- OpenSSL::X509::Certificate.new(consumer_secret).public_key
31
- else
32
- OpenSSL::PKey::RSA.new(consumer_secret)
33
- end
34
- end
31
+ private
35
32
 
36
- def digest
37
- private_key = OpenSSL::PKey::RSA.new(
38
- if options[:private_key_file]
39
- IO.read(options[:private_key_file])
40
- elsif options[:private_key]
41
- options[:private_key]
42
- else
43
- consumer_secret
33
+ def decode_public_key
34
+ case consumer_secret
35
+ when /-----BEGIN CERTIFICATE-----/
36
+ OpenSSL::X509::Certificate.new(consumer_secret).public_key
37
+ else
38
+ OpenSSL::PKey::RSA.new(consumer_secret)
39
+ end
44
40
  end
45
- )
46
41
 
47
- private_key.sign(OpenSSL::Digest::SHA1.new, signature_base_string)
42
+ def digest
43
+ private_key = OpenSSL::PKey::RSA.new(
44
+ if options[:private_key_file]
45
+ File.read(options[:private_key_file])
46
+ elsif options[:private_key]
47
+ options[:private_key]
48
+ else
49
+ consumer_secret
50
+ end
51
+ )
52
+
53
+ private_key.sign(OpenSSL::Digest.new("SHA1"), signature_base_string)
54
+ end
55
+ end
48
56
  end
49
57
  end
50
58
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OAuth
2
4
  module Signature
3
5
  # Returns a list of available signature methods
@@ -15,6 +17,7 @@ module OAuth
15
17
  ((c = request.options[:consumer]) && c.options[:signature_method]) ||
16
18
  "").downcase]
17
19
  raise UnknownSignatureMethod, request.signature_method unless klass
20
+
18
21
  klass.new(request, options, &block)
19
22
  end
20
23
 
data/lib/oauth/token.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # this exists for backwards-compatibility
2
4
 
3
5
  require "oauth/tokens/token"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OAuth
2
4
  # The Access Token is used for the actual "real" web service calls that you perform against the server
3
5
  class AccessToken < ConsumerToken
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OAuth
2
4
  # Superclass for tokens used by OAuth Clients
3
5
  class ConsumerToken < Token
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OAuth
2
4
  # The RequestToken is used for the initial Request.
3
5
  # This is normally created by the Consumer object.
@@ -23,7 +25,8 @@ module OAuth
23
25
 
24
26
  # exchange for AccessToken on server
25
27
  def get_access_token(options = {}, *arguments)
26
- response = consumer.token_request(consumer.http_method, (consumer.access_token_url? ? consumer.access_token_url : consumer.access_token_path), self, options, *arguments)
28
+ response = consumer.token_request(consumer.http_method,
29
+ (consumer.access_token_url? ? consumer.access_token_url : consumer.access_token_path), self, options, *arguments)
27
30
  OAuth::AccessToken.from_hash(consumer, response)
28
31
  end
29
32
 
@@ -33,7 +36,7 @@ module OAuth
33
36
  def build_url(base_url, params)
34
37
  uri = URI.parse(base_url.to_s)
35
38
  queries = {}
36
- queries = Hash[URI.decode_www_form(uri.query)] if uri.query
39
+ queries = URI.decode_www_form(uri.query).to_h if uri.query
37
40
  # TODO: doesn't handle array values correctly
38
41
  queries.merge!(params) if params
39
42
  uri.query = URI.encode_www_form(queries) unless queries.empty?
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OAuth
2
4
  # Used on the server for generating tokens
3
5
  class ServerToken < Token
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OAuth
2
4
  # Superclass for the various tokens used by OAuth
3
5
  class Token
data/lib/oauth/version.rb CHANGED
@@ -1,3 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module OAuth
2
- VERSION = "0.5.14".freeze
4
+ module Version
5
+ VERSION = "0.6.2"
6
+ end
3
7
  end
data/lib/oauth.rb CHANGED
@@ -1,5 +1,8 @@
1
- root = File.dirname(__FILE__)
2
- $LOAD_PATH << root unless $LOAD_PATH.include?(root)
1
+ # frozen_string_literal: true
2
+
3
+ # third party gems
4
+ require "snaky_hash"
5
+ require "version_gem"
3
6
 
4
7
  require "oauth/version"
5
8
 
@@ -11,3 +14,7 @@ require "oauth/signature/hmac/sha1"
11
14
  require "oauth/signature/hmac/sha256"
12
15
  require "oauth/signature/rsa/sha1"
13
16
  require "oauth/request_proxy/mock_request"
17
+
18
+ OAuth::Version.class_eval do
19
+ extend VersionGem::Basic
20
+ 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.14
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pelle Braendgaard
@@ -19,19 +19,33 @@ cert_chain: []
19
19
  date: 2022-08-29 00:00:00.000000000 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: curb
22
+ name: snaky_hash
23
23
  requirement: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ">="
25
+ - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '0'
28
- type: :development
27
+ version: '2.0'
28
+ type: :runtime
29
29
  prerelease: false
30
30
  version_requirements: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ">="
32
+ - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '0'
34
+ version: '2.0'
35
+ - !ruby/object:Gem::Dependency
36
+ name: version_gem
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '1.1'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.1'
35
49
  - !ruby/object:Gem::Dependency
36
50
  name: em-http-request
37
51
  requirement: !ruby/object:Gem::Requirement
@@ -64,16 +78,16 @@ dependencies:
64
78
  name: minitest
65
79
  requirement: !ruby/object:Gem::Requirement
66
80
  requirements:
67
- - - "<"
81
+ - - "~>"
68
82
  - !ruby/object:Gem::Version
69
- version: '5.16'
83
+ version: 5.15.0
70
84
  type: :development
71
85
  prerelease: false
72
86
  version_requirements: !ruby/object:Gem::Requirement
73
87
  requirements:
74
- - - "<"
88
+ - - "~>"
75
89
  - !ruby/object:Gem::Version
76
- version: '5.16'
90
+ version: 5.15.0
77
91
  - !ruby/object:Gem::Dependency
78
92
  name: mocha
79
93
  requirement: !ruby/object:Gem::Requirement
@@ -92,16 +106,16 @@ dependencies:
92
106
  name: rack
93
107
  requirement: !ruby/object:Gem::Requirement
94
108
  requirements:
95
- - - ">="
109
+ - - "~>"
96
110
  - !ruby/object:Gem::Version
97
- version: '0'
111
+ version: '2.0'
98
112
  type: :development
99
113
  prerelease: false
100
114
  version_requirements: !ruby/object:Gem::Requirement
101
115
  requirements:
102
- - - ">="
116
+ - - "~>"
103
117
  - !ruby/object:Gem::Version
104
- version: '0'
118
+ version: '2.0'
105
119
  - !ruby/object:Gem::Dependency
106
120
  name: rack-test
107
121
  requirement: !ruby/object:Gem::Requirement
@@ -120,16 +134,16 @@ dependencies:
120
134
  name: rake
121
135
  requirement: !ruby/object:Gem::Requirement
122
136
  requirements:
123
- - - ">="
137
+ - - "~>"
124
138
  - !ruby/object:Gem::Version
125
- version: '0'
139
+ version: '13.0'
126
140
  type: :development
127
141
  prerelease: false
128
142
  version_requirements: !ruby/object:Gem::Requirement
129
143
  requirements:
130
- - - ">="
144
+ - - "~>"
131
145
  - !ruby/object:Gem::Version
132
- version: '0'
146
+ version: '13.0'
133
147
  - !ruby/object:Gem::Dependency
134
148
  name: rest-client
135
149
  requirement: !ruby/object:Gem::Requirement
@@ -150,14 +164,14 @@ dependencies:
150
164
  requirements:
151
165
  - - "~>"
152
166
  - !ruby/object:Gem::Version
153
- version: '4.0'
167
+ version: '12.0'
154
168
  type: :development
155
169
  prerelease: false
156
170
  version_requirements: !ruby/object:Gem::Requirement
157
171
  requirements:
158
172
  - - "~>"
159
173
  - !ruby/object:Gem::Version
160
- version: '4.0'
174
+ version: '12.0'
161
175
  - !ruby/object:Gem::Dependency
162
176
  name: typhoeus
163
177
  requirement: !ruby/object:Gem::Requirement
@@ -254,19 +268,18 @@ licenses:
254
268
  - MIT
255
269
  metadata:
256
270
  homepage_uri: https://github.com/oauth-xx/oauth-ruby
257
- source_code_uri: https://github.com/oauth-xx/oauth-ruby/tree/v0.5.14
258
- changelog_uri: https://github.com/oauth-xx/oauth-ruby/blob/v0.5.14/CHANGELOG.md
271
+ source_code_uri: https://github.com/oauth-xx/oauth-ruby/tree/v0.6.2
272
+ changelog_uri: https://github.com/oauth-xx/oauth-ruby/blob/v0.6.2/CHANGELOG.md
259
273
  bug_tracker_uri: https://github.com/oauth-xx/oauth-ruby/issues
260
- documentation_uri: https://www.rubydoc.info/gems/oauth/0.5.14
274
+ documentation_uri: https://www.rubydoc.info/gems/oauth/0.6.2
261
275
  wiki_uri: https://github.com/oauth-xx/oauth-ruby/wiki
262
276
  rubygems_mfa_required: 'true'
263
- post_install_message: |2+
277
+ post_install_message: |2
264
278
 
265
- You have installed oauth version 0.5.14, congratulations!
279
+ You have installed oauth version 0.6.2, congratulations!
266
280
 
267
- Support for the 0.5.x series will end by April, 2023. Please upgrade to 0.6.x or 1.x as soon as possible!
268
- For 0.6.x the only breaking change will be dropped support for Ruby 2.0, 2.1, 2.2, and 2.3.
269
- For 1.x the only breaking change will be dropped support for Ruby 2.4, 2.5, and 2.6.
281
+ Non-commercial support for the 0.6.x series will end by April, 2024. Please upgrade to 1.0.x as soon as possible!
282
+ The only breaking change will be dropped support for Ruby 2.4, 2.5, and 2.6.
270
283
 
271
284
  Please see:
272
285
  • https://github.com/oauth-xx/oauth-ruby/blob/main/SECURITY.md
@@ -287,7 +300,6 @@ post_install_message: |2+
287
300
  Please report issues, and support the project!
288
301
 
289
302
  Thanks, |7eter l-|. l3oling
290
-
291
303
  rdoc_options: []
292
304
  require_paths:
293
305
  - lib
@@ -295,7 +307,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
295
307
  requirements:
296
308
  - - ">="
297
309
  - !ruby/object:Gem::Version
298
- version: '2.0'
310
+ version: '2.4'
299
311
  required_rubygems_version: !ruby/object:Gem::Requirement
300
312
  requirements:
301
313
  - - ">="
@@ -307,4 +319,3 @@ signing_key:
307
319
  specification_version: 4
308
320
  summary: OAuth Core Ruby implementation
309
321
  test_files: []
310
- ...