typhoeus 0.2.0 → 0.2.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.
Files changed (49) hide show
  1. data/.gitignore +1 -0
  2. data/CHANGELOG.markdown +14 -1
  3. data/Gemfile +2 -0
  4. data/Gemfile.lock +2 -0
  5. data/LICENSE +20 -0
  6. data/README.textile +39 -5
  7. data/Rakefile +8 -5
  8. data/VERSION +1 -1
  9. data/examples/file.rb +12 -0
  10. data/examples/times.rb +40 -0
  11. data/ext/typhoeus/.gitignore +2 -1
  12. data/ext/typhoeus/native.c +1 -0
  13. data/ext/typhoeus/native.h +1 -0
  14. data/ext/typhoeus/typhoeus_easy.c +32 -7
  15. data/ext/typhoeus/typhoeus_easy.h +1 -0
  16. data/ext/typhoeus/typhoeus_form.c +59 -0
  17. data/ext/typhoeus/typhoeus_form.h +13 -0
  18. data/ext/typhoeus/typhoeus_multi.c +15 -29
  19. data/lib/typhoeus.rb +1 -0
  20. data/lib/typhoeus/easy.rb +70 -48
  21. data/lib/typhoeus/form.rb +47 -0
  22. data/lib/typhoeus/hydra.rb +40 -7
  23. data/lib/typhoeus/hydra/connect_options.rb +19 -3
  24. data/lib/typhoeus/multi.rb +7 -5
  25. data/lib/typhoeus/remote.rb +1 -1
  26. data/lib/typhoeus/remote_proxy_object.rb +2 -0
  27. data/lib/typhoeus/request.rb +15 -3
  28. data/lib/typhoeus/response.rb +16 -1
  29. data/spec/fixtures/placeholder.gif +0 -0
  30. data/spec/fixtures/placeholder.txt +1 -0
  31. data/spec/fixtures/placeholder.ukn +0 -0
  32. data/spec/servers/app.rb +9 -0
  33. data/spec/spec.opts +1 -0
  34. data/spec/spec_helper.rb +3 -0
  35. data/spec/typhoeus/easy_spec.rb +55 -6
  36. data/spec/typhoeus/filter_spec.rb +2 -2
  37. data/spec/typhoeus/form_spec.rb +106 -0
  38. data/spec/typhoeus/hydra_mock_spec.rb +1 -1
  39. data/spec/typhoeus/hydra_spec.rb +108 -38
  40. data/spec/typhoeus/multi_spec.rb +1 -1
  41. data/spec/typhoeus/normalized_header_hash_spec.rb +1 -1
  42. data/spec/typhoeus/remote_method_spec.rb +2 -2
  43. data/spec/typhoeus/remote_proxy_object_spec.rb +1 -1
  44. data/spec/typhoeus/remote_spec.rb +1 -1
  45. data/spec/typhoeus/request_spec.rb +31 -2
  46. data/spec/typhoeus/response_spec.rb +13 -1
  47. data/spec/typhoeus/utils_spec.rb +1 -1
  48. data/typhoeus.gemspec +23 -6
  49. metadata +39 -19
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
2
 
3
3
  describe Typhoeus::Easy do
4
4
  it "should save easy handles that get added" do
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + "/../spec_helper"
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
2
 
3
3
  describe Typhoeus::NormalizedHeaderHash do
4
4
  before(:all) do
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
2
 
3
3
  describe Typhoeus::RemoteMethod do
4
4
  it "should take options" do
@@ -138,4 +138,4 @@ describe Typhoeus::RemoteMethod do
138
138
  Typhoeus::RemoteMethod.new(:cache_responses => 30).cache_ttl.should == 30
139
139
  end
140
140
  end
141
- end
141
+ end
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
2
 
3
3
  describe Typhoeus::RemoteProxyObject do
4
4
  before(:each) do
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
2
 
3
3
  describe Typhoeus do
4
4
  it "should be deprecated" do
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
2
 
3
3
  describe Typhoeus::Request do
