em-http-request 0.2.6 → 0.2.7

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.

data/Rakefile CHANGED
@@ -35,7 +35,7 @@ task :ragel do
35
35
  end
36
36
 
37
37
  task :spec do
38
- sh 'spec test/test_*.rb'
38
+ sh 'spec spec/*_spec.rb'
39
39
  end
40
40
 
41
41
  def make(makedir)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.6
1
+ 0.2.7
@@ -21,6 +21,20 @@ static VALUE eHttpClientParserError;
21
21
  #define id_chunk_size rb_intern("@http_chunk_size")
22
22
  #define id_last_chunk rb_intern("@last_chunk")
23
23
 
24
+ #ifndef RHASH_TBL
25
+ /* rb_hash_lookup() is only in Ruby 1.8.7 */
26
+ static VALUE rb_hash_lookup(VALUE hash, VALUE key)
27
+ {
28
+ VALUE val;
29
+
30
+ if (!st_lookup(RHASH(hash)->tbl, key, &val)) {
31
+ return Qnil; /* without Hash#default */
32
+ }
33
+
34
+ return val;
35
+ }
36
+ #endif
37
+
24
38
  void client_http_field(void *data, const char *field, size_t flen, const char *value, size_t vlen)
25
39
  {
26
40
  char *ch, *end;
@@ -84,7 +84,7 @@ module EventMachine
84
84
  # Escapes a URI.
85
85
  def escape(s)
86
86
  s.to_s.gsub(/([^ a-zA-Z0-9_.-]+)/n) {
87
- '%'+$1.unpack('H2'*$1.size).join('%').upcase
87
+ '%'+$1.unpack('H2'*$1.bytesize).join('%').upcase
88
88
  }.tr(' ', '+')
89
89
  end
90
90
 
@@ -304,7 +304,7 @@ module EventMachine
304
304
 
305
305
  else
306
306
  # Set the Content-Length if body is given
307
- head['content-length'] = body.length if body
307
+ head['content-length'] = body.bytesize if body
308
308
 
309
309
  # Set the cookie header if provided
310
310
  if cookie = head.delete('cookie')
@@ -34,10 +34,10 @@ module EventMachine
34
34
  end
35
35
 
36
36
  def add(conn)
37
+ @requests.push(conn)
38
+
37
39
  conn.callback { @responses[:succeeded].push(conn); check_progress }
38
40
  conn.errback { @responses[:failed].push(conn); check_progress }
39
-
40
- @requests.push(conn)
41
41
  end
42
42
 
43
43
  protected
@@ -48,4 +48,4 @@ module EventMachine
48
48
  end
49
49
 
50
50
  end
51
- end
51
+ end
@@ -26,8 +26,7 @@ module EventMachine
26
26
 
27
27
  attr_reader :options, :method
28
28
 
29
- def initialize(host, headers = {})
30
- @headers = headers
29
+ def initialize(host)
31
30
  @uri = host.kind_of?(Addressable::URI) ? host : Addressable::URI::parse(host)
32
31
  end
33
32
 
@@ -72,8 +71,13 @@ module EventMachine
72
71
 
73
72
  # Make sure the ports are set as Addressable::URI doesn't
74
73
  # set the port if it isn't there
75
- @uri.port ||= 80
76
- @port_to_connect ||= 80
74
+ if @uri.scheme == "https"
75
+ @uri.port ||= 443
76
+ @port_to_connect ||= 443
77
+ else
78
+ @uri.port ||= 80
79
+ @port_to_connect ||= 80
80
+ end
77
81
 
78
82
  @method = method.to_s.upcase
79
83
  send_request(&blk)
@@ -14,7 +14,7 @@ describe EventMachine::MultiRequest do
14
14
  multi.add(EventMachine::HttpRequest.new('http://0.0.0.0:8083/').get(:timeout => 1))
15
15
 
16
16
  multi.callback {
17
- # verify successfull request
17
+ # verify successful request
18
18
  multi.responses[:succeeded].size.should == 1
19
19
  multi.responses[:succeeded].first.response.should match(/test/)
20
20
 
@@ -26,4 +26,26 @@ describe EventMachine::MultiRequest do
26
26
  }
27
27
  }
28
28
  end
29
- end
29
+
30
+ it "should handle multiple mock requests" do
31
+ EventMachine::MockHttpRequest.register_file('http://127.0.0.1:8080/', :get, File.join(File.dirname(__FILE__), 'fixtures', 'google.ca'))
32
+ EventMachine::MockHttpRequest.register_file('http://0.0.0.0:8083/', :get, File.join(File.dirname(__FILE__), 'fixtures', 'google.ca'))
33
+
34
+ EventMachine.run {
35
+
36
+ # create an instance of multi-request handler, and the requests themselves
37
+ multi = EventMachine::MultiRequest.new
38
+
39
+ # add multiple requests to the multi-handler
40
+ multi.add(EventMachine::MockHttpRequest.new('http://127.0.0.1:8080/').get)
41
+ multi.add(EventMachine::MockHttpRequest.new('http://0.0.0.0:8083/').get)
42
+
43
+ multi.callback {
44
+ # verify successful request
45
+ multi.responses[:succeeded].size.should == 2
46
+
47
+ EventMachine.stop
48
+ }
49
+ }
50
+ end
51
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: em-http-request
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilya Grigorik
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-31 00:00:00 -05:00
12
+ date: 2010-02-20 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency