bridge-ruby 0.2.0

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 (67) hide show
  1. data/LICENSE +19 -0
  2. data/README.md +31 -0
  3. data/Rakefile +24 -0
  4. data/bridge-ruby.gemspec +24 -0
  5. data/doc/Bridge.html +276 -0
  6. data/doc/Bridge/Bridge.html +1874 -0
  7. data/doc/Bridge/Bridge/SystemService.html +396 -0
  8. data/doc/Bridge/Client.html +271 -0
  9. data/doc/Bridge/Connection.html +1180 -0
  10. data/doc/Bridge/Connection/SockBuffer.html +322 -0
  11. data/doc/Bridge/Reference.html +605 -0
  12. data/doc/Bridge/Serializer.html +405 -0
  13. data/doc/Bridge/Serializer/Callback.html +498 -0
  14. data/doc/Bridge/Tcp.html +657 -0
  15. data/doc/Bridge/Util.html +643 -0
  16. data/doc/Bridge/Util/CallbackReference.html +557 -0
  17. data/doc/OpenSSL/X509/Certificate.html +275 -0
  18. data/doc/SSLCertificateVerification.html +446 -0
  19. data/doc/_index.html +239 -0
  20. data/doc/class_list.html +53 -0
  21. data/doc/css/common.css +1 -0
  22. data/doc/css/full_list.css +57 -0
  23. data/doc/css/style.css +328 -0
  24. data/doc/file.README.html +106 -0
  25. data/doc/file_list.html +55 -0
  26. data/doc/frames.html +28 -0
  27. data/doc/index.html +106 -0
  28. data/doc/js/app.js +214 -0
  29. data/doc/js/full_list.js +173 -0
  30. data/doc/js/jquery.js +4 -0
  31. data/doc/method_list.html +772 -0
  32. data/doc/top-level-namespace.html +112 -0
  33. data/examples/channels/client-writeable.rb +24 -0
  34. data/examples/channels/client.rb +23 -0
  35. data/examples/channels/server.rb +24 -0
  36. data/examples/chat/chatclient.rb +21 -0
  37. data/examples/chat/chatserver.rb +24 -0
  38. data/examples/client-context/client.rb +21 -0
  39. data/examples/client-context/server.rb +25 -0
  40. data/examples/secure/example.rb +8 -0
  41. data/examples/simple/channels.rb +47 -0
  42. data/examples/simple/services.rb +41 -0
  43. data/include/ssl/cacert.pem +3331 -0
  44. data/lib/bridge-ruby.rb +441 -0
  45. data/lib/client.rb +14 -0
  46. data/lib/connection.rb +162 -0
  47. data/lib/reference.rb +49 -0
  48. data/lib/serializer.rb +104 -0
  49. data/lib/ssl_utils.rb +68 -0
  50. data/lib/tcp.rb +73 -0
  51. data/lib/util.rb +101 -0
  52. data/lib/version.rb +3 -0
  53. data/rakelib/package.rake +4 -0
  54. data/rakelib/test.rake +8 -0
  55. data/test/regression/reconnect.rb +48 -0
  56. data/test/regression/rpc.rb +39 -0
  57. data/test/regression/test.rb +58 -0
  58. data/test/unit/bridge_dummy.rb +26 -0
  59. data/test/unit/connection_dummy.rb +21 -0
  60. data/test/unit/reference_dummy.rb +11 -0
  61. data/test/unit/tcp_dummy.rb +12 -0
  62. data/test/unit/test.rb +20 -0
  63. data/test/unit/test_reference.rb +30 -0
  64. data/test/unit/test_serializer.rb +109 -0
  65. data/test/unit/test_tcp.rb +51 -0
  66. data/test/unit/test_util.rb +59 -0
  67. metadata +162 -0