4
4
  describe "#inspect" do
@@ -25,7 +25,7 @@ describe Typhoeus::Request do
25
25
  it "should dump the method" do
26
26
  @request.inspect.should =~ /:get/
27
27
  end
28
-
28
+
29
29
  it "should dump out headers" do
30
30
  @request.inspect.should =~ /"Content-Type"\s*=>\s*"text\/html"/
31
31
  end
@@ -213,6 +213,35 @@ describe Typhoeus::Request do
213
213
  good.should be_true
214
214
  end
215
215
 
216
+ describe "time info" do
217
+ it "should have time" do
218
+ response = Typhoeus::Request.get("http://localhost:3000")
219
+ response.time.should > 0
220
+ end
221
+
222
+ it "should have connect time" do
223
+ response = Typhoeus::Request.get("http://localhost:3000")
224
+ response.connect_time.should > 0
225
+ end
226
+
227
+ it "should have app connect time" do
228
+ response = Typhoeus::Request.get("http://localhost:3000")
229
+ response.app_connect_time.should > 0
230
+ end
231
+
232
+ it "should have start transfer time" do
233
+ response = Typhoeus::Request.get("http://localhost:3000")
234
+ response.start_transfer_time.should > 0
235
+ end
236
+
237
+ it "should have pre-transfer time" do
238
+ response = Typhoeus::Request.get("http://localhost:3000")
239
+ response.pretransfer_time.should > 0
240
+ end
241
+
242
+ end
243
+
244
+
216
245
  describe "authentication" do
217
246
 
218
247
  it "should allow to set username and password" do
@@ -1,6 +1,18 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
2
 
3
3
  describe Typhoeus::Response do
4
+ describe "timed_out?" do
5
+ it "should return true if curl return code is 28" do
6
+ response = Typhoeus::Response.new(:curl_return_code => 28)
7
+ response.should be_timed_out
8
+ end
9
+
10
+ it "should return false for not 28" do
11
+ response = Typhoeus::Response.new(:curl_return_code => 14)
12
+ response.should_not be_timed_out
13
+ end
14
+ end
15
+
4
16
  describe "initialize" do
5
17
  it "should store headers_hash" do
6
18
  response = Typhoeus::Response.new(:headers_hash => {})
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + "/../spec_helper"
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
2
 
3
3
  describe Typhoeus::Utils do
4
4
  # Taken from Rack 1.2.1
@@ -5,27 +5,31 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{typhoeus}
8
- s.version = "0.2.0"
8
+ s.version = "0.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Paul Dix"]
12
- s.date = %q{2010-11-11}
11
+ s.authors = ["Paul Dix", "David Balatero"]
12
+ s.date = %q{2011-01-28}
13
13
  s.description = %q{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}
14
+ s.email = %q{dbalatero@gmail.com}
15
15
  s.extensions = ["ext/typhoeus/extconf.rb"]
16
16
  s.extra_rdoc_files = [
17
- "README.textile"
17
+ "LICENSE",
18
+ "README.textile"
18
19
  ]
