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

Sign up to get free protection for your applications and to get access to all the features.
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