fblee-typhoeus 0.1.31
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.
- data/.gitignore +2 -0
- data/CHANGELOG.markdown +27 -0
- data/README.textile +333 -0
- data/Rakefile +39 -0
- data/VERSION +1 -0
- data/benchmarks/profile.rb +25 -0
- data/benchmarks/vs_nethttp.rb +35 -0
- data/examples/twitter.rb +21 -0
- data/ext/typhoeus/.gitignore +5 -0
- data/ext/typhoeus/Makefile +157 -0
- data/ext/typhoeus/extconf.rb +65 -0
- data/ext/typhoeus/native.c +11 -0
- data/ext/typhoeus/native.h +21 -0
- data/ext/typhoeus/typhoeus_easy.c +207 -0
- data/ext/typhoeus/typhoeus_easy.h +19 -0
- data/ext/typhoeus/typhoeus_multi.c +225 -0
- data/ext/typhoeus/typhoeus_multi.h +16 -0
- data/lib/typhoeus/.gitignore +1 -0
- data/lib/typhoeus/easy.rb +348 -0
- data/lib/typhoeus/filter.rb +28 -0
- data/lib/typhoeus/hydra.rb +243 -0
- data/lib/typhoeus/multi.rb +35 -0
- data/lib/typhoeus/remote.rb +306 -0
- data/lib/typhoeus/remote_method.rb +108 -0
- data/lib/typhoeus/remote_proxy_object.rb +48 -0
- data/lib/typhoeus/request.rb +172 -0
- data/lib/typhoeus/response.rb +49 -0
- data/lib/typhoeus/service.rb +20 -0
- data/lib/typhoeus.rb +55 -0
- data/profilers/valgrind.rb +24 -0
- data/spec/fixtures/result_set.xml +60 -0
- data/spec/servers/app.rb +84 -0
- data/spec/spec.opts +2 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/typhoeus/easy_spec.rb +249 -0
- data/spec/typhoeus/filter_spec.rb +35 -0
- data/spec/typhoeus/hydra_spec.rb +311 -0
- data/spec/typhoeus/multi_spec.rb +74 -0
- data/spec/typhoeus/remote_method_spec.rb +141 -0
- data/spec/typhoeus/remote_proxy_object_spec.rb +65 -0
- data/spec/typhoeus/remote_spec.rb +695 -0
- data/spec/typhoeus/request_spec.rb +195 -0
- data/spec/typhoeus/response_spec.rb +63 -0
- data/typhoeus.gemspec +113 -0
- metadata +188 -0
@@ -0,0 +1,195 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe Typhoeus::Request do
|
4
|
+
describe "#params_string" do
|
5
|
+
it "should dump a sorted string" do
|
6
|
+
request = Typhoeus::Request.new(
|
7
|
+
"http://google.com",
|
8
|
+
:params => {
|
9
|
+
'b' => 'fdsa',
|
10
|
+
'a' => 'jlk',
|
11
|
+
'c' => '789'
|
12
|
+
}
|
13
|
+
)
|
14
|
+
|
15
|
+
request.params_string.should == "a=jlk&b=fdsa&c=789"
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should accept symboled keys" do
|
19
|
+
request = Typhoeus::Request.new('http://google.com',
|
20
|
+
:params => {
|
21
|
+
:b => 'fdsa',
|
22
|
+
:a => 'jlk',
|
23
|
+
:c => '789'
|
24
|
+
})
|
25
|
+
request.params_string.should == "a=jlk&b=fdsa&c=789"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "quick request methods" do
|
30
|
+
it "can run a GET synchronously" do
|
31
|
+
response = Typhoeus::Request.get("http://localhost:3000", :params => {:q => "hi"}, :headers => {:foo => "bar"})
|
32
|
+
response.code.should == 200
|
33
|
+
JSON.parse(response.body)["REQUEST_METHOD"].should == "GET"
|
34
|
+
end
|
35
|
+
|
36
|
+
it "can run a POST synchronously" do
|
37
|
+
response = Typhoeus::Request.post("http://localhost:3000", :params => {:q => "hi"}, :headers => {:foo => "bar"})
|
38
|
+
response.code.should == 200
|
39
|
+
json = JSON.parse(response.body)
|
40
|
+
json["REQUEST_METHOD"].should == "POST"
|
41
|
+
json["rack.request.query_hash"]["q"].should == "hi"
|
42
|
+
end
|
43
|
+
|
44
|
+
it "can run a PUT synchronously" do
|
45
|
+
response = Typhoeus::Request.put("http://localhost:3000", :params => {:q => "hi"}, :headers => {:foo => "bar"})
|
46
|
+
response.code.should == 200
|
47
|
+
JSON.parse(response.body)["REQUEST_METHOD"].should == "PUT"
|
48
|
+
end
|
49
|
+
|
50
|
+
it "can run a DELETE synchronously" do
|
51
|
+
response = Typhoeus::Request.delete("http://localhost:3000", :params => {:q => "hi"}, :headers => {:foo => "bar"})
|
52
|
+
response.code.should == 200
|
53
|
+
JSON.parse(response.body)["REQUEST_METHOD"].should == "DELETE"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
it "takes url as the first argument" do
|
58
|
+
Typhoeus::Request.new("http://localhost:3000").url.should == "http://localhost:3000"
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should parse the host from the url" do
|
62
|
+
Typhoeus::Request.new("http://localhost:3000/whatever?hi=foo").host.should == "http://localhost:3000"
|
63
|
+
Typhoeus::Request.new("http://localhost:3000?hi=foo").host.should == "http://localhost:3000"
|
64
|
+
Typhoeus::Request.new("http://localhost:3000").host.should == "http://localhost:3000"
|
65
|
+
end
|
66
|
+
|
67
|
+
it "takes method as an option" do
|
68
|
+
Typhoeus::Request.new("http://localhost:3000", :method => :get).method.should == :get
|
69
|
+
end
|
70
|
+
|
71
|
+
it "takes headers as an option" do
|
72
|
+
headers = {:foo => :bar}
|
73
|
+
request = Typhoeus::Request.new("http://localhost:3000", :headers => headers)
|
74
|
+
request.headers.should == headers
|
75
|
+
end
|
76
|
+
|
77
|
+
it "takes params as an option and adds them to the url" do
|
78
|
+
Typhoeus::Request.new("http://localhost:3000", :params => {:foo => "bar"}).url.should == "http://localhost:3000?foo=bar"
|
79
|
+
end
|
80
|
+
|
81
|
+
it "takes request body as an option" do
|
82
|
+
Typhoeus::Request.new("http://localhost:3000", :body => "whatever").body.should == "whatever"
|
83
|
+
end
|
84
|
+
|
85
|
+
it "takes timeout as an option" do
|
86
|
+
Typhoeus::Request.new("http://localhost:3000", :timeout => 10).timeout.should == 10
|
87
|
+
end
|
88
|
+
|
89
|
+
it "takes cache_timeout as an option" do
|
90
|
+
Typhoeus::Request.new("http://localhost:3000", :cache_timeout => 60).cache_timeout.should == 60
|
91
|
+
end
|
92
|
+
|
93
|
+
it "takes follow_location as an option" do
|
94
|
+
Typhoeus::Request.new("http://localhost:3000", :follow_location => true).follow_location.should == true
|
95
|
+
end
|
96
|
+
|
97
|
+
it "takes max_redirects as an option" do
|
98
|
+
Typhoeus::Request.new("http://localhost:3000", :max_redirects => 10).max_redirects.should == 10
|
99
|
+
end
|
100
|
+
|
101
|
+
it "has the associated response object" do
|
102
|
+
request = Typhoeus::Request.new("http://localhost:3000")
|
103
|
+
request.response = :foo
|
104
|
+
request.response.should == :foo
|
105
|
+
end
|
106
|
+
|
107
|
+
it "has an on_complete handler that is called when the request is completed" do
|
108
|
+
request = Typhoeus::Request.new("http://localhost:3000")
|
109
|
+
foo = nil
|
110
|
+
request.on_complete do |response|
|
111
|
+
foo = response
|
112
|
+
end
|
113
|
+
request.response = :bar
|
114
|
+
request.call_handlers
|
115
|
+
foo.should == :bar
|
116
|
+
end
|
117
|
+
|
118
|
+
it "has an on_complete setter" do
|
119
|
+
foo = nil
|
120
|
+
proc = Proc.new {|response| foo = response}
|
121
|
+
request = Typhoeus::Request.new("http://localhost:3000")
|
122
|
+
request.on_complete = proc
|
123
|
+
request.response = :bar
|
124
|
+
request.call_handlers
|
125
|
+
foo.should == :bar
|
126
|
+
end
|
127
|
+
|
128
|
+
it "stores the handled response that is the return value from the on_complete block" do
|
129
|
+
request = Typhoeus::Request.new("http://localhost:3000")
|
130
|
+
request.on_complete do |response|
|
131
|
+
"handled"
|
132
|
+
end
|
133
|
+
request.response = :bar
|
134
|
+
request.call_handlers
|
135
|
+
request.handled_response.should == "handled"
|
136
|
+
end
|
137
|
+
|
138
|
+
it "has an after_complete handler that recieves what on_complete returns" do
|
139
|
+
request = Typhoeus::Request.new("http://localhost:3000")
|
140
|
+
request.on_complete do |response|
|
141
|
+
"handled"
|
142
|
+
end
|
143
|
+
good = nil
|
144
|
+
request.after_complete do |object|
|
145
|
+
good = object == "handled"
|
146
|
+
end
|
147
|
+
request.call_handlers
|
148
|
+
good.should be_true
|
149
|
+
end
|
150
|
+
|
151
|
+
it "has an after_complete setter" do
|
152
|
+
request = Typhoeus::Request.new("http://localhost:3000")
|
153
|
+
request.on_complete do |response|
|
154
|
+
"handled"
|
155
|
+
end
|
156
|
+
good = nil
|
157
|
+
proc = Proc.new {|object| good = object == "handled"}
|
158
|
+
request.after_complete = proc
|
159
|
+
|
160
|
+
request.call_handlers
|
161
|
+
good.should be_true
|
162
|
+
end
|
163
|
+
|
164
|
+
describe "authentication" do
|
165
|
+
|
166
|
+
it "should allow to set username and password" do
|
167
|
+
auth = { :username => 'foo', :password => 'bar' }
|
168
|
+
e = Typhoeus::Request.get(
|
169
|
+
"http://localhost:3001/auth_basic/#{auth[:username]}/#{auth[:password]}",
|
170
|
+
auth
|
171
|
+
)
|
172
|
+
e.code.should == 200
|
173
|
+
end
|
174
|
+
|
175
|
+
it "should allow to set authentication method" do
|
176
|
+
auth = {
|
177
|
+
:username => 'username',
|
178
|
+
:password => 'password',
|
179
|
+
:auth_method => :ntlm
|
180
|
+
}
|
181
|
+
e = Typhoeus::Request.get(
|
182
|
+
"http://localhost:3001/auth_ntlm",
|
183
|
+
auth
|
184
|
+
)
|
185
|
+
e.code.should == 200
|
186
|
+
end
|
187
|
+
|
188
|
+
end
|
189
|
+
|
190
|
+
describe "retry" do
|
191
|
+
it "should take a retry option"
|
192
|
+
it "should count the number of times a request has failed"
|
193
|
+
end
|
194
|
+
|
195
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe Typhoeus::Response do
|
4
|
+
describe "initialize" do
|
5
|
+
it "should store response_code" do
|
6
|
+
Typhoeus::Response.new(:code => 200).code.should == 200
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should store response_headers" do
|
10
|
+
Typhoeus::Response.new(:headers => "a header!").headers.should == "a header!"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should store response_body" do
|
14
|
+
Typhoeus::Response.new(:body => "a body!").body.should == "a body!"
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should store request_time" do
|
18
|
+
Typhoeus::Response.new(:time => 1.23).time.should == 1.23
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should store requested_url" do
|
22
|
+
response = Typhoeus::Response.new(:requested_url => "http://test.com")
|
23
|
+
response.requested_url.should == "http://test.com"
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should store requested_http_method" do
|
27
|
+
response = Typhoeus::Response.new(:requested_http_method => :delete)
|
28
|
+
response.requested_http_method.should == :delete
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should store an associated request object" do
|
32
|
+
response = Typhoeus::Response.new(:request => "whatever")
|
33
|
+
response.request.should == "whatever"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "headers" do
|
38
|
+
it "can parse the headers into a hash" do
|
39
|
+
response = Typhoeus::Response.new(:headers => "HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=utf-8\r\nConnection: close\r\nStatus: 200\r\nX-Powered-By: Phusion Passenger (mod_rails/mod_rack) 2.2.9\r\nX-Cache: miss\r\nX-Runtime: 184\r\nETag: e001d08d9354ab7bc7c27a00163a3afa\r\nCache-Control: private, max-age=0, must-revalidate\r\nContent-Length: 4725\r\nSet-Cookie: _some_session=BAh7CDoGciIAOg9zZXNzaW9uX2lkIiU1OTQ2OTcwMjljMWM5ZTQwODU1NjQwYTViMmQxMTkxMjoGcyIKL2NhcnQ%3D--b4c4663932243090c961bb93d4ad5e4327064730; path=/; HttpOnly\r\nServer: nginx/0.6.37 + Phusion Passenger 2.2.4 (mod_rails/mod_rack)\r\nSet-Cookie: foo=bar; path=/;\r\nP3P: CP=\"NOI DSP COR NID ADMa OPTa OUR NOR\"\r\n\r\n")
|
40
|
+
response.headers_hash["Status"].should == "200"
|
41
|
+
response.headers_hash["Set-Cookie"].should == ["_some_session=BAh7CDoGciIAOg9zZXNzaW9uX2lkIiU1OTQ2OTcwMjljMWM5ZTQwODU1NjQwYTViMmQxMTkxMjoGcyIKL2NhcnQ%3D--b4c4663932243090c961bb93d4ad5e4327064730; path=/; HttpOnly", "foo=bar; path=/;"]
|
42
|
+
response.headers_hash["Content-Type"].should == "text/html; charset=utf-8"
|
43
|
+
end
|
44
|
+
|
45
|
+
it "parses a header key that appears multiple times into an array" do
|
46
|
+
response = Typhoeus::Response.new(:headers => "HTTP/1.1 302 Found\r\nContent-Type: text/html; charset=utf-8\r\nConnection: close\r\nStatus: 302\r\nX-Powered-By: Phusion Passenger (mod_rails/mod_rack) 2.2.9\r\nLocation: http://mckenzie-greenholt1512.myshopify.com/cart\r\nX-Runtime: 22\r\nCache-Control: no-cache\r\nContent-Length: 114\r\nSet-Cookie: cart=8fdd6a828d9c89a737a52668be0cebaf; path=/; expires=Fri, 12-Mar-2010 18:30:19 GMT\r\nSet-Cookie: _session=BAh7CToPc2Vzc2lvbl9pZCIlZTQzMDQzMDg1YjI3MTQ4MzAzMTZmMWZmMWJjMTU1NmI6CWNhcnQiJThmZGQ2YTgyOGQ5Yzg5YTczN2E1MjY2OGJlMGNlYmFmOgZyIgA6BnMiDi9jYXJ0L2FkZA%3D%3D--6b0a699625caed9597580d8e9b6ca5f5e5954125; path=/; HttpOnly\r\nServer: nginx/0.6.37 + Phusion Passenger 2.2.4 (mod_rails/mod_rack)\r\nP3P: CP=\"NOI DSP COR NID ADMa OPTa OUR NOR\"\r\n\r\n")
|
47
|
+
response.headers_hash["Set-Cookie"].should include("cart=8fdd6a828d9c89a737a52668be0cebaf; path=/; expires=Fri, 12-Mar-2010 18:30:19 GMT")
|
48
|
+
response.headers_hash["Set-Cookie"].should include("_session=BAh7CToPc2Vzc2lvbl9pZCIlZTQzMDQzMDg1YjI3MTQ4MzAzMTZmMWZmMWJjMTU1NmI6CWNhcnQiJThmZGQ2YTgyOGQ5Yzg5YTczN2E1MjY2OGJlMGNlYmFmOgZyIgA6BnMiDi9jYXJ0L2FkZA%3D%3D--6b0a699625caed9597580d8e9b6ca5f5e5954125; path=/; HttpOnly")
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "status checking" do
|
53
|
+
it "is successful if response code is 200-299" do
|
54
|
+
Typhoeus::Response.new(:code => 220).success?.should be
|
55
|
+
Typhoeus::Response.new(:code => 400).success?.should_not be
|
56
|
+
end
|
57
|
+
|
58
|
+
it "is not modified if the status code is 304" do
|
59
|
+
Typhoeus::Response.new(:code => 304).modified?.should_not be
|
60
|
+
Typhoeus::Response.new(:code => 200).modified?.should be
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
data/typhoeus.gemspec
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{fblee-typhoeus}
|
8
|
+
s.version = "0.1.31"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Paul Dix", "Lee Mallabone"]
|
12
|
+
s.date = %q{2010-07-16}
|
13
|
+
s.description = %q{ (Fork of official typhoeus that enables cookie support) Like a modern code version of the mythical beast with 100 serpent heads, Typhoeus runs HTTP requests in parallel while cleanly encapsulating handling logic.}
|
14
|
+
s.email = %q{paul@pauldix.net}
|
15
|
+
s.extensions = ["ext/typhoeus/extconf.rb"]
|
16
|
+
s.extra_rdoc_files = [
|
17
|
+
"README.textile"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".gitignore",
|
21
|
+
"CHANGELOG.markdown",
|
22
|
+
"README.textile",
|
23
|
+
"Rakefile",
|
24
|
+
"VERSION",
|
25
|
+
"benchmarks/profile.rb",
|
26
|
+
"benchmarks/vs_nethttp.rb",
|
27
|
+
"examples/twitter.rb",
|
28
|
+
"ext/typhoeus/.gitignore",
|
29
|
+
"ext/typhoeus/Makefile",
|
30
|
+
"ext/typhoeus/extconf.rb",
|
31
|
+
"ext/typhoeus/native.c",
|
32
|
+
"ext/typhoeus/native.h",
|
33
|
+
"ext/typhoeus/typhoeus_easy.c",
|
34
|
+
"ext/typhoeus/typhoeus_easy.h",
|
35
|
+
"ext/typhoeus/typhoeus_multi.c",
|
36
|
+
"ext/typhoeus/typhoeus_multi.h",
|
37
|
+
"lib/typhoeus.rb",
|
38
|
+
"lib/typhoeus/.gitignore",
|
39
|
+
"lib/typhoeus/easy.rb",
|
40
|
+
"lib/typhoeus/filter.rb",
|
41
|
+
"lib/typhoeus/hydra.rb",
|
42
|
+
"lib/typhoeus/multi.rb",
|
43
|
+
"lib/typhoeus/remote.rb",
|
44
|
+
"lib/typhoeus/remote_method.rb",
|
45
|
+
"lib/typhoeus/remote_proxy_object.rb",
|
46
|
+
"lib/typhoeus/request.rb",
|
47
|
+
"lib/typhoeus/response.rb",
|
48
|
+
"lib/typhoeus/service.rb",
|
49
|
+
"profilers/valgrind.rb",
|
50
|
+
"spec/fixtures/result_set.xml",
|
51
|
+
"spec/servers/app.rb",
|
52
|
+
"spec/spec.opts",
|
53
|
+
"spec/spec_helper.rb",
|
54
|
+
"spec/typhoeus/easy_spec.rb",
|
55
|
+
"spec/typhoeus/filter_spec.rb",
|
56
|
+
"spec/typhoeus/hydra_spec.rb",
|
57
|
+
"spec/typhoeus/multi_spec.rb",
|
58
|
+
"spec/typhoeus/remote_method_spec.rb",
|
59
|
+
"spec/typhoeus/remote_proxy_object_spec.rb",
|
60
|
+
"spec/typhoeus/remote_spec.rb",
|
61
|
+
"spec/typhoeus/request_spec.rb",
|
62
|
+
"spec/typhoeus/response_spec.rb",
|
63
|
+
"typhoeus.gemspec"
|
64
|
+
]
|
65
|
+
s.homepage = %q{http://github.com/pauldix/typhoeus}
|
66
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
67
|
+
s.require_paths = ["lib"]
|
68
|
+
s.rubygems_version = %q{1.3.6}
|
69
|
+
s.summary = %q{A library for interacting with web services (and building SOAs) at blinding speed.}
|
70
|
+
s.test_files = [
|
71
|
+
"spec/servers/app.rb",
|
72
|
+
"spec/spec_helper.rb",
|
73
|
+
"spec/typhoeus/easy_spec.rb",
|
74
|
+
"spec/typhoeus/filter_spec.rb",
|
75
|
+
"spec/typhoeus/hydra_spec.rb",
|
76
|
+
"spec/typhoeus/multi_spec.rb",
|
77
|
+
"spec/typhoeus/remote_method_spec.rb",
|
78
|
+
"spec/typhoeus/remote_proxy_object_spec.rb",
|
79
|
+
"spec/typhoeus/remote_spec.rb",
|
80
|
+
"spec/typhoeus/request_spec.rb",
|
81
|
+
"spec/typhoeus/response_spec.rb",
|
82
|
+
"examples/twitter.rb"
|
83
|
+
]
|
84
|
+
|
85
|
+
if s.respond_to? :specification_version then
|
86
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
87
|
+
s.specification_version = 3
|
88
|
+
|
89
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
90
|
+
s.add_runtime_dependency(%q<rack>, [">= 0"])
|
91
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
92
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
93
|
+
s.add_development_dependency(%q<diff-lcs>, [">= 0"])
|
94
|
+
s.add_development_dependency(%q<sinatra>, [">= 0"])
|
95
|
+
s.add_development_dependency(%q<json>, [">= 0"])
|
96
|
+
else
|
97
|
+
s.add_dependency(%q<rack>, [">= 0"])
|
98
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
99
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
100
|
+
s.add_dependency(%q<diff-lcs>, [">= 0"])
|
101
|
+
s.add_dependency(%q<sinatra>, [">= 0"])
|
102
|
+
s.add_dependency(%q<json>, [">= 0"])
|
103
|
+
end
|
104
|
+
else
|
105
|
+
s.add_dependency(%q<rack>, [">= 0"])
|
106
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
107
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
108
|
+
s.add_dependency(%q<diff-lcs>, [">= 0"])
|
109
|
+
s.add_dependency(%q<sinatra>, [">= 0"])
|
110
|
+
s.add_dependency(%q<json>, [">= 0"])
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
metadata
ADDED
@@ -0,0 +1,188 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: fblee-typhoeus
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 31
|
9
|
+
version: 0.1.31
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Paul Dix
|
13
|
+
- Lee Mallabone
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-07-16 00:00:00 +01:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: rack
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
version: "0"
|
31
|
+
type: :runtime
|
32
|
+
version_requirements: *id001
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rspec
|
35
|
+
prerelease: false
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
segments:
|
41
|
+
- 0
|
42
|
+
version: "0"
|
43
|
+
type: :development
|
44
|
+
version_requirements: *id002
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: jeweler
|
47
|
+
prerelease: false
|
48
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
segments:
|
53
|
+
- 0
|
54
|
+
version: "0"
|
55
|
+
type: :development
|
56
|
+
version_requirements: *id003
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: diff-lcs
|
59
|
+
prerelease: false
|
60
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
segments:
|
65
|
+
- 0
|
66
|
+
version: "0"
|
67
|
+
type: :development
|
68
|
+
version_requirements: *id004
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: sinatra
|
71
|
+
prerelease: false
|
72
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
segments:
|
77
|
+
- 0
|
78
|
+
version: "0"
|
79
|
+
type: :development
|
80
|
+
version_requirements: *id005
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: json
|
83
|
+
prerelease: false
|
84
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
segments:
|
89
|
+
- 0
|
90
|
+
version: "0"
|
91
|
+
type: :development
|
92
|
+
version_requirements: *id006
|
93
|
+
description: " (Fork of official typhoeus that enables cookie support) Like a modern code version of the mythical beast with 100 serpent heads, Typhoeus runs HTTP requests in parallel while cleanly encapsulating handling logic."
|
94
|
+
email: paul@pauldix.net
|
95
|
+
executables: []
|
96
|
+
|
97
|
+
extensions:
|
98
|
+
- ext/typhoeus/extconf.rb
|
99
|
+
extra_rdoc_files:
|
100
|
+
- README.textile
|
101
|
+
files:
|
102
|
+
- .gitignore
|
103
|
+
- CHANGELOG.markdown
|
104
|
+
- README.textile
|
105
|
+
- Rakefile
|
106
|
+
- VERSION
|
107
|
+
- benchmarks/profile.rb
|
108
|
+
- benchmarks/vs_nethttp.rb
|
109
|
+
- examples/twitter.rb
|
110
|
+
- ext/typhoeus/.gitignore
|
111
|
+
- ext/typhoeus/Makefile
|
112
|
+
- ext/typhoeus/extconf.rb
|
113
|
+
- ext/typhoeus/native.c
|
114
|
+
- ext/typhoeus/native.h
|
115
|
+
- ext/typhoeus/typhoeus_easy.c
|
116
|
+
- ext/typhoeus/typhoeus_easy.h
|
117
|
+
- ext/typhoeus/typhoeus_multi.c
|
118
|
+
- ext/typhoeus/typhoeus_multi.h
|
119
|
+
- lib/typhoeus.rb
|
120
|
+
- lib/typhoeus/.gitignore
|
121
|
+
- lib/typhoeus/easy.rb
|
122
|
+
- lib/typhoeus/filter.rb
|
123
|
+
- lib/typhoeus/hydra.rb
|
124
|
+
- lib/typhoeus/multi.rb
|
125
|
+
- lib/typhoeus/remote.rb
|
126
|
+
- lib/typhoeus/remote_method.rb
|
127
|
+
- lib/typhoeus/remote_proxy_object.rb
|
128
|
+
- lib/typhoeus/request.rb
|
129
|
+
- lib/typhoeus/response.rb
|
130
|
+
- lib/typhoeus/service.rb
|
131
|
+
- profilers/valgrind.rb
|
132
|
+
- spec/fixtures/result_set.xml
|
133
|
+
- spec/servers/app.rb
|
134
|
+
- spec/spec.opts
|
135
|
+
- spec/spec_helper.rb
|
136
|
+
- spec/typhoeus/easy_spec.rb
|
137
|
+
- spec/typhoeus/filter_spec.rb
|
138
|
+
- spec/typhoeus/hydra_spec.rb
|
139
|
+
- spec/typhoeus/multi_spec.rb
|
140
|
+
- spec/typhoeus/remote_method_spec.rb
|
141
|
+
- spec/typhoeus/remote_proxy_object_spec.rb
|
142
|
+
- spec/typhoeus/remote_spec.rb
|
143
|
+
- spec/typhoeus/request_spec.rb
|
144
|
+
- spec/typhoeus/response_spec.rb
|
145
|
+
- typhoeus.gemspec
|
146
|
+
has_rdoc: true
|
147
|
+
homepage: http://github.com/pauldix/typhoeus
|
148
|
+
licenses: []
|
149
|
+
|
150
|
+
post_install_message:
|
151
|
+
rdoc_options:
|
152
|
+
- --charset=UTF-8
|
153
|
+
require_paths:
|
154
|
+
- lib
|
155
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
segments:
|
160
|
+
- 0
|
161
|
+
version: "0"
|
162
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
segments:
|
167
|
+
- 0
|
168
|
+
version: "0"
|
169
|
+
requirements: []
|
170
|
+
|
171
|
+
rubyforge_project:
|
172
|
+
rubygems_version: 1.3.6
|
173
|
+
signing_key:
|
174
|
+
specification_version: 3
|
175
|
+
summary: A library for interacting with web services (and building SOAs) at blinding speed.
|
176
|
+
test_files:
|
177
|
+
- spec/servers/app.rb
|
178
|
+
- spec/spec_helper.rb
|
179
|
+
- spec/typhoeus/easy_spec.rb
|
180
|
+
- spec/typhoeus/filter_spec.rb
|
181
|
+
- spec/typhoeus/hydra_spec.rb
|
182
|
+
- spec/typhoeus/multi_spec.rb
|
183
|
+
- spec/typhoeus/remote_method_spec.rb
|
184
|
+
- spec/typhoeus/remote_proxy_object_spec.rb
|
185
|
+
- spec/typhoeus/remote_spec.rb
|
186
|
+
- spec/typhoeus/request_spec.rb
|
187
|
+
- spec/typhoeus/response_spec.rb
|
188
|
+
- examples/twitter.rb
|