eventmachine 0.12.10-x86-mswin32-60 → 1.0.0.beta.2-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.
- data/.gitignore +2 -0
- data/Gemfile +1 -0
- data/README +80 -81
- data/Rakefile +7 -370
- data/docs/COPYING +60 -60
- data/docs/ChangeLog +211 -211
- data/docs/DEFERRABLES +246 -133
- data/docs/EPOLL +141 -141
- data/docs/GNU +281 -281
- data/docs/INSTALL +13 -13
- data/docs/KEYBOARD +42 -38
- data/docs/LEGAL +25 -25
- data/docs/LIGHTWEIGHT_CONCURRENCY +130 -70
- data/docs/PURE_RUBY +75 -75
- data/docs/RELEASE_NOTES +94 -94
- data/docs/SMTP +4 -2
- data/docs/SPAWNED_PROCESSES +148 -89
- data/docs/TODO +8 -8
- data/eventmachine.gemspec +19 -26
- data/examples/ex_channel.rb +42 -42
- data/examples/ex_queue.rb +2 -2
- data/examples/ex_tick_loop_array.rb +15 -0
- data/examples/ex_tick_loop_counter.rb +32 -0
- data/examples/helper.rb +1 -1
- data/ext/binder.cpp +0 -1
- data/ext/cmain.cpp +36 -25
- data/ext/ed.cpp +104 -113
- data/ext/ed.h +24 -30
- data/ext/em.cpp +349 -283
- data/ext/em.h +25 -29
- data/ext/eventmachine.h +5 -4
- data/ext/extconf.rb +58 -49
- data/ext/fastfilereader/extconf.rb +5 -3
- data/ext/fastfilereader/mapper.cpp +214 -214
- data/ext/fastfilereader/mapper.h +59 -59
- data/ext/fastfilereader/rubymain.cpp +127 -127
- data/ext/kb.cpp +1 -3
- data/ext/page.cpp +107 -107
- data/ext/page.h +51 -51
- data/ext/pipe.cpp +9 -11
- data/ext/project.h +12 -8
- data/ext/rubymain.cpp +138 -104
- data/java/.classpath +8 -8
- data/java/.project +17 -17
- data/java/src/com/rubyeventmachine/EmReactor.java +1 -0
- data/java/src/com/rubyeventmachine/EmReactorException.java +40 -40
- data/lib/em/buftok.rb +138 -138
- data/lib/em/callback.rb +25 -25
- data/lib/em/channel.rb +1 -1
- data/lib/em/connection.rb +6 -1
- data/lib/em/deferrable.rb +16 -2
- data/lib/em/file_watch.rb +53 -53
- data/lib/em/future.rb +61 -61
- data/lib/em/iterator.rb +270 -0
- data/lib/em/messages.rb +66 -66
- data/lib/em/process_watch.rb +43 -43
- data/lib/em/protocols.rb +1 -1
- data/lib/em/protocols/header_and_content.rb +138 -138
- data/lib/em/protocols/httpclient.rb +267 -262
- data/lib/em/protocols/line_protocol.rb +28 -0
- data/lib/em/protocols/memcache.rb +322 -322
- data/lib/em/protocols/postgres3.rb +247 -247
- data/lib/em/protocols/saslauth.rb +175 -175
- data/lib/em/protocols/smtpserver.rb +640 -547
- data/lib/em/protocols/stomp.rb +200 -200
- data/lib/em/protocols/tcptest.rb +52 -52
- data/lib/{pr_eventmachine.rb → em/pure_ruby.rb} +1013 -1022
- data/lib/em/queue.rb +1 -0
- data/lib/em/spawnable.rb +85 -85
- data/lib/em/streamer.rb +130 -130
- data/lib/em/tick_loop.rb +85 -0
- data/lib/em/timers.rb +2 -1
- data/lib/em/version.rb +1 -1
- data/lib/eventmachine.rb +40 -84
- data/lib/jeventmachine.rb +2 -1
- data/lib/rubyeventmachine.rb +2 -0
- data/setup.rb +1585 -1585
- data/tasks/doc.rake +30 -0
- data/tasks/package.rake +85 -0
- data/tasks/test.rake +6 -0
- data/tests/client.crt +31 -31
- data/tests/client.key +51 -51
- data/tests/test_attach.rb +13 -3
- data/tests/test_basic.rb +60 -95
- data/tests/test_channel.rb +3 -2
- data/tests/test_defer.rb +49 -47
- data/tests/test_deferrable.rb +35 -0
- data/tests/test_error_handler.rb +35 -35
- data/tests/test_errors.rb +82 -82
- data/tests/test_exc.rb +55 -55
- data/tests/test_file_watch.rb +49 -49
- data/tests/test_futures.rb +198 -198
- data/tests/test_handler_check.rb +36 -36
- data/tests/test_hc.rb +190 -218
- data/tests/test_httpclient.rb +227 -218
- data/tests/test_httpclient2.rb +3 -2
- data/tests/test_inactivity_timeout.rb +3 -3
- data/tests/test_kb.rb +60 -60
- data/tests/test_ltp.rb +13 -5
- data/tests/test_ltp2.rb +317 -317
- data/tests/test_next_tick.rb +1 -1
- data/tests/test_object_protocol.rb +36 -36
- data/tests/test_pending_connect_timeout.rb +2 -2
- data/tests/test_process_watch.rb +50 -48
- data/tests/test_proxy_connection.rb +52 -0
- data/tests/test_pure.rb +134 -125
- data/tests/test_queue.rb +44 -44
- data/tests/test_running.rb +42 -42
- data/tests/test_sasl.rb +72 -72
- data/tests/test_send_file.rb +251 -242
- data/tests/test_servers.rb +76 -76
- data/tests/test_smtpclient.rb +83 -83
- data/tests/test_smtpserver.rb +85 -85
- data/tests/test_spawn.rb +322 -322
- data/tests/test_ssl_methods.rb +49 -49
- data/tests/test_ssl_verify.rb +82 -82
- data/tests/test_tick_loop.rb +59 -0
- data/tests/test_timers.rb +13 -15
- data/tests/test_ud.rb +36 -36
- data/tests/testem.rb +31 -31
- metadata +66 -51
- data/ext/cplusplus.cpp +0 -202
- data/ext/emwin.cpp +0 -300
- data/ext/emwin.h +0 -94
- data/ext/epoll.cpp +0 -26
- data/ext/epoll.h +0 -25
- data/ext/eventmachine_cpp.h +0 -96
- data/ext/files.cpp +0 -94
- data/ext/files.h +0 -65
- data/ext/sigs.cpp +0 -89
- data/ext/sigs.h +0 -32
- data/java/src/com/rubyeventmachine/application/Application.java +0 -194
- data/java/src/com/rubyeventmachine/application/Connection.java +0 -74
- data/java/src/com/rubyeventmachine/application/ConnectionFactory.java +0 -37
- data/java/src/com/rubyeventmachine/application/DefaultConnectionFactory.java +0 -46
- data/java/src/com/rubyeventmachine/application/PeriodicTimer.java +0 -38
- data/java/src/com/rubyeventmachine/application/Timer.java +0 -54
- data/java/src/com/rubyeventmachine/tests/ApplicationTest.java +0 -109
- data/java/src/com/rubyeventmachine/tests/ConnectTest.java +0 -148
- data/java/src/com/rubyeventmachine/tests/EMTest.java +0 -80
- data/java/src/com/rubyeventmachine/tests/TestDatagrams.java +0 -53
- data/java/src/com/rubyeventmachine/tests/TestServers.java +0 -75
- data/java/src/com/rubyeventmachine/tests/TestTimers.java +0 -90
- data/lib/evma.rb +0 -32
- data/lib/evma/callback.rb +0 -32
- data/lib/evma/container.rb +0 -75
- data/lib/evma/factory.rb +0 -77
- data/lib/evma/protocol.rb +0 -87
- data/lib/evma/reactor.rb +0 -48
- data/web/whatis +0 -7
data/tests/test_ssl_methods.rb
CHANGED
@@ -1,50 +1,50 @@
|
|
1
|
-
$:.unshift "../lib"
|
2
|
-
require 'eventmachine'
|
3
|
-
require 'test/unit'
|
4
|
-
|
5
|
-
class TestSSLMethods < Test::Unit::TestCase
|
6
|
-
|
7
|
-
module ServerHandler
|
8
|
-
|
9
|
-
def post_init
|
10
|
-
start_tls
|
11
|
-
end
|
12
|
-
|
13
|
-
def ssl_handshake_completed
|
14
|
-
$server_called_back = true
|
15
|
-
$server_cert_value = get_peer_cert
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
|
20
|
-
module ClientHandler
|
21
|
-
|
22
|
-
def post_init
|
23
|
-
start_tls
|
24
|
-
end
|
25
|
-
|
26
|
-
def ssl_handshake_completed
|
27
|
-
$client_called_back = true
|
28
|
-
$client_cert_value = get_peer_cert
|
29
|
-
EM.stop_event_loop
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_ssl_methods
|
35
|
-
$server_called_back, $client_called_back = false, false
|
36
|
-
$server_cert_value, $client_cert_value = nil, nil
|
37
|
-
|
38
|
-
EM.run {
|
39
|
-
EM.start_server("127.0.0.1", 9999, ServerHandler)
|
40
|
-
EM.connect("127.0.0.1", 9999, ClientHandler)
|
41
|
-
}
|
42
|
-
|
43
|
-
assert($server_called_back)
|
44
|
-
assert($client_called_back)
|
45
|
-
|
46
|
-
assert($server_cert_value.is_a?(NilClass))
|
47
|
-
assert($client_cert_value.is_a?(String))
|
48
|
-
end
|
49
|
-
|
1
|
+
$:.unshift "../lib"
|
2
|
+
require 'eventmachine'
|
3
|
+
require 'test/unit'
|
4
|
+
|
5
|
+
class TestSSLMethods < Test::Unit::TestCase
|
6
|
+
|
7
|
+
module ServerHandler
|
8
|
+
|
9
|
+
def post_init
|
10
|
+
start_tls
|
11
|
+
end
|
12
|
+
|
13
|
+
def ssl_handshake_completed
|
14
|
+
$server_called_back = true
|
15
|
+
$server_cert_value = get_peer_cert
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
module ClientHandler
|
21
|
+
|
22
|
+
def post_init
|
23
|
+
start_tls
|
24
|
+
end
|
25
|
+
|
26
|
+
def ssl_handshake_completed
|
27
|
+
$client_called_back = true
|
28
|
+
$client_cert_value = get_peer_cert
|
29
|
+
EM.stop_event_loop
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_ssl_methods
|
35
|
+
$server_called_back, $client_called_back = false, false
|
36
|
+
$server_cert_value, $client_cert_value = nil, nil
|
37
|
+
|
38
|
+
EM.run {
|
39
|
+
EM.start_server("127.0.0.1", 9999, ServerHandler)
|
40
|
+
EM.connect("127.0.0.1", 9999, ClientHandler)
|
41
|
+
}
|
42
|
+
|
43
|
+
assert($server_called_back)
|
44
|
+
assert($client_called_back)
|
45
|
+
|
46
|
+
assert($server_cert_value.is_a?(NilClass))
|
47
|
+
assert($client_cert_value.is_a?(String))
|
48
|
+
end
|
49
|
+
|
50
50
|
end if EM.ssl?
|
data/tests/test_ssl_verify.rb
CHANGED
@@ -1,82 +1,82 @@
|
|
1
|
-
$:.unshift "../lib"
|
2
|
-
require 'eventmachine'
|
3
|
-
require 'test/unit'
|
4
|
-
|
5
|
-
class TestSslVerify < Test::Unit::TestCase
|
6
|
-
|
7
|
-
def setup
|
8
|
-
$dir = File.dirname(File.expand_path(__FILE__)) + '/'
|
9
|
-
$cert_from_file = File.read($dir+'client.crt')
|
10
|
-
end
|
11
|
-
|
12
|
-
module Client
|
13
|
-
def connection_completed
|
14
|
-
start_tls(:private_key_file => $dir+'client.key', :cert_chain_file => $dir+'client.crt')
|
15
|
-
end
|
16
|
-
|
17
|
-
def ssl_handshake_completed
|
18
|
-
$client_handshake_completed = true
|
19
|
-
close_connection
|
20
|
-
end
|
21
|
-
|
22
|
-
def unbind
|
23
|
-
EM.stop_event_loop
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
module AcceptServer
|
28
|
-
def post_init
|
29
|
-
start_tls(:verify_peer => true)
|
30
|
-
end
|
31
|
-
|
32
|
-
def ssl_verify_peer(cert)
|
33
|
-
$cert_from_server = cert
|
34
|
-
true
|
35
|
-
end
|
36
|
-
|
37
|
-
def ssl_handshake_completed
|
38
|
-
$server_handshake_completed = true
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
module DenyServer
|
43
|
-
def post_init
|
44
|
-
start_tls(:verify_peer => true)
|
45
|
-
end
|
46
|
-
|
47
|
-
def ssl_verify_peer(cert)
|
48
|
-
$cert_from_server = cert
|
49
|
-
# Do not accept the peer. This should now cause the connection to shut down without the SSL handshake being completed.
|
50
|
-
false
|
51
|
-
end
|
52
|
-
|
53
|
-
def ssl_handshake_completed
|
54
|
-
$server_handshake_completed = true
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_accept_server
|
59
|
-
$client_handshake_completed, $server_handshake_completed = false, false
|
60
|
-
EM.run {
|
61
|
-
EM.start_server("127.0.0.1", 16784, AcceptServer)
|
62
|
-
EM.connect("127.0.0.1", 16784, Client).instance_variable_get("@signature")
|
63
|
-
}
|
64
|
-
|
65
|
-
assert_equal($cert_from_file, $cert_from_server)
|
66
|
-
assert($client_handshake_completed)
|
67
|
-
assert($server_handshake_completed)
|
68
|
-
end
|
69
|
-
|
70
|
-
def test_deny_server
|
71
|
-
$client_handshake_completed, $server_handshake_completed = false, false
|
72
|
-
EM.run {
|
73
|
-
EM.start_server("127.0.0.1", 16784, DenyServer)
|
74
|
-
EM.connect("127.0.0.1", 16784, Client)
|
75
|
-
}
|
76
|
-
|
77
|
-
assert_equal($cert_from_file, $cert_from_server)
|
78
|
-
assert(!$client_handshake_completed)
|
79
|
-
assert(!$server_handshake_completed)
|
80
|
-
end
|
81
|
-
|
82
|
-
end
|
1
|
+
$:.unshift "../lib"
|
2
|
+
require 'eventmachine'
|
3
|
+
require 'test/unit'
|
4
|
+
|
5
|
+
class TestSslVerify < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
$dir = File.dirname(File.expand_path(__FILE__)) + '/'
|
9
|
+
$cert_from_file = File.read($dir+'client.crt')
|
10
|
+
end
|
11
|
+
|
12
|
+
module Client
|
13
|
+
def connection_completed
|
14
|
+
start_tls(:private_key_file => $dir+'client.key', :cert_chain_file => $dir+'client.crt')
|
15
|
+
end
|
16
|
+
|
17
|
+
def ssl_handshake_completed
|
18
|
+
$client_handshake_completed = true
|
19
|
+
close_connection
|
20
|
+
end
|
21
|
+
|
22
|
+
def unbind
|
23
|
+
EM.stop_event_loop
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
module AcceptServer
|
28
|
+
def post_init
|
29
|
+
start_tls(:verify_peer => true)
|
30
|
+
end
|
31
|
+
|
32
|
+
def ssl_verify_peer(cert)
|
33
|
+
$cert_from_server = cert
|
34
|
+
true
|
35
|
+
end
|
36
|
+
|
37
|
+
def ssl_handshake_completed
|
38
|
+
$server_handshake_completed = true
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
module DenyServer
|
43
|
+
def post_init
|
44
|
+
start_tls(:verify_peer => true)
|
45
|
+
end
|
46
|
+
|
47
|
+
def ssl_verify_peer(cert)
|
48
|
+
$cert_from_server = cert
|
49
|
+
# Do not accept the peer. This should now cause the connection to shut down without the SSL handshake being completed.
|
50
|
+
false
|
51
|
+
end
|
52
|
+
|
53
|
+
def ssl_handshake_completed
|
54
|
+
$server_handshake_completed = true
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_accept_server
|
59
|
+
$client_handshake_completed, $server_handshake_completed = false, false
|
60
|
+
EM.run {
|
61
|
+
EM.start_server("127.0.0.1", 16784, AcceptServer)
|
62
|
+
EM.connect("127.0.0.1", 16784, Client).instance_variable_get("@signature")
|
63
|
+
}
|
64
|
+
|
65
|
+
assert_equal($cert_from_file, $cert_from_server)
|
66
|
+
assert($client_handshake_completed)
|
67
|
+
assert($server_handshake_completed)
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_deny_server
|
71
|
+
$client_handshake_completed, $server_handshake_completed = false, false
|
72
|
+
EM.run {
|
73
|
+
EM.start_server("127.0.0.1", 16784, DenyServer)
|
74
|
+
EM.connect("127.0.0.1", 16784, Client)
|
75
|
+
}
|
76
|
+
|
77
|
+
assert_equal($cert_from_file, $cert_from_server)
|
78
|
+
assert(!$client_handshake_completed)
|
79
|
+
assert(!$server_handshake_completed)
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require "test/unit"
|
2
|
+
require "eventmachine"
|
3
|
+
|
4
|
+
class TestEmTickLoop < Test::Unit::TestCase
|
5
|
+
def test_em_tick_loop
|
6
|
+
i = 0
|
7
|
+
EM.tick_loop { i += 1; EM.stop if i == 10 }
|
8
|
+
EM.run { EM.add_timer(1) { EM.stop } }
|
9
|
+
assert_equal i, 10
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_tick_loop_on_stop
|
13
|
+
t = nil
|
14
|
+
tick_loop = EM.tick_loop { :stop }
|
15
|
+
tick_loop.on_stop { t = true }
|
16
|
+
EM.run { EM.next_tick { EM.stop } }
|
17
|
+
assert t
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_start_twice
|
21
|
+
i = 0
|
22
|
+
s = 0
|
23
|
+
tick_loop = EM.tick_loop { i += 1; :stop }
|
24
|
+
tick_loop.on_stop { s += 1; EM.stop }
|
25
|
+
EM.run { EM.next_tick { EM.stop } }
|
26
|
+
assert_equal 1, i
|
27
|
+
assert_equal 1, s
|
28
|
+
tick_loop.start
|
29
|
+
EM.run { EM.next_tick { EM.stop } }
|
30
|
+
assert_equal 2, i
|
31
|
+
assert_equal 1, s # stop callbacks are only called once
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_stop
|
35
|
+
i, s = 0, 0
|
36
|
+
tick_loop = EM.tick_loop { i += 1 }
|
37
|
+
tick_loop.on_stop { s += 1 }
|
38
|
+
EM.run { EM.next_tick { tick_loop.stop; EM.next_tick { EM.stop } } }
|
39
|
+
assert tick_loop.stopped?
|
40
|
+
assert_equal 1, i
|
41
|
+
assert_equal 1, s
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_immediate_stops
|
45
|
+
s = 0
|
46
|
+
tick_loop = EM::TickLoop.new { }
|
47
|
+
tick_loop.on_stop { s += 1 }
|
48
|
+
tick_loop.on_stop { s += 1 }
|
49
|
+
assert_equal 2, s
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_stopped
|
53
|
+
tick_loop = EM::TickLoop.new { }
|
54
|
+
assert tick_loop.stopped?
|
55
|
+
tick_loop.start
|
56
|
+
assert !tick_loop.stopped?
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
data/tests/test_timers.rb
CHANGED
@@ -98,9 +98,9 @@ class TestTimers < Test::Unit::TestCase
|
|
98
98
|
def test_add_periodic_timer_cancel
|
99
99
|
x = 0
|
100
100
|
EventMachine.run {
|
101
|
-
pt = EM.add_periodic_timer(0.
|
101
|
+
pt = EM.add_periodic_timer(0.1) { x += 1 }
|
102
102
|
EM.cancel_timer(pt)
|
103
|
-
EM.add_timer(0.
|
103
|
+
EM.add_timer(0.2) { EM.stop }
|
104
104
|
}
|
105
105
|
assert( x == 0 )
|
106
106
|
end
|
@@ -124,21 +124,20 @@ class TestTimers < Test::Unit::TestCase
|
|
124
124
|
# Pure ruby and java versions have no built-in limit on the number of outstanding timers.
|
125
125
|
#
|
126
126
|
def test_timer_change_max_outstanding
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
}
|
127
|
+
defaults = EM.get_max_timers
|
128
|
+
EM.set_max_timers(100)
|
129
|
+
|
130
|
+
one_hundred_one_timers = proc { 101.times { EM.add_timer(5) {} } }
|
132
131
|
|
133
132
|
EM.run {
|
134
133
|
if EM.library_type == :pure_ruby
|
135
|
-
|
134
|
+
one_hundred_one_timers.call
|
136
135
|
elsif EM.library_type == :java
|
137
|
-
|
136
|
+
one_hundred_one_timers.call
|
138
137
|
else
|
139
138
|
begin
|
140
139
|
assert_raises( RuntimeError ) {
|
141
|
-
|
140
|
+
one_hundred_one_timers.call
|
142
141
|
}
|
143
142
|
rescue Object
|
144
143
|
p $!
|
@@ -148,15 +147,14 @@ class TestTimers < Test::Unit::TestCase
|
|
148
147
|
EM.stop
|
149
148
|
}
|
150
149
|
|
151
|
-
|
152
|
-
assert( EM.get_max_timers != 10001 )
|
153
|
-
EM.set_max_timers( 10001 )
|
154
|
-
assert( EM.get_max_timers == 10001 )
|
150
|
+
EM.set_max_timers( 101 )
|
155
151
|
|
156
152
|
EM.run {
|
157
|
-
|
153
|
+
one_hundred_one_timers.call
|
158
154
|
EM.stop
|
159
155
|
}
|
156
|
+
ensure
|
157
|
+
EM.set_max_timers(defaults)
|
160
158
|
end
|
161
159
|
|
162
160
|
end
|
data/tests/test_ud.rb
CHANGED
@@ -1,36 +1,36 @@
|
|
1
|
-
# $Id$
|
2
|
-
#
|
3
|
-
# Author:: Francis Cianfrocca (gmail: blackhedd)
|
4
|
-
# Homepage:: http://rubyeventmachine.com
|
5
|
-
# Date:: 8 April 2006
|
6
|
-
#
|
7
|
-
# See EventMachine and EventMachine::Connection for documentation and
|
8
|
-
# usage examples.
|
9
|
-
#
|
10
|
-
#----------------------------------------------------------------------------
|
11
|
-
#
|
12
|
-
# Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
|
13
|
-
# Gmail: blackhedd
|
14
|
-
#
|
15
|
-
# This program is free software; you can redistribute it and/or modify
|
16
|
-
# it under the terms of either: 1) the GNU General Public License
|
17
|
-
# as published by the Free Software Foundation; either version 2 of the
|
18
|
-
# License, or (at your option) any later version; or 2) Ruby's License.
|
19
|
-
#
|
20
|
-
# See the file COPYING for complete licensing information.
|
21
|
-
#
|
22
|
-
#---------------------------------------------------------------------------
|
23
|
-
#
|
24
|
-
#
|
25
|
-
#
|
26
|
-
|
27
|
-
$:.unshift "../lib"
|
28
|
-
require 'eventmachine'
|
29
|
-
require 'test/unit'
|
30
|
-
|
31
|
-
class TestUserDefinedEvents < Test::Unit::TestCase
|
32
|
-
|
33
|
-
def test_a
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
1
|
+
# $Id$
|
2
|
+
#
|
3
|
+
# Author:: Francis Cianfrocca (gmail: blackhedd)
|
4
|
+
# Homepage:: http://rubyeventmachine.com
|
5
|
+
# Date:: 8 April 2006
|
6
|
+
#
|
7
|
+
# See EventMachine and EventMachine::Connection for documentation and
|
8
|
+
# usage examples.
|
9
|
+
#
|
10
|
+
#----------------------------------------------------------------------------
|
11
|
+
#
|
12
|
+
# Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
|
13
|
+
# Gmail: blackhedd
|
14
|
+
#
|
15
|
+
# This program is free software; you can redistribute it and/or modify
|
16
|
+
# it under the terms of either: 1) the GNU General Public License
|
17
|
+
# as published by the Free Software Foundation; either version 2 of the
|
18
|
+
# License, or (at your option) any later version; or 2) Ruby's License.
|
19
|
+
#
|
20
|
+
# See the file COPYING for complete licensing information.
|
21
|
+
#
|
22
|
+
#---------------------------------------------------------------------------
|
23
|
+
#
|
24
|
+
#
|
25
|
+
#
|
26
|
+
|
27
|
+
$:.unshift "../lib"
|
28
|
+
require 'eventmachine'
|
29
|
+
require 'test/unit'
|
30
|
+
|
31
|
+
class TestUserDefinedEvents < Test::Unit::TestCase
|
32
|
+
|
33
|
+
def test_a
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|