em-synchrony 0.2.0 → 0.3.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ Gemfile.lock
2
+ .bundle
3
+ misc
data/Gemfile CHANGED
@@ -4,12 +4,12 @@ gem 'eventmachine', :git => 'git://github.com/eventmachine/eventmachine.git'
4
4
 
5
5
  group :development do
6
6
  gem 'rspec', '~> 2.0.0'
7
- gem 'em-http-request'
7
+ gem 'em-http-request', :git => 'git://github.com/igrigorik/em-http-request'
8
8
  gem 'remcached'
9
9
  gem 'em-mongo'
10
10
  gem 'bson_ext'
11
11
  gem 'mysqlplus'
12
12
  gem 'em-mysqlplus'
13
- gem 'em-redis'
13
+ gem 'em-redis', '~> 0.3.0'
14
14
  gem 'mongo'
15
15
  end
data/em-synchrony.gemspec CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "em-synchrony"
6
- s.version = "0.2.0"
6
+ s.version = "0.3.0.beta.1"
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Ilya Grigorik"]
9
9
  s.email = ["ilya@igvita.com"]
@@ -13,8 +13,7 @@ Gem::Specification.new do |s|
13
13
 
14
14
  s.rubyforge_project = "em-synchrony"
15
15
 
16
- s.required_ruby_version = Gem::Requirement.new(">= 1.9")
17
- s.add_runtime_dependency("eventmachine", [">= 0.12.9"])
16
+ s.add_runtime_dependency("eventmachine", ">= 1.0.0.beta.1")
18
17
 
19
18
  s.files = `git ls-files`.split("\n")
20
19
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
data/lib/em-synchrony.rb CHANGED
@@ -12,7 +12,7 @@ require "em-synchrony/thread"
12
12
  require "em-synchrony/em-multi"
13
13
  require "em-synchrony/tcpsocket"
14
14
  require "em-synchrony/connection_pool"
15
- require "em-synchrony/iterator" unless EventMachine::VERSION >= '0.12.10'
15
+ require "em-synchrony/iterator" if EventMachine::VERSION > '0.12.10'
16
16
 
17
17
  module EventMachine
18
18
 
@@ -5,7 +5,7 @@ rescue LoadError => error
5
5
  end
6
6
 
7
7
  module EventMachine
8
- class HttpRequest
8
+ module HTTPMethods
9
9
  %w[get head post delete put].each do |type|
10
10
  class_eval %[
11
11
  alias :a#{type} :#{type}
@@ -21,13 +21,15 @@ module EventMachine
21
21
 
22
22
  Fiber.yield
23
23
  end
24
-
24
+
25
+ alias :old_call_command :call_command
26
+
25
27
  def call_command(argv, &blk)
26
28
  # async commands are 'a' prefixed, but do check
27
29
  # for the 'add' command corner case (ugh)
28
30
  if argv.first.size > 3 && argv.first[0] == 'a'
29
31
  argv[0] = argv[0].to_s.slice(1,argv[0].size)
30
- callback { raw_call_command(argv, &blk) }
32
+ old_call_command(argv, &blk)
31
33
 
32
34
  else
33
35
  # wrap response blocks into fiber callbacks
@@ -36,7 +38,7 @@ module EventMachine
36
38
  blk = proc { |v| v } if !block_given?
37
39
  clb = proc { |v| f.resume(blk.call(v)) }
38
40
 
39
- callback { raw_call_command(argv, &clb) }
41
+ old_call_command(argv, &clb)
40
42
  Fiber.yield
41
43
  end
42
44
  end
data/spec/http_spec.rb CHANGED
@@ -4,6 +4,18 @@ URL = "http://localhost:8081/"
4
4
  DELAY = 0.25
5
5
 
6
6
  describe EventMachine::HttpRequest do
7
+ it "should perform a synchronous fetch" do
8
+ EM.synchrony do
9
+ s = StubServer.new("HTTP/1.0 200 OK\r\nConnection: close\r\n\r\nFoo", DELAY)
10
+
11
+ r = EventMachine::HttpRequest.new(URL).get
12
+ r.response.should == 'Foo'
13
+
14
+ s.stop
15
+ EventMachine.stop
16
+ end
17
+ end
18
+
7
19
  it "should fire sequential requests" do
8
20
  EventMachine.synchrony do
9
21
  s = StubServer.new("HTTP/1.0 200 OK\r\nConnection: close\r\n\r\nFoo", DELAY)
metadata CHANGED
@@ -1,12 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: em-synchrony
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ prerelease: true
5
5
  segments:
6
6
  - 0
7
- - 2
7
+ - 3
8
8
  - 0
9
- version: 0.2.0
9
+ - beta
10
+ - 1
11
+ version: 0.3.0.beta.1
10
12
  platform: ruby
11
13
  authors:
12
14
  - Ilya Grigorik
@@ -14,7 +16,7 @@ autorequire:
14
16
  bindir: bin
15
17
  cert_chain: []
16
18
 
17
- date: 2010-10-30 00:00:00 -04:00
19
+ date: 2011-02-23 00:00:00 -05:00
18
20
  default_executable:
19
21
  dependencies:
20
22
  - !ruby/object:Gem::Dependency
@@ -25,10 +27,12 @@ dependencies:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
27
29
  segments:
30
+ - 1
31
+ - 0
28
32
  - 0
29
- - 12
30
- - 9
31
- version: 0.12.9
33
+ - beta
34
+ - 1
35
+ version: 1.0.0.beta.1
32
36
  type: :runtime
33
37
  prerelease: false
34
38
  version_requirements: *id001
@@ -42,6 +46,7 @@ extensions: []
42
46
  extra_rdoc_files: []
43
47
 
44
48
  files:
49
+ - .gitignore
45
50
  - Gemfile
46
51
  - README.md
47
52
  - Rakefile
@@ -100,18 +105,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
100
105
  requirements:
101
106
  - - ">="
102
107
  - !ruby/object:Gem::Version
108
+ hash: -1057112667937056146
103
109
  segments:
104
- - 1
105
- - 9
106
- version: "1.9"
110
+ - 0
111
+ version: "0"
107
112
  required_rubygems_version: !ruby/object:Gem::Requirement
108
113
  none: false
109
114
  requirements:
110
- - - ">="
115
+ - - ">"
111
116
  - !ruby/object:Gem::Version
112
117
  segments:
113
- - 0
114
- version: "0"
118
+ - 1
119
+ - 3
120
+ - 1
121
+ version: 1.3.1
115
122
  requirements: []
116
123
 
117
124
  rubyforge_project: em-synchrony