oauth 0.4.5 → 0.4.6
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of oauth might be problematic. Click here for more details.
- data/Gemfile.lock +22 -21
- data/HISTORY +7 -0
- data/lib/oauth.rb +1 -1
- data/lib/oauth/consumer.rb +4 -3
- data/lib/oauth/helper.rb +22 -1
- data/lib/oauth/request_proxy/net_http.rb +2 -1
- data/oauth.gemspec +8 -10
- data/test/integration/consumer_test.rb +2 -2
- data/test/test_consumer.rb +28 -0
- data/test/test_helper.rb +3 -1
- data/test/test_net_http_client.rb +14 -2
- data/test/test_net_http_request_proxy.rb +1 -1
- data/test/test_oauth_helper.rb +23 -0
- metadata +72 -117
data/Gemfile.lock
CHANGED
@@ -1,35 +1,36 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
actionpack (2.3.
|
5
|
-
activesupport (= 2.3.
|
4
|
+
actionpack (2.3.14)
|
5
|
+
activesupport (= 2.3.14)
|
6
6
|
rack (~> 1.1.0)
|
7
|
-
activesupport (2.3.
|
8
|
-
addressable (2.2.
|
9
|
-
crack (0.1
|
10
|
-
curb (0.
|
7
|
+
activesupport (2.3.14)
|
8
|
+
addressable (2.2.7)
|
9
|
+
crack (0.3.1)
|
10
|
+
curb (0.8.0)
|
11
11
|
em-http-request (0.2.11)
|
12
12
|
addressable (>= 2.0.0)
|
13
13
|
eventmachine (>= 0.12.9)
|
14
14
|
eventmachine (0.12.10)
|
15
|
-
gemcutter (0.4.1)
|
16
|
-
json_pure
|
17
15
|
git (1.2.5)
|
18
|
-
jeweler (1.
|
19
|
-
|
16
|
+
jeweler (1.8.3)
|
17
|
+
bundler (~> 1.0)
|
20
18
|
git (>= 1.2.5)
|
21
|
-
rubyforge (>= 2.0.0)
|
22
|
-
json_pure (1.4.3)
|
23
|
-
mocha (0.9.8)
|
24
19
|
rake
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
20
|
+
rdoc
|
21
|
+
json (1.6.6)
|
22
|
+
metaclass (0.0.1)
|
23
|
+
mime-types (1.18)
|
24
|
+
mocha (0.11.1)
|
25
|
+
metaclass (~> 0.0.1)
|
26
|
+
rack (1.1.3)
|
27
|
+
rake (0.9.2.2)
|
28
|
+
rdoc (3.12)
|
29
|
+
json (~> 1.4)
|
30
|
+
typhoeus (0.3.3)
|
31
|
+
mime-types
|
32
|
+
webmock (1.8.6)
|
33
|
+
addressable (>= 2.2.7)
|
33
34
|
crack (>= 0.1.7)
|
34
35
|
|
35
36
|
PLATFORMS
|
data/HISTORY
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
=== 0.4.6 2012-04-21
|
2
|
+
|
3
|
+
* Fixed nested attributes in #normalize (Shaliko Usubov)
|
4
|
+
* Make use the path component of the :site parameter (Jonathon M. Abbott)
|
5
|
+
* Fixed post body's being dropped in 1.9 (Steven Hammond)
|
6
|
+
* Fixed PUT request handling (Anton Panasenko)
|
7
|
+
|
1
8
|
=== 0.4.5 2011-06-25
|
2
9
|
|
3
10
|
* Add explicit require for rsa/sha1 (Juris Galang)
|
data/lib/oauth.rb
CHANGED
data/lib/oauth/consumer.rb
CHANGED
@@ -43,9 +43,6 @@ module OAuth
|
|
43
43
|
# Add a custom ca_file for consumer
|
44
44
|
# :ca_file => '/etc/certs.pem'
|
45
45
|
|
46
|
-
# Add a custom ca_file for consumer
|
47
|
-
# :ca_file => '/etc/certs.pem'
|
48
|
-
|
49
46
|
:oauth_version => "1.0"
|
50
47
|
}
|
51
48
|
|
@@ -331,6 +328,10 @@ module OAuth
|
|
331
328
|
data = arguments.shift
|
332
329
|
end
|
333
330
|
|
331
|
+
# if the base site contains a path, add it now
|
332
|
+
uri = URI.parse(site)
|
333
|
+
path = uri.path + path if uri.path
|
334
|
+
|
334
335
|
headers = arguments.first.is_a?(Hash) ? arguments.shift : {}
|
335
336
|
|
336
337
|
case http_method
|
data/lib/oauth/helper.rb
CHANGED
@@ -35,17 +35,38 @@ module OAuth
|
|
35
35
|
# See Also: {OAuth core spec version 1.0, section 9.1.1}[http://oauth.net/core/1.0#rfc.section.9.1.1]
|
36
36
|
def normalize(params)
|
37
37
|
params.sort.map do |k, values|
|
38
|
-
|
39
38
|
if values.is_a?(Array)
|
39
|
+
# make sure the array has an element so we don't lose the key
|
40
|
+
values << nil if values.empty?
|
40
41
|
# multiple values were provided for a single key
|
41
42
|
values.sort.collect do |v|
|
42
43
|
[escape(k),escape(v)] * "="
|
43
44
|
end
|
45
|
+
elsif values.is_a?(Hash)
|
46
|
+
normalize_nested_query(values, k)
|
44
47
|
else
|
45
48
|
[escape(k),escape(values)] * "="
|
46
49
|
end
|
47
50
|
end * "&"
|
48
51
|
end
|
52
|
+
|
53
|
+
#Returns a string representation of the Hash like in URL query string
|
54
|
+
# build_nested_query({:level_1 => {:level_2 => ['value_1','value_2']}}, 'prefix'))
|
55
|
+
# #=> ["prefix%5Blevel_1%5D%5Blevel_2%5D%5B%5D=value_1", "prefix%5Blevel_1%5D%5Blevel_2%5D%5B%5D=value_2"]
|
56
|
+
def normalize_nested_query(value, prefix = nil)
|
57
|
+
case value
|
58
|
+
when Array
|
59
|
+
value.map do |v|
|
60
|
+
normalize_nested_query(v, "#{prefix}[]")
|
61
|
+
end.flatten.sort
|
62
|
+
when Hash
|
63
|
+
value.map do |k, v|
|
64
|
+
normalize_nested_query(v, prefix ? "#{prefix}[#{k}]" : k)
|
65
|
+
end.flatten.sort
|
66
|
+
else
|
67
|
+
[escape(prefix), escape(value)] * "="
|
68
|
+
end
|
69
|
+
end
|
49
70
|
|
50
71
|
# Parse an Authorization / WWW-Authenticate header into a hash. Takes care of unescaping and
|
51
72
|
# removing surrounding quotes. Raises a OAuth::Problem if the header is not parsable into a
|
@@ -32,6 +32,7 @@ module OAuth::RequestProxy::Net
|
|
32
32
|
|
33
33
|
def all_parameters
|
34
34
|
request_params = CGI.parse(query_string)
|
35
|
+
# request_params.each{|k,v| request_params[k] = [nil] if v == []}
|
35
36
|
|
36
37
|
if options[:parameters]
|
37
38
|
options[:parameters].each do |k,v|
|
@@ -47,7 +48,7 @@ module OAuth::RequestProxy::Net
|
|
47
48
|
|
48
49
|
def query_string
|
49
50
|
params = [ query_params, auth_header_params ]
|
50
|
-
params << post_params if method.to_s.upcase == 'POST' && form_url_encoded?
|
51
|
+
params << post_params if (method.to_s.upcase == 'POST' || method.to_s.upcase == 'PUT') && form_url_encoded?
|
51
52
|
params.compact.join('&')
|
52
53
|
end
|
53
54
|
|
data/oauth.gemspec
CHANGED
@@ -4,15 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.4.
|
7
|
+
s.name = "oauth"
|
8
|
+
s.version = "0.4.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Pelle Braendgaard", "Blaine Cook", "Larry Halff", "Jesse Clark", "Jon Crosby", "Seth Fitzsimmons", "Matt Sanford", "Aaron Quint"]
|
12
|
-
s.date =
|
13
|
-
s.
|
14
|
-
s.
|
15
|
-
s.email = %q{oauth-ruby@googlegroups.com}
|
12
|
+
s.date = "2012-04-21"
|
13
|
+
s.description = "OAuth Core Ruby implementation"
|
14
|
+
s.email = "oauth-ruby@googlegroups.com"
|
16
15
|
s.executables = ["oauth"]
|
17
16
|
s.extra_rdoc_files = [
|
18
17
|
"LICENSE",
|
@@ -109,12 +108,11 @@ Gem::Specification.new do |s|
|
|
109
108
|
"test/test_typhoeus_request_proxy.rb"
|
110
109
|
]
|
111
110
|
s.require_paths = ["lib"]
|
112
|
-
s.rubyforge_project =
|
113
|
-
s.rubygems_version =
|
114
|
-
s.summary =
|
111
|
+
s.rubyforge_project = "oauth"
|
112
|
+
s.rubygems_version = "1.8.16"
|
113
|
+
s.summary = "OAuth Core Ruby implementation"
|
115
114
|
|
116
115
|
if s.respond_to? :specification_version then
|
117
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
118
116
|
s.specification_version = 3
|
119
117
|
|
120
118
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
@@ -86,7 +86,7 @@ module Integration
|
|
86
86
|
|
87
87
|
assert_equal 'POST', request.method
|
88
88
|
assert_equal '/test', request.path
|
89
|
-
|
89
|
+
assert_match /key=value&oauth_consumer_key=consumer_key_86cad9&oauth_nonce=225579211881198842005988698334675835446&oauth_signature=26g7wHTtNO6ZWJaLltcueppHYiI%3[Dd]&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1199645624&oauth_token=token_411a7f&oauth_version=1.0/, request.body.split("&").sort.join("&")
|
90
90
|
assert_equal nil, request['authorization']
|
91
91
|
end
|
92
92
|
|
@@ -111,7 +111,7 @@ module Integration
|
|
111
111
|
|
112
112
|
assert_equal 'POST', request.method
|
113
113
|
assert_equal '/test', request.path
|
114
|
-
|
114
|
+
assert_match /key=value&oauth_consumer_key=consumer_key_86cad9&oauth_nonce=225579211881198842005988698334675835446&oauth_signature=26g7wHTtNO6ZWJaLltcueppHYiI%3[Dd]&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1199645624&oauth_token=token_411a7f&oauth_version=1.0/, request.body.split("&").sort.join("&")
|
115
115
|
assert_equal nil, request['authorization']
|
116
116
|
end
|
117
117
|
|
data/test/test_consumer.rb
CHANGED
@@ -61,6 +61,34 @@ class ConsumerTest < Test::Unit::TestCase
|
|
61
61
|
assert_equal :post,@consumer.http_method
|
62
62
|
end
|
63
63
|
|
64
|
+
def test_site_without_path
|
65
|
+
@consumer=OAuth::Consumer.new(
|
66
|
+
"key",
|
67
|
+
"secret",
|
68
|
+
{
|
69
|
+
:site=>"http://twitter.com"
|
70
|
+
})
|
71
|
+
request = stub(:oauth! => nil)
|
72
|
+
http = stub(:request => stub(:to_hash => {}))
|
73
|
+
Net::HTTP::Get.expects(:new).with('/people', {}).returns(request)
|
74
|
+
@consumer.expects(:create_http).returns(http)
|
75
|
+
@consumer.request(:get, '/people', nil, {})
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_site_with_path
|
79
|
+
@consumer=OAuth::Consumer.new(
|
80
|
+
"key",
|
81
|
+
"secret",
|
82
|
+
{
|
83
|
+
:site=>"http://identi.ca/api"
|
84
|
+
})
|
85
|
+
request = stub(:oauth! => nil)
|
86
|
+
http = stub(:request => stub(:to_hash => {}))
|
87
|
+
Net::HTTP::Get.expects(:new).with('/api/people', {}).returns(request)
|
88
|
+
@consumer.expects(:create_http).returns(http)
|
89
|
+
@consumer.request(:get, '/people', nil, {})
|
90
|
+
end
|
91
|
+
|
64
92
|
def test_override_paths
|
65
93
|
@consumer=OAuth::Consumer.new(
|
66
94
|
"key",
|
data/test/test_helper.rb
CHANGED
@@ -5,9 +5,11 @@ $LOAD_PATH << File.dirname(__FILE__) + '/../lib/'
|
|
5
5
|
require 'oauth'
|
6
6
|
require 'mocha'
|
7
7
|
require 'stringio'
|
8
|
-
require 'webmock
|
8
|
+
require 'webmock'
|
9
9
|
|
10
10
|
class Test::Unit::TestCase
|
11
|
+
include WebMock::API
|
12
|
+
|
11
13
|
def assert_matching_headers(expected, actual)
|
12
14
|
# transform into sorted arrays
|
13
15
|
auth_intro, auth_params = actual.split(' ', 2)
|
@@ -123,7 +123,7 @@ class NetHTTPClientTest < Test::Unit::TestCase
|
|
123
123
|
|
124
124
|
assert_equal 'POST', request.method
|
125
125
|
assert_equal '/test', request.path
|
126
|
-
|
126
|
+
assert_match /key=value&oauth_consumer_key=consumer_key_86cad9&oauth_nonce=225579211881198842005988698334675835446&oauth_signature=26g7wHTtNO6ZWJaLltcueppHYiI%3[Dd]&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1199645624&oauth_token=token_411a7f&oauth_version=1.0/, request.body.split("&").sort.join("&")
|
127
127
|
assert_equal nil, request['authorization']
|
128
128
|
end
|
129
129
|
|
@@ -138,6 +138,18 @@ class NetHTTPClientTest < Test::Unit::TestCase
|
|
138
138
|
assert_equal nil, request['authorization']
|
139
139
|
end
|
140
140
|
|
141
|
+
def test_that_using_post_body_works
|
142
|
+
request = Net::HTTP::Post.new(@request_uri.path)
|
143
|
+
request['content-type'] = 'application/x-www-form-urlencoded'
|
144
|
+
request.body = 'this is a test of the emergency broad cast system. This is only a test.'
|
145
|
+
request.oauth!(@http, @consumer, @token, {:nonce => @nonce, :timestamp => @timestamp})
|
146
|
+
|
147
|
+
assert_equal 'POST', request.method
|
148
|
+
assert_equal '/test', request.path
|
149
|
+
assert_match /OAuth oauth_consumer_key="consumer_key_86cad9", oauth_nonce="225579211881198842005988698334675835446", oauth_signature="%2[fF]DMMBOJzQ6JmEaXlAXDLGtD1z2I%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1199645624", oauth_token="token_411a7f", oauth_version="1.0"/, request['authorization'].split("&").sort.join("&")
|
150
|
+
# assert_equal nil, request['authorization']
|
151
|
+
end
|
152
|
+
|
141
153
|
def test_that_using_post_with_uri_params_works
|
142
154
|
request = Net::HTTP::Post.new(@request_uri.path + "?" + request_parameters_to_s)
|
143
155
|
request.set_form_data( {} ) # just to make sure we have a correct mime type and thus no body hash
|
@@ -245,7 +257,7 @@ class NetHTTPClientTest < Test::Unit::TestCase
|
|
245
257
|
request = Net::HTTP::Put.new(@request_uri.path)
|
246
258
|
request.set_form_data( { 'key2' => 'value2' } )
|
247
259
|
signature_base_string=request.signature_base_string(@http, @consumer, nil, { :nonce => @nonce, :timestamp => @timestamp })
|
248
|
-
assert_equal "PUT&http%3A%2F%2Fexample.com%2Ftest&
|
260
|
+
assert_equal "PUT&http%3A%2F%2Fexample.com%2Ftest&key2%3Dvalue2%26oauth_consumer_key%3Dconsumer_key_86cad9%26oauth_nonce%3D225579211881198842005988698334675835446%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1199645624%26oauth_version%3D1.0", signature_base_string
|
249
261
|
end
|
250
262
|
|
251
263
|
def test_that_post_bodies_signed_if_form_urlencoded
|
@@ -52,7 +52,7 @@ class NetHTTPRequestProxyTest < Test::Unit::TestCase
|
|
52
52
|
request.set_form_data(params)
|
53
53
|
request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test'})
|
54
54
|
|
55
|
-
expected_parameters = {}
|
55
|
+
expected_parameters = {'key' => ['value']}
|
56
56
|
assert_equal expected_parameters, request_proxy.parameters_for_signature
|
57
57
|
assert_equal 'http://example.com/test', request_proxy.normalized_uri
|
58
58
|
assert_equal 'PUT', request_proxy.method
|
data/test/test_oauth_helper.rb
CHANGED
@@ -68,4 +68,27 @@ class TestOAuthHelper < Test::Unit::TestCase
|
|
68
68
|
assert_equal "nonce", params['oauth_nonce']
|
69
69
|
assert_equal "1.0", params['oauth_version']
|
70
70
|
end
|
71
|
+
|
72
|
+
def test_normalize
|
73
|
+
params = {
|
74
|
+
'oauth_nonce' => 'nonce',
|
75
|
+
'weight' => { :value => "65" },
|
76
|
+
'oauth_signature_method' => 'HMAC-SHA1',
|
77
|
+
'oauth_timestamp' => "1240004133",
|
78
|
+
'oauth_consumer_key' => 'vince_clortho',
|
79
|
+
'oauth_token' => 'token_value',
|
80
|
+
'oauth_version' => "1.0"
|
81
|
+
}
|
82
|
+
assert_equal("oauth_consumer_key=vince_clortho&oauth_nonce=nonce&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1240004133&oauth_token=token_value&oauth_version=1.0&weight%5Bvalue%5D=65", OAuth::Helper.normalize(params))
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_normalize_nested_query
|
86
|
+
assert_equal([], OAuth::Helper.normalize_nested_query({}))
|
87
|
+
assert_equal(["foo=bar"], OAuth::Helper.normalize_nested_query({:foo => 'bar'}))
|
88
|
+
assert_equal(["prefix%5Bfoo%5D=bar"], OAuth::Helper.normalize_nested_query({:foo => 'bar'}, 'prefix'))
|
89
|
+
assert_equal(["prefix%5Buser%5D%5Bage%5D=12",
|
90
|
+
"prefix%5Buser%5D%5Bdate%5D=2011-10-05",
|
91
|
+
"prefix%5Buser%5D%5Btwitter_id%5D=123"], OAuth::Helper.normalize_nested_query({:user => {:twitter_id => 123, :date => '2011-10-05', :age => 12}}, 'prefix'))
|
92
|
+
end
|
93
|
+
|
71
94
|
end
|
metadata
CHANGED
@@ -1,14 +1,10 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: oauth
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 4
|
8
|
-
- 5
|
9
|
-
version: 0.4.5
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.6
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Pelle Braendgaard
|
13
9
|
- Blaine Cook
|
14
10
|
- Larry Halff
|
@@ -20,138 +16,106 @@ authors:
|
|
20
16
|
autorequire:
|
21
17
|
bindir: bin
|
22
18
|
cert_chain: []
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
dependencies:
|
27
|
-
- !ruby/object:Gem::Dependency
|
19
|
+
date: 2012-04-21 00:00:00.000000000 Z
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
28
22
|
name: rake
|
29
|
-
requirement: &
|
23
|
+
requirement: &70205509498980 !ruby/object:Gem::Requirement
|
30
24
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
|
35
|
-
- 0
|
36
|
-
version: "0"
|
25
|
+
requirements:
|
26
|
+
- - ! '>='
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '0'
|
37
29
|
type: :development
|
38
30
|
prerelease: false
|
39
|
-
version_requirements: *
|
40
|
-
- !ruby/object:Gem::Dependency
|
31
|
+
version_requirements: *70205509498980
|
32
|
+
- !ruby/object:Gem::Dependency
|
41
33
|
name: jeweler
|
42
|
-
requirement: &
|
34
|
+
requirement: &70205509498480 !ruby/object:Gem::Requirement
|
43
35
|
none: false
|
44
|
-
requirements:
|
45
|
-
- -
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
|
48
|
-
- 0
|
49
|
-
version: "0"
|
36
|
+
requirements:
|
37
|
+
- - ! '>='
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
50
40
|
type: :development
|
51
41
|
prerelease: false
|
52
|
-
version_requirements: *
|
53
|
-
- !ruby/object:Gem::Dependency
|
42
|
+
version_requirements: *70205509498480
|
43
|
+
- !ruby/object:Gem::Dependency
|
54
44
|
name: actionpack
|
55
|
-
requirement: &
|
45
|
+
requirement: &70205509497980 !ruby/object:Gem::Requirement
|
56
46
|
none: false
|
57
|
-
requirements:
|
58
|
-
- -
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
segments:
|
61
|
-
- 2
|
62
|
-
- 3
|
63
|
-
- 5
|
47
|
+
requirements:
|
48
|
+
- - ! '>='
|
49
|
+
- !ruby/object:Gem::Version
|
64
50
|
version: 2.3.5
|
65
51
|
type: :development
|
66
52
|
prerelease: false
|
67
|
-
version_requirements: *
|
68
|
-
- !ruby/object:Gem::Dependency
|
53
|
+
version_requirements: *70205509497980
|
54
|
+
- !ruby/object:Gem::Dependency
|
69
55
|
name: rack
|
70
|
-
requirement: &
|
56
|
+
requirement: &70205509497480 !ruby/object:Gem::Requirement
|
71
57
|
none: false
|
72
|
-
requirements:
|
73
|
-
- -
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
segments:
|
76
|
-
- 1
|
77
|
-
- 0
|
78
|
-
- 0
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
79
61
|
version: 1.0.0
|
80
62
|
type: :development
|
81
63
|
prerelease: false
|
82
|
-
version_requirements: *
|
83
|
-
- !ruby/object:Gem::Dependency
|
64
|
+
version_requirements: *70205509497480
|
65
|
+
- !ruby/object:Gem::Dependency
|
84
66
|
name: mocha
|
85
|
-
requirement: &
|
67
|
+
requirement: &70205509496960 !ruby/object:Gem::Requirement
|
86
68
|
none: false
|
87
|
-
requirements:
|
88
|
-
- -
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
segments:
|
91
|
-
- 0
|
92
|
-
- 9
|
93
|
-
- 8
|
69
|
+
requirements:
|
70
|
+
- - ! '>='
|
71
|
+
- !ruby/object:Gem::Version
|
94
72
|
version: 0.9.8
|
95
73
|
type: :development
|
96
74
|
prerelease: false
|
97
|
-
version_requirements: *
|
98
|
-
- !ruby/object:Gem::Dependency
|
75
|
+
version_requirements: *70205509496960
|
76
|
+
- !ruby/object:Gem::Dependency
|
99
77
|
name: typhoeus
|
100
|
-
requirement: &
|
78
|
+
requirement: &70205509496480 !ruby/object:Gem::Requirement
|
101
79
|
none: false
|
102
|
-
requirements:
|
103
|
-
- -
|
104
|
-
- !ruby/object:Gem::Version
|
105
|
-
segments:
|
106
|
-
- 0
|
107
|
-
- 1
|
108
|
-
- 13
|
80
|
+
requirements:
|
81
|
+
- - ! '>='
|
82
|
+
- !ruby/object:Gem::Version
|
109
83
|
version: 0.1.13
|
110
84
|
type: :development
|
111
85
|
prerelease: false
|
112
|
-
version_requirements: *
|
113
|
-
- !ruby/object:Gem::Dependency
|
86
|
+
version_requirements: *70205509496480
|
87
|
+
- !ruby/object:Gem::Dependency
|
114
88
|
name: em-http-request
|
115
|
-
requirement: &
|
89
|
+
requirement: &70205509496000 !ruby/object:Gem::Requirement
|
116
90
|
none: false
|
117
|
-
requirements:
|
118
|
-
- -
|
119
|
-
- !ruby/object:Gem::Version
|
120
|
-
segments:
|
121
|
-
- 0
|
122
|
-
- 2
|
123
|
-
- 10
|
91
|
+
requirements:
|
92
|
+
- - ! '>='
|
93
|
+
- !ruby/object:Gem::Version
|
124
94
|
version: 0.2.10
|
125
95
|
type: :development
|
126
96
|
prerelease: false
|
127
|
-
version_requirements: *
|
128
|
-
- !ruby/object:Gem::Dependency
|
97
|
+
version_requirements: *70205509496000
|
98
|
+
- !ruby/object:Gem::Dependency
|
129
99
|
name: curb
|
130
|
-
requirement: &
|
100
|
+
requirement: &70205509495520 !ruby/object:Gem::Requirement
|
131
101
|
none: false
|
132
|
-
requirements:
|
133
|
-
- -
|
134
|
-
- !ruby/object:Gem::Version
|
135
|
-
segments:
|
136
|
-
- 0
|
137
|
-
- 6
|
138
|
-
- 6
|
139
|
-
- 0
|
102
|
+
requirements:
|
103
|
+
- - ! '>='
|
104
|
+
- !ruby/object:Gem::Version
|
140
105
|
version: 0.6.6.0
|
141
106
|
type: :development
|
142
107
|
prerelease: false
|
143
|
-
version_requirements: *
|
108
|
+
version_requirements: *70205509495520
|
144
109
|
description: OAuth Core Ruby implementation
|
145
110
|
email: oauth-ruby@googlegroups.com
|
146
|
-
executables:
|
111
|
+
executables:
|
147
112
|
- oauth
|
148
113
|
extensions: []
|
149
|
-
|
150
|
-
extra_rdoc_files:
|
114
|
+
extra_rdoc_files:
|
151
115
|
- LICENSE
|
152
116
|
- README.rdoc
|
153
117
|
- TODO
|
154
|
-
files:
|
118
|
+
files:
|
155
119
|
- .gemtest
|
156
120
|
- Gemfile
|
157
121
|
- Gemfile.lock
|
@@ -239,37 +203,28 @@ files:
|
|
239
203
|
- test/test_signature_plain_text.rb
|
240
204
|
- test/test_token.rb
|
241
205
|
- test/test_typhoeus_request_proxy.rb
|
242
|
-
has_rdoc: true
|
243
206
|
homepage:
|
244
207
|
licenses: []
|
245
|
-
|
246
208
|
post_install_message:
|
247
209
|
rdoc_options: []
|
248
|
-
|
249
|
-
require_paths:
|
210
|
+
require_paths:
|
250
211
|
- lib
|
251
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
212
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
252
213
|
none: false
|
253
|
-
requirements:
|
254
|
-
- -
|
255
|
-
- !ruby/object:Gem::Version
|
256
|
-
|
257
|
-
|
258
|
-
version: "0"
|
259
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
214
|
+
requirements:
|
215
|
+
- - ! '>='
|
216
|
+
- !ruby/object:Gem::Version
|
217
|
+
version: '0'
|
218
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
260
219
|
none: false
|
261
|
-
requirements:
|
262
|
-
- -
|
263
|
-
- !ruby/object:Gem::Version
|
264
|
-
|
265
|
-
- 0
|
266
|
-
version: "0"
|
220
|
+
requirements:
|
221
|
+
- - ! '>='
|
222
|
+
- !ruby/object:Gem::Version
|
223
|
+
version: '0'
|
267
224
|
requirements: []
|
268
|
-
|
269
225
|
rubyforge_project: oauth
|
270
|
-
rubygems_version: 1.
|
226
|
+
rubygems_version: 1.8.16
|
271
227
|
signing_key:
|
272
228
|
specification_version: 3
|
273
229
|
summary: OAuth Core Ruby implementation
|
274
230
|
test_files: []
|
275
|
-
|