eventmachine 1.0.0.beta.3-java → 1.0.0.beta.4-java

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 (97) 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 +59 -65
  40. data/ext/em.h +12 -2
  41. data/ext/extconf.rb +3 -3
  42. data/ext/pipe.cpp +2 -2
  43. data/ext/project.h +1 -1
  44. data/ext/rubymain.cpp +48 -3
  45. data/ext/ssl.cpp +5 -0
  46. data/java/src/com/rubyeventmachine/EmReactor.java +2 -2
  47. data/lib/em/buftok.rb +35 -63
  48. data/lib/em/callback.rb +43 -11
  49. data/lib/em/channel.rb +21 -14
  50. data/lib/em/completion.rb +304 -0
  51. data/lib/em/connection.rb +339 -209
  52. data/lib/em/deferrable.rb +4 -0
  53. data/lib/em/deferrable/pool.rb +2 -0
  54. data/lib/em/file_watch.rb +37 -18
  55. data/lib/em/iterator.rb +42 -42
  56. data/lib/em/pool.rb +146 -0
  57. data/lib/em/process_watch.rb +5 -4
  58. data/lib/em/processes.rb +8 -4
  59. data/lib/em/protocols/httpclient.rb +22 -11
  60. data/lib/em/protocols/httpclient2.rb +15 -5
  61. data/lib/em/protocols/line_protocol.rb +2 -1
  62. data/lib/em/protocols/memcache.rb +17 -9
  63. data/lib/em/protocols/object_protocol.rb +2 -1
  64. data/lib/em/protocols/postgres3.rb +8 -9
  65. data/lib/em/protocols/smtpclient.rb +19 -11
  66. data/lib/em/protocols/smtpserver.rb +1 -1
  67. data/lib/em/protocols/stomp.rb +8 -6
  68. data/lib/em/protocols/tcptest.rb +3 -2
  69. data/lib/em/pure_ruby.rb +212 -208
  70. data/lib/em/queue.rb +22 -13
  71. data/lib/em/resolver.rb +70 -64
  72. data/lib/em/spawnable.rb +6 -3
  73. data/lib/em/streamer.rb +33 -45
  74. data/lib/em/threaded_resource.rb +90 -0
  75. data/lib/em/timers.rb +6 -2
  76. data/lib/em/version.rb +1 -1
  77. data/lib/eventmachine.rb +538 -602
  78. data/lib/jeventmachine.rb +22 -1
  79. data/tasks/package.rake +13 -3
  80. data/tasks/test.rake +1 -0
  81. data/tests/em_test_helper.rb +12 -3
  82. data/tests/test_completion.rb +177 -0
  83. data/tests/test_epoll.rb +2 -2
  84. data/tests/test_httpclient.rb +9 -9
  85. data/tests/test_httpclient2.rb +11 -9
  86. data/tests/test_ltp.rb +2 -10
  87. data/tests/test_pool.rb +128 -0
  88. data/tests/test_processes.rb +20 -2
  89. data/tests/test_queue.rb +8 -0
  90. data/tests/test_resolver.rb +1 -1
  91. data/tests/test_set_sock_opt.rb +37 -0
  92. data/tests/test_shutdown_hooks.rb +23 -0
  93. data/tests/test_threaded_resource.rb +53 -0
  94. data/tests/test_unbind_reason.rb +31 -0
  95. metadata +87 -45
  96. data/README +0 -81
  97. data/tasks/doc.rake +0 -30
data/tests/test_ltp.rb CHANGED
@@ -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
 
data/tests/test_queue.rb CHANGED
@@ -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,14 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eventmachine
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: true
5
- segments:
6
- - 1
7
- - 0
8
- - 0
9
- - beta
10
- - 3
11
- version: 1.0.0.beta.3
4
+ prerelease: 6
5
+ version: 1.0.0.beta.4
12
6
  platform: java
13
7
  authors:
14
8
  - Francis Cianfrocca
@@ -17,23 +11,42 @@ autorequire:
17
11
  bindir: bin
18
12
  cert_chain: []
19
13
 
20
- date: 2011-03-03 00:00:00 -08:00
14
+ date: 2011-09-15 00:00:00 -07:00
21
15
  default_executable:
22
16
  dependencies:
23
17
  - !ruby/object:Gem::Dependency
24
18
  name: rake-compiler
25
19
  prerelease: false
26
20
  requirement: &id001 !ruby/object:Gem::Requirement
21
+ none: false
27
22
  requirements:
