bridge-ruby 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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,1180 @@
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::Connection
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 (C)</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">Connection</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::Connection
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">Object</span>
77
+
78
+ <ul class="fullTree">
79
+ <li>Object</li>
80
+
81
+ <li class="next">Bridge::Connection</li>
82
+
83
+ </ul>
84
+ <a href="#" class="inheritanceTree">show all</a>
85
+
86
+ </dd>
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+ <dt class="r2 last">Defined in:</dt>
97
+ <dd class="r2 last">lib/connection.rb</dd>
98
+
99
+ </dl>
100
+ <div class="clear"></div>
101
+
102
+ <h2>Overview</h2><div class="docstring">
103
+ <div class="discussion">
104
+
105
+ <p>:nodoc: all</p>
106
+
107
+
108
+ </div>
109
+ </div>
110
+ <div class="tags">
111
+
112
+
113
+ </div><h2>Defined Under Namespace</h2>
114
+ <p class="children">
115
+
116
+
117
+
118
+
119
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Connection/SockBuffer.html" title="Bridge::Connection::SockBuffer (class)">SockBuffer</a></span>
120
+
121
+
122
+ </p>
123
+
124
+
125
+
126
+
127
+ <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
128
+ <ul class="summary">
129
+
130
+ <li class="public ">
131
+ <span class="summary_signature">
132
+
133
+ <a href="#client_id-instance_method" title="#client_id (instance method)">- (Object) <strong>client_id</strong> </a>
134
+
135
+
136
+
137
+ </span>
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+ <span class="summary_desc"><div class='inline'>
151
+ <p>Returns the value of attribute client_id.</p>
152
+ </div></span>
153
+
154
+ </li>
155
+
156
+
157
+ <li class="public ">
158
+ <span class="summary_signature">
159
+
160
+ <a href="#connected-instance_method" title="#connected (instance method)">- (Object) <strong>connected</strong> </a>
161
+
162
+
163
+
164
+ </span>
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+ <span class="summary_desc"><div class='inline'>
178
+ <p>Returns the value of attribute connected.</p>
179
+ </div></span>
180
+
181
+ </li>
182
+
183
+
184
+ <li class="public ">
185
+ <span class="summary_signature">
186
+
187
+ <a href="#options-instance_method" title="#options (instance method)">- (Object) <strong>options</strong> </a>
188
+
189
+
190
+
191
+ </span>
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+ <span class="summary_desc"><div class='inline'>
205
+ <p>Returns the value of attribute options.</p>
206
+ </div></span>
207
+
208
+ </li>
209
+
210
+
211
+ <li class="public ">
212
+ <span class="summary_signature">
213
+
214
+ <a href="#sock-instance_method" title="#sock (instance method)">- (Object) <strong>sock</strong> </a>
215
+
216
+
217
+
218
+ </span>
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+ <span class="summary_desc"><div class='inline'>
232
+ <p>Returns the value of attribute sock.</p>
233
+ </div></span>
234
+
235
+ </li>
236
+
237
+
238
+ </ul>
239
+
240
+
241
+
242
+
243
+
244
+ <h2>
245
+ Instance Method Summary
246
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
247
+ </h2>
248
+
249
+ <ul class="summary">
250
+
251
+ <li class="public ">
252
+ <span class="summary_signature">
253
+
254
+ <a href="#establish_connection-instance_method" title="#establish_connection (instance method)">- (Object) <strong>establish_connection</strong> </a>
255
+
256
+
257
+
258
+ </span>
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+ <span class="summary_desc"><div class='inline'></div></span>
269
+
270
+ </li>
271
+
272
+
273
+ <li class="public ">
274
+ <span class="summary_signature">
275
+
276
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (Connection) <strong>initialize</strong>(bridge) </a>
277
+
278
+
279
+
280
+ </span>
281
+
282
+
283
+ <span class="note title constructor">constructor</span>
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+ <span class="summary_desc"><div class='inline'>
293
+ <p>A new instance of Connection.</p>
294
+ </div></span>
295
+
296
+ </li>
297
+
298
+
299
+ <li class="public ">
300
+ <span class="summary_signature">
301
+
302
+ <a href="#onclose-instance_method" title="#onclose (instance method)">- (Object) <strong>onclose</strong> </a>
303
+
304
+
305
+
306
+ </span>
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+ <span class="summary_desc"><div class='inline'></div></span>
317
+
318
+ </li>
319
+
320
+
321
+ <li class="public ">
322
+ <span class="summary_signature">
323
+
324
+ <a href="#onmessage-instance_method" title="#onmessage (instance method)">- (Object) <strong>onmessage</strong>(data, sock) </a>
325
+
326
+
327
+
328
+ </span>
329
+
330
+
331
+
332
+
333
+
334
+
335
+
336
+
337
+
338
+ <span class="summary_desc"><div class='inline'></div></span>
339
+
340
+ </li>
341
+
342
+
343
+ <li class="public ">
344
+ <span class="summary_signature">
345
+
346
+ <a href="#onopen-instance_method" title="#onopen (instance method)">- (Object) <strong>onopen</strong>(sock) </a>
347
+
348
+
349
+
350
+ </span>
351
+
352
+
353
+
354
+
355
+
356
+
357
+
358
+
359
+
360
+ <span class="summary_desc"><div class='inline'></div></span>
361
+
362
+ </li>
363
+
364
+
365
+ <li class="public ">
366
+ <span class="summary_signature">
367
+
368
+ <a href="#process_message-instance_method" title="#process_message (instance method)">- (Object) <strong>process_message</strong>(message) </a>
369
+
370
+
371
+
372
+ </span>
373
+
374
+
375
+
376
+
377
+
378
+
379
+
380
+
381
+
382
+ <span class="summary_desc"><div class='inline'></div></span>
383
+
384
+ </li>
385
+
386
+
387
+ <li class="public ">
388
+ <span class="summary_signature">
389
+
390
+ <a href="#reconnect-instance_method" title="#reconnect (instance method)">- (Object) <strong>reconnect</strong> </a>
391
+
392
+
393
+
394
+ </span>
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+
404
+ <span class="summary_desc"><div class='inline'></div></span>
405
+
406
+ </li>
407
+
408
+
409
+ <li class="public ">
410
+ <span class="summary_signature">
411
+
412
+ <a href="#redirector-instance_method" title="#redirector (instance method)">- (Object) <strong>redirector</strong> </a>
413
+
414
+
415
+
416
+ </span>
417
+
418
+
419
+
420
+
421
+
422
+
423
+
424
+
425
+
426
+ <span class="summary_desc"><div class='inline'>
427
+ <p>Contact redirector for host and ports.</p>
428
+ </div></span>
429
+
430
+ </li>
431
+
432
+
433
+ <li class="public ">
434
+ <span class="summary_signature">
435
+
436
+ <a href="#send_command-instance_method" title="#send_command (instance method)">- (Object) <strong>send_command</strong>(command, data) </a>
437
+
438
+
439
+
440
+ </span>
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+ <span class="summary_desc"><div class='inline'></div></span>
451
+
452
+ </li>
453
+
454
+
455
+ <li class="public ">
456
+ <span class="summary_signature">
457
+
458
+ <a href="#start-instance_method" title="#start (instance method)">- (Object) <strong>start</strong> </a>
459
+
460
+
461
+
462
+ </span>
463
+
464
+
465
+
466
+
467
+
468
+
469
+
470
+
471
+
472
+ <span class="summary_desc"><div class='inline'></div></span>
473
+
474
+ </li>
475
+
476
+
477
+ </ul>
478
+
479
+
480
+ <div id="constructor_details" class="method_details_list">
481
+ <h2>Constructor Details</h2>
482
+
483
+ <div class="method_details first">
484
+ <h3 class="signature first" id="initialize-instance_method">
485
+
486
+ - (<tt><span class='object_link'><a href="" title="Bridge::Connection (class)">Connection</a></span></tt>) <strong>initialize</strong>(bridge)
487
+
488
+
489
+
490
+
491
+
492
+ </h3><div class="docstring">
493
+ <div class="discussion">
494
+
495
+ <p>A new instance of Connection</p>
496
+
497
+
498
+ </div>
499
+ </div>
500
+ <div class="tags">
501
+
502
+
503
+ </div><table class="source_code">
504
+ <tr>
505
+ <td>
506
+ <pre class="lines">
507
+
508
+
509
+ 11
510
+ 12
511
+ 13
512
+ 14
513
+ 15
514
+ 16
515
+ 17
516
+ 18
517
+ 19
518
+ 20
519
+ 21
520
+ 22
521
+ 23</pre>
522
+ </td>
523
+ <td>
524
+ <pre class="code"><span class="info file"># File 'lib/connection.rb', line 11</span>
525
+
526
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span> <span class='id identifier rubyid_bridge'>bridge</span>
527
+ <span class='comment'># Set associated bridge object
528
+ </span> <span class='ivar'>@bridge</span> <span class='op'>=</span> <span class='id identifier rubyid_bridge'>bridge</span>
529
+
530
+ <span class='ivar'>@options</span> <span class='op'>=</span> <span class='id identifier rubyid_bridge'>bridge</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span>
531
+
532
+ <span class='comment'># Preconnect buffer
533
+ </span> <span class='ivar'>@sock_buffer</span> <span class='op'>=</span> <span class='const'>SockBuffer</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
534
+ <span class='ivar'>@sock</span> <span class='op'>=</span> <span class='ivar'>@sock_buffer</span>
535
+
536
+ <span class='comment'># Connection configuration
537
+ </span> <span class='ivar'>@interval</span> <span class='op'>=</span> <span class='float'>0.4</span>
538
+ <span class='kw'>end</span></pre>
539
+ </td>
540
+ </tr>
541
+ </table>
542
+ </div>
543
+
544
+ </div>
545
+
546
+ <div id="instance_attr_details" class="attr_details">
547
+ <h2>Instance Attribute Details</h2>
548
+
549
+
550
+ <span id="client_id=-instance_method"></span>
551
+ <div class="method_details first">
552
+ <h3 class="signature first" id="client_id-instance_method">
553
+
554
+ - (<tt>Object</tt>) <strong>client_id</strong>
555
+
556
+
557
+
558
+
559
+
560
+ </h3><div class="docstring">
561
+ <div class="discussion">
562
+
563
+ <p>Returns the value of attribute client_id</p>
564
+
565
+
566
+ </div>
567
+ </div>
568
+ <div class="tags">
569
+
570
+
571
+ </div><table class="source_code">
572
+ <tr>
573
+ <td>
574
+ <pre class="lines">
575
+
576
+
577
+ 9
578
+ 10
579
+ 11</pre>
580
+ </td>
581
+ <td>
582
+ <pre class="code"><span class="info file"># File 'lib/connection.rb', line 9</span>
583
+
584
+ <span class='kw'>def</span> <span class='id identifier rubyid_client_id'>client_id</span>
585
+ <span class='ivar'>@client_id</span>
586
+ <span class='kw'>end</span></pre>
587
+ </td>
588
+ </tr>
589
+ </table>
590
+ </div>
591
+
592
+
593
+ <span id="connected=-instance_method"></span>
594
+ <div class="method_details ">
595
+ <h3 class="signature " id="connected-instance_method">
596
+
597
+ - (<tt>Object</tt>) <strong>connected</strong>
598
+
599
+
600
+
601
+
602
+
603
+ </h3><div class="docstring">
604
+ <div class="discussion">
605
+
606
+ <p>Returns the value of attribute connected</p>
607
+
608
+
609
+ </div>
610
+ </div>
611
+ <div class="tags">
612
+
613
+
614
+ </div><table class="source_code">
615
+ <tr>
616
+ <td>
617
+ <pre class="lines">
618
+
619
+
620
+ 9
621
+ 10
622
+ 11</pre>
623
+ </td>
624
+ <td>
625
+ <pre class="code"><span class="info file"># File 'lib/connection.rb', line 9</span>
626
+
627
+ <span class='kw'>def</span> <span class='id identifier rubyid_connected'>connected</span>
628
+ <span class='ivar'>@connected</span>
629
+ <span class='kw'>end</span></pre>
630
+ </td>
631
+ </tr>
632
+ </table>
633
+ </div>
634
+
635
+
636
+ <span id="options=-instance_method"></span>
637
+ <div class="method_details ">
638
+ <h3 class="signature " id="options-instance_method">
639
+
640
+ - (<tt>Object</tt>) <strong>options</strong>
641
+
642
+
643
+
644
+
645
+
646
+ </h3><div class="docstring">
647
+ <div class="discussion">
648
+
649
+ <p>Returns the value of attribute options</p>
650
+
651
+
652
+ </div>
653
+ </div>
654
+ <div class="tags">
655
+
656
+
657
+ </div><table class="source_code">
658
+ <tr>
659
+ <td>
660
+ <pre class="lines">
661
+
662
+
663
+ 9
664
+ 10
665
+ 11</pre>
666
+ </td>
667
+ <td>
668
+ <pre class="code"><span class="info file"># File 'lib/connection.rb', line 9</span>
669
+
670
+ <span class='kw'>def</span> <span class='id identifier rubyid_options'>options</span>
671
+ <span class='ivar'>@options</span>
672
+ <span class='kw'>end</span></pre>
673
+ </td>
674
+ </tr>
675
+ </table>
676
+ </div>
677
+
678
+
679
+ <span id="sock=-instance_method"></span>
680
+ <div class="method_details ">
681
+ <h3 class="signature " id="sock-instance_method">
682
+
683
+ - (<tt>Object</tt>) <strong>sock</strong>
684
+
685
+
686
+
687
+
688
+
689
+ </h3><div class="docstring">
690
+ <div class="discussion">
691
+
692
+ <p>Returns the value of attribute sock</p>
693
+
694
+
695
+ </div>
696
+ </div>
697
+ <div class="tags">
698
+
699
+
700
+ </div><table class="source_code">
701
+ <tr>
702
+ <td>
703
+ <pre class="lines">
704
+
705
+
706
+ 9
707
+ 10
708
+ 11</pre>
709
+ </td>
710
+ <td>
711
+ <pre class="code"><span class="info file"># File 'lib/connection.rb', line 9</span>
712
+
713
+ <span class='kw'>def</span> <span class='id identifier rubyid_sock'>sock</span>
714
+ <span class='ivar'>@sock</span>
715
+ <span class='kw'>end</span></pre>
716
+ </td>
717
+ </tr>
718
+ </table>
719
+ </div>
720
+
721
+ </div>
722
+
723
+
724
+ <div id="instance_method_details" class="method_details_list">
725
+ <h2>Instance Method Details</h2>
726
+
727
+
728
+ <div class="method_details first">
729
+ <h3 class="signature first" id="establish_connection-instance_method">
730
+
731
+ - (<tt>Object</tt>) <strong>establish_connection</strong>
732
+
733
+
734
+
735
+
736
+
737
+ </h3><table class="source_code">
738
+ <tr>
739
+ <td>
740
+ <pre class="lines">
741
+
742
+
743
+ 60
744
+ 61
745
+ 62
746
+ 63</pre>
747
+ </td>
748
+ <td>
749
+ <pre class="code"><span class="info file"># File 'lib/connection.rb', line 60</span>
750
+
751
+ <span class='kw'>def</span> <span class='id identifier rubyid_establish_connection'>establish_connection</span>
752
+ <span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Starting TCP connection </span><span class='embexpr_beg'>#{</span><span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>, </span><span class='embexpr_beg'>#{</span><span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
753
+ <span class='const'>EventMachine</span><span class='op'>::</span><span class='id identifier rubyid_connect'>connect</span><span class='lparen'>(</span><span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='const'>Tcp</span><span class='comma'>,</span> <span class='kw'>self</span><span class='rparen'>)</span>
754
+ <span class='kw'>end</span></pre>
755
+ </td>
756
+ </tr>
757
+ </table>
758
+ </div>
759
+
760
+ <div class="method_details ">
761
+ <h3 class="signature " id="onclose-instance_method">
762
+
763
+ - (<tt>Object</tt>) <strong>onclose</strong>
764
+
765
+
766
+
767
+
768
+
769
+ </h3><table class="source_code">
770
+ <tr>
771
+ <td>
772
+ <pre class="lines">
773
+
774
+
775
+ 96
776
+ 97
777
+ 98
778
+ 99
779
+ 100
780
+ 101
781
+ 102
782
+ 103</pre>
783
+ </td>
784
+ <td>
785
+ <pre class="code"><span class="info file"># File 'lib/connection.rb', line 96</span>
786
+
787
+ <span class='kw'>def</span> <span class='id identifier rubyid_onclose'>onclose</span>
788
+ <span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Connection closed</span><span class='tstring_end'>'</span></span>
789
+ <span class='comment'># Restore preconnect buffer as socket connection
790
+ </span> <span class='ivar'>@sock</span> <span class='op'>=</span> <span class='ivar'>@sock_buffer</span>
791
+ <span class='kw'>if</span> <span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:reconnect</span><span class='rbracket'>]</span>
792
+ <span class='id identifier rubyid_reconnect'>reconnect</span>
793
+ <span class='kw'>end</span>
794
+ <span class='kw'>end</span></pre>
795
+ </td>
796
+ </tr>
797
+ </table>
798
+ </div>
799
+
800
+ <div class="method_details ">
801
+ <h3 class="signature " id="onmessage-instance_method">
802
+
803
+ - (<tt>Object</tt>) <strong>onmessage</strong>(data, sock)
804
+
805
+
806
+
807
+
808
+
809
+ </h3><table class="source_code">
810
+ <tr>
811
+ <td>
812
+ <pre class="lines">
813
+
814
+
815
+ 65
816
+ 66
817
+ 67
818
+ 68
819
+ 69
820
+ 70
821
+ 71
822
+ 72
823
+ 73
824
+ 74
825
+ 75
826
+ 76
827
+ 77
828
+ 78
829
+ 79
830
+ 80
831
+ 81
832
+ 82
833
+ 83
834
+ 84
835
+ 85
836
+ 86
837
+ 87
838
+ 88</pre>
839
+ </td>
840
+ <td>
841
+ <pre class="code"><span class="info file"># File 'lib/connection.rb', line 65</span>
842
+
843
+ <span class='kw'>def</span> <span class='id identifier rubyid_onmessage'>onmessage</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_sock'>sock</span>
844
+ <span class='comment'># Parse for client id and secret
845
+ </span> <span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^(\w+)\|(\w+)$</span><span class='regexp_end'>/</span></span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span> <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span>
846
+ <span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_m'>m</span>
847
+ <span class='comment'># Handle message normally if not a correct CONNECT response
848
+ </span> <span class='id identifier rubyid_process_message'>process_message</span> <span class='id identifier rubyid_data'>data</span>
849
+ <span class='kw'>else</span>
850
+ <span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>client_id received, </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
851
+ <span class='ivar'>@client_id</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span>
852
+ <span class='ivar'>@secret</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='int'>2</span><span class='rbracket'>]</span>
853
+ <span class='comment'># Reset reconnect interval
854
+ </span> <span class='ivar'>@interval</span> <span class='op'>=</span> <span class='float'>0.4</span>
855
+ <span class='comment'># Send preconnect queued messages
856
+ </span> <span class='ivar'>@sock_buffer</span><span class='period'>.</span><span class='id identifier rubyid_process_queue'>process_queue</span> <span class='id identifier rubyid_sock'>sock</span><span class='comma'>,</span> <span class='ivar'>@client_id</span>
857
+ <span class='comment'># Set connection socket to connected socket
858
+ </span> <span class='ivar'>@sock</span> <span class='op'>=</span> <span class='id identifier rubyid_sock'>sock</span>
859
+ <span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Handshake complete</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
860
+ <span class='comment'># Trigger ready callback
861
+ </span> <span class='kw'>if</span> <span class='kw'>not</span> <span class='ivar'>@bridge</span><span class='period'>.</span><span class='id identifier rubyid_is_ready'>is_ready</span>
862
+ <span class='ivar'>@bridge</span><span class='period'>.</span><span class='id identifier rubyid_is_ready'>is_ready</span> <span class='op'>=</span> <span class='kw'>true</span>
863
+ <span class='ivar'>@bridge</span><span class='period'>.</span><span class='id identifier rubyid_emit'>emit</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>ready</span><span class='tstring_end'>'</span></span>
864
+ <span class='kw'>end</span>
865
+ <span class='kw'>end</span>
866
+ <span class='kw'>end</span></pre>
867
+ </td>
868
+ </tr>
869
+ </table>
870
+ </div>
871
+
872
+ <div class="method_details ">
873
+ <h3 class="signature " id="onopen-instance_method">
874
+
875
+ - (<tt>Object</tt>) <strong>onopen</strong>(sock)
876
+
877
+
878
+
879
+
880
+
881
+ </h3><table class="source_code">
882
+ <tr>
883
+ <td>
884
+ <pre class="lines">
885
+
886
+
887
+ 90
888
+ 91
889
+ 92
890
+ 93
891
+ 94</pre>
892
+ </td>
893
+ <td>
894
+ <pre class="code"><span class="info file"># File 'lib/connection.rb', line 90</span>
895
+
896
+ <span class='kw'>def</span> <span class='id identifier rubyid_onopen'>onopen</span> <span class='id identifier rubyid_sock'>sock</span>
897
+ <span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Beginning handshake</span><span class='tstring_end'>'</span></span>
898
+ <span class='id identifier rubyid_msg'>msg</span> <span class='op'>=</span> <span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_stringify'>stringify</span><span class='lparen'>(</span><span class='symbol'>:command</span> <span class='op'>=&gt;</span> <span class='symbol'>:CONNECT</span><span class='comma'>,</span> <span class='symbol'>:data</span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span><span class='symbol'>:session</span> <span class='op'>=&gt;</span> <span class='lbracket'>[</span><span class='ivar'>@client_id</span> <span class='op'>||</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='ivar'>@secret</span> <span class='op'>||</span> <span class='kw'>nil</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:api_key</span> <span class='op'>=&gt;</span> <span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:api_key</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='rparen'>)</span>
899
+ <span class='id identifier rubyid_sock'>sock</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span> <span class='id identifier rubyid_msg'>msg</span>
900
+ <span class='kw'>end</span></pre>
901
+ </td>
902
+ </tr>
903
+ </table>
904
+ </div>
905
+
906
+ <div class="method_details ">
907
+ <h3 class="signature " id="process_message-instance_method">
908
+
909
+ - (<tt>Object</tt>) <strong>process_message</strong>(message)
910
+
911
+
912
+
913
+
914
+
915
+ </h3><table class="source_code">
916
+ <tr>
917
+ <td>
918
+ <pre class="lines">
919
+
920
+
921
+ 105
922
+ 106
923
+ 107
924
+ 108
925
+ 109
926
+ 110
927
+ 111
928
+ 112
929
+ 113
930
+ 114
931
+ 115
932
+ 116
933
+ 117
934
+ 118
935
+ 119
936
+ 120
937
+ 121
938
+ 122
939
+ 123
940
+ 124</pre>
941
+ </td>
942
+ <td>
943
+ <pre class="code"><span class="info file"># File 'lib/connection.rb', line 105</span>
944
+
945
+ <span class='kw'>def</span> <span class='id identifier rubyid_process_message'>process_message</span> <span class='id identifier rubyid_message'>message</span>
946
+ <span class='kw'>begin</span>
947
+ <span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Received </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_message'>message</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
948
+ <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='rparen'>)</span>
949
+ <span class='kw'>rescue</span> <span class='const'>Exception</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
950
+ <span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Message parsing failed</span><span class='tstring_end'>&quot;</span></span>
951
+ <span class='kw'>end</span>
952
+ <span class='comment'># Convert serialized ref objects to callable references
953
+ </span> <span class='const'>Serializer</span><span class='period'>.</span><span class='id identifier rubyid_unserialize'>unserialize</span><span class='lparen'>(</span><span class='ivar'>@bridge</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>args</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
954
+ <span class='comment'># Extract RPC destination address
955
+ </span> <span class='id identifier rubyid_destination'>destination</span> <span class='op'>=</span> <span class='id identifier rubyid_message'>message</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>destination</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
956
+ <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_destination'>destination</span>
957
+ <span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>No destination in message </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_message'>message</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
958
+ <span class='kw'>return</span>
959
+ <span class='kw'>end</span>
960
+ <span class='kw'>if</span> <span class='id identifier rubyid_message'>message</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>source</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
961
+ <span class='ivar'>@bridge</span><span class='period'>.</span><span class='id identifier rubyid_context'>context</span> <span class='op'>=</span> <span class='const'>Client</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='ivar'>@bridge</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>source</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
962
+ <span class='kw'>end</span>
963
+ <span class='ivar'>@bridge</span><span class='period'>.</span><span class='id identifier rubyid_execute'>execute</span> <span class='id identifier rubyid_message'>message</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>destination</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>ref</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>args</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
964
+ <span class='kw'>end</span></pre>
965
+ </td>
966
+ </tr>
967
+ </table>
968
+ </div>
969
+
970
+ <div class="method_details ">
971
+ <h3 class="signature " id="reconnect-instance_method">
972
+
973
+ - (<tt>Object</tt>) <strong>reconnect</strong>
974
+
975
+
976
+
977
+
978
+
979
+ </h3><table class="source_code">
980
+ <tr>
981
+ <td>
982
+ <pre class="lines">
983
+
984
+
985
+ 49
986
+ 50
987
+ 51
988
+ 52
989
+ 53
990
+ 54
991
+ 55
992
+ 56
993
+ 57
994
+ 58</pre>
995
+ </td>
996
+ <td>
997
+ <pre class="code"><span class="info file"># File 'lib/connection.rb', line 49</span>
998
+
999
+ <span class='kw'>def</span> <span class='id identifier rubyid_reconnect'>reconnect</span>
1000
+ <span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Attempting to reconnect</span><span class='tstring_end'>&quot;</span></span>
1001
+ <span class='kw'>if</span> <span class='ivar'>@interval</span> <span class='op'>&lt;</span> <span class='int'>32768</span>
1002
+ <span class='const'>EventMachine</span><span class='op'>::</span><span class='const'>Timer</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='ivar'>@interval</span><span class='rparen'>)</span> <span class='kw'>do</span>
1003
+ <span class='id identifier rubyid_establish_connection'>establish_connection</span>
1004
+ <span class='comment'># Grow timeout for next reconnect attempt
1005
+ </span> <span class='ivar'>@interval</span> <span class='op'>*=</span> <span class='int'>2</span>
1006
+ <span class='kw'>end</span>
1007
+ <span class='kw'>end</span>
1008
+ <span class='kw'>end</span></pre>
1009
+ </td>
1010
+ </tr>
1011
+ </table>
1012
+ </div>
1013
+
1014
+ <div class="method_details ">
1015
+ <h3 class="signature " id="redirector-instance_method">
1016
+
1017
+ - (<tt>Object</tt>) <strong>redirector</strong>
1018
+
1019
+
1020
+
1021
+
1022
+
1023
+ </h3><div class="docstring">
1024
+ <div class="discussion">
1025
+
1026
+ <p>Contact redirector for host and ports</p>
1027
+
1028
+
1029
+ </div>
1030
+ </div>
1031
+ <div class="tags">
1032
+
1033
+
1034
+ </div><table class="source_code">
1035
+ <tr>
1036
+ <td>
1037
+ <pre class="lines">
1038
+
1039
+
1040
+ 26
1041
+ 27
1042
+ 28
1043
+ 29
1044
+ 30
1045
+ 31
1046
+ 32
1047
+ 33
1048
+ 34
1049
+ 35
1050
+ 36
1051
+ 37
1052
+ 38
1053
+ 39
1054
+ 40
1055
+ 41
1056
+ 42
1057
+ 43
1058
+ 44
1059
+ 45
1060
+ 46
1061
+ 47</pre>
1062
+ </td>
1063
+ <td>
1064
+ <pre class="code"><span class="info file"># File 'lib/connection.rb', line 26</span>
1065
+
1066
+ <span class='kw'>def</span> <span class='id identifier rubyid_redirector'>redirector</span>
1067
+ <span class='comment'># Support for redirector.
1068
+ </span> <span class='id identifier rubyid_uri'>uri</span> <span class='op'>=</span> <span class='const'>URI</span><span class='lparen'>(</span><span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:redirector</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1069
+ <span class='id identifier rubyid_conn'>conn</span> <span class='op'>=</span> <span class='const'>EventMachine</span><span class='op'>::</span><span class='const'>Protocols</span><span class='op'>::</span><span class='const'>HttpClient2</span><span class='period'>.</span><span class='id identifier rubyid_connect'>connect</span><span class='lparen'>(</span><span class='symbol'>:host</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_uri'>uri</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='symbol'>:port</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_uri'>uri</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span><span class='comma'>,</span> <span class='symbol'>:ssl</span> <span class='op'>=&gt;</span> <span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:secure</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1070
+ <span class='id identifier rubyid_req'>req</span> <span class='op'>=</span> <span class='id identifier rubyid_conn'>conn</span><span class='period'>.</span><span class='id identifier rubyid_get'>get</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='symbol'>:uri</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/redirect/</span><span class='embexpr_beg'>#{</span><span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:api_key</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
1071
+ <span class='id identifier rubyid_req'>req</span><span class='period'>.</span><span class='id identifier rubyid_callback'>callback</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_obj'>obj</span><span class='op'>|</span>
1072
+ <span class='kw'>begin</span>
1073
+ <span class='id identifier rubyid_obj'>obj</span> <span class='op'>=</span> <span class='const'>JSON</span><span class='op'>::</span><span class='id identifier rubyid_parse'>parse</span> <span class='id identifier rubyid_obj'>obj</span><span class='period'>.</span><span class='id identifier rubyid_content'>content</span>
1074
+ <span class='kw'>rescue</span> <span class='const'>Exception</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1075
+ <span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Unable to parse redirector response </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_obj'>obj</span><span class='period'>.</span><span class='id identifier rubyid_content'>content</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1076
+ <span class='kw'>return</span>
1077
+ <span class='kw'>end</span>
1078
+ <span class='kw'>if</span> <span class='id identifier rubyid_obj'>obj</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>data</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>and</span> <span class='id identifier rubyid_obj'>obj</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>data</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bridge_host</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>and</span> <span class='id identifier rubyid_obj'>obj</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>data</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bridge_port</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
1079
+ <span class='id identifier rubyid_obj'>obj</span> <span class='op'>=</span> <span class='id identifier rubyid_obj'>obj</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>data</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
1080
+ <span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_obj'>obj</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bridge_host</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
1081
+ <span class='ivar'>@options</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_obj'>obj</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>bridge_port</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
1082
+ <span class='id identifier rubyid_establish_connection'>establish_connection</span>
1083
+ <span class='kw'>else</span>
1084
+ <span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Could not find host and port in JSON body</span><span class='tstring_end'>&quot;</span></span>
1085
+ <span class='kw'>end</span>
1086
+ <span class='kw'>end</span>
1087
+ <span class='kw'>end</span></pre>
1088
+ </td>
1089
+ </tr>
1090
+ </table>
1091
+ </div>
1092
+
1093
+ <div class="method_details ">
1094
+ <h3 class="signature " id="send_command-instance_method">
1095
+
1096
+ - (<tt>Object</tt>) <strong>send_command</strong>(command, data)
1097
+
1098
+
1099
+
1100
+
1101
+
1102
+ </h3><table class="source_code">
1103
+ <tr>
1104
+ <td>
1105
+ <pre class="lines">
1106
+
1107
+
1108
+ 126
1109
+ 127
1110
+ 128
1111
+ 129
1112
+ 130
1113
+ 131</pre>
1114
+ </td>
1115
+ <td>
1116
+ <pre class="code"><span class="info file"># File 'lib/connection.rb', line 126</span>
1117
+
1118
+ <span class='kw'>def</span> <span class='id identifier rubyid_send_command'>send_command</span> <span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span>
1119
+ <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span> <span class='symbol'>:callback</span> <span class='kw'>if</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span> <span class='symbol'>:callback</span> <span class='kw'>and</span> <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='symbol'>:callback</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1120
+ <span class='id identifier rubyid_msg'>msg</span> <span class='op'>=</span> <span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_stringify'>stringify</span> <span class='symbol'>:command</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='symbol'>:data</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_data'>data</span>
1121
+ <span class='const'>Util</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Sending </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_msg'>msg</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1122
+ <span class='ivar'>@sock</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span> <span class='id identifier rubyid_msg'>msg</span>
1123
+ <span class='kw'>end</span></pre>
1124
+ </td>
1125
+ </tr>
1126
+ </table>
1127
+ </div>
1128
+
1129
+ <div class="method_details ">
1130
+ <h3 class="signature " id="start-instance_method">
1131
+
1132
+ - (<tt>Object</tt>) <strong>start</strong>
1133
+
1134
+
1135
+
1136
+
1137
+
1138
+ </h3><table class="source_code">
1139
+ <tr>
1140
+ <td>
1141
+ <pre class="lines">
1142
+
1143
+
1144
+ 133
1145
+ 134
1146
+ 135
1147
+ 136
1148
+ 137
1149
+ 138
1150
+ 139
1151
+ 140</pre>
1152
+ </td>
1153
+ <td>
1154
+ <pre class="code"><span class="info file"># File 'lib/connection.rb', line 133</span>
1155
+
1156
+ <span class='kw'>def</span> <span class='id identifier rubyid_start'>start</span>
1157
+ <span class='kw'>if</span> <span class='op'>!</span><span class='ivar'>@options</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span> <span class='symbol'>:host</span> <span class='kw'>or</span> <span class='op'>!</span><span class='ivar'>@options</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span> <span class='symbol'>:port</span>
1158
+ <span class='id identifier rubyid_redirector'>redirector</span>
1159
+ <span class='kw'>else</span>
1160
+ <span class='comment'># Host and port are specified
1161
+ </span> <span class='id identifier rubyid_establish_connection'>establish_connection</span>
1162
+ <span class='kw'>end</span>
1163
+ <span class='kw'>end</span></pre>
1164
+ </td>
1165
+ </tr>
1166
+ </table>
1167
+ </div>
1168
+
1169
+ </div>
1170
+
1171
+ </div>
1172
+
1173
+ <div id="footer">
1174
+ Generated on Wed Jun 20 11:00:11 2012 by
1175
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1176
+ 0.8.2.1 (ruby-1.9.3).
1177
+ </div>
1178
+
1179
+ </body>
1180
+ </html>