eventmachine 1.0.0.beta.3-x86-mswin32-60 → 1.0.0.beta.4.1-x86-mswin32-60

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.
Files changed (98) hide show
  1. data/.gitignore +5 -0
  2. data/.yardopts +5 -1
  3. data/{docs/GNU → GNU} +0 -0
  4. data/Gemfile +1 -0
  5. data/{docs/COPYING → LICENSE} +0 -0
  6. data/README.md +109 -0
  7. data/Rakefile +8 -0
  8. data/docs/DocumentationGuidesIndex.md +27 -0
  9. data/docs/GettingStarted.md +521 -0
  10. data/docs/{ChangeLog → old/ChangeLog} +0 -0
  11. data/docs/{DEFERRABLES → old/DEFERRABLES} +0 -0
  12. data/docs/{EPOLL → old/EPOLL} +0 -0
  13. data/docs/{INSTALL → old/INSTALL} +0 -0
  14. data/docs/{KEYBOARD → old/KEYBOARD} +0 -0
  15. data/docs/{LEGAL → old/LEGAL} +0 -0
  16. data/docs/{LIGHTWEIGHT_CONCURRENCY → old/LIGHTWEIGHT_CONCURRENCY} +0 -0
  17. data/docs/{PURE_RUBY → old/PURE_RUBY} +0 -0
  18. data/docs/{RELEASE_NOTES → old/RELEASE_NOTES} +0 -0
  19. data/docs/{SMTP → old/SMTP} +0 -0
  20. data/docs/{SPAWNED_PROCESSES → old/SPAWNED_PROCESSES} +0 -0
  21. data/docs/{TODO → old/TODO} +0 -0
  22. data/eventmachine.gemspec +5 -2
  23. data/examples/guides/getting_started/01_eventmachine_echo_server.rb +18 -0
  24. data/examples/guides/getting_started/02_eventmachine_echo_server_that_recognizes_exit_command.rb +22 -0
  25. data/examples/guides/getting_started/03_simple_chat_server.rb +149 -0
  26. data/examples/guides/getting_started/04_simple_chat_server_step_one.rb +27 -0
  27. data/examples/guides/getting_started/05_simple_chat_server_step_two.rb +43 -0
  28. data/examples/guides/getting_started/06_simple_chat_server_step_three.rb +98 -0
  29. data/examples/guides/getting_started/07_simple_chat_server_step_four.rb +121 -0
  30. data/examples/guides/getting_started/08_simple_chat_server_step_five.rb +141 -0
  31. data/examples/{ex_channel.rb → old/ex_channel.rb} +3 -3
  32. data/examples/{ex_queue.rb → old/ex_queue.rb} +0 -0
  33. data/examples/{ex_tick_loop_array.rb → old/ex_tick_loop_array.rb} +0 -0
  34. data/examples/{ex_tick_loop_counter.rb → old/ex_tick_loop_counter.rb} +0 -0
  35. data/examples/{helper.rb → old/helper.rb} +0 -0
  36. data/ext/cmain.cpp +3 -3
  37. data/ext/ed.cpp +90 -15
  38. data/ext/ed.h +5 -5
  39. data/ext/em.cpp +48 -56
  40. data/ext/em.h +12 -2
  41. data/ext/extconf.rb +3 -3
  42. data/ext/fastfilereader/extconf.rb +1 -1
  43. data/ext/pipe.cpp +2 -2
  44. data/ext/project.h +1 -1
  45. data/ext/rubymain.cpp +48 -3
  46. data/ext/ssl.cpp +5 -0
  47. data/java/src/com/rubyeventmachine/EmReactor.java +2 -2
  48. data/lib/em/buftok.rb +35 -63
  49. data/lib/em/callback.rb +43 -11
  50. data/lib/em/channel.rb +21 -14
  51. data/lib/em/completion.rb +304 -0
  52. data/lib/em/connection.rb +339 -209
  53. data/lib/em/deferrable.rb +4 -0
  54. data/lib/em/deferrable/pool.rb +2 -0
  55. data/lib/em/file_watch.rb +37 -18
  56. data/lib/em/iterator.rb +42 -42
  57. data/lib/em/pool.rb +146 -0
  58. data/lib/em/process_watch.rb +5 -4
  59. data/lib/em/processes.rb +8 -4
  60. data/lib/em/protocols/httpclient.rb +22 -11
  61. data/lib/em/protocols/httpclient2.rb +15 -5
  62. data/lib/em/protocols/line_protocol.rb +2 -1
  63. data/lib/em/protocols/memcache.rb +17 -9
  64. data/lib/em/protocols/object_protocol.rb +2 -1
  65. data/lib/em/protocols/postgres3.rb +8 -9
  66. data/lib/em/protocols/smtpclient.rb +19 -11
  67. data/lib/em/protocols/smtpserver.rb +1 -1
  68. data/lib/em/protocols/stomp.rb +8 -6
  69. data/lib/em/protocols/tcptest.rb +3 -2
  70. data/lib/em/pure_ruby.rb +212 -208
  71. data/lib/em/queue.rb +22 -13
  72. data/lib/em/resolver.rb +70 -64
  73. data/lib/em/spawnable.rb +6 -3
  74. data/lib/em/streamer.rb +33 -45
  75. data/lib/em/threaded_resource.rb +90 -0
  76. data/lib/em/timers.rb +6 -2
  77. data/lib/em/version.rb +1 -1
  78. data/lib/eventmachine.rb +538 -602
  79. data/lib/jeventmachine.rb +22 -1
  80. data/tasks/package.rake +12 -2
  81. data/tasks/test.rake +1 -0
  82. data/tests/em_test_helper.rb +12 -3
  83. data/tests/test_completion.rb +177 -0
  84. data/tests/test_epoll.rb +2 -2
  85. data/tests/test_httpclient.rb +9 -9
  86. data/tests/test_httpclient2.rb +11 -9
  87. data/tests/test_ltp.rb +2 -10
  88. data/tests/test_pool.rb +128 -0
  89. data/tests/test_processes.rb +20 -2
  90. data/tests/test_queue.rb +8 -0
  91. data/tests/test_resolver.rb +1 -1
  92. data/tests/test_set_sock_opt.rb +37 -0
  93. data/tests/test_shutdown_hooks.rb +23 -0
  94. data/tests/test_threaded_resource.rb +53 -0
  95. data/tests/test_unbind_reason.rb +31 -0
  96. metadata +96 -32
  97. data/README +0 -81
  98. data/tasks/doc.rake +0 -30