28
23
  - - "="
29
24
  - !ruby/object:Gem::Version
30
- segments:
31
- - 0
32
- - 7
33
- - 6
34
- version: 0.7.6
25
+ version: 0.7.9
35
26
  type: :development
36
27
  version_requirements: *id001
28
+ - !ruby/object:Gem::Dependency
29
+ name: yard
30
+ prerelease: false
31
+ requirement: &id002 !ruby/object:Gem::Requirement
32
+ none: false
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 0.7.2
37
+ type: :development
38
+ version_requirements: *id002
39
+ - !ruby/object:Gem::Dependency
40
+ name: bluecloth
41
+ prerelease: false
42
+ requirement: &id003 !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: "0"
48
+ type: :development
49
+ version_requirements: *id003
37
50
  description: |-
38
51
  EventMachine implements a fast, single-threaded engine for arbitrary network
39
52
  communications. It's extremely easy to use in Ruby. EventMachine wraps all
@@ -52,34 +65,58 @@ executables: []
52
65
 
53
66
  extensions: []
54
67
 
55
- extra_rdoc_files: []
56
-
68
+ extra_rdoc_files:
69
+ - README.md
70
+ - docs/DocumentationGuidesIndex.md
71
+ - docs/GettingStarted.md
72
+ - docs/old/ChangeLog
73
+ - docs/old/DEFERRABLES
74
+ - docs/old/EPOLL
75
+ - docs/old/INSTALL
76
+ - docs/old/KEYBOARD
77
+ - docs/old/LEGAL
78
+ - docs/old/LIGHTWEIGHT_CONCURRENCY
79
+ - docs/old/PURE_RUBY
80
+ - docs/old/RELEASE_NOTES
81
+ - docs/old/SMTP
82
+ - docs/old/SPAWNED_PROCESSES
83
+ - docs/old/TODO
57
84
  files:
58
85
  - .gitignore
59
86
  - .yardopts
87
+ - GNU
60
88
  - Gemfile
61
- - README
89
+ - LICENSE
90
+ - README.md
62
91
  - Rakefile
63
- - docs/COPYING
64
- - docs/ChangeLog
65
- - docs/DEFERRABLES
66
- - docs/EPOLL
67
- - docs/GNU
68
- - docs/INSTALL
69
- - docs/KEYBOARD
70
- - docs/LEGAL
71
- - docs/LIGHTWEIGHT_CONCURRENCY
72
- - docs/PURE_RUBY
73
- - docs/RELEASE_NOTES
74
- - docs/SMTP
75
- - docs/SPAWNED_PROCESSES
76
- - docs/TODO
92
+ - docs/DocumentationGuidesIndex.md
93
+ - docs/GettingStarted.md
94
+ - docs/old/ChangeLog
95
+ - docs/old/DEFERRABLES
96
+ - docs/old/EPOLL
97
+ - docs/old/INSTALL
98
+ - docs/old/KEYBOARD
99
+ - docs/old/LEGAL
100
+ - docs/old/LIGHTWEIGHT_CONCURRENCY
101
+ - docs/old/PURE_RUBY
102
+ - docs/old/RELEASE_NOTES
103
+ - docs/old/SMTP
104
+ - docs/old/SPAWNED_PROCESSES
105
+ - docs/old/TODO
77
106
  - eventmachine.gemspec
78
- - examples/ex_channel.rb
79
- - examples/ex_queue.rb
80
- - examples/ex_tick_loop_array.rb
81
- - examples/ex_tick_loop_counter.rb
82
- - examples/helper.rb
107
+ - examples/guides/getting_started/01_eventmachine_echo_server.rb
108
+ - examples/guides/getting_started/02_eventmachine_echo_server_that_recognizes_exit_command.rb
109
+ - examples/guides/getting_started/03_simple_chat_server.rb
110
+ - examples/guides/getting_started/04_simple_chat_server_step_one.rb
111
+ - examples/guides/getting_started/05_simple_chat_server_step_two.rb
112
+ - examples/guides/getting_started/06_simple_chat_server_step_three.rb
113
+ - examples/guides/getting_started/07_simple_chat_server_step_four.rb
114
+ - examples/guides/getting_started/08_simple_chat_server_step_five.rb
115
+ - examples/old/ex_channel.rb
116
+ - examples/old/ex_queue.rb
117
+ - examples/old/ex_tick_loop_array.rb
118
+ - examples/old/ex_tick_loop_counter.rb
119
+ - examples/old/helper.rb
83
120
  - ext/binder.cpp