@@ -0,0 +1,657 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Class: Bridge::Tcp
8
+
9
+ &mdash; Documentation by YARD 0.8.2.1
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '../';
20
+ framesUrl = "../frames.html#!" + escape(window.location.href);
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="../_index.html">Index (T)</a> &raquo;
35
+ <span class='title'><span class='object_link'><a href="../Bridge.html" title="Bridge (module)">Bridge</a></span></span>
36
+ &raquo;
37
+ <span class="title">Tcp</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="../class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="../method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="../file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Class: Bridge::Tcp
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+ <dt class="r1">Inherits:</dt>
75
+ <dd class="r1">
76
+ <span class="inheritName">EventMachine::Connection</span>
77
+
78
+ <ul class="fullTree">
79
+ <li>Object</li>
80
+
81
+ <li class="next">EventMachine::Connection</li>
82
+
83
+ <li class="next">Bridge::Tcp</li>
84
+
85
+ </ul>
86
+ <a href="#" class="inheritanceTree">show all</a>
87
+
88
+ </dd>
89
+
90
+
91
+
92
+
93
+
94
+
95
+ <dt class="r2">Includes:</dt>
96
+ <dd class="r2"><span class='object_link'><a href="../SSLCertificateVerification.html" title="SSLCertificateVerification (module)">SSLCertificateVerification</a></span></dd>
97
+
98
+
99
+
100
+
101
+
102
+ <dt class="r1 last">Defined in:</dt>
103
+ <dd class="r1 last">lib/tcp.rb</dd>
104
+
105
+ </dl>
106
+ <div class="clear"></div>
107
+
108
+ <h2>Overview</h2><div class="docstring">
109
+ <div class="discussion">
110
+
111
+ <p>:nodoc: all</p>
112
+
113
+
114
+ </div>
115
+ </div>
116
+ <div class="tags">
117
+
118
+
119
+ </div>
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+ <h2>
128
+ Instance Method Summary
129
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
130
+ </h2>
131
+
132
+ <ul class="summary">
133
+
134
+ <li class="public ">
135
+ <span class="summary_signature">
136
+
137
+ <a href="#connection_completed-instance_method" title="#connection_completed (instance method)">- (Object) <strong>connection_completed</strong> </a>
138
+
139
+
140
+
141
+ </span>
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+ <span class="summary_desc"><div class='inline'></div></span>
152
+
153
+ </li>
154
+
155
+
156
+ <li class="public ">
157
+ <span class="summary_signature">
158
+
159
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (Tcp) <strong>initialize</strong>(connection) </a>
160
+
161
+
162
+
163
+ </span>
164
+
165
+
166
+ <span class="note title constructor">constructor</span>
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+ <span class="summary_desc"><div class='inline'>
176
+ <p>A new instance of Tcp.</p>
177
+ </div></span>
178
+
179
+ </li>
180
+
181
+
182
+ <li class="public ">
183
+ <span class="summary_signature">
184
+
185
+ <a href="#post_init-instance_method" title="#post_init (instance method)">- (Object) <strong>post_init</strong> </a>
186
+
187
+
188
+
189
+ </span>
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+ <span class="summary_desc"><div class='inline'></div></span>
200
+
201
+ </li>
202
+
203
+
204
+ <li class="public ">
205
+ <span class="summary_signature">
206
+
207
+ <a href="#read-instance_method" title="#read (instance method)">- (Object) <strong>read</strong>(len, &amp;cb) </a>
208
+
209
+
210
+
211
+ </span>
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+ <span class="summary_desc"><div class='inline'></div></span>
222
+
223
+ </li>
224
+
225
+
226
+ <li class="public ">
227
+ <span class="summary_signature">
228
+
229
+ <a href="#receive_data-instance_method" title="#receive_data (instance method)">- (Object) <strong>receive_data</strong>(data) </a>
230
+
231
+
232
+
233
+ </span>
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+ <span class="summary_desc"><div class='inline'></div></span>
244
+
245
+ </li>
246
+
247
+
248
+ <li class="public ">
249
+ <span class="summary_signature">
250
+
251
+ <a href="#send-instance_method" title="#send (instance method)">- (Object) <strong>send</strong>(arg) </a>
252
+
253
+
254
+
255
+ </span>
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+ <span class="summary_desc"><div class='inline'></div></span>
266
+
267
+ </li>
268
+
269
+
270
+ <li class="public ">
271
+ <span class="summary_signature">
272
+
273
+ <a href="#start-instance_method" title="#start (instance method)">- (Object) <strong>start</strong> </a>
274
+
275
+
276
+
277
+ </span>
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+ <span class="summary_desc"><div class='inline'></div></span>
288
+
289
+ </li>
290
+
291
+
292
+ <li class="public ">
293
+ <span class="summary_signature">
294
+
295
+ <a href="#unbind-instance_method" title="#unbind (instance method)">- (Object) <strong>unbind</strong> </a>
296
+
297
+
298
+
299
+ </span>
300
+
301
+
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+ <span class="summary_desc"><div class='inline'></div></span>
310
+
311
+ </li>
312
+
313
+
314
+ </ul>
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+
323
+
324
+
325
+
326
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="../SSLCertificateVerification.html" title="SSLCertificateVerification (module)">SSLCertificateVerification</a></span></h3>
327
+ <p class="inherited"><span class='object_link'><a href="../SSLCertificateVerification.html#ca_store-instance_method" title="SSLCertificateVerification#ca_store (method)">#ca_store</a></span>, <span class='object_link'><a href="../SSLCertificateVerification.html#ssl_handshake_completed-instance_method" title="SSLCertificateVerification#ssl_handshake_completed (method)">#ssl_handshake_completed</a></span>, <span class='object_link'><a href="../SSLCertificateVerification.html#ssl_verify_peer-instance_method" title="SSLCertificateVerification#ssl_verify_peer (method)">#ssl_verify_peer</a></span></p>
328
+
329
+ <div id="constructor_details" class="method_details_list">
330
+ <h2>Constructor Details</h2>
331
+
332
+ <div class="method_details first">
333
+ <h3 class="signature first" id="initialize-instance_method">
334
+
335
+ - (<tt><span class='object_link'><a href="" title="Bridge::Tcp (class)">Tcp</a></span></tt>) <strong>initialize</strong>(connection)
336
+
337
+
338
+
339
+
340
+
341
+ </h3><div class="docstring">
342
+ <div class="discussion">
343
+
344
+ <p>A new instance of Tcp</p>
345
+
346
+
347
+ </div>
348
+ </div>
349
+ <div class="tags">
350
+
351
+
352
+ </div><table class="source_code">
353
+ <tr>
354
+ <td>
355
+ <pre class="lines">
356
+
357
+
358
+ 10
359
+ 11
360
+ 12
361
+ 13
362
+ 14
363
+ 15
364
+ 16
365
+ 17
366
+ 18</pre>
367
+ </td>
368
+ <td>
369
+ <pre class="code"><span class="info file"># File 'lib/tcp.rb', line 10</span>
370
+
371
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span> <span class='id identifier rubyid_connection'>connection</span>
372
+ <span class='ivar'>@buffer</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span>
373
+ <span class='ivar'>@len</span> <span class='op'>=</span> <span class='int'>0</span>
374
+ <span class='ivar'>@pos</span> <span class='op'>=</span> <span class='int'>0</span>
375
+ <span class='ivar'>@callback</span> <span class='op'>=</span> <span class='kw'>nil</span>
376
+ <span class='ivar'>@connection</span> <span class='op'>=</span> <span class='id identifier rubyid_connection'>connection</span>
377
+ <span class='const'>SSLCertificateVerification</span><span class='period'>.</span><span class='id identifier rubyid_ca_cert_file'>ca_cert_file</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_expand_path'>expand_path</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>../../include/ssl/cacert.pem</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='kw'>__FILE__</span><span class='rparen'>)</span>
378
+ <span class='id identifier rubyid_start'>start</span>
379
+ <span class='kw'>end</span></pre>
380
+ </td>
381
+ </tr>
382
+ </table>
383
+ </div>
384
+
385
+ </div>
386
+
387
+
388
+ <div id="instance_method_details" class="method_details_list">
389
+ <h2>Instance Method Details</h2>
390
+
391
+
392
+ <div class="method_details first">
393
+ <h3 class="signature first" id="connection_completed-instance_method">
394
+
395
+ - (<tt>Object</tt>) <strong>connection_completed</strong>
396
+
397
+
398
+
399
+
400
+
401
+ </h3><table class="source_code">
402
+ <tr>
403
+ <td>
404
+ <pre class="lines">
405
+
406
+
407
+ 24
408
+ 25
409
+ 26
410
+ 27</pre>
411
+ </td>
412
+ <td>
413
+ <pre class="code"><span class="info file"># File 'lib/tcp.rb', line 24</span>
414
+
415
+ <span class='kw'>def</span> <span class='id identifier rubyid_connection_completed'>connection_completed</span>
416
+ <span class='comment'># connection now ready. call the callback
417
+ </span> <span class='ivar'>@connection</span><span class='period'>.</span><span class='id identifier rubyid_onopen'>onopen</span> <span class='kw'>self</span>
418
+ <span class='kw'>end</span></pre>
419
+ </td>
420
+ </tr>
421
+ </table>
422
+ </div>
423
+
424
+ <div class="method_details ">
425
+ <h3 class="signature " id="post_init-instance_method">
426
+
427
+ - (<tt>Object</tt>) <strong>post_init</strong>
428
+
429
+
430
+
431
+
432
+
433
+ </h3><table class="source_code">
434
+ <tr>
435
+ <td>
436
+ <pre class="lines">
437
+
438
+
439
+ 20
440
+ 21
441
+ 22</pre>
442
+ </td>
443
+ <td>
444
+ <pre class="code"><span class="info file"># File 'lib/tcp.rb', line 20</span>
445
+
446
+ <span class='kw'>def</span> <span class='id identifier rubyid_post_init'>post_init</span>
447
+ <span class='id identifier rubyid_start_tls'>start_tls</span><span class='lparen'>(</span><span class='symbol'>:verify_peer</span> <span class='op'>=&gt;</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='ivar'>@connection</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:secure</span><span class='rbracket'>]</span>
448
+ <span class='kw'>end</span></pre>
449
+ </td>
450
+ </tr>
451
+ </table>
452
+ </div>
453
+
454
+ <div class="method_details ">
455
+ <h3 class="signature " id="read-instance_method">
456
+
457
+ - (<tt>Object</tt>) <strong>read</strong>(len, &amp;cb)
458
+
459
+
460
+
461
+
462
+
463
+ </h3><table class="source_code">
464
+ <tr>
465
+ <td>
466
+ <pre class="lines">
467
+
468
+
469
+ 41
470
+ 42
471
+ 43
472
+ 44
473
+ 45
474
+ 46</pre>
475
+ </td>
476
+ <td>
477
+ <pre class="code"><span class="info file"># File 'lib/tcp.rb', line 41</span>
478
+
479
+ <span class='kw'>def</span> <span class='id identifier rubyid_read'>read</span> <span class='id identifier rubyid_len'>len</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_cb'>cb</span>
480
+ <span class='ivar'>@buffer</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span>
481
+ <span class='ivar'>@len</span> <span class='op'>=</span> <span class='id identifier rubyid_len'>len</span>
482
+ <span class='ivar'>@pos</span> <span class='op'>=</span> <span class='int'>0</span>
483
+ <span class='ivar'>@callback</span> <span class='op'>=</span> <span class='id identifier rubyid_cb'>cb</span>
484
+ <span class='kw'>end</span></pre>
485
+ </td>
486
+ </tr>
487
+ </table>
488
+ </div>
489
+
490
+ <div class="method_details ">
491
+ <h3 class="signature " id="receive_data-instance_method">
492
+
493
+ - (<tt>Object</tt>) <strong>receive_data</strong>(data)
494
+
495
+
496
+
497
+
498
+
499
+ </h3><table class="source_code">
500
+ <tr>
501
+ <td>
502
+ <pre class="lines">
503
+
504
+
505
+ 29
506
+ 30
507
+ 31
508
+ 32
509
+ 33
510
+ 34
511
+ 35
512
+ 36
513
+ 37
514
+ 38
515
+ 39</pre>
516
+ </td>
517
+ <td>
518
+ <pre class="code"><span class="info file"># File 'lib/tcp.rb', line 29</span>
519
+
520
+ <span class='kw'>def</span> <span class='id identifier rubyid_receive_data'>receive_data</span> <span class='id identifier rubyid_data'>data</span>
521
+ <span class='id identifier rubyid_left'>left</span> <span class='op'>=</span> <span class='ivar'>@len</span> <span class='op'>-</span> <span class='ivar'>@pos</span>
522
+ <span class='kw'>if</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>&gt;=</span> <span class='id identifier rubyid_left'>left</span>
523
+ <span class='ivar'>@buffer</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_slice'>slice</span><span class='lparen'>(</span><span class='int'>0</span><span class='comma'>,</span> <span class='id identifier rubyid_left'>left</span><span class='rparen'>)</span>
524
+ <span class='ivar'>@callback</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span> <span class='ivar'>@buffer</span>
525
+ <span class='id identifier rubyid_receive_data'>receive_data</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_slice'>slice</span><span class='lparen'>(</span><span class='id identifier rubyid_left'>left</span><span class='op'>..</span><span class='op'>-</span><span class='int'>1</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
526
+ <span class='kw'>else</span>
527
+ <span class='ivar'>@buffer</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_data'>data</span>
528
+ <span class='ivar'>@pos</span> <span class='op'>=</span> <span class='ivar'>@pos</span> <span class='op'>+</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span>
529
+ <span class='kw'>end</span>
530
+ <span class='kw'>end</span></pre>
531
+ </td>
532
+ </tr>
533
+ </table>
534
+ </div>
535
+
536
+ <div class="method_details ">
537
+ <h3 class="signature " id="send-instance_method">
538
+
539
+ - (<tt>Object</tt>) <strong>send</strong>(arg)
540
+
541
+
542
+
543
+
544
+
545
+ </h3><table class="source_code">
546
+ <tr>
547
+ <td>
548
+ <pre class="lines">
549
+
550
+
551
+ 61
552
+ 62
553
+ 63
554
+ 64</pre>
555
+ </td>
556
+ <td>
557
+ <pre class="code"><span class="info file"># File 'lib/tcp.rb', line 61</span>
558
+
559
+ <span class='kw'>def</span> <span class='id identifier rubyid_send'>send</span> <span class='id identifier rubyid_arg'>arg</span>
560
+ <span class='comment'># Prepend length header to message
561
+ </span> <span class='id identifier rubyid_send_data'>send_data</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='id identifier rubyid_arg'>arg</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_pack'>pack</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>N</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='op'>+</span> <span class='id identifier rubyid_arg'>arg</span><span class='rparen'>)</span>
562
+ <span class='kw'>end</span></pre>
563
+ </td>
564
+ </tr>
565
+ </table>
566
+ </div>
567
+
568
+ <div class="method_details ">
569
+ <h3 class="signature " id="start-instance_method">
570
+
571
+ - (<tt>Object</tt>) <strong>start</strong>
572
+
573
+
574
+
575
+
576
+
577
+ </h3><table class="source_code">
578
+ <tr>
579
+ <td>
580
+ <pre class="lines">
581
+
582
+
583
+ 48
584
+ 49
585
+ 50
586
+ 51
587
+ 52
588
+ 53
589
+ 54
590
+ 55
591
+ 56
592
+ 57
593
+ 58
594
+ 59</pre>
595
+ </td>
596
+ <td>
597
+ <pre class="code"><span class="info file"># File 'lib/tcp.rb', line 48</span>
598
+
599
+ <span class='kw'>def</span> <span class='id identifier rubyid_start'>start</span>
600
+ <span class='comment'># Read header bytes
601
+ </span> <span class='id identifier rubyid_read'>read</span> <span class='int'>4</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_data'>data</span><span class='op'>|</span>
602
+ <span class='comment'># Read body bytes
603
+ </span> <span class='id identifier rubyid_read'>read</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_unpack'>unpack</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>N</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_data'>data</span><span class='op'>|</span>
604
+ <span class='comment'># Call message handler
605
+ </span> <span class='ivar'>@connection</span><span class='period'>.</span><span class='id identifier rubyid_onmessage'>onmessage</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='symbol'>:data</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_data'>data</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='kw'>self</span><span class='rparen'>)</span>
606
+ <span class='comment'># Await next message
607
+ </span> <span class='id identifier rubyid_start'>start</span>
608
+ <span class='kw'>end</span>
609
+ <span class='kw'>end</span>
610
+ <span class='kw'>end</span></pre>
611
+ </td>
612
+ </tr>
613
+ </table>
614
+ </div>
615
+
616
+ <div class="method_details ">
617
+ <h3 class="signature " id="unbind-instance_method">
618
+
619
+ - (<tt>Object</tt>) <strong>unbind</strong>
620
+
621
+
622
+
623
+
624
+
625
+ </h3><table class="source_code">
626
+ <tr>
627
+ <td>
628
+ <pre class="lines">
629
+
630
+
631
+ 66
632
+ 67
633
+ 68</pre>
634
+ </td>
635
+ <td>
636
+ <pre class="code"><span class="info file"># File 'lib/tcp.rb', line 66</span>
637
+
638
+ <span class='kw'>def</span> <span class='id identifier rubyid_unbind'>unbind</span>
639
+ <span class='ivar'>@connection</span><span class='period'>.</span><span class='id identifier rubyid_onclose'>onclose</span>
640
+ <span class='kw'>end</span></pre>
641
+ </td>
642
+ </tr>
643
+ </table>
644
+ </div>
645
+
646
+ </div>
647
+
648
+ </div>
649
+
650
+ <div id="footer">
651
+ Generated on Wed Jun 20 11:00:11 2012 by
652
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
653
+ 0.8.2.1 (ruby-1.9.3).
654
+ </div>
655
+
656
+ </body>
657
+ </html>