signet 0.6.0 → 0.6.1
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.
- checksums.yaml +5 -13
- data/CHANGELOG.md +7 -0
- data/lib/signet.rb +0 -1
- data/lib/signet/oauth_1/client.rb +4 -4
- data/lib/signet/oauth_1/server.rb +3 -3
- data/lib/signet/oauth_2/client.rb +29 -10
- data/lib/signet/ssl_config.rb +1 -0
- data/lib/signet/version.rb +1 -1
- data/signet.gemspec +1 -1
- data/spec/signet/oauth_2/client_spec.rb +20 -20
- metadata +32 -33
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
MGUyODYzMjdmODI4Y2U4YjE5YTMyYzY2ZDU1ZWE3ZGFlYjZmNjRlMw==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 54a525db784c45a39a547b947ad806222183aafa
|
4
|
+
data.tar.gz: f2e9672239bacebf70d02803f0a072234095ea96
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
OGQ4NTcxMjhkMGYxZmQyZGVhZTk5YzI3N2IyN2JmYjM0OTIyYTc2Yzc2ZTAw
|
11
|
-
MmRiZDRjZjM2NzFkMjdhYTEyNzQ5YTBlMjljZGU5NDA0YzRjZTc=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MWY0ZWJhNDg2MWQ1YjlkODQ5ZmQzMzBjNmRjZWVhYjA5N2JkZjU5YjRkMjU2
|
14
|
-
ZTBkNzNmZGQ5NDU4YjgyZjMxM2FiODdhZjM3YjE4OWZkYzBhZTk2ZGMxZWM5
|
15
|
-
YmE4YzU2YzI2M2E0NGIzZDI5ODMzYWJhMzM5MjkzMmQ5MjM5NTM=
|
6
|
+
metadata.gz: f32cda6094a605750a1b1743e0cb1cca838e2d452ddf62d06601321cd0f8fed9910d29966beb1b9208401cb46e7be4e7ce22de8eb80e58ed6d95bc8e96e40821
|
7
|
+
data.tar.gz: f6fb4fdf4853079697938fbf6319c91b4b6d0327551ab68f00260c22070ee6efcdbba0c4d620d6b76ebfb1382d36269e327a54a763952e5ac57a848398387f49
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
# 0.6.1
|
2
|
+
* Fix language warnings for unused & shadowed variables ((@blowmage)[])
|
3
|
+
* Update SSL cert path for OSX ((@gambaroff)[])
|
4
|
+
* Update JWT library and fix broken tests
|
5
|
+
* Fix incorrect parameter name in OAuth2 client docs ((@samuelreh)[])
|
6
|
+
* Fix symbolization of URL parameter keys ((@swifthand)[])
|
7
|
+
|
1
8
|
# 0.6.0
|
2
9
|
|
3
10
|
* Drop support for ruby versions < 1.9.3
|
data/lib/signet.rb
CHANGED
@@ -29,7 +29,6 @@ module Signet #:nodoc:
|
|
29
29
|
# Combine the above production rules to find valid auth-param pairs.
|
30
30
|
auth_param = /((?:#{token})\s*=\s*(?:#{d_qs}|#{s_qs}|#{token}))/
|
31
31
|
auth_param_pairs = []
|
32
|
-
position = 0
|
33
32
|
last_match = nil
|
34
33
|
remainder = auth_param_string
|
35
34
|
# Iterate over the string, consuming pair matches as we go. Verify that
|
@@ -592,7 +592,7 @@ module Signet
|
|
592
592
|
:client_credential_secret => 'Client credential secret'
|
593
593
|
}
|
594
594
|
# Make sure all required state is set
|
595
|
-
verifications.each do |(key,
|
595
|
+
verifications.each do |(key, _value)|
|
596
596
|
unless self.send(key)
|
597
597
|
raise ArgumentError, "#{key} was not set."
|
598
598
|
end
|
@@ -748,7 +748,7 @@ module Signet
|
|
748
748
|
:temporary_credential_secret => 'Temporary credential secret'
|
749
749
|
}
|
750
750
|
# Make sure all required state is set
|
751
|
-
verifications.each do |(key,
|
751
|
+
verifications.each do |(key, _value)|
|
752
752
|
unless self.send(key)
|
753
753
|
raise ArgumentError, "#{key} was not set."
|
754
754
|
end
|
@@ -912,7 +912,7 @@ module Signet
|
|
912
912
|
)
|
913
913
|
end
|
914
914
|
# Make sure all required state is set
|
915
|
-
verifications.each do |(key,
|
915
|
+
verifications.each do |(key, _value)|
|
916
916
|
unless self.send(key)
|
917
917
|
raise ArgumentError, "#{key} was not set."
|
918
918
|
end
|
@@ -979,7 +979,7 @@ module Signet
|
|
979
979
|
content_type = content_type.split(';', 2).first if content_type.index(';')
|
980
980
|
if request.method == :post && content_type == 'application/x-www-form-urlencoded'
|
981
981
|
# Serializes the body in case a hash/array was passed. Noop if already string like
|
982
|
-
encoder = Faraday::Request::UrlEncoded.new(lambda { |
|
982
|
+
encoder = Faraday::Request::UrlEncoded.new(lambda { |_env| })
|
983
983
|
encoder.call(env)
|
984
984
|
request.body = env[:body]
|
985
985
|
|
@@ -250,7 +250,7 @@ module Signet
|
|
250
250
|
)
|
251
251
|
}
|
252
252
|
}
|
253
|
-
verifications.each do |(key,
|
253
|
+
verifications.each do |(key, _value)|
|
254
254
|
raise ArgumentError, "#{key} was not set." unless self.send(key)
|
255
255
|
end
|
256
256
|
|
@@ -321,7 +321,7 @@ module Signet
|
|
321
321
|
:verifier =>
|
322
322
|
lambda {|x| 'Verifier' }
|
323
323
|
}
|
324
|
-
verifications.each do |(key,
|
324
|
+
verifications.each do |(key, _value)|
|
325
325
|
unless self.send(key)
|
326
326
|
raise ArgumentError, "#{key} was not set."
|
327
327
|
end
|
@@ -405,7 +405,7 @@ module Signet
|
|
405
405
|
)
|
406
406
|
end
|
407
407
|
# Make sure all required state is set
|
408
|
-
verifications.each do |(key,
|
408
|
+
verifications.each do |(key, _value)|
|
409
409
|
unless self.send(key)
|
410
410
|
raise ArgumentError, "#{key} was not set."
|
411
411
|
end
|
@@ -77,9 +77,9 @@ module Signet
|
|
77
77
|
#
|
78
78
|
# @example
|
79
79
|
# client = Signet::OAuth2::Client.new(
|
80
|
-
# :
|
80
|
+
# :authorization_uri =>
|
81
81
|
# 'https://example.server.com/authorization',
|
82
|
-
# :
|
82
|
+
# :token_credential_uri =>
|
83
83
|
# 'https://example.server.com/token',
|
84
84
|
# :client_id => 'anonymous',
|
85
85
|
# :client_secret => 'anonymous',
|
@@ -89,6 +89,22 @@ module Signet
|
|
89
89
|
#
|
90
90
|
# @see Signet::OAuth2::Client#update!
|
91
91
|
def initialize(options={})
|
92
|
+
@authorization_uri = nil
|
93
|
+
@client_id = nil
|
94
|
+
@client_secret = nil
|
95
|
+
@code = nil
|
96
|
+
@expires_at = nil
|
97
|
+
@expires_in = nil
|
98
|
+
@issued_at = nil
|
99
|
+
@issued_at = nil
|
100
|
+
@issuer = nil
|
101
|
+
@password = nil
|
102
|
+
@principal = nil
|
103
|
+
@redirect_uri = nil
|
104
|
+
@scope = nil
|
105
|
+
@state = nil
|
106
|
+
@token_credential_uri = nil
|
107
|
+
@username = nil
|
92
108
|
self.update!(options)
|
93
109
|
end
|
94
110
|
|
@@ -259,6 +275,9 @@ module Signet
|
|
259
275
|
options[:state] = self.state unless options[:state]
|
260
276
|
options.merge!(self.additional_parameters.merge(options[:additional_parameters] || {}))
|
261
277
|
options.delete(:additional_parameters)
|
278
|
+
options = Hash[options.map do |key, option|
|
279
|
+
[key.to_s, option]
|
280
|
+
end]
|
262
281
|
uri = Addressable::URI.parse(
|
263
282
|
::Signet::OAuth2.generate_authorization_uri(
|
264
283
|
@authorization_uri, options
|
@@ -297,7 +316,7 @@ module Signet
|
|
297
316
|
@token_credential_uri = coerce_uri(new_token_credential_uri)
|
298
317
|
end
|
299
318
|
|
300
|
-
# Addressable expects URIs formatted as hashes to come in with symbols as keys.
|
319
|
+
# Addressable expects URIs formatted as hashes to come in with symbols as keys.
|
301
320
|
# Returns nil implicitly for the nil case.
|
302
321
|
def coerce_uri(incoming_uri)
|
303
322
|
if incoming_uri.is_a? Hash
|
@@ -690,8 +709,8 @@ module Signet
|
|
690
709
|
# omitted.
|
691
710
|
#
|
692
711
|
# @return [String] The decoded ID token.
|
693
|
-
def decoded_id_token(public_key=nil)
|
694
|
-
payload,
|
712
|
+
def decoded_id_token(public_key=nil, options = {})
|
713
|
+
payload, _header = JWT.decode(self.id_token, public_key, !!public_key, options)
|
695
714
|
if !payload.has_key?('aud')
|
696
715
|
raise Signet::UnsafeOperationError, 'No ID token audience declared.'
|
697
716
|
elsif payload['aud'] != self.client_id
|
@@ -832,11 +851,11 @@ module Signet
|
|
832
851
|
skew = options[:skew] || 60
|
833
852
|
assertion = {
|
834
853
|
"iss" => self.issuer,
|
835
|
-
"scope" => self.scope.join(' '),
|
836
854
|
"aud" => self.audience,
|
837
855
|
"exp" => (now + self.expiry).to_i,
|
838
856
|
"iat" => (now - skew).to_i
|
839
857
|
}
|
858
|
+
assertion['scope'] = self.scope.join(' ') unless self.scope.nil?
|
840
859
|
assertion['prn'] = self.person unless self.person.nil?
|
841
860
|
assertion['sub'] = self.sub unless self.sub.nil?
|
842
861
|
JWT.encode(assertion, self.signing_key, self.signing_algorithm)
|
@@ -1130,7 +1149,7 @@ module Signet
|
|
1130
1149
|
def uri_is_oob?(uri)
|
1131
1150
|
return uri.to_s == 'urn:ietf:wg:oauth:2.0:oob' || uri.to_s == 'oob'
|
1132
1151
|
end
|
1133
|
-
|
1152
|
+
|
1134
1153
|
# Convert all keys in this hash (nested) to symbols for uniform retrieval
|
1135
1154
|
def recursive_hash_normalize_keys(val)
|
1136
1155
|
if val.is_a? Hash
|
@@ -1141,10 +1160,10 @@ module Signet
|
|
1141
1160
|
end
|
1142
1161
|
|
1143
1162
|
def deep_hash_normalize(old_hash)
|
1144
|
-
old_hash.inject(formatted_hash={}) do |
|
1163
|
+
old_hash.inject(formatted_hash={}) do |hash,(k,v)|
|
1145
1164
|
|
1146
|
-
|
1147
|
-
|
1165
|
+
hash[k.to_sym] = recursive_hash_normalize_keys(v)
|
1166
|
+
hash
|
1148
1167
|
end
|
1149
1168
|
|
1150
1169
|
formatted_hash
|
data/lib/signet/ssl_config.rb
CHANGED
@@ -16,6 +16,7 @@ if (!ENV['SSL_CERT_FILE'] || !File.exist?(ENV['SSL_CERT_FILE'])) &&
|
|
16
16
|
'/usr/ssl/certs/ca-certificates.crt',
|
17
17
|
'/usr/share/curl/curl-ca-bundle.crt',
|
18
18
|
'/etc/ssl/certs/ca-certificates.crt',
|
19
|
+
'/etc/openssl/cert.pem',
|
19
20
|
'/etc/pki/tls/cert.pem',
|
20
21
|
'/etc/pki/CA/cacert.pem',
|
21
22
|
'C:\Windows\curl-ca-bundle.crt',
|
data/lib/signet/version.rb
CHANGED
data/signet.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
s.add_runtime_dependency 'addressable', '~> 2.3'
|
27
27
|
s.add_runtime_dependency 'faraday', '~> 0.9'
|
28
28
|
s.add_runtime_dependency 'multi_json', '~> 1.10'
|
29
|
-
s.add_runtime_dependency 'jwt', '~> 1.
|
29
|
+
s.add_runtime_dependency 'jwt', '~> 1.5'
|
30
30
|
s.add_runtime_dependency 'extlib', '~> 0.9'
|
31
31
|
|
32
32
|
s.add_development_dependency 'rake', '~> 10.0'
|
@@ -763,7 +763,7 @@ JSON
|
|
763
763
|
)
|
764
764
|
expect(@client.access_token).to eq '12345'
|
765
765
|
expect(@client.refresh_token).to eq '54321'
|
766
|
-
expect(@client.decoded_id_token).to eq ({
|
766
|
+
expect(@client.decoded_id_token(nil, :verify_expiration => false)).to eq ({
|
767
767
|
"token_hash" => "tghD9J7n8V0N2vcw6eMijg",
|
768
768
|
"id" => "12345",
|
769
769
|
"aud" => "client-12345",
|
@@ -806,7 +806,7 @@ JSON
|
|
806
806
|
expect(@client.refresh_token).to eq '54321'
|
807
807
|
expect(@client.expires_in).to eq 3600
|
808
808
|
expect(lambda do
|
809
|
-
@client.decoded_id_token
|
809
|
+
@client.decoded_id_token(nil, :verify_expiration => false)
|
810
810
|
end).to raise_error(Signet::UnsafeOperationError)
|
811
811
|
stubs.verify_stubbed_calls
|
812
812
|
end
|
@@ -840,7 +840,7 @@ JSON
|
|
840
840
|
expect(@client.refresh_token).to eq '54321'
|
841
841
|
expect(@client.expires_in).to eq 3600
|
842
842
|
expect(lambda do
|
843
|
-
@client.decoded_id_token
|
843
|
+
@client.decoded_id_token(nil, :verify_expiration => false)
|
844
844
|
end).to raise_error(Signet::UnsafeOperationError)
|
845
845
|
stubs.verify_stubbed_calls
|
846
846
|
end
|
@@ -938,7 +938,7 @@ describe Signet::OAuth2::Client, 'configured with custom parameters' do
|
|
938
938
|
|
939
939
|
it 'should allow custom parameters to be updated' do
|
940
940
|
@client.update!(:additional_parameters => {:type => 'new_type'})
|
941
|
-
@client.additional_parameters.
|
941
|
+
expect(@client.additional_parameters).to eq ({ :type => 'new_type'})
|
942
942
|
end
|
943
943
|
|
944
944
|
it 'should use custom parameters when generating authorization_uri' do
|
@@ -951,14 +951,14 @@ describe Signet::OAuth2::Client, 'configured with custom parameters' do
|
|
951
951
|
end
|
952
952
|
|
953
953
|
it 'should merge new authorization_uri custom parameters' do
|
954
|
-
@client.authorization_uri(:additional_parameters => {'type' => 'new_type', 'new_param' => 'new_val'}).query_values.
|
954
|
+
expect(@client.authorization_uri(:additional_parameters => {'type' => 'new_type', 'new_param' => 'new_val'}).query_values).to eql({"access_type"=>"offline", "client_id"=>"s6BhdRkqt3", "new_param"=>"new_val", "response_type"=>"code","redirect_uri"=>"https://example.client.com/callback", "type"=>"new_type"})
|
955
955
|
end
|
956
956
|
|
957
957
|
it 'should merge new generate_access_token_request custom parameters' do
|
958
958
|
@client.update!(:code=>'12345')
|
959
959
|
body = @client.generate_access_token_request(:additional_parameters => {'type' => 'new_type', 'new_param' => 'new_val'}).body
|
960
|
-
body.
|
961
|
-
body.
|
960
|
+
expect(body).to include("type=new_type")
|
961
|
+
expect(body).to include("new_param=new_val")
|
962
962
|
end
|
963
963
|
end
|
964
964
|
|
@@ -977,32 +977,32 @@ describe Signet::OAuth2::Client, 'configured with custom parameters' do
|
|
977
977
|
# Also tests Addressable's output.
|
978
978
|
# Note: The only changes made here are to testing the **INTERNAL** representation of options.
|
979
979
|
it 'should allow custom parameters to be set on init' do
|
980
|
-
@client.additional_parameters.
|
980
|
+
expect(@client.additional_parameters).to eq ({ :type => 'web_server'})
|
981
981
|
end
|
982
982
|
|
983
983
|
it 'should allow custom parameters to be updated' do
|
984
984
|
@client.update!(:additional_parameters => {'type' => 'new_type'})
|
985
|
-
@client.additional_parameters.
|
985
|
+
expect(@client.additional_parameters).to eql ({ :type => 'new_type'})
|
986
986
|
end
|
987
987
|
|
988
988
|
it 'should use custom parameters when generating authorization_uri' do
|
989
|
-
@client.authorization_uri().query_values.
|
989
|
+
expect(@client.authorization_uri().query_values).to eq ({"access_type"=>"offline", "client_id"=>"s6BhdRkqt3", "redirect_uri"=>"https://example.client.com/callback", "response_type"=>"code", "type"=>"web_server"})
|
990
990
|
end
|
991
991
|
|
992
992
|
it 'should have the correct authorization_uri' do
|
993
|
-
@client.authorization_uri.host.
|
994
|
-
@client.authorization_uri.path.
|
993
|
+
expect(@client.authorization_uri.host).to eq 'example.com'
|
994
|
+
expect(@client.authorization_uri.path).to eq '/authorize'
|
995
995
|
end
|
996
996
|
|
997
997
|
it 'should merge new authorization_uri custom parameters' do
|
998
|
-
@client.authorization_uri(:additional_parameters => {'type' => 'new_type', 'new_param' => 'new_val'}).query_values.
|
998
|
+
expect(@client.authorization_uri(:additional_parameters => {'type' => 'new_type', 'new_param' => 'new_val'}).query_values).to eq ({"access_type"=>"offline", "client_id"=>"s6BhdRkqt3", "new_param"=>"new_val", "response_type"=>"code","redirect_uri"=>"https://example.client.com/callback", "type"=>"new_type"})
|
999
999
|
end
|
1000
1000
|
|
1001
1001
|
it 'should merge new generate_access_token_request custom parameters' do
|
1002
1002
|
@client.update!(:code=>'12345')
|
1003
1003
|
body = @client.generate_access_token_request(:additional_parameters => {'type' => 'new_type', 'new_param' => 'new_val'}).body
|
1004
|
-
body.
|
1005
|
-
body.
|
1004
|
+
expect(body).to include("type=new_type")
|
1005
|
+
expect(body).to include("new_param=new_val")
|
1006
1006
|
end
|
1007
1007
|
end
|
1008
1008
|
|
@@ -1018,21 +1018,21 @@ describe Signet::OAuth2::Client, 'configured with custom parameters a la JSON.lo
|
|
1018
1018
|
end
|
1019
1019
|
|
1020
1020
|
it 'should allow custom parameters to be set on init' do
|
1021
|
-
@client.additional_parameters.
|
1021
|
+
expect(@client.additional_parameters).to eq ({:type => 'web_server'})
|
1022
1022
|
end
|
1023
1023
|
|
1024
1024
|
it 'should allow custom parameters to be updated' do
|
1025
1025
|
@client.update!(:additional_parameters => {'type' => 'new_type'})
|
1026
|
-
@client.additional_parameters.
|
1026
|
+
expect(@client.additional_parameters).to eql ({:type => 'new_type'})
|
1027
1027
|
end
|
1028
1028
|
|
1029
1029
|
it 'should have correct authorization_uri hash options' do
|
1030
|
-
@client.authorization_uri.host.
|
1031
|
-
@client.authorization_uri.path.
|
1030
|
+
expect(@client.authorization_uri.host).to eq "accounts.google.com"
|
1031
|
+
expect(@client.authorization_uri.path).to eq "/o/oauth2/auth"
|
1032
1032
|
end
|
1033
1033
|
|
1034
1034
|
it 'should use custom parameters when generating authorization_uri' do
|
1035
|
-
@client.authorization_uri().query_values.
|
1035
|
+
expect(@client.authorization_uri().query_values).to eq ({"access_type"=>"offline", "client_id"=>"s6BhdRkqt3", "redirect_uri"=>"https://example.client.com/callback", "response_type"=>"code", "type"=>"web_server"})
|
1036
1036
|
end
|
1037
1037
|
|
1038
1038
|
# , "path" => "/o/oauth2/oauth", "host" => "accounts.google.com"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: signet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bob Aman
|
@@ -9,165 +9,164 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2015-06-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: addressable
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - ~>
|
18
|
+
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '2.3'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - ~>
|
25
|
+
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '2.3'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: faraday
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - ~>
|
32
|
+
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0.9'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - ~>
|
39
|
+
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0.9'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: multi_json
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - ~>
|
46
|
+
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '1.10'
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - ~>
|
53
|
+
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '1.10'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: jwt
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - ~>
|
60
|
+
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '1.
|
62
|
+
version: '1.5'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - ~>
|
67
|
+
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '1.
|
69
|
+
version: '1.5'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: extlib
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- - ~>
|
74
|
+
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '0.9'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- - ~>
|
81
|
+
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0.9'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: rake
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- - ~>
|
88
|
+
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '10.0'
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- - ~>
|
95
|
+
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '10.0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: yard
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- - ~>
|
102
|
+
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: '0.8'
|
105
105
|
type: :development
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- - ~>
|
109
|
+
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0.8'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: rspec
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
|
-
- - ~>
|
116
|
+
- - "~>"
|
117
117
|
- !ruby/object:Gem::Version
|
118
118
|
version: '3.1'
|
119
119
|
type: :development
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
|
-
- - ~>
|
123
|
+
- - "~>"
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '3.1'
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: launchy
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
|
-
- - ~>
|
130
|
+
- - "~>"
|
131
131
|
- !ruby/object:Gem::Version
|
132
132
|
version: '2.4'
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
|
-
- - ~>
|
137
|
+
- - "~>"
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '2.4'
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
141
|
name: kramdown
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
143
143
|
requirements:
|
144
|
-
- - ~>
|
144
|
+
- - "~>"
|
145
145
|
- !ruby/object:Gem::Version
|
146
146
|
version: '1.5'
|
147
147
|
type: :development
|
148
148
|
prerelease: false
|
149
149
|
version_requirements: !ruby/object:Gem::Requirement
|
150
150
|
requirements:
|
151
|
-
- - ~>
|
151
|
+
- - "~>"
|
152
152
|
- !ruby/object:Gem::Version
|
153
153
|
version: '1.5'
|
154
154
|
- !ruby/object:Gem::Dependency
|
155
155
|
name: simplecov
|
156
156
|
requirement: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
|
-
- - ~>
|
158
|
+
- - "~>"
|
159
159
|
- !ruby/object:Gem::Version
|
160
160
|
version: '0.9'
|
161
161
|
type: :development
|
162
162
|
prerelease: false
|
163
163
|
version_requirements: !ruby/object:Gem::Requirement
|
164
164
|
requirements:
|
165
|
-
- - ~>
|
165
|
+
- - "~>"
|
166
166
|
- !ruby/object:Gem::Version
|
167
167
|
version: '0.9'
|
168
|
-
description:
|
169
|
-
|
170
|
-
'
|
168
|
+
description: |
|
169
|
+
Signet is an OAuth 1.0 / OAuth 2.0 implementation.
|
171
170
|
email: sbazyl@google.com
|
172
171
|
executables: []
|
173
172
|
extensions: []
|
@@ -226,23 +225,23 @@ licenses:
|
|
226
225
|
metadata: {}
|
227
226
|
post_install_message:
|
228
227
|
rdoc_options:
|
229
|
-
- --main
|
228
|
+
- "--main"
|
230
229
|
- README.md
|
231
230
|
require_paths:
|
232
231
|
- lib
|
233
232
|
required_ruby_version: !ruby/object:Gem::Requirement
|
234
233
|
requirements:
|
235
|
-
- -
|
234
|
+
- - ">="
|
236
235
|
- !ruby/object:Gem::Version
|
237
236
|
version: '0'
|
238
237
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
239
238
|
requirements:
|
240
|
-
- -
|
239
|
+
- - ">="
|
241
240
|
- !ruby/object:Gem::Version
|
242
241
|
version: 1.3.5
|
243
242
|
requirements: []
|
244
243
|
rubyforge_project:
|
245
|
-
rubygems_version: 2.
|
244
|
+
rubygems_version: 2.4.8
|
246
245
|
signing_key:
|
247
246
|
specification_version: 4
|
248
247
|
summary: Signet is an OAuth 1.0 / OAuth 2.0 implementation.
|