84
121
  - ext/binder.h
85
122
  - ext/cmain.cpp
@@ -111,12 +148,15 @@ files:
111
148
  - lib/em/buftok.rb
112
149
  - lib/em/callback.rb
113
150
  - lib/em/channel.rb
151
+ - lib/em/completion.rb
114
152
  - lib/em/connection.rb
115
153
  - lib/em/deferrable.rb
154
+ - lib/em/deferrable/pool.rb
116
155
  - lib/em/file_watch.rb
117
156
  - lib/em/future.rb
118
157
  - lib/em/iterator.rb
119
158
  - lib/em/messages.rb
159
+ - lib/em/pool.rb
120
160
  - lib/em/process_watch.rb
121
161
  - lib/em/processes.rb
122
162
  - lib/em/protocols.rb
@@ -140,13 +180,13 @@ files:
140
180
  - lib/em/resolver.rb
141
181
  - lib/em/spawnable.rb
142
182
  - lib/em/streamer.rb
183
+ - lib/em/threaded_resource.rb
143
184
  - lib/em/tick_loop.rb
144
185
  - lib/em/timers.rb
145
186
  - lib/em/version.rb
146
187
  - lib/eventmachine.rb
147
188
  - lib/jeventmachine.rb
148
189
  - tasks/cpp.rake_example
149
- - tasks/doc.rake
150
190
  - tasks/package.rake
151
191
  - tasks/test.rake
152
192
  - tests/client.crt
@@ -155,6 +195,7 @@ files:
155
195
  - tests/test_attach.rb
156
196
  - tests/test_basic.rb
157
197
  - tests/test_channel.rb
198
+ - tests/test_completion.rb
158
199
  - tests/test_connection_count.rb
159
200
  - tests/test_defer.rb
160
201
  - tests/test_deferrable.rb
@@ -176,6 +217,7 @@ files:
176
217
  - tests/test_object_protocol.rb
177
218
  - tests/test_pause.rb
178
219
  - tests/test_pending_connect_timeout.rb
220
+ - tests/test_pool.rb
179
221
  - tests/test_process_watch.rb
180
222
  - tests/test_processes.rb
181
223
  - tests/test_proxy_connection.rb
@@ -186,15 +228,19 @@ files:
186
228
  - tests/test_sasl.rb
187
229
  - tests/test_send_file.rb
188
230
  - tests/test_servers.rb
231
+ - tests/test_set_sock_opt.rb
232
+ - tests/test_shutdown_hooks.rb
189
233
  - tests/test_smtpclient.rb
190
234
  - tests/test_smtpserver.rb
191
235
  - tests/test_spawn.rb
192
236
  - tests/test_ssl_args.rb
193
237
  - tests/test_ssl_methods.rb
194
238
  - tests/test_ssl_verify.rb
239
+ - tests/test_threaded_resource.rb
195
240
  - tests/test_tick_loop.rb
196
241
  - tests/test_timers.rb
197
242
  - tests/test_ud.rb
243
+ - tests/test_unbind_reason.rb
198
244
  - lib/rubyeventmachine.jar
199
245
  has_rdoc: true
200
246
  homepage: http://rubyeventmachine.com
@@ -205,7 +251,7 @@ rdoc_options:
205
251
  - --title
206
252
  - EventMachine
207
253
  - --main
208
- - README
254
+ - README.md
209
255
  - -x
210
256
  - lib/em/version
211
257
  - -x
@@ -213,25 +259,21 @@ rdoc_options:
213
259
  require_paths:
214
260
  - lib
215
261
  required_ruby_version: !ruby/object:Gem::Requirement
262
+ none: false
216
263
  requirements:
217
264
  - - ">="
218
265
  - !ruby/object:Gem::Version
219
- segments:
220
- - 0
221
266
  version: "0"
222
267
  required_rubygems_version: !ruby/object:Gem::Requirement
268
+ none: false
223
269
  requirements:
224
270
  - - ">"
225
271
  - !ruby/object:Gem::Version
226
- segments:
227
- - 1
228
- - 3
229
- - 1
230
272
  version: 1.3.1
231
273
  requirements: []
232
274
 
233
275
  rubyforge_project: eventmachine
234
- rubygems_version: 1.3.6
276
+ rubygems_version: 1.5.1
235
277
  signing_key:
236
278
  specification_version: 3
237
279
  summary: Ruby/EventMachine library