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,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>