signet 0.6.0 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|