19
20
  s.files = [
20
21
  ".gitignore",
21
22
  "CHANGELOG.markdown",
22
23
  "Gemfile",
23
24
  "Gemfile.lock",
25
+ "LICENSE",
24
26
  "README.textile",
25
27
  "Rakefile",
26
28
  "VERSION",
27
29
  "benchmarks/profile.rb",
28
30
  "benchmarks/vs_nethttp.rb",
31
+ "examples/file.rb",
32
+ "examples/times.rb",
29
33
  "examples/twitter.rb",
30
34
  "ext/typhoeus/.gitignore",
31
35
  "ext/typhoeus/extconf.rb",
@@ -33,12 +37,15 @@ Gem::Specification.new do |s|
33
37
  "ext/typhoeus/native.h",
34
38
  "ext/typhoeus/typhoeus_easy.c",
35
39
  "ext/typhoeus/typhoeus_easy.h",
40
+ "ext/typhoeus/typhoeus_form.c",
41
+ "ext/typhoeus/typhoeus_form.h",
36
42
  "ext/typhoeus/typhoeus_multi.c",
37
43
  "ext/typhoeus/typhoeus_multi.h",
38
44
  "lib/typhoeus.rb",
39
45
  "lib/typhoeus/.gitignore",
40
46
  "lib/typhoeus/easy.rb",
41
47
  "lib/typhoeus/filter.rb",
48
+ "lib/typhoeus/form.rb",
42
49
  "lib/typhoeus/hydra.rb",
43
50
  "lib/typhoeus/hydra/callbacks.rb",
44
51
  "lib/typhoeus/hydra/connect_options.rb",
@@ -54,12 +61,16 @@ Gem::Specification.new do |s|
54
61
  "lib/typhoeus/service.rb",
55
62
  "lib/typhoeus/utils.rb",
56
63
  "profilers/valgrind.rb",
64
+ "spec/fixtures/placeholder.gif",
65
+ "spec/fixtures/placeholder.txt",
66
+ "spec/fixtures/placeholder.ukn",
57
67
  "spec/fixtures/result_set.xml",
58
68
  "spec/servers/app.rb",
59
69
  "spec/spec.opts",
60
70
  "spec/spec_helper.rb",
61
71
  "spec/typhoeus/easy_spec.rb",
62
72
  "spec/typhoeus/filter_spec.rb",
73
+ "spec/typhoeus/form_spec.rb",
63
74
  "spec/typhoeus/hydra_mock_spec.rb",
64
75
  "spec/typhoeus/hydra_spec.rb",
65
76
  "spec/typhoeus/multi_spec.rb",
@@ -72,7 +83,7 @@ Gem::Specification.new do |s|
72
83
  "spec/typhoeus/utils_spec.rb",
73
84
  "typhoeus.gemspec"
74
85
  ]