@@ -87,12 +87,8 @@ class TestLineAndTextProtocol < Test::Unit::TestCase
87
87
 
88
88
  def test_lines_and_text
89
89
  output = ''
90
- lines_received = []
91
- text_received = []
92
90
  EM.run {
93
- EM.start_server( "127.0.0.1", @port, LineAndTextTest ) do |conn|
94
- conn.instance_eval "@lines = lines_received; @text = text_received"
95
- end
91
+ EM.start_server( "127.0.0.1", @port, LineAndTextTest )
96
92
  setup_timeout
97
93
 
98
94
  EM.connect "127.0.0.1", @port, StopClient do |c|
@@ -125,12 +121,8 @@ class TestLineAndTextProtocol < Test::Unit::TestCase
125
121
 
126
122
  def test_binary_text
127
123
  output = ''
128
- lines_received = []
129
- text_received = []
130
124
  EM.run {
131
- EM.start_server( "127.0.0.1", @port, BinaryTextTest ) do |conn|
132
- conn.instance_eval "@lines = lines_received; @text = text_received"
133
- end
125
+ EM.start_server( "127.0.0.1", @port, BinaryTextTest )
134
126
  setup_timeout
135
127
 
136
128
  EM.connect "127.0.0.1", @port, StopClient do |c|
@@ -0,0 +1,128 @@
1
+ class TestPool < Test::Unit::TestCase
2
+ def pool
3
+ @pool ||= EM::Pool.new
4
+ end
5
+
6
+ def go
7
+ EM.run { yield }
8
+ end
9
+
10
+ def stop
11
+ EM.stop
12
+ end
13
+
14
+ def deferrable
15
+ @deferrable ||= EM::DefaultDeferrable.new
16
+ end
17
+
18
+ def test_supports_more_work_than_resources
19
+ ran = false
20
+ go do
21
+ pool.perform do
22
+ ran = true
23
+ deferrable
24
+ end
25
+ stop
26
+ end
27
+ assert_equal false, ran
28
+ go do
29
+ pool.add :resource
30
+ stop
31
+ end
32
+ assert_equal true, ran
33
+ end
34
+
35
+ def test_reques_resources_on_error
36
+ pooled_res, pooled_res2 = nil
37
+ pool.add :res
38
+ go do
39
+ pool.perform do |res|
40
+ pooled_res = res
41
+ deferrable
42
+ end
43
+ stop
44
+ end
45
+ deferrable.fail
46
+ go do
47
+ pool.perform do |res|
48
+ pooled_res2 = res
49
+ deferrable
50
+ end
51
+ stop
52
+ end
53
+ assert_equal :res, pooled_res
54
+ assert_equal pooled_res, pooled_res2
55
+ end
56
+
57
+ def test_supports_custom_error_handler
58
+ eres = nil
59
+ pool.on_error do |res|
60
+ eres = res
61
+ end
62
+ performs = []
63
+ pool.add :res
64
+ go do
65
+ pool.perform do |res|
66
+ performs << res
67
+ deferrable
68
+ end
69
+ pool.perform do |res|
70
+ performs << res
71
+ deferrable
72
+ end
73
+ deferrable.fail
74
+ stop
75
+ end
76
+ assert_equal :res, eres
77
+ # manual requeues required when error handler is installed:
78
+ assert_equal 1, performs.size
79
+ assert_equal :res, performs.first
80
+ end
81
+
82
+ def test_catches_successful_deferrables
83
+ performs = []
84
+ pool.add :res
85
+ go do
86
+ pool.perform { |res| performs << res; deferrable }
87
+ pool.perform { |res| performs << res; deferrable }
88
+ stop
89
+ end
90
+ assert_equal [:res], performs
91
+ deferrable.succeed
92
+ go { stop }
93
+ assert_equal [:res, :res], performs
94
+ end
95
+
96
+ def test_prunes_locked_and_removed_resources
97
+ performs = []
98
+ pool.add :res
99
+ deferrable.succeed
100
+ go do
101
+ pool.perform { |res| performs << res; pool.remove res; deferrable }
102
+ pool.perform { |res| performs << res; pool.remove res; deferrable }
103
+ stop
104
+ end
105
+ assert_equal [:res], performs
106
+ end
107
+
108
+ # Contents is only to be used for inspection of the pool!
109
+ def test_contents
110
+ pool.add :res
111
+ assert_equal [:res], pool.contents
112
+ # Assert that modifying the contents list does not affect the pools
113
+ # contents.
114
+ pool.contents.delete(:res)
115
+ assert_equal [:res], pool.contents
116
+ end
117
+
118
+ def test_num_waiting
119
+ pool.add :res
120
+ assert_equal 0, pool.num_waiting
121
+ pool.perform { |r| EM::DefaultDeferrable.new }
122
+ assert_equal 0, pool.num_waiting
123
+ 10.times { pool.perform { |r| EM::DefaultDeferrable.new } }
124
+ EM.run { EM.next_tick { EM.stop } }
125
+ assert_equal 10, pool.num_waiting
126
+ end
127
+
128
+ end
@@ -78,7 +78,7 @@ class TestProcesses < Test::Unit::TestCase
78
78
 
79
79
  def test_em_system_cmd_arguments
80
80
  EM.run{
81
- EM.system('sh', '--version', proc{ |process|
81
+ EM.system('echo', '1', '2', 'version', proc{ |process|
82
82
  }, proc{ |out,status|
83
83
  $out = out
84
84
  $status = status
@@ -86,7 +86,7 @@ class TestProcesses < Test::Unit::TestCase
86
86
  })
87
87
  }
88
88
 
89
- assert_match(/version/i, $out)
89
+ assert_match(/1 2 version/i, $out)
90
90
  end
91
91
 
92
92
  def test_em_system_spaced_arguments
@@ -99,6 +99,24 @@ class TestProcesses < Test::Unit::TestCase
99
99
 
100
100
  assert_equal("hello\n", $out)
101
101
  end
102
+
103
+ def test_em_popen_pause_resume
104
+ c_rx = 0
105
+
106
+ test_client = Module.new do
107
+ define_method :receive_data do |data|
108
+ c_rx += 1
109
+ pause
110
+ EM.add_timer(0.5) { EM.stop }
111
+ end
112
+ end
113
+
114
+ EM.run{
115
+ EM.popen('cat /dev/random', test_client)
116
+ }
117
+
118
+ assert_equal 1, c_rx
119
+ end
102
120
  else
103
121
  warn "EM.popen not implemented, skipping tests in #{__FILE__}"
104
122
 
@@ -39,4 +39,12 @@ class TestEMQueue < Test::Unit::TestCase
39
39
  EM.run { EM.next_tick { EM.stop } }
40
40
  assert_equal 1, x
41
41
  end
42
+
43
+ def test_num_waiting
44
+ q = EM::Queue.new
45
+ many = 3
46
+ many.times { q.pop {} }
47
+ EM.run { EM.next_tick { EM.stop } }
48
+ assert_equal many, q.num_waiting
49
+ end
42
50
  end
@@ -1,6 +1,6 @@
1
1
  require 'em_test_helper'
2
2
 
3
- class TestBasic < Test::Unit::TestCase
3
+ class TestResolver < Test::Unit::TestCase
4
4
  def test_a
5
5
  EM.run {
6
6
  d = EM::DNS::Resolver.resolve "google.com"
@@ -0,0 +1,37 @@
1
+ require 'em_test_helper'
2
+ require 'socket'
3
+
4
+ class TestSetSockOpt < Test::Unit::TestCase
5
+
6
+ if EM.respond_to? :set_sock_opt
7
+ def setup
8
+ assert(!EM.reactor_running?)
9
+ end
10
+
11
+ def teardown
12
+ assert(!EM.reactor_running?)
13
+ end
14
+
15
+ #-------------------------------------
16
+
17
+ def test_set_sock_opt
18
+ test = self
19
+ EM.run do
20
+ EM.connect 'google.com', 80, Module.new {
21
+ define_method :post_init do
22
+ val = set_sock_opt Socket::SOL_SOCKET, Socket::SO_DEBUG, true
23
+ test.assert_equal 0, val
24
+ EM.stop
25
+ end
26
+ }
27
+ end
28
+ end
29
+ else
30
+ warn "EM.set_sock_opt not implemented, skipping tests in #{__FILE__}"
31
+
32
+ # Because some rubies will complain if a TestCase class has no tests
33
+ def test_em_set_sock_opt_unsupported
34
+ assert true
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,23 @@
1
+ require 'em_test_helper'
2
+
3
+ class TestShutdownHooks < Test::Unit::TestCase
4
+ def test_shutdown_hooks
5
+ r = false
6
+ EM.run {
7
+ EM.add_shutdown_hook { r = true }
8
+ EM.stop
9
+ }
10
+ assert_equal( true, r )
11
+ end
12
+
13
+ def test_hook_order
14
+ r = []
15
+ EM.run {
16
+ EM.add_shutdown_hook { r << 2 }
17
+ EM.add_shutdown_hook { r << 1 }
18
+ EM.stop
19
+ }
20
+ assert_equal( [1, 2], r )
21
+ end
22
+ end
23
+
@@ -0,0 +1,53 @@
1
+ class TestThreadedResource < Test::Unit::TestCase
2
+ def object
3
+ @object ||= {}
4
+ end
5
+
6
+ def resource
7
+ @resource = EM::ThreadedResource.new do
8
+ object
9
+ end
10
+ end
11
+
12
+ def teardown
13
+ resource.shutdown
14
+ end
15
+
16
+ def test_dispatch_completion
17
+ EM.run do
18
+ completion = resource.dispatch do |o|
19
+ o[:foo] = :bar
20
+ :foo
21
+ end
22
+ completion.callback do |result|
23
+ assert_equal :foo, result
24
+ EM.stop
25
+ end
26
+ end
27
+ assert_equal :bar, object[:foo]
28
+ end
29
+
30
+ def test_dispatch_failure
31
+ completion = resource.dispatch do |o|
32
+ raise 'boom'
33
+ end
34
+ completion.errback do |error|
35
+ assert_kind_of RuntimeError, error
36
+ assert_equal 'boom', error.message
37
+ end
38
+ end
39
+
40
+ def test_dispatch_threading
41
+ main = Thread.current
42
+ resource.dispatch do |o|
43
+ o[:dispatch_thread] = Thread.current
44
+ end
45
+ assert_not_equal main, object[:dispatch_thread]
46
+ end
47
+
48
+ def test_shutdown
49
+ # This test should get improved sometime. The method returning thread is
50
+ # NOT an api that will be maintained.
51
+ assert !resource.shutdown.alive?
52
+ end
53
+ end
@@ -0,0 +1,31 @@
1
+ require 'em_test_helper'
2
+ require 'socket'
3
+
4
+ class TestUnbindReason < Test::Unit::TestCase
5
+ def test_connect_timeout
6
+ error = nil
7
+ EM.run {
8
+ conn = EM.connect 'google.com', 81, Module.new{ |m|
9
+ m.send(:define_method, :unbind) do |reason|
10
+ error = reason
11
+ EM.stop
12
+ end
13
+ }
14
+ conn.pending_connect_timeout = 0.1
15
+ }
16
+ assert_equal error, Errno::ETIMEDOUT
17
+ end
18
+
19
+ def test_connect_refused
20
+ error = nil
21
+ EM.run {
22
+ EM.connect '127.0.0.1', 12388, Module.new{ |m|
23
+ m.send(:define_method, :unbind) do |reason|
24
+ error = reason
25
+ EM.stop
26
+ end
27
+ }
28
+ }
29
+ assert_equal error, Errno::ECONNREFUSED
30
+ end
31
+ end
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eventmachine
3
3
  version: !ruby/object:Gem::Version
4
- hash: 62196357
4
+ hash: 124392917
5
5
  prerelease: 6
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
9
  - 0
10
10
  - beta
11
- - 3
12
- version: 1.0.0.beta.3
11
+ - 4
12
+ - 1
13
+ version: 1.0.0.beta.4.1
13
14
  platform: x86-mswin32-60
14
15
  authors:
15
16
  - Francis Cianfrocca
@@ -18,7 +19,7 @@ autorequire:
18
19
  bindir: bin
19
20
  cert_chain: []
20
21
 
21
- date: 2011-03-03 00:00:00 -08:00
22
+ date: 2011-09-25 00:00:00 +01:00
22
23
  default_executable:
23
24
  dependencies:
24
25
  - !ruby/object:Gem::Dependency
@@ -29,14 +30,44 @@ dependencies:
29
30
  requirements:
30
31
  - - "="
31
32
  - !ruby/object:Gem::Version
32
- hash: 15
33
+ hash: 17
33
34
  segments:
34
35
  - 0
35
36
  - 7
36
- - 6
37
- version: 0.7.6
37
+ - 9
38
+ version: 0.7.9
38
39
  type: :development
39
40
  version_requirements: *id001
41
+ - !ruby/object:Gem::Dependency
42
+ name: yard
43
+ prerelease: false
44
+ requirement: &id002 !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ hash: 7
50
+ segments:
51
+ - 0
52
+ - 7
53
+ - 2
54
+ version: 0.7.2
55
+ type: :development
56
+ version_requirements: *id002
57
+ - !ruby/object:Gem::Dependency
58
+ name: bluecloth
59
+ prerelease: false
60
+ requirement: &id003 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ hash: 3
66
+ segments:
67
+ - 0
68
+ version: "0"
69
+ type: :development
70
+ version_requirements: *id003
40
71
  description: |-
41
72
  EventMachine implements a fast, single-threaded engine for arbitrary network
42
73
  communications. It's extremely easy to use in Ruby. EventMachine wraps all
@@ -55,34 +86,58 @@ executables: []
55
86
 
56
87
  extensions: []
57
88
 
58
- extra_rdoc_files: []
59
-
89
+ extra_rdoc_files:
90
+ - README.md
91
+ - docs/DocumentationGuidesIndex.md
92
+ - docs/GettingStarted.md
93
+ - docs/old/ChangeLog
94
+ - docs/old/DEFERRABLES
95
+ - docs/old/EPOLL
96
+ - docs/old/INSTALL
97
+ - docs/old/KEYBOARD
98
+ - docs/old/LEGAL
99
+ - docs/old/LIGHTWEIGHT_CONCURRENCY
100
+ - docs/old/PURE_RUBY
101
+ - docs/old/RELEASE_NOTES
102
+ - docs/old/SMTP
103
+ - docs/old/SPAWNED_PROCESSES
104
+ - docs/old/TODO
60
105
  files:
61
106
  - .gitignore
62
107
  - .yardopts
108
+ - GNU
63
109
  - Gemfile
64
- - README
110
+ - LICENSE
111
+ - README.md
65
112
  - Rakefile
66
- - docs/COPYING
67
- - docs/ChangeLog
68
- - docs/DEFERRABLES
69
- - docs/EPOLL
70
- - docs/GNU
71
- - docs/INSTALL
72
- - docs/KEYBOARD
73
- - docs/LEGAL
74
- - docs/LIGHTWEIGHT_CONCURRENCY
75
- - docs/PURE_RUBY
76
- - docs/RELEASE_NOTES
77
- - docs/SMTP
78
- - docs/SPAWNED_PROCESSES
79
- - docs/TODO
113
+ - docs/DocumentationGuidesIndex.md
114
+ - docs/GettingStarted.md
115
+ - docs/old/ChangeLog
116
+ - docs/old/DEFERRABLES
117
+ - docs/old/EPOLL
118
+ - docs/old/INSTALL
119
+ - docs/old/KEYBOARD
120
+ - docs/old/LEGAL
121
+ - docs/old/LIGHTWEIGHT_CONCURRENCY
122
+ - docs/old/PURE_RUBY
123
+ - docs/old/RELEASE_NOTES
124
+ - docs/old/SMTP
125
+ - docs/old/SPAWNED_PROCESSES
126
+ - docs/old/TODO
80
127
  - eventmachine.gemspec
81
- - examples/ex_channel.rb
82
- - examples/ex_queue.rb
83
- - examples/ex_tick_loop_array.rb
84
- - examples/ex_tick_loop_counter.rb
85
- - examples/helper.rb
128
+ - examples/guides/getting_started/01_eventmachine_echo_server.rb
129
+ - examples/guides/getting_started/02_eventmachine_echo_server_that_recognizes_exit_command.rb
130
+ - examples/guides/getting_started/03_simple_chat_server.rb
131
+ - examples/guides/getting_started/04_simple_chat_server_step_one.rb
132
+ - examples/guides/getting_started/05_simple_chat_server_step_two.rb
133
+ - examples/guides/getting_started/06_simple_chat_server_step_three.rb
134
+ - examples/guides/getting_started/07_simple_chat_server_step_four.rb
135
+ - examples/guides/getting_started/08_simple_chat_server_step_five.rb
136
+ - examples/old/ex_channel.rb
137
+ - examples/old/ex_queue.rb
138
+ - examples/old/ex_tick_loop_array.rb
139
+ - examples/old/ex_tick_loop_counter.rb
140
+ - examples/old/helper.rb
86
141
  - ext/binder.cpp
87
142
  - ext/binder.h
88
143
  - ext/cmain.cpp
@@ -114,12 +169,15 @@ files:
114
169
  - lib/em/buftok.rb
115
170
  - lib/em/callback.rb
116
171
  - lib/em/channel.rb
172
+ - lib/em/completion.rb
117
173
  - lib/em/connection.rb
118
174
  - lib/em/deferrable.rb
175
+ - lib/em/deferrable/pool.rb
119
176
  - lib/em/file_watch.rb
120
177
  - lib/em/future.rb
121
178
  - lib/em/iterator.rb
122
179
  - lib/em/messages.rb
180
+ - lib/em/pool.rb
123
181
  - lib/em/process_watch.rb
124
182
  - lib/em/processes.rb
125
183
  - lib/em/protocols.rb
@@ -143,13 +201,13 @@ files:
143
201
  - lib/em/resolver.rb
144
202
  - lib/em/spawnable.rb
145
203
  - lib/em/streamer.rb
204
+ - lib/em/threaded_resource.rb
146
205
  - lib/em/tick_loop.rb
147
206
  - lib/em/timers.rb
148
207
  - lib/em/version.rb
149
208
  - lib/eventmachine.rb
150
209
  - lib/jeventmachine.rb
151
210
  - tasks/cpp.rake_example
152
- - tasks/doc.rake
153
211
  - tasks/package.rake
154
212
  - tasks/test.rake
155
213
  - tests/client.crt
@@ -158,6 +216,7 @@ files:
158
216
  - tests/test_attach.rb
159
217
  - tests/test_basic.rb
160
218
  - tests/test_channel.rb
219
+ - tests/test_completion.rb
161
220
  - tests/test_connection_count.rb
162
221
  - tests/test_defer.rb
163
222
  - tests/test_deferrable.rb
@@ -179,6 +238,7 @@ files:
179
238
  - tests/test_object_protocol.rb
180
239
  - tests/test_pause.rb
181
240
  - tests/test_pending_connect_timeout.rb
241
+ - tests/test_pool.rb
182
242
  - tests/test_process_watch.rb
183
243
  - tests/test_processes.rb
184
244
  - tests/test_proxy_connection.rb
@@ -189,15 +249,19 @@ files:
189
249
  - tests/test_sasl.rb
190
250
  - tests/test_send_file.rb
191
251
  - tests/test_servers.rb
252
+ - tests/test_set_sock_opt.rb
253
+ - tests/test_shutdown_hooks.rb
192
254
  - tests/test_smtpclient.rb
193
255
  - tests/test_smtpserver.rb
194
256
  - tests/test_spawn.rb
195
257
  - tests/test_ssl_args.rb
196
258
  - tests/test_ssl_methods.rb
197
259
  - tests/test_ssl_verify.rb
260
+ - tests/test_threaded_resource.rb
198
261
  - tests/test_tick_loop.rb
199
262
  - tests/test_timers.rb
200
263
  - tests/test_ud.rb
264
+ - tests/test_unbind_reason.rb
201
265
  - lib/1.8/rubyeventmachine.so
202
266
  - lib/1.9/rubyeventmachine.so
203
267
  - lib/1.8/fastfilereaderext.so
@@ -212,7 +276,7 @@ rdoc_options:
212
276
  - --title
213
277
  - EventMachine
214
278
  - --main
215
- - README
279
+ - README.md
216
280
  - -x
217
281
  - lib/em/version
218
282
  - -x
@@ -242,7 +306,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
242
306
  requirements: []
243
307
 
244
308
  rubyforge_project: eventmachine
245
- rubygems_version: 1.4.2
309
+ rubygems_version: 1.6.2
246
310
  signing_key:
247
311
  specification_version: 3
248
312
  summary: Ruby/EventMachine library