em-synchrony 0.2.0 → 0.3.0.beta.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.
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