tmm1-em-spec 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/em/spec.rb +46 -26
  2. metadata +5 -4
  3. data/lib/ext/em.rb +0 -37
data/lib/em/spec.rb CHANGED
@@ -2,18 +2,23 @@ require File.dirname(__FILE__) + '/../ext/fiber18'
2
2
 
3
3
  require 'bacon'
4
4
 
5
- class Bacon::Context
6
- alias :_it :it
5
+ class Bacon::FiberedContext < Bacon::Context
7
6
  def it *args
8
- _it(*args){ if block_given? then yield; Fiber.yield end }
7
+ super{
8
+ if block_given?
9
+ yield
10
+ Fiber.yield
11
+ end
12
+ }
9
13
  end
10
14
 
11
15
  def done
12
16
  EM.next_tick{
17
+ :done.should == :done
13
18
  $bacon_fiber.resume if $bacon_fiber
14
19
  }
15
20
  end
16
- end unless Bacon::Context.method_defined? :_it
21
+ end
17
22
 
18
23
  require 'eventmachine'
19
24
 
@@ -25,7 +30,7 @@ module EventMachine
25
30
  EM.run{
26
31
  Bacon.summary_on_exit
27
32
  ($bacon_fiber = Fiber.new{
28
- Bacon::Context.new(args.join(' '), &blk).run
33
+ Bacon::FiberedContext.new(args.join(' '), &blk).run
29
34
  EM.stop_event_loop
30
35
  }).resume
31
36
  }
@@ -33,33 +38,48 @@ module EventMachine
33
38
  class << self; alias :describe :spec; end
34
39
  end
35
40
 
36
- EM.describe EventMachine do
41
+ if __FILE__ == $0
37
42
 
38
- should 'work' do
39
- 1.should == 1
40
- done
43
+ describe 'Bacon' do
44
+ should 'work as normal outside EM.describe' do
45
+ 1.should == 1
46
+ end
41
47
  end
42
48
 
43
- should 'have timers' do
44
- start = Time.now
45
-
46
- EM.add_timer(0.5){
47
- (Time.now-start).should.be.close 0.5, 0.1
49
+ EM.describe EventMachine do
50
+ should 'work' do
48
51
  done
49
- }
50
- end
52
+ end
51
53
 
52
- should 'have periodic timers' do
53
- num = 0
54
- start = Time.now
54
+ should 'have timers' do
55
+ start = Time.now
55
56
 
56
- timer = EM.add_periodic_timer(0.5){
57
- if (num += 1) == 2
58
- (Time.now-start).should.be.close 1.0, 0.1
59
- EM.__send__ :cancel_timer, timer
57
+ EM.add_timer(0.5){
58
+ (Time.now-start).should.be.close 0.5, 0.1
60
59
  done
61
- end
62
- }
60
+ }
61
+ end
62
+
63
+ should 'have periodic timers' do
64
+ num = 0
65
+ start = Time.now
66
+
67
+ timer = EM.add_periodic_timer(0.5){
68
+ if (num += 1) == 2
69
+ (Time.now-start).should.be.close 1.0, 0.1
70
+ EM.__send__ :cancel_timer, timer
71
+ done
72
+ end
73
+ }
74
+ end
75
+
76
+ should 'have deferrables' do
77
+ defr = EM::DefaultDeferrable.new
78
+ defr.timeout(1)
79
+ defr.errback{
80
+ done
81
+ }
82
+ end
63
83
  end
64
84
 
65
- end if __FILE__ == $0
85
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tmm1-em-spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aman Gupta
@@ -9,20 +9,22 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-08-01 00:00:00 -07:00
12
+ date: 2009-02-15 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: eventmachine
17
+ type: :runtime
17
18
  version_requirement:
18
19
  version_requirements: !ruby/object:Gem::Requirement
19
20
  requirements:
20
21
  - - ">="
21
22
  - !ruby/object:Gem::Version
22
- version: 0.12.0
23
+ version: 0.12.4
23
24
  version:
24
25
  - !ruby/object:Gem::Dependency
25
26
  name: bacon
27
+ type: :runtime
26
28
  version_requirement:
27
29
  version_requirements: !ruby/object:Gem::Requirement
28
30
  requirements:
@@ -41,7 +43,6 @@ extra_rdoc_files: []
41
43
  files:
42
44
  - README
43
45
  - lib/em/spec.rb
44
- - lib/ext/em.rb
45
46
  - lib/ext/fiber18.rb
46
47
  has_rdoc: false
47
48
  homepage: http://github.com/tmm1/em-spec
data/lib/ext/em.rb DELETED
@@ -1,37 +0,0 @@
1
- begin
2
- require 'eventmachine'
3
- rescue LoadError
4
- require 'rubygems'
5
- require 'eventmachine'
6
- end
7
-
8
- # copied from EM trunk, will be removed when 0.12.1 is released
9
- if EM::VERSION < '0.12.1'
10
-
11
- def EventMachine::run blk=nil, tail=nil, &block
12
- @tails ||= []
13
- tail and @tails.unshift(tail)
14
-
15
- if reactor_running?
16
- (b = blk || block) and b.call # next_tick(b)
17
- else
18
- @conns = {}
19
- @acceptors = {}
20
- @timers = {}
21
- begin
22
- @reactor_running = true
23
- initialize_event_machine
24
- (b = blk || block) and add_timer(0, b)
25
- run_machine
26
- ensure
27
- release_machine
28
- @reactor_running = false
29
- end
30
-
31
- until @tails.empty?
32
- @tails.pop.call
33
- end
34
- end
35
- end
36
-
37
- end