75
- s.homepage = %q{http://github.com/pauldix/typhoeus}
86
+ s.homepage = %q{http://github.com/dbalatero/typhoeus}
76
87
  s.rdoc_options = ["--charset=UTF-8"]
77
88
  s.require_paths = ["lib"]
78
89
  s.rubygems_version = %q{1.3.7}
@@ -82,6 +93,7 @@ Gem::Specification.new do |s|
82
93
  "spec/spec_helper.rb",
83
94
  "spec/typhoeus/easy_spec.rb",
84
95
  "spec/typhoeus/filter_spec.rb",
96
+ "spec/typhoeus/form_spec.rb",
85
97
  "spec/typhoeus/hydra_mock_spec.rb",
86
98
  "spec/typhoeus/hydra_spec.rb",
87
99
  "spec/typhoeus/multi_spec.rb",
@@ -92,6 +104,8 @@ Gem::Specification.new do |s|
92
104
  "spec/typhoeus/request_spec.rb",
93
105
  "spec/typhoeus/response_spec.rb",
94
106
  "spec/typhoeus/utils_spec.rb",
107
+ "examples/file.rb",
108
+ "examples/times.rb",
95
109
  "examples/twitter.rb"
96
110
  ]
97
111
 
@@ -100,12 +114,14 @@ Gem::Specification.new do |s|
100
114
  s.specification_version = 3
101
115
 
102
116
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
117
+ s.add_runtime_dependency(%q<mime-types>, [">= 0"])
103
118
  s.add_development_dependency(%q<rspec>, [">= 0"])
104
119
  s.add_development_dependency(%q<jeweler>, [">= 0"])
105
120
  s.add_development_dependency(%q<diff-lcs>, [">= 0"])
106
121
  s.add_development_dependency(%q<sinatra>, [">= 0"])
107
122
  s.add_development_dependency(%q<json>, [">= 0"])
108
123
  else
124
+ s.add_dependency(%q<mime-types>, [">= 0"])
109
125
  s.add_dependency(%q<rspec>, [">= 0"])
110
126
  s.add_dependency(%q<jeweler>, [">= 0"])
111
127
  s.add_dependency(%q<diff-lcs>, [">= 0"])
@@ -113,6 +129,7 @@ Gem::Specification.new do |s|
113
129
  s.add_dependency(%q<json>, [">= 0"])
114
130
  end
115
131
  else
132
+ s.add_dependency(%q<mime-types>, [">= 0"])
116
133
  s.add_dependency(%q<rspec>, [">= 0"])
117
134
  s.add_dependency(%q<jeweler>, [">= 0"])
118
135
  s.add_dependency(%q<diff-lcs>, [">= 0"])
metadata CHANGED
@@ -1,111 +1,123 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: typhoeus
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 2
9
- - 0
10
- version: 0.2.0
8
+ - 1
9
+ version: 0.2.1
11
10
  platform: ruby
12
11
  authors:
13
12
  - Paul Dix
13
+ - David Balatero
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-11 00:00:00 -08:00
18
+ date: 2011-01-28 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: rspec
22
+ name: mime-types
23
23
  prerelease: false
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- hash: 3
30
29
  segments:
31
30
  - 0
32
31
  version: "0"
33
- type: :development
32
+ type: :runtime
34
33
  version_requirements: *id001
35
34
  - !ruby/object:Gem::Dependency
36
- name: jeweler
35
+ name: rspec
37
36
  prerelease: false
38
37
  requirement: &id002 !ruby/object:Gem::Requirement
39
38
  none: false
40
39
  requirements:
41
40
  - - ">="
42
41
  - !ruby/object:Gem::Version
43
- hash: 3
44
42
  segments:
45
43
  - 0
46
44
  version: "0"
47
45
  type: :development
48
46
  version_requirements: *id002
49
47
  - !ruby/object:Gem::Dependency
50
- name: diff-lcs
48
+ name: jeweler
51
49
  prerelease: false
52
50
  requirement: &id003 !ruby/object:Gem::Requirement
53
51
  none: false
54
52
  requirements:
55
53
  - - ">="
56
54
  - !ruby/object:Gem::Version
57
- hash: 3
58
55
  segments:
59
56
  - 0
60
57
  version: "0"
61
58
  type: :development
62
59
  version_requirements: *id003
63
60
  - !ruby/object:Gem::Dependency
64
- name: sinatra
61
+ name: diff-lcs
65
62
  prerelease: false
66
63
  requirement: &id004 !ruby/object:Gem::Requirement
67
64
  none: false
68
65
  requirements:
69
66
  - - ">="
70
67
  - !ruby/object:Gem::Version
71
- hash: 3
72
68
  segments:
73
69
  - 0
74
70
  version: "0"
75
71
  type: :development
76
72
  version_requirements: *id004
77
73
  - !ruby/object:Gem::Dependency
78
- name: json
74
+ name: sinatra
79
75
  prerelease: false
80
76
  requirement: &id005 !ruby/object:Gem::Requirement
81
77
  none: false
82
78
  requirements:
83
79
  - - ">="
84
80
  - !ruby/object:Gem::Version
85
- hash: 3
86
81
  segments:
87
82
  - 0
88
83
  version: "0"
89
84
  type: :development
90
85
  version_requirements: *id005
86
+ - !ruby/object:Gem::Dependency
87
+ name: json
88
+ prerelease: false
89
+ requirement: &id006 !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ segments:
95
+ - 0
96
+ version: "0"
97
+ type: :development
98
+ version_requirements: *id006
91
99
  description: Like a modern code version of the mythical beast with 100 serpent heads, Typhoeus runs HTTP requests in parallel while cleanly encapsulating handling logic.
92
- email: paul@pauldix.net
100
+ email: dbalatero@gmail.com
93
101
  executables: []
94
102
 
95
103
  extensions:
96
104
  - ext/typhoeus/extconf.rb
97
105
  extra_rdoc_files:
106
+ - LICENSE
98
107
  - README.textile
99
108
  files:
100
109
  - .gitignore
101
110
  - CHANGELOG.markdown
102
111
  - Gemfile
103
112
  - Gemfile.lock
113
+ - LICENSE
104
114
  - README.textile
105
115
  - Rakefile
106
116
  - VERSION
107
117
  - benchmarks/profile.rb
108
118
  - benchmarks/vs_nethttp.rb
119
+ - examples/file.rb
120
+ - examples/times.rb
109
121
  - examples/twitter.rb
110
122
  - ext/typhoeus/.gitignore
111
123
  - ext/typhoeus/extconf.rb
@@ -113,12 +125,15 @@ files:
113
125
  - ext/typhoeus/native.h
114
126
  - ext/typhoeus/typhoeus_easy.c
115
127
  - ext/typhoeus/typhoeus_easy.h
128
+ - ext/typhoeus/typhoeus_form.c
129
+ - ext/typhoeus/typhoeus_form.h
116
130
  - ext/typhoeus/typhoeus_multi.c
117
131
  - ext/typhoeus/typhoeus_multi.h
118
132
  - lib/typhoeus.rb
119
133
  - lib/typhoeus/.gitignore
120
134
  - lib/typhoeus/easy.rb
121
135
  - lib/typhoeus/filter.rb
136
+ - lib/typhoeus/form.rb
122
137
  - lib/typhoeus/hydra.rb
123
138
  - lib/typhoeus/hydra/callbacks.rb
124
139
  - lib/typhoeus/hydra/connect_options.rb
@@ -134,12 +149,16 @@ files:
134
149
  - lib/typhoeus/service.rb
135
150
  - lib/typhoeus/utils.rb
136
151
  - profilers/valgrind.rb
152
+ - spec/fixtures/placeholder.gif
153
+ - spec/fixtures/placeholder.txt
154
+ - spec/fixtures/placeholder.ukn
137
155
  - spec/fixtures/result_set.xml
138
156
  - spec/servers/app.rb
139
157
  - spec/spec.opts
140
158
  - spec/spec_helper.rb
141
159
  - spec/typhoeus/easy_spec.rb
142
160
  - spec/typhoeus/filter_spec.rb
161
+ - spec/typhoeus/form_spec.rb
143
162
  - spec/typhoeus/hydra_mock_spec.rb
144
163
  - spec/typhoeus/hydra_spec.rb
145
164
  - spec/typhoeus/multi_spec.rb
@@ -152,7 +171,7 @@ files:
152
171
  - spec/typhoeus/utils_spec.rb
153
172
  - typhoeus.gemspec
154
173
  has_rdoc: true
155
- homepage: http://github.com/pauldix/typhoeus
174
+ homepage: http://github.com/dbalatero/typhoeus
156
175
  licenses: []
157
176
 
158
177
  post_install_message:
@@ -165,7 +184,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
165
184
  requirements:
166
185
  - - ">="
167
186
  - !ruby/object:Gem::Version
168
- hash: 3
169
187
  segments:
170
188
  - 0
171
189
  version: "0"
@@ -174,7 +192,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
174
192
  requirements:
175
193
  - - ">="
176
194
  - !ruby/object:Gem::Version
177
- hash: 3
178
195
  segments:
179
196
  - 0
180
197
  version: "0"
@@ -190,6 +207,7 @@ test_files:
190
207
  - spec/spec_helper.rb
191
208
  - spec/typhoeus/easy_spec.rb
192
209
  - spec/typhoeus/filter_spec.rb
210
+ - spec/typhoeus/form_spec.rb
193
211
  - spec/typhoeus/hydra_mock_spec.rb
194
212
  - spec/typhoeus/hydra_spec.rb
195
213
  - spec/typhoeus/multi_spec.rb
@@ -200,4 +218,6 @@ test_files:
200
218
  - spec/typhoeus/request_spec.rb
201
219
  - spec/typhoeus/response_spec.rb
202
220
  - spec/typhoeus/utils_spec.rb
221
+ - examples/file.rb
222
+ - examples/times.rb
203
223
  - examples/twitter.rb