em-http-request 1.0.0.beta.1 → 1.0.0.beta.2

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.

Potentially problematic release.


This version of em-http-request might be problematic. Click here for more details.

@@ -6,11 +6,8 @@ EM.run do
6
6
  # Establish a SOCKS5 tunnel via SSH
7
7
  # ssh -D 8000 some_remote_machine
8
8
 
9
- # http = EM::HttpRequest.new('http://whatismyip.org/').get({
10
- http = EM::HttpRequest.new('http://igvita.com/').get({
11
- :proxy => {:host => '127.0.0.1', :port => 8000, :type => :socks},
12
- :redirects => 2
13
- })
9
+ connection_options = {:proxy => {:host => '127.0.0.1', :port => 8000, :type => :socks5}}
10
+ http = EM::HttpRequest.new('http://igvita.com/', connection_options).get :redirects => 2
14
11
 
15
12
  http.callback {
16
13
  puts "#{http.response_header.status} - #{http.response.length} bytes\n"
@@ -103,7 +103,6 @@ module EventMachine
103
103
 
104
104
  def proxy?; !@options[:proxy].nil?; end
105
105
  def http_proxy?; proxy? && [nil, :http].include?(@options[:proxy][:type]); end
106
- def socks_proxy?; proxy? && (@options[:proxy][:type] == :socks); end
107
106
 
108
107
  def continue?
109
108
  @response_header.status == 100 && (@method == 'POST' || @method == 'PUT')
@@ -77,7 +77,12 @@ module EventMachine
77
77
  end
78
78
 
79
79
  def receive_data(data)
80
- @p << data
80
+ begin
81
+ @p << data
82
+ rescue HTTP::Parser::Error => e
83
+ c = @clients.shift
84
+ c.on_error(e.message)
85
+ end
81
86
  end
82
87
 
83
88
  def connection_completed
@@ -51,7 +51,7 @@ module EventMachine
51
51
 
52
52
  # Non CONNECT proxies require that you provide the full request
53
53
  # uri in request header, as opposed to a relative path.
54
- query = uri.join(query) if proxy && proxy[:type] != :socks
54
+ query = uri.join(query) if proxy
55
55
 
56
56
  HTTP_REQUEST_HEADER % [method.to_s.upcase, query]
57
57
  end
@@ -1,5 +1,5 @@
1
1
  module EventMachine
2
2
  class HttpRequest
3
- VERSION = "1.0.0.beta.1"
3
+ VERSION = "1.0.0.beta.2"
4
4
  end
5
5
  end
@@ -558,6 +558,19 @@ describe EventMachine::HttpRequest do
558
558
  }
559
559
  }
560
560
  end
561
+
562
+ it "should handle invalid HTTP response" do
563
+ EventMachine.run {
564
+ @s = StubServer.new("<html></html>")
565
+
566
+ http = EventMachine::HttpRequest.new('http://127.0.0.1:8081/').get
567
+ http.callback { failed(http) }
568
+ http.errback {
569
+ http.error.should_not be_nil
570
+ EM.stop
571
+ }
572
+ }
573
+ end
561
574
  end
562
575
 
563
576
  it "should stream a file off disk" do
metadata CHANGED
@@ -1,14 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: em-http-request
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: true
5
- segments:
6
- - 1
7
- - 0
8
- - 0
9
- - beta
10
- - 1
11
- version: 1.0.0.beta.1
4
+ prerelease: 6
5
+ version: 1.0.0.beta.2
12
6
  platform: ruby
13
7
  authors:
14
8
  - Ilya Grigorik
@@ -16,7 +10,7 @@ autorequire:
16
10
  bindir: bin
17
11
  cert_chain: []
18
12
 
19
- date: 2011-02-20 00:00:00 -05:00
13
+ date: 2011-03-10 00:00:00 -05:00
20
14
  default_executable:
21
15
  dependencies:
22
16
  - !ruby/object:Gem::Dependency
@@ -27,8 +21,6 @@ dependencies:
27
21
  requirements:
28
22
  - - ">="
29
23
  - !ruby/object:Gem::Version
30
- segments:
31
- - 0
32
24
  version: "0"
33
25
  type: :runtime
34
26
  version_requirements: *id001
@@ -40,10 +32,6 @@ dependencies:
40
32
  requirements:
41
33
  - - ">="
42
34
  - !ruby/object:Gem::Version
43
- segments:
44
- - 2
45
- - 2
46
- - 3
47
35
  version: 2.2.3
48
36
  type: :runtime
49
37
  version_requirements: *id002
@@ -55,10 +43,6 @@ dependencies:
55
43
  requirements:
56
44
  - - ">="
57
45
  - !ruby/object:Gem::Version
58
- segments:
59
- - 0
60
- - 5
61
- - 1
62
46
  version: 0.5.1
63
47
  type: :runtime
64
48
  version_requirements: *id003
@@ -70,8 +54,6 @@ dependencies:
70
54
  requirements:
71
55
  - - ">="
72
56
  - !ruby/object:Gem::Version
73
- segments:
74
- - 0
75
57
  version: "0"
76
58
  type: :runtime
77
59
  version_requirements: *id004
@@ -83,8 +65,6 @@ dependencies:
83
65
  requirements:
84
66
  - - ">="
85
67
  - !ruby/object:Gem::Version
86
- segments:
87
- - 0
88
68
  version: "0"
89
69
  type: :development
90
70
  version_requirements: *id005
@@ -96,8 +76,6 @@ dependencies:
96
76
  requirements:
97
77
  - - ">="
98
78
  - !ruby/object:Gem::Version
99
- segments:
100
- - 0
101
79
  version: "0"
102
80
  type: :development
103
81
  version_requirements: *id006
@@ -109,8 +87,6 @@ dependencies:
109
87
  requirements:
110
88
  - - ">="
111
89
  - !ruby/object:Gem::Version
112
- segments:
113
- - 0
114
90
  version: "0"
115
91
  type: :development
116
92
  version_requirements: *id007
@@ -122,8 +98,6 @@ dependencies:
122
98
  requirements:
123
99
  - - ">="
124
100
  - !ruby/object:Gem::Version
125
- segments:
126
- - 0
127
101
  version: "0"
128
102
  type: :development
129
103
  version_requirements: *id008
@@ -135,11 +109,6 @@ dependencies:
135
109
  requirements:
136
110
  - - ~>
137
111
  - !ruby/object:Gem::Version
138
- segments:
139
- - 1
140
- - 2
141
- - 0
142
- - pre2
143
112
  version: 1.2.0.pre2
144
113
  type: :development
145
114
  version_requirements: *id009
@@ -205,23 +174,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
205
174
  requirements:
206
175
  - - ">="
207
176
  - !ruby/object:Gem::Version
208
- segments:
209
- - 0
210
177
  version: "0"
211
178
  required_rubygems_version: !ruby/object:Gem::Requirement
212
179
  none: false
213
180
  requirements:
214
181
  - - ">"
215
182
  - !ruby/object:Gem::Version
216
- segments:
217
- - 1
218
- - 3
219
- - 1
220
183
  version: 1.3.1
221
184
  requirements: []
222
185
 
223
186
  rubyforge_project: em-http-request
224
- rubygems_version: 1.3.7
187
+ rubygems_version: 1.6.2
225
188
  signing_key:
226
189
  specification_version: 3
227
190
  summary: EventMachine based, async HTTP Request client