ionian 0.6.3 → 0.6.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +63 -0
  3. data/doc/Ionian/Extension/IO.html +1062 -599
  4. data/doc/Ionian/Extension/Socket.html +2140 -1314
  5. data/doc/Ionian/Extension.html +98 -70
  6. data/doc/Ionian/Server.html +577 -345
  7. data/doc/Ionian/Socket.html +1100 -612
  8. data/doc/Ionian.html +100 -70
  9. data/doc/_index.html +164 -0
  10. data/doc/class_list.html +54 -0
  11. data/doc/css/common.css +1 -0
  12. data/doc/css/full_list.css +57 -0
  13. data/doc/css/style.css +338 -0
  14. data/doc/file.README.html +133 -0
  15. data/doc/file.license.html +73 -0
  16. data/doc/file_list.html +59 -0
  17. data/doc/frames.html +26 -0
  18. data/doc/index.html +111 -71
  19. data/doc/js/app.js +219 -0
  20. data/doc/js/full_list.js +178 -0
  21. data/doc/js/jquery.js +4 -18
  22. data/doc/method_list.html +419 -0
  23. data/doc/top-level-namespace.html +112 -0
  24. data/lib/ionian/extension/io.rb +4 -2
  25. data/lib/ionian/socket.rb +1 -1
  26. data/license.txt +2 -0
  27. metadata +28 -54
  28. data/doc/created.rid +0 -6
  29. data/doc/fonts/Lato-Light.ttf +0 -0
  30. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  31. data/doc/fonts/Lato-Regular.ttf +0 -0
  32. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  33. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  34. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  35. data/doc/fonts.css +0 -167
  36. data/doc/images/add.png +0 -0
  37. data/doc/images/arrow_up.png +0 -0
  38. data/doc/images/brick.png +0 -0
  39. data/doc/images/brick_link.png +0 -0
  40. data/doc/images/bug.png +0 -0
  41. data/doc/images/bullet_black.png +0 -0
  42. data/doc/images/bullet_toggle_minus.png +0 -0
  43. data/doc/images/bullet_toggle_plus.png +0 -0
  44. data/doc/images/date.png +0 -0
  45. data/doc/images/delete.png +0 -0
  46. data/doc/images/find.png +0 -0
  47. data/doc/images/loadingAnimation.gif +0 -0
  48. data/doc/images/macFFBgHack.png +0 -0
  49. data/doc/images/package.png +0 -0
  50. data/doc/images/page_green.png +0 -0
  51. data/doc/images/page_white_text.png +0 -0
  52. data/doc/images/page_white_width.png +0 -0
  53. data/doc/images/plugin.png +0 -0
  54. data/doc/images/ruby.png +0 -0
  55. data/doc/images/tag_blue.png +0 -0
  56. data/doc/images/tag_green.png +0 -0
  57. data/doc/images/transparent.png +0 -0
  58. data/doc/images/wrench.png +0 -0
  59. data/doc/images/wrench_orange.png +0 -0
  60. data/doc/images/zoom.png +0 -0
  61. data/doc/js/darkfish.js +0 -140
  62. data/doc/js/navigation.js +0 -142
  63. data/doc/js/search.js +0 -109
  64. data/doc/js/search_index.js +0 -1
  65. data/doc/js/searcher.js +0 -228
  66. data/doc/rdoc.css +0 -580
  67. data/doc/table_of_contents.html +0 -402
@@ -1,223 +1,485 @@
1
- <!DOCTYPE html>
2
-
3
- <html>
4
- <head>
5
- <meta charset="UTF-8">
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: Ionian::Socket
8
+
9
+ &mdash; Documentation by YARD 0.8.7.3
10
+
11
+ </title>
6
12
 
7
- <title>class Ionian::Socket - RDoc Documentation</title>
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
8
14
 
9
- <link href="../fonts.css" rel="stylesheet">
10
- <link href="../rdoc.css" rel="stylesheet">
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
11
16
 
12
- <script type="text/javascript">
13
- var rdoc_rel_prefix = "../";
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);
14
21
  </script>
15
22
 
16
- <script src="../js/jquery.js"></script>
17
- <script src="../js/navigation.js"></script>
18
- <script src="../js/search_index.js"></script>
19
- <script src="../js/search.js"></script>
20
- <script src="../js/searcher.js"></script>
21
- <script src="../js/darkfish.js"></script>
22
-
23
-
24
- <body id="top" role="document" class="class">
25
- <nav role="navigation">
26
- <div id="project-navigation">
27
- <div id="home-section" role="region" title="Quick navigation" class="nav-section">
28
- <h2>
29
- <a href="../index.html" rel="home">Home</a>
30
- </h2>
31
-
32
- <div id="table-of-contents-navigation">
33
- <a href="../table_of_contents.html#pages">Pages</a>
34
- <a href="../table_of_contents.html#classes">Classes</a>
35
- <a href="../table_of_contents.html#methods">Methods</a>
36
- </div>
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 (S)</a> &raquo;
35
+ <span class='title'><span class='object_link'><a href="../Ionian.html" title="Ionian (module)">Ionian</a></span></span>
36
+ &raquo;
37
+ <span class="title">Socket</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
37
41
  </div>
38
42
 
39
- <div id="search-section" role="search" class="project-section initially-hidden">
40
- <form action="#" method="get" accept-charset="utf-8">
41
- <div id="search-field-wrapper">
42
- <input id="search-field" role="combobox" aria-label="Search"
43
- aria-autocomplete="list" aria-controls="search-results"
44
- type="text" name="search" placeholder="Search" spellcheck="false"
45
- title="Type to search, Up and Down to navigate, Enter to load">
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>
46
62
  </div>
47
63
 
48
- <ul id="search-results" aria-label="Search Results"
49
- aria-busy="false" aria-expanded="false"
50
- aria-atomic="false" class="initially-hidden"></ul>
51
- </form>
52
- </div>
64
+ <iframe id="search_frame"></iframe>
53
65
 
54
- </div>
66
+ <div id="content"><h1>Class: Ionian::Socket
67
+
68
+
69
+
70
+ </h1>
55
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">Ionian::Socket</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/ionian/socket.rb</dd>
56
98
 
99
+ </dl>
100
+ <div class="clear"></div>
57
101
 
58
- <div id="class-metadata">
102
+ <h2>Overview</h2><div class="docstring">
103
+ <div class="discussion">
59
104
 
60
- <div id="parent-class-section" class="nav-section">
61
- <h3>Parent</h3>
105
+ <p>A convenient wrapper for TCP, UDP, and Unix client sockets.</p>
62
106
 
107
+
108
+ </div>
109
+ </div>
110
+ <div class="tags">
63
111
 
64
- <p class="link">Object
65
-
112
+
66
113
  </div>
67
114
 
115
+
116
+
117
+ <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
118
+ <ul class="summary">
119
+
120
+ <li class="public ">
121
+ <span class="summary_signature">
122
+
123
+ <a href="#protocol-instance_method" title="#protocol (instance method)">- (Object) <strong>protocol</strong> </a>
68
124
 
69
- <div id="extends-section" class="nav-section">
70
- <h3>Extended With Modules</h3>
71
125
 
72
- <ul class="link-list">
73
126
 
127
+ (also: #protocol?)
128
+
129
+ </span>
74
130
 
75
- <li><a class="extend" href="Extension/IO.html">Ionian::Extension::IO</a>
76
131
 
77
132
 
133
+
134
+ <span class="note title readonly">readonly</span>
135
+
136
+
78
137
 
79
- <li><a class="extend" href="Extension/Socket.html">Ionian::Extension::Socket</a>
80
138
 
81
139
 
82
140
 
83
- <li><a class="extend" href="Extension/Socket.html">Ionian::Extension::Socket</a>
84
141
 
142
+
143
+
144
+ <span class="summary_desc"><div class='inline'>
145
+ <p>Returns a symbol of the type of protocol this socket uses: :tcp, :udp,
146
+ :unix.</p>
147
+ </div></span>
148
+
149
+ </li>
150
+
151
+
152
+ </ul>
153
+
154
+
155
+
156
+
157
+
158
+ <h2>
159
+ Instance Method Summary
160
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
161
+ </h2>
162
+
163
+ <ul class="summary">
164
+
165
+ <li class="public ">
166
+ <span class="summary_signature">
167
+
168
+ <a href="#closed%3F-instance_method" title="#closed? (instance method)">- (Boolean) <strong>closed?</strong> </a>
169
+
170
+
171
+
172
+ </span>
85
173
 
86
174
 
87
- <li><a class="extend" href="Extension/Socket.html">Ionian::Extension::Socket</a>
88
175
 
89
176
 
90
177
 
91
- <li><a class="extend" href="Extension/Socket.html">Ionian::Extension::Socket</a>
92
178
 
93
179
 
94
- </ul>
95
- </div>
96
180
 
97
- <!-- Method Quickref -->
98
- <div id="method-list-section" class="nav-section">
99
- <h3>Methods</h3>
181
+
182
+ <span class="summary_desc"><div class='inline'>
183
+ <p>Returns true if the socket is closed.</p>
184
+ </div></span>
185
+
186
+ </li>
100
187
 
101
- <ul class="link-list" role="directory">
188
+
189
+ <li class="public ">
190
+ <span class="summary_signature">
102
191
 
103
- <li ><a href="#method-c-new">::new</a>
192
+ <a href="#cmd-instance_method" title="#cmd (instance method)">- (Object) <strong>cmd</strong>(string, **kwargs, &amp;block) </a>
104
193
 
105
- <li ><a href="#method-i-3C-3C">#&lt;&lt;</a>
194
+
106
195
 
107
- <li ><a href="#method-i-closed-3F">#closed?</a>
196
+ </span>
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+ <span class="summary_desc"><div class='inline'>
207
+ <p>Send a command (data) to the socket.</p>
208
+ </div></span>
209
+
210
+ </li>
211
+
212
+
213
+ <li class="public ">
214
+ <span class="summary_signature">
108
215
 
109
- <li ><a href="#method-i-cmd">#cmd</a>
216
+ <a href="#expression-instance_method" title="#expression (instance method)">- (Object) <strong>expression</strong> </a>
110
217
 
111
- <li ><a href="#method-i-expression">#expression</a>
218
+
112
219
 
113
- <li ><a href="#method-i-expression-3D">#expression=</a>
220
+ </span>
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+ <span class="summary_desc"><div class='inline'>
231
+ <p>Returns the regular expression used to match incoming data.</p>
232
+ </div></span>
233
+
234
+ </li>
235
+
236
+
237
+ <li class="public ">
238
+ <span class="summary_signature">
114
239
 
115
- <li ><a href="#method-i-flush">#flush</a>
240
+ <a href="#expression%3D-instance_method" title="#expression= (instance method)">- (Object) <strong>expression=</strong>(exp) </a>
116
241
 
117
- <li ><a href="#method-i-has_data-3F">#has_data?</a>
242
+
118
243
 
119
- <li ><a href="#method-i-on_match">#on_match</a>
244
+ </span>
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+ <span class="summary_desc"><div class='inline'>
255
+ <p>Set the regular expression used to match incoming data.</p>
256
+ </div></span>
257
+
258
+ </li>
259
+
260
+
261
+ <li class="public ">
262
+ <span class="summary_signature">
120
263
 
121
- <li ><a href="#method-i-persistent-3F">#persistent?</a>
264
+ <a href="#flush-instance_method" title="#flush (instance method)">- (Object) <strong>flush</strong> </a>
122
265
 
123
- <li ><a href="#method-i-puts">#puts</a>
266
+
124
267
 
125
- <li ><a href="#method-i-register_observer">#register_observer</a>
268
+ </span>
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+
278
+ <span class="summary_desc"><div class='inline'>
279
+ <p>Flushes buffered data to the operating system.</p>
280
+ </div></span>
281
+
282
+ </li>
283
+
284
+
285
+ <li class="public ">
286
+ <span class="summary_signature">
126
287
 
127
- <li ><a href="#method-i-unregister_observer">#unregister_observer</a>
288
+ <a href="#has_data%3F-instance_method" title="#has_data? (instance method)">- (Boolean) <strong>has_data?</strong>(**kwargs) </a>
128
289
 
129
- <li ><a href="#method-i-write">#write</a>
290
+
130
291
 
131
- </ul>
132
- </div>
292
+ </span>
293
+
294
+
295
+
296
+
297
+
298
+
299
+
133
300
 
134
- </div>
135
- </nav>
301
+
302
+ <span class="summary_desc"><div class='inline'>
303
+ <p>Returns true if there is data in the receive buffer.</p>
304
+ </div></span>
305
+
306
+ </li>
136
307
 
137
- <main role="main" aria-labelledby="class-Ionian::Socket">
138
- <h1 id="class-Ionian::Socket" class="class">
139
- class Ionian::Socket
140
- </h1>
308
+
309
+ <li class="public ">
310
+ <span class="summary_signature">
311
+
312
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (Socket) <strong>initialize</strong>(existing_socket = nil, **kwargs) </a>
313
+
141
314
 
142
- <section class="description">
143
315
 
144
- <p>A convenient wrapper for TCP, UDP, and Unix client sockets.</p>
316
+ </span>
317
+
318
+
319
+ <span class="note title constructor">constructor</span>
320
+
321
+
322
+
323
+
324
+
325
+
326
+
327
+
328
+ <span class="summary_desc"><div class='inline'>
329
+ <p>Creates a new socket or wraps an existing socket.</p>
330
+ </div></span>
331
+
332
+ </li>
145
333
 
146
- </section>
334
+
335
+ <li class="public ">
336
+ <span class="summary_signature">
337
+
338
+ <a href="#persistent%3F-instance_method" title="#persistent? (instance method)">- (Boolean) <strong>persistent?</strong> </a>
339
+
147
340
 
341
+
342
+ </span>
343
+
344
+
345
+
148
346
 
149
347
 
150
348
 
151
- <section id="5Buntitled-5D" class="documentation-section">
349
+
350
+
351
+
352
+ <span class="summary_desc"><div class='inline'>
353
+ <p>Returns true if the socket remains open after writing data.</p>
354
+ </div></span>
355
+
356
+ </li>
357
+
358
+
359
+ <li class="public ">
360
+ <span class="summary_signature">
361
+
362
+ <a href="#puts-instance_method" title="#puts (instance method)">- (Object) <strong>puts</strong>(*string) </a>
152
363
 
153
364
 
154
365
 
366
+ </span>
367
+
368
+
369
+
370
+
371
+
372
+
373
+
374
+
375
+
376
+ <span class="summary_desc"><div class='inline'>
377
+ <p>Writes the given string(s) to the socket and appends a newline character to
378
+ any string not already ending with one.</p>
379
+ </div></span>
380
+
381
+ </li>
155
382
 
383
+
384
+ <li class="public ">
385
+ <span class="summary_signature">
386
+
387
+ <a href="#register_observer-instance_method" title="#register_observer (instance method)">- (Object) <strong>register_observer</strong>(&amp;block) </a>
156
388
 
157
389
 
158
390
 
159
- <section class="attribute-method-details" class="method-section">
160
- <header>
161
- <h3>Attributes</h3>
162
- </header>
391
+ (also: #on_match)
392
+
393
+ </span>
394
+
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+ <span class="summary_desc"><div class='inline'>
404
+ <p>Register a block to be called when #run_match receives matched data.</p>
405
+ </div></span>
406
+
407
+ </li>
163
408
 
164
409
 
165
- <div id="attribute-i-protocol" class="method-detail">
166
- <div class="method-heading attribute-method-heading">
167
- <span class="method-name">protocol</span><span
168
- class="attribute-access-type">[R]</span>
169
- </div>
170
-
171
- <div class="method-description">
172
-
173
- <p>Returns a symbol of the type of protocol this socket uses: :tcp, :udp,
174
- :unix</p>
175
-
176
- </div>
177
- </div>
178
-
179
- <div id="attribute-i-protocol-3F" class="method-detail">
180
- <div class="method-heading attribute-method-heading">
181
- <span class="method-name">protocol?</span><span
182
- class="attribute-access-type">[R]</span>
183
- </div>
184
-
185
- <div class="method-description">
186
-
187
- <p>Returns a symbol of the type of protocol this socket uses: :tcp, :udp,
188
- :unix</p>
189
-
190
- </div>
191
- </div>
192
-
193
- </section>
410
+ <li class="public ">
411
+ <span class="summary_signature">
412
+
413
+ <a href="#unregister_observer-instance_method" title="#unregister_observer (instance method)">- (Object) <strong>unregister_observer</strong>(&amp;block) </a>
194
414
 
195
415
 
196
416
 
197
- <section id="public-class-5Buntitled-5D-method-details" class="method-section">
198
- <header>
199
- <h3>Public Class Methods</h3>
200
- </header>
417
+ </span>
418
+
419
+
420
+
421
+
422
+
423
+
424
+
201
425
 
426
+
427
+ <span class="summary_desc"><div class='inline'>
428
+ <p>Unregister a block from being called when matched data is received.</p>
429
+ </div></span>
430
+
431
+ </li>
432
+
433
+
434
+ <li class="public ">
435
+ <span class="summary_signature">
436
+
437
+ <a href="#write-instance_method" title="#write (instance method)">- (Object) <strong>write</strong>(string) </a>
202
438
 
203
- <div id="method-c-new" class="method-detail ">
204
-
205
- <div class="method-heading">
206
- <span class="method-name">new</span><span
207
- class="method-args">(existing_socket = nil, **kwargs)</span>
208
-
209
- <span class="method-click-advice">click to toggle source</span>
210
-
211
- </div>
212
-
213
439
 
214
- <div class="method-description">
215
-
216
- <p>Creates a new socket or wraps an existing socket.</p>
440
+
441
+ (also: #&lt;&lt;)
442
+
443
+ </span>
444
+
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+ <span class="summary_desc"><div class='inline'>
454
+ <p>Writes the given string to the socket.</p>
455
+ </div></span>
456
+
457
+ </li>
458
+
459
+
460
+ </ul>
461
+
462
+
463
+ <div id="constructor_details" class="method_details_list">
464
+ <h2>Constructor Details</h2>
465
+
466
+ <div class="method_details first">
467
+ <h3 class="signature first" id="initialize-instance_method">
468
+
469
+ - (<tt><span class='object_link'><a href="" title="Ionian::Socket (class)">Socket</a></span></tt>) <strong>initialize</strong>(existing_socket = nil, **kwargs)
470
+
471
+
472
+
473
+
474
+
475
+ </h3><div class="docstring">
476
+ <div class="discussion">
477
+
478
+ <p>Creates a new socket or wraps an existing socket.</p>
217
479
 
218
480
  <p>Args:</p>
219
481
 
220
- <pre>host: IP or hostname to connect to.
482
+ <pre class="code ruby"><code class="ruby">host: IP or hostname to connect to.
221
483
  port: Connection&#39;s port number. Default is 23. Unused by :unix protocol.
222
484
  protocol: Type of socket to create. :tcp, :udp, :unix. Default is :tcp.
223
485
  :udp will be automatically selected for addresses in the multicast range.
@@ -230,574 +492,800 @@ reuse_addr: Set true to enable the SO_REUSEADDR flag. Allows local address reuse
230
492
  no_delay: Set true to enable the TCP_NODELAY flag. Disables Nagle algorithm.
231
493
  cork: Set true to enable the TCP_CORK flag. Buffers multiple writes
232
494
  into one segment.
233
- expression: Overrides the #read_match regular expression for received data.</pre>
234
-
235
-
495
+ expression: Overrides the #read_match regular expression for received data.</code></pre>
236
496
 
237
-
238
- <div class="method-source-code" id="new-source">
239
- <pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 25</span>
240
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">existing_socket</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-operator">**</span><span class="ruby-identifier">kwargs</span>)
241
- <span class="ruby-ivar">@socket</span> = <span class="ruby-identifier">existing_socket</span>
497
+
498
+ </div>
499
+ </div>
500
+ <div class="tags">
242
501
 
243
- <span class="ruby-ivar">@ionian_listeners</span> = []
502
+
503
+ </div><table class="source_code">
504
+ <tr>
505
+ <td>
506
+ <pre class="lines">
507
+
508
+
509
+ 25
510
+ 26
511
+ 27
512
+ 28
513
+ 29
514
+ 30
515
+ 31
516
+ 32
517
+ 33
518
+ 34
519
+ 35
520
+ 36
521
+ 37
522
+ 38
523
+ 39
524
+ 40
525
+ 41
526
+ 42
527
+ 43
528
+ 44
529
+ 45
530
+ 46
531
+ 47
532
+ 48
533
+ 49
534
+ 50
535
+ 51
536
+ 52
537
+ 53
538
+ 54
539
+ 55
540
+ 56
541
+ 57
542
+ 58
543
+ 59
544
+ 60
545
+ 61
546
+ 62
547
+ 63
548
+ 64
549
+ 65
550
+ 66
551
+ 67
552
+ 68
553
+ 69
554
+ 70
555
+ 71
556
+ 72
557
+ 73
558
+ 74
559
+ 75
560
+ 76
561
+ 77
562
+ 78
563
+ 79
564
+ 80
565
+ 81
566
+ 82
567
+ 83
568
+ 84</pre>
569
+ </td>
570
+ <td>
571
+ <pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 25</span>
572
+
573
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_existing_socket'>existing_socket</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='rparen'>)</span>
574
+ <span class='ivar'>@socket</span> <span class='op'>=</span> <span class='id identifier rubyid_existing_socket'>existing_socket</span>
244
575
 
245
- <span class="ruby-ivar">@expression</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:expression</span>, <span class="ruby-keyword">nil</span>
576
+ <span class='ivar'>@ionian_listeners</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
246
577
 
247
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">existing_socket</span>
248
- <span class="ruby-comment"># Convert existing socket.</span>
249
- <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">extend</span> <span class="ruby-constant">Ionian</span><span class="ruby-operator">::</span><span class="ruby-constant">Extension</span><span class="ruby-operator">::</span><span class="ruby-constant">IO</span>
250
- <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">extend</span> <span class="ruby-constant">Ionian</span><span class="ruby-operator">::</span><span class="ruby-constant">Extension</span><span class="ruby-operator">::</span><span class="ruby-constant">Socket</span>
251
-
252
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">existing_socket</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">UNIXSocket</span>
253
- <span class="ruby-ivar">@host</span> = <span class="ruby-identifier">existing_socket</span>.<span class="ruby-identifier">path</span>
254
- <span class="ruby-ivar">@port</span> = <span class="ruby-keyword">nil</span>
255
- <span class="ruby-keyword">else</span>
256
- <span class="ruby-ivar">@host</span> = <span class="ruby-identifier">existing_socket</span>.<span class="ruby-identifier">remote_address</span>.<span class="ruby-identifier">ip_address</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">existing_socket</span>
257
- <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">existing_socket</span>.<span class="ruby-identifier">remote_address</span>.<span class="ruby-identifier">ip_port</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">existing_socket</span>
258
- <span class="ruby-keyword">end</span>
578
+ <span class='ivar'>@expression</span> <span class='op'>=</span> <span class='id identifier rubyid_kwargs'>kwargs</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span> <span class='symbol'>:expression</span><span class='comma'>,</span> <span class='kw'>nil</span>
259
579
 
260
- <span class="ruby-keyword">if</span> <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">TCPSocket</span>
261
- <span class="ruby-ivar">@protocol</span> = <span class="ruby-value">:tcp</span>
262
- <span class="ruby-keyword">elsif</span> <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">UDPSocket</span>
263
- <span class="ruby-ivar">@protocol</span> = <span class="ruby-value">:udp</span>
264
- <span class="ruby-keyword">elsif</span> <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">UNIXSocket</span>
265
- <span class="ruby-ivar">@protocol</span> = <span class="ruby-value">:unix</span>
266
- <span class="ruby-keyword">end</span>
267
-
268
- <span class="ruby-ivar">@persistent</span> = <span class="ruby-keyword">true</span> <span class="ruby-comment"># Existing sockets are always persistent.</span>
269
-
270
- <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">expression</span> = <span class="ruby-ivar">@expression</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@expression</span>
580
+ <span class='kw'>if</span> <span class='id identifier rubyid_existing_socket'>existing_socket</span>
581
+ <span class='comment'># Convert existing socket.
582
+ </span> <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_extend'>extend</span> <span class='const'>Ionian</span><span class='op'>::</span><span class='const'>Extension</span><span class='op'>::</span><span class='const'>IO</span>
583
+ <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_extend'>extend</span> <span class='const'>Ionian</span><span class='op'>::</span><span class='const'>Extension</span><span class='op'>::</span><span class='const'>Socket</span>
271
584
 
272
- <span class="ruby-identifier">initialize_socket_methods</span>
273
- <span class="ruby-keyword">else</span>
274
- <span class="ruby-comment"># Initialize new socket.</span>
585
+ <span class='kw'>if</span> <span class='id identifier rubyid_existing_socket'>existing_socket</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>UNIXSocket</span>
586
+ <span class='ivar'>@host</span> <span class='op'>=</span> <span class='id identifier rubyid_existing_socket'>existing_socket</span><span class='period'>.</span><span class='id identifier rubyid_path'>path</span>
587
+ <span class='ivar'>@port</span> <span class='op'>=</span> <span class='kw'>nil</span>
588
+ <span class='kw'>else</span>
589
+ <span class='ivar'>@host</span> <span class='op'>=</span> <span class='id identifier rubyid_existing_socket'>existing_socket</span><span class='period'>.</span><span class='id identifier rubyid_remote_address'>remote_address</span><span class='period'>.</span><span class='id identifier rubyid_ip_address'>ip_address</span> <span class='kw'>if</span> <span class='id identifier rubyid_existing_socket'>existing_socket</span>
590
+ <span class='ivar'>@port</span> <span class='op'>=</span> <span class='id identifier rubyid_existing_socket'>existing_socket</span><span class='period'>.</span><span class='id identifier rubyid_remote_address'>remote_address</span><span class='period'>.</span><span class='id identifier rubyid_ip_port'>ip_port</span> <span class='kw'>if</span> <span class='id identifier rubyid_existing_socket'>existing_socket</span>
591
+ <span class='kw'>end</span>
592
+
593
+ <span class='kw'>if</span> <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>TCPSocket</span>
594
+ <span class='ivar'>@protocol</span> <span class='op'>=</span> <span class='symbol'>:tcp</span>
595
+ <span class='kw'>elsif</span> <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>UDPSocket</span>
596
+ <span class='ivar'>@protocol</span> <span class='op'>=</span> <span class='symbol'>:udp</span>
597
+ <span class='kw'>elsif</span> <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>UNIXSocket</span>
598
+ <span class='ivar'>@protocol</span> <span class='op'>=</span> <span class='symbol'>:unix</span>
599
+ <span class='kw'>end</span>
275
600
 
276
- <span class="ruby-comment"># TODO: Should be able to parse the port out of host.</span>
277
- <span class="ruby-comment"># :port should override this parsed value.</span>
601
+ <span class='ivar'>@persistent</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='comment'># Existing sockets are always persistent.
602
+ </span>
603
+ <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_expression'>expression</span> <span class='op'>=</span> <span class='ivar'>@expression</span> <span class='kw'>if</span> <span class='ivar'>@expression</span>
278
604
 
279
- <span class="ruby-ivar">@host</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:host</span>
280
- <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:port</span>, <span class="ruby-value">23</span>
281
- <span class="ruby-ivar">@bind_port</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:bind_port</span>, <span class="ruby-ivar">@port</span>
605
+ <span class='id identifier rubyid_initialize_socket_methods'>initialize_socket_methods</span>
606
+ <span class='kw'>else</span>
607
+ <span class='comment'># Initialize new socket.
608
+ </span>
609
+ <span class='comment'># TODO: Should be able to parse the port out of host.
610
+ </span> <span class='comment'># :port should override this parsed value.
611
+ </span>
612
+ <span class='ivar'>@host</span> <span class='op'>=</span> <span class='id identifier rubyid_kwargs'>kwargs</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span> <span class='symbol'>:host</span>
613
+ <span class='ivar'>@port</span> <span class='op'>=</span> <span class='id identifier rubyid_kwargs'>kwargs</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span> <span class='symbol'>:port</span><span class='comma'>,</span> <span class='int'>23</span>
614
+ <span class='ivar'>@bind_port</span> <span class='op'>=</span> <span class='id identifier rubyid_kwargs'>kwargs</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span> <span class='symbol'>:bind_port</span><span class='comma'>,</span> <span class='ivar'>@port</span>
282
615
 
283
- <span class="ruby-comment"># Automatically select UDP for the multicast range. Otherwise default to TCP.</span>
284
- <span class="ruby-identifier">default_protocol</span> = <span class="ruby-value">:tcp</span>
285
- <span class="ruby-identifier">default_protocol</span> = <span class="ruby-value">:udp</span> <span class="ruby-keyword">if</span> <span class="ruby-constant">Ionian</span><span class="ruby-operator">::</span><span class="ruby-constant">Extension</span><span class="ruby-operator">::</span><span class="ruby-constant">Socket</span>.<span class="ruby-identifier">multicast?</span> <span class="ruby-ivar">@host</span>
286
- <span class="ruby-identifier">default_protocol</span> = <span class="ruby-value">:unix</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@host</span>.<span class="ruby-identifier">start_with?</span> <span class="ruby-string">&#39;/&#39;</span>
616
+ <span class='comment'># Automatically select UDP for the multicast range. Otherwise default to TCP.
617
+ </span> <span class='id identifier rubyid_default_protocol'>default_protocol</span> <span class='op'>=</span> <span class='symbol'>:tcp</span>
618
+ <span class='id identifier rubyid_default_protocol'>default_protocol</span> <span class='op'>=</span> <span class='symbol'>:udp</span> <span class='kw'>if</span> <span class='const'>Ionian</span><span class='op'>::</span><span class='const'>Extension</span><span class='op'>::</span><span class='const'>Socket</span><span class='period'>.</span><span class='id identifier rubyid_multicast?'>multicast?</span> <span class='ivar'>@host</span>
619
+ <span class='id identifier rubyid_default_protocol'>default_protocol</span> <span class='op'>=</span> <span class='symbol'>:unix</span> <span class='kw'>if</span> <span class='ivar'>@host</span><span class='period'>.</span><span class='id identifier rubyid_start_with?'>start_with?</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>/</span><span class='tstring_end'>&#39;</span></span>
287
620
 
288
- <span class="ruby-ivar">@protocol</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:protocol</span>, <span class="ruby-identifier">default_protocol</span>
289
- <span class="ruby-ivar">@persistent</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:persistent</span>, <span class="ruby-keyword">true</span>
290
- <span class="ruby-ivar">@persistent</span> = <span class="ruby-keyword">true</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@protocol</span> <span class="ruby-operator">==</span> <span class="ruby-value">:udp</span>
621
+ <span class='ivar'>@protocol</span> <span class='op'>=</span> <span class='id identifier rubyid_kwargs'>kwargs</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span> <span class='symbol'>:protocol</span><span class='comma'>,</span> <span class='id identifier rubyid_default_protocol'>default_protocol</span>
622
+ <span class='ivar'>@persistent</span> <span class='op'>=</span> <span class='id identifier rubyid_kwargs'>kwargs</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span> <span class='symbol'>:persistent</span><span class='comma'>,</span> <span class='kw'>true</span>
623
+ <span class='ivar'>@persistent</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='kw'>if</span> <span class='ivar'>@protocol</span> <span class='op'>==</span> <span class='symbol'>:udp</span>
291
624
 
292
- <span class="ruby-ivar">@reuse_addr</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:reuse_addr</span>, <span class="ruby-keyword">false</span>
293
- <span class="ruby-ivar">@no_delay</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:no_delay</span>, <span class="ruby-keyword">false</span>
294
- <span class="ruby-ivar">@cork</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:cork</span>, <span class="ruby-keyword">false</span>
625
+ <span class='ivar'>@reuse_addr</span> <span class='op'>=</span> <span class='id identifier rubyid_kwargs'>kwargs</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span> <span class='symbol'>:reuse_addr</span><span class='comma'>,</span> <span class='kw'>false</span>
626
+ <span class='ivar'>@no_delay</span> <span class='op'>=</span> <span class='id identifier rubyid_kwargs'>kwargs</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span> <span class='symbol'>:no_delay</span><span class='comma'>,</span> <span class='kw'>false</span>
627
+ <span class='ivar'>@cork</span> <span class='op'>=</span> <span class='id identifier rubyid_kwargs'>kwargs</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span> <span class='symbol'>:cork</span><span class='comma'>,</span> <span class='kw'>false</span>
295
628
 
296
629
 
297
- <span class="ruby-identifier">create_socket</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@persistent</span>
298
- <span class="ruby-keyword">end</span>
299
- <span class="ruby-keyword">end</span></pre>
300
- </div>
301
-
302
- </div>
303
-
304
-
305
-
306
-
307
- </div>
308
-
309
-
310
- </section>
630
+ <span class='id identifier rubyid_create_socket'>create_socket</span> <span class='kw'>if</span> <span class='ivar'>@persistent</span>
631
+ <span class='kw'>end</span>
632
+ <span class='kw'>end</span></pre>
633
+ </td>
634
+ </tr>
635
+ </table>
636
+ </div>
311
637
 
312
- <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
313
- <header>
314
- <h3>Public Instance Methods</h3>
315
- </header>
638
+ </div>
316
639
 
640
+ <div id="instance_attr_details" class="attr_details">
641
+ <h2>Instance Attribute Details</h2>
317
642
 
318
- <div id="method-i-3C-3C" class="method-detail method-alias">
319
-
320
- <div class="method-heading">
321
- <span class="method-name">&lt;&lt;</span><span
322
- class="method-args">(string)</span>
323
-
324
- </div>
325
-
643
+
644
+ <span id=""></span>
645
+ <div class="method_details first">
646
+ <h3 class="signature first" id="protocol-instance_method">
647
+
648
+ - (<tt>Object</tt>) <strong>protocol</strong> <span class="extras">(readonly)</span>
649
+
326
650
 
327
- <div class="method-description">
328
-
329
-
330
-
331
-
651
+
652
+ <span class="aliases">Also known as:
653
+ <span class="names"><span id='protocol?-instance_method'>protocol?</span></span>
654
+ </span>
655
+
332
656
 
333
-
334
- </div>
657
+
658
+ </h3><div class="docstring">
659
+ <div class="discussion">
660
+
661
+ <p>Returns a symbol of the type of protocol this socket uses: :tcp, :udp,
662
+ :unix</p>
335
663
 
336
-
337
664
 
338
-
339
- <div class="aliases">
340
- Alias for: <a href="Socket.html#method-i-write">write</a>
341
- </div>
342
-
343
- </div>
665
+ </div>
666
+ </div>
667
+ <div class="tags">
668
+
344
669
 
670
+ </div><table class="source_code">
671
+ <tr>
672
+ <td>
673
+ <pre class="lines">
674
+
675
+
676
+ 88
677
+ 89
678
+ 90</pre>
679
+ </td>
680
+ <td>
681
+ <pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 88</span>
682
+
683
+ <span class='kw'>def</span> <span class='id identifier rubyid_protocol'>protocol</span>
684
+ <span class='ivar'>@protocol</span>
685
+ <span class='kw'>end</span></pre>
686
+ </td>
687
+ </tr>
688
+ </table>
689
+ </div>
345
690
 
346
- <div id="method-i-closed-3F" class="method-detail ">
347
-
348
- <div class="method-heading">
349
- <span class="method-name">closed?</span><span
350
- class="method-args">()</span>
351
-
352
- <span class="method-click-advice">click to toggle source</span>
353
-
354
- </div>
355
-
691
+ </div>
356
692
 
357
- <div class="method-description">
358
-
359
- <p>Returns true if the socket is closed.</p>
360
-
361
-
362
693
 
363
-
364
- <div class="method-source-code" id="closed-3F-source">
365
- <pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 159</span>
366
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">closed?</span>
367
- <span class="ruby-keyword">return</span> <span class="ruby-keyword">true</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@socket</span>
368
- <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">closed?</span>
369
- <span class="ruby-keyword">end</span></pre>
370
- </div>
371
-
372
- </div>
694
+ <div id="instance_method_details" class="method_details_list">
695
+ <h2>Instance Method Details</h2>
373
696
 
374
-
697
+
698
+ <div class="method_details first">
699
+ <h3 class="signature first" id="closed?-instance_method">
700
+
701
+ - (<tt>Boolean</tt>) <strong>closed?</strong>
702
+
375
703
 
376
-
377
- </div>
704
+
378
705
 
706
+
707
+ </h3><div class="docstring">
708
+ <div class="discussion">
379
709
 
380
- <div id="method-i-cmd" class="method-detail ">
381
-
382
- <div class="method-heading">
383
- <span class="method-name">cmd</span><span
384
- class="method-args">(string, **kwargs) { |match| ... }</span>
385
-
386
- <span class="method-click-advice">click to toggle source</span>
387
-
388
- </div>
389
-
710
+ <p>Returns true if the socket is closed.</p>
390
711
 
391
- <div class="method-description">
392
-
393
- <p>Send a command (data) to the socket. Returns an array of received matches.
394
- Block yields received match. See <a
395
- href="Extension/IO.html#method-i-read_match">Ionian::Extension::IO#read_match</a>.</p>
396
-
397
-
398
712
 
399
-
400
- <div class="method-source-code" id="cmd-source">
401
- <pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 111</span>
402
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">cmd</span>(<span class="ruby-identifier">string</span>, <span class="ruby-operator">**</span><span class="ruby-identifier">kwargs</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
403
- <span class="ruby-identifier">create_socket</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@persistent</span>
713
+ </div>
714
+ </div>
715
+ <div class="tags">
404
716
 
405
- <span class="ruby-keyword">if</span> <span class="ruby-ivar">@protocol</span> <span class="ruby-operator">==</span> <span class="ruby-value">:udp</span>
406
- <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">send</span> <span class="ruby-identifier">string</span>, <span class="ruby-value">0</span>
407
- <span class="ruby-keyword">else</span>
408
- <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">string</span>
409
- <span class="ruby-keyword">end</span>
717
+ <p class="tag_title">Returns:</p>
718
+ <ul class="return">
410
719
 
411
- <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">flush</span>
720
+ <li>
721
+
722
+
723
+ <span class='type'>(<tt>Boolean</tt>)</span>
724
+
725
+
726
+
727
+ </li>
728
+
729
+ </ul>
730
+
731
+ </div><table class="source_code">
732
+ <tr>
733
+ <td>
734
+ <pre class="lines">
735
+
736
+
737
+ 159
738
+ 160
739
+ 161
740
+ 162</pre>
741
+ </td>
742
+ <td>
743
+ <pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 159</span>
744
+
745
+ <span class='kw'>def</span> <span class='id identifier rubyid_closed?'>closed?</span>
746
+ <span class='kw'>return</span> <span class='kw'>true</span> <span class='kw'>unless</span> <span class='ivar'>@socket</span>
747
+ <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_closed?'>closed?</span>
748
+ <span class='kw'>end</span></pre>
749
+ </td>
750
+ </tr>
751
+ </table>
752
+ </div>
753
+
754
+ <div class="method_details ">
755
+ <h3 class="signature " id="cmd-instance_method">
412
756
 
413
- <span class="ruby-identifier">matches</span> = <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">read_match</span>(<span class="ruby-identifier">kwargs</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span> <span class="ruby-keyword">yield</span> <span class="ruby-identifier">match</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>}
414
- <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@persistent</span>
757
+ - (<tt>Object</tt>) <strong>cmd</strong>(string, **kwargs, &amp;block)
415
758
 
416
- <span class="ruby-identifier">matches</span>
417
- <span class="ruby-keyword">end</span></pre>
418
- </div>
419
-
420
- </div>
421
759
 
422
-
423
-
424
-
425
- </div>
760
+
426
761
 
762
+
763
+ </h3><div class="docstring">
764
+ <div class="discussion">
427
765
 
428
- <div id="method-i-expression" class="method-detail ">
429
-
430
- <div class="method-heading">
431
- <span class="method-name">expression</span><span
432
- class="method-args">()</span>
433
-
434
- <span class="method-click-advice">click to toggle source</span>
435
-
436
- </div>
437
-
766
+ <p>Send a command (data) to the socket. Returns an array of received matches.
767
+ Block yields received match. See Ionian::Extension::IO#read_match.</p>
438
768
 
439
- <div class="method-description">
440
-
441
- <p>Returns the regular expression used to match incoming data.</p>
442
-
443
-
444
769
 
445
-
446
- <div class="method-source-code" id="expression-source">
447
- <pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 92</span>
448
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">expression</span>
449
- <span class="ruby-ivar">@expression</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">expression</span>
450
- <span class="ruby-keyword">end</span></pre>
451
- </div>
452
-
453
- </div>
770
+ </div>
771
+ </div>
772
+ <div class="tags">
773
+
454
774
 
455
-
775
+ </div><table class="source_code">
776
+ <tr>
777
+ <td>
778
+ <pre class="lines">
779
+
780
+
781
+ 111
782
+ 112
783
+ 113
784
+ 114
785
+ 115
786
+ 116
787
+ 117
788
+ 118
789
+ 119
790
+ 120
791
+ 121
792
+ 122
793
+ 123
794
+ 124
795
+ 125
796
+ 126</pre>
797
+ </td>
798
+ <td>
799
+ <pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 111</span>
800
+
801
+ <span class='kw'>def</span> <span class='id identifier rubyid_cmd'>cmd</span><span class='lparen'>(</span><span class='id identifier rubyid_string'>string</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
802
+ <span class='id identifier rubyid_create_socket'>create_socket</span> <span class='kw'>unless</span> <span class='ivar'>@persistent</span>
803
+
804
+ <span class='kw'>if</span> <span class='ivar'>@protocol</span> <span class='op'>==</span> <span class='symbol'>:udp</span>
805
+ <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span> <span class='id identifier rubyid_string'>string</span><span class='comma'>,</span> <span class='int'>0</span>
806
+ <span class='kw'>else</span>
807
+ <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span> <span class='id identifier rubyid_string'>string</span>
808
+ <span class='kw'>end</span>
809
+
810
+ <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_flush'>flush</span>
811
+
812
+ <span class='id identifier rubyid_matches'>matches</span> <span class='op'>=</span> <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_read_match'>read_match</span><span class='lparen'>(</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_match'>match</span><span class='op'>|</span> <span class='kw'>yield</span> <span class='id identifier rubyid_match'>match</span> <span class='kw'>if</span> <span class='id identifier rubyid_block_given?'>block_given?</span><span class='rbrace'>}</span>
813
+ <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span> <span class='kw'>unless</span> <span class='ivar'>@persistent</span>
814
+
815
+ <span class='id identifier rubyid_matches'>matches</span>
816
+ <span class='kw'>end</span></pre>
817
+ </td>
818
+ </tr>
819
+ </table>
820
+ </div>
821
+
822
+ <div class="method_details ">
823
+ <h3 class="signature " id="expression-instance_method">
824
+
825
+ - (<tt>Object</tt>) <strong>expression</strong>
826
+
456
827
 
457
-
458
- </div>
828
+
459
829
 
830
+
831
+ </h3><div class="docstring">
832
+ <div class="discussion">
460
833
 
461
- <div id="method-i-expression-3D" class="method-detail ">
462
-
463
- <div class="method-heading">
464
- <span class="method-name">expression=</span><span
465
- class="method-args">(exp)</span>
466
-
467
- <span class="method-click-advice">click to toggle source</span>
468
-
469
- </div>
470
-
834
+ <p>Returns the regular expression used to match incoming data.</p>
471
835
 
472
- <div class="method-description">
473
-
474
- <p>Set the regular expression used to match incoming data.</p>
475
-
476
-
477
836
 
478
-
479
- <div class="method-source-code" id="expression-3D-source">
480
- <pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 97</span>
481
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">expression=</span>(<span class="ruby-identifier">exp</span>)
482
- <span class="ruby-ivar">@expression</span> = <span class="ruby-identifier">exp</span>
483
- <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">expression</span> = <span class="ruby-identifier">exp</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@socket</span>
484
- <span class="ruby-keyword">end</span></pre>
485
- </div>
486
-
487
- </div>
837
+ </div>
838
+ </div>
839
+ <div class="tags">
840
+
488
841
 
489
-
842
+ </div><table class="source_code">
843
+ <tr>
844
+ <td>
845
+ <pre class="lines">
846
+
847
+
848
+ 92
849
+ 93
850
+ 94</pre>
851
+ </td>
852
+ <td>
853
+ <pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 92</span>
854
+
855
+ <span class='kw'>def</span> <span class='id identifier rubyid_expression'>expression</span>
856
+ <span class='ivar'>@expression</span> <span class='op'>||</span> <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_expression'>expression</span>
857
+ <span class='kw'>end</span></pre>
858
+ </td>
859
+ </tr>
860
+ </table>
861
+ </div>
862
+
863
+ <div class="method_details ">
864
+ <h3 class="signature " id="expression=-instance_method">
865
+
866
+ - (<tt>Object</tt>) <strong>expression=</strong>(exp)
867
+
490
868
 
491
-
492
- </div>
869
+
493
870
 
871
+
872
+ </h3><div class="docstring">
873
+ <div class="discussion">
494
874
 
495
- <div id="method-i-flush" class="method-detail ">
496
-
497
- <div class="method-heading">
498
- <span class="method-name">flush</span><span
499
- class="method-args">()</span>
500
-
501
- <span class="method-click-advice">click to toggle source</span>
502
-
503
- </div>
504
-
875
+ <p>Set the regular expression used to match incoming data.</p>
505
876
 
506
- <div class="method-description">
507
-
508
- <p>Flushes buffered data to the operating system. This method has no effect on
509
- non-persistent sockets.</p>
510
-
511
-
512
877
 
513
-
514
- <div class="method-source-code" id="flush-source">
515
- <pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 166</span>
516
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">flush</span>
517
- <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">flush</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@persistent</span>
518
- <span class="ruby-keyword">end</span></pre>
519
- </div>
520
-
521
- </div>
878
+ </div>
879
+ </div>
880
+ <div class="tags">
881
+
522
882
 
523
-
883
+ </div><table class="source_code">
884
+ <tr>
885
+ <td>
886
+ <pre class="lines">
887
+
888
+
889
+ 97
890
+ 98
891
+ 99
892
+ 100</pre>
893
+ </td>
894
+ <td>
895
+ <pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 97</span>
896
+
897
+ <span class='kw'>def</span> <span class='id identifier rubyid_expression='>expression=</span><span class='lparen'>(</span><span class='id identifier rubyid_exp'>exp</span><span class='rparen'>)</span>
898
+ <span class='ivar'>@expression</span> <span class='op'>=</span> <span class='id identifier rubyid_exp'>exp</span>
899
+ <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_expression'>expression</span> <span class='op'>=</span> <span class='id identifier rubyid_exp'>exp</span> <span class='kw'>if</span> <span class='ivar'>@socket</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="flush-instance_method">
908
+
909
+ - (<tt>Object</tt>) <strong>flush</strong>
910
+
524
911
 
525
-
526
- </div>
912
+
527
913
 
914
+
915
+ </h3><div class="docstring">
916
+ <div class="discussion">
528
917
 
529
- <div id="method-i-has_data-3F" class="method-detail ">
530
-
531
- <div class="method-heading">
532
- <span class="method-name">has_data?</span><span
533
- class="method-args">(**kwargs)</span>
534
-
535
- <span class="method-click-advice">click to toggle source</span>
536
-
537
- </div>
538
-
539
-
540
- <div class="method-description">
541
-
542
- <p>Returns true if there is data in the receive buffer. Args:</p>
918
+ <p>Flushes buffered data to the operating system. This method has no effect on
919
+ non-persistent sockets.</p>
543
920
 
544
- <pre>Timeout: Number of seconds to wait for data until
545
- giving up. Set to nil for blocking.</pre>
546
-
547
-
548
921
 
549
-
550
- <div class="method-source-code" id="has_data-3F-source">
551
- <pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 153</span>
552
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">has_data?</span>(<span class="ruby-operator">**</span><span class="ruby-identifier">kwargs</span>)
553
- <span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@socket</span>
554
- <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">has_data?</span> <span class="ruby-identifier">kwargs</span>
555
- <span class="ruby-keyword">end</span></pre>
556
- </div>
557
-
558
- </div>
922
+ </div>
923
+ </div>
924
+ <div class="tags">
925
+
559
926
 
560
-
927
+ </div><table class="source_code">
928
+ <tr>
929
+ <td>
930
+ <pre class="lines">
931
+
932
+
933
+ 166
934
+ 167
935
+ 168</pre>
936
+ </td>
937
+ <td>
938
+ <pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 166</span>
939
+
940
+ <span class='kw'>def</span> <span class='id identifier rubyid_flush'>flush</span>
941
+ <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_flush'>flush</span> <span class='kw'>if</span> <span class='ivar'>@persistent</span>
942
+ <span class='kw'>end</span></pre>
943
+ </td>
944
+ </tr>
945
+ </table>
946
+ </div>
947
+
948
+ <div class="method_details ">
949
+ <h3 class="signature " id="has_data?-instance_method">
950
+
951
+ - (<tt>Boolean</tt>) <strong>has_data?</strong>(**kwargs)
952
+
561
953
 
562
-
563
- </div>
954
+
564
955
 
956
+
957
+ </h3><div class="docstring">
958
+ <div class="discussion">
565
959
 
566
- <div id="method-i-on_match" class="method-detail method-alias">
567
-
568
- <div class="method-heading">
569
- <span class="method-name">on_match</span><span
570
- class="method-args">(&block)</span>
571
-
572
- </div>
573
-
960
+ <p>Returns true if there is data in the receive buffer. Args:</p>
574
961
 
575
- <div class="method-description">
576
-
577
-
578
-
579
-
962
+ <pre class="code ruby"><code class="ruby">Timeout: Number of seconds to wait for data until
963
+ giving up. Set to nil for blocking.</code></pre>
580
964
 
581
-
582
- </div>
583
965
 
584
-
966
+ </div>
967
+ </div>
968
+ <div class="tags">
969
+
970
+ <p class="tag_title">Returns:</p>
971
+ <ul class="return">
972
+
973
+ <li>
974
+
975
+
976
+ <span class='type'>(<tt>Boolean</tt>)</span>
977
+
978
+
979
+
980
+ </li>
981
+
982
+ </ul>
983
+
984
+ </div><table class="source_code">
985
+ <tr>
986
+ <td>
987
+ <pre class="lines">
988
+
989
+
990
+ 153
991
+ 154
992
+ 155
993
+ 156</pre>
994
+ </td>
995
+ <td>
996
+ <pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 153</span>
997
+
998
+ <span class='kw'>def</span> <span class='id identifier rubyid_has_data?'>has_data?</span><span class='lparen'>(</span><span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='rparen'>)</span>
999
+ <span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>unless</span> <span class='ivar'>@socket</span>
1000
+ <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_has_data?'>has_data?</span> <span class='id identifier rubyid_kwargs'>kwargs</span>
1001
+ <span class='kw'>end</span></pre>
1002
+ </td>
1003
+ </tr>
1004
+ </table>
1005
+ </div>
1006
+
1007
+ <div class="method_details ">
1008
+ <h3 class="signature " id="persistent?-instance_method">
1009
+
1010
+ - (<tt>Boolean</tt>) <strong>persistent?</strong>
1011
+
585
1012
 
586
-
587
- <div class="aliases">
588
- Alias for: <a href="Socket.html#method-i-register_observer">register_observer</a>
589
- </div>
590
-
591
- </div>
1013
+
592
1014
 
1015
+
1016
+ </h3><div class="docstring">
1017
+ <div class="discussion">
593
1018
 
594
- <div id="method-i-persistent-3F" class="method-detail ">
595
-
596
- <div class="method-heading">
597
- <span class="method-name">persistent?</span><span
598
- class="method-args">()</span>
599
-
600
- <span class="method-click-advice">click to toggle source</span>
601
-
602
- </div>
603
-
1019
+ <p>Returns true if the socket remains open after writing data.</p>
604
1020
 
605
- <div class="method-description">
606
-
607
- <p>Returns true if the socket remains open after writing data.</p>
608
-
609
-
610
1021
 
611
-
612
- <div class="method-source-code" id="persistent-3F-source">
613
- <pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 103</span>
614
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">persistent?</span>
615
- <span class="ruby-ivar">@persistent</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@persistent</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">false</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">true</span>
616
- <span class="ruby-keyword">end</span></pre>
617
- </div>
618
-
619
- </div>
620
-
621
-
1022
+ </div>
1023
+ </div>
1024
+ <div class="tags">
1025
+
1026
+ <p class="tag_title">Returns:</p>
1027
+ <ul class="return">
1028
+
1029
+ <li>
1030
+
1031
+
1032
+ <span class='type'>(<tt>Boolean</tt>)</span>
1033
+
1034
+
1035
+
1036
+ </li>
1037
+
1038
+ </ul>
1039
+
1040
+ </div><table class="source_code">
1041
+ <tr>
1042
+ <td>
1043
+ <pre class="lines">
1044
+
1045
+
1046
+ 103
1047
+ 104
1048
+ 105</pre>
1049
+ </td>
1050
+ <td>
1051
+ <pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 103</span>
1052
+
1053
+ <span class='kw'>def</span> <span class='id identifier rubyid_persistent?'>persistent?</span>
1054
+ <span class='ivar'>@persistent</span> <span class='op'>==</span> <span class='kw'>false</span> <span class='op'>||</span> <span class='ivar'>@persistent</span> <span class='op'>==</span> <span class='kw'>nil</span> <span class='op'>?</span> <span class='kw'>false</span> <span class='op'>:</span> <span class='kw'>true</span>
1055
+ <span class='kw'>end</span></pre>
1056
+ </td>
1057
+ </tr>
1058
+ </table>
1059
+ </div>
1060
+
1061
+ <div class="method_details ">
1062
+ <h3 class="signature " id="puts-instance_method">
1063
+
1064
+ - (<tt>Object</tt>) <strong>puts</strong>(*string)
1065
+
622
1066
 
623
-
624
- </div>
1067
+
625
1068
 
1069
+
1070
+ </h3><div class="docstring">
1071
+ <div class="discussion">
626
1072
 
627
- <div id="method-i-puts" class="method-detail ">
628
-
629
- <div class="method-heading">
630
- <span class="method-name">puts</span><span
631
- class="method-args">(*string)</span>
632
-
633
- <span class="method-click-advice">click to toggle source</span>
634
-
635
- </div>
636
-
637
-
638
- <div class="method-description">
639
-
640
- <p>Writes the given string(s) to the socket and appends a newline character to
1073
+ <p>Writes the given string(s) to the socket and appends a newline character to
641
1074
  any string not already ending with one.</p>
642
-
643
-
644
1075
 
645
-
646
- <div class="method-source-code" id="puts-source">
647
- <pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 172</span>
648
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">puts</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">string</span>)
649
- <span class="ruby-keyword">self</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">string</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">chomp</span>}.<span class="ruby-identifier">join</span>(<span class="ruby-string">&quot;\n&quot;</span>) <span class="ruby-operator">+</span> <span class="ruby-string">&quot;\n&quot;</span>
650
- <span class="ruby-keyword">end</span></pre>
651
- </div>
652
-
653
- </div>
654
1076
 
655
-
656
-
657
-
658
- </div>
1077
+ </div>
1078
+ </div>
1079
+ <div class="tags">
1080
+
659
1081
 
1082
+ </div><table class="source_code">
1083
+ <tr>
1084
+ <td>
1085
+ <pre class="lines">
1086
+
1087
+
1088
+ 172
1089
+ 173
1090
+ 174</pre>
1091
+ </td>
1092
+ <td>
1093
+ <pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 172</span>
1094
+
1095
+ <span class='kw'>def</span> <span class='id identifier rubyid_puts'>puts</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_string'>string</span><span class='rparen'>)</span>
1096
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span> <span class='id identifier rubyid_string'>string</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_s'>s</span><span class='op'>|</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_chomp'>chomp</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span>
1097
+ <span class='kw'>end</span></pre>
1098
+ </td>
1099
+ </tr>
1100
+ </table>
1101
+ </div>
660
1102
 
661
- <div id="method-i-register_observer" class="method-detail ">
662
-
663
- <div class="method-heading">
664
- <span class="method-name">register_observer</span><span
665
- class="method-args">(&block)</span>
666
-
667
- <span class="method-click-advice">click to toggle source</span>
668
-
669
- </div>
670
-
1103
+ <div class="method_details ">
1104
+ <h3 class="signature " id="register_observer-instance_method">
1105
+
1106
+ - (<tt>Object</tt>) <strong>register_observer</strong>(&amp;block)
1107
+
671
1108
 
672
- <div class="method-description">
673
-
674
- <p>Register a block to be called when run_match receives matched data. Method
675
- callbacks can be registered with &amp;object.method(:method). Returns a
676
- reference to the given block. block = ionian_socket.register_observer {…}</p>
677
-
678
-
1109
+
1110
+ <span class="aliases">Also known as:
1111
+ <span class="names"><span id='on_match-instance_method'>on_match</span></span>
1112
+ </span>
1113
+
679
1114
 
680
-
681
- <div class="method-source-code" id="register_observer-source">
682
- <pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 132</span>
683
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">register_observer</span> <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>
684
- <span class="ruby-ivar">@ionian_listeners</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">block</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@ionian_listeners</span>.<span class="ruby-identifier">include?</span> <span class="ruby-identifier">block</span>
685
- <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">register_observer</span> <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@socket</span>
686
- <span class="ruby-identifier">block</span>
687
- <span class="ruby-keyword">end</span></pre>
688
- </div>
689
-
690
- </div>
1115
+
1116
+ </h3><div class="docstring">
1117
+ <div class="discussion">
1118
+
1119
+ <p>Register a block to be called when #run_match receives matched data. Method
1120
+ callbacks can be registered with &amp;object.method(:method). Returns a
1121
+ reference to the given block. block = ionian_socket.register_observer { … }</p>
691
1122
 
692
-
693
- <div class="aliases">
694
- Also aliased as: <a href="Socket.html#method-i-on_match">on_match</a>
695
- </div>
696
-
697
1123
 
698
-
699
- </div>
1124
+ </div>
1125
+ </div>
1126
+ <div class="tags">
1127
+
700
1128
 
1129
+ </div><table class="source_code">
1130
+ <tr>
1131
+ <td>
1132
+ <pre class="lines">
1133
+
1134
+
1135
+ 132
1136
+ 133
1137
+ 134
1138
+ 135
1139
+ 136</pre>
1140
+ </td>
1141
+ <td>
1142
+ <pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 132</span>
1143
+
1144
+ <span class='kw'>def</span> <span class='id identifier rubyid_register_observer'>register_observer</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span>
1145
+ <span class='ivar'>@ionian_listeners</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_block'>block</span> <span class='kw'>unless</span> <span class='ivar'>@ionian_listeners</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='id identifier rubyid_block'>block</span>
1146
+ <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_register_observer'>register_observer</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span> <span class='kw'>if</span> <span class='ivar'>@socket</span>
1147
+ <span class='id identifier rubyid_block'>block</span>
1148
+ <span class='kw'>end</span></pre>
1149
+ </td>
1150
+ </tr>
1151
+ </table>
1152
+ </div>
701
1153
 
702
- <div id="method-i-unregister_observer" class="method-detail ">
703
-
704
- <div class="method-heading">
705
- <span class="method-name">unregister_observer</span><span
706
- class="method-args">(&block)</span>
707
-
708
- <span class="method-click-advice">click to toggle source</span>
709
-
710
- </div>
711
-
1154
+ <div class="method_details ">
1155
+ <h3 class="signature " id="unregister_observer-instance_method">
1156
+
1157
+ - (<tt>Object</tt>) <strong>unregister_observer</strong>(&amp;block)
1158
+
712
1159
 
713
- <div class="method-description">
714
-
715
- <p>Unregister a block from being called when matched data is received.</p>
716
-
717
-
1160
+
718
1161
 
719
-
720
- <div class="method-source-code" id="unregister_observer-source">
721
- <pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 141</span>
722
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">unregister_observer</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
723
- <span class="ruby-ivar">@ionian_listeners</span>.<span class="ruby-identifier">delete_if</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span> <span class="ruby-identifier">o</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">block</span>}
724
- <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">unregister_observer</span> <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@socket</span>
725
- <span class="ruby-identifier">block</span>
726
- <span class="ruby-keyword">end</span></pre>
727
- </div>
728
-
729
- </div>
1162
+
1163
+ </h3><div class="docstring">
1164
+ <div class="discussion">
1165
+
1166
+ <p>Unregister a block from being called when matched data is received.</p>
730
1167
 
731
-
732
1168
 
733
-
734
- </div>
1169
+ </div>
1170
+ </div>
1171
+ <div class="tags">
1172
+
735
1173
 
1174
+ </div><table class="source_code">
1175
+ <tr>
1176
+ <td>
1177
+ <pre class="lines">
1178
+
1179
+
1180
+ 141
1181
+ 142
1182
+ 143
1183
+ 144
1184
+ 145</pre>
1185
+ </td>
1186
+ <td>
1187
+ <pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 141</span>
1188
+
1189
+ <span class='kw'>def</span> <span class='id identifier rubyid_unregister_observer'>unregister_observer</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1190
+ <span class='ivar'>@ionian_listeners</span><span class='period'>.</span><span class='id identifier rubyid_delete_if'>delete_if</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_o'>o</span><span class='op'>|</span> <span class='id identifier rubyid_o'>o</span> <span class='op'>==</span> <span class='id identifier rubyid_block'>block</span><span class='rbrace'>}</span>
1191
+ <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_unregister_observer'>unregister_observer</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span> <span class='kw'>if</span> <span class='ivar'>@socket</span>
1192
+ <span class='id identifier rubyid_block'>block</span>
1193
+ <span class='kw'>end</span></pre>
1194
+ </td>
1195
+ </tr>
1196
+ </table>
1197
+ </div>
736
1198
 
737
- <div id="method-i-write" class="method-detail ">
738
-
739
- <div class="method-heading">
740
- <span class="method-name">write</span><span
741
- class="method-args">(string)</span>
742
-
743
- <span class="method-click-advice">click to toggle source</span>
744
-
745
- </div>
746
-
1199
+ <div class="method_details ">
1200
+ <h3 class="signature " id="write-instance_method">
1201
+
1202
+ - (<tt>Object</tt>) <strong>write</strong>(string)
1203
+
747
1204
 
748
- <div class="method-description">
749
-
750
- <p>Writes the given string to the socket. Returns the number of bytes written.</p>
751
-
752
-
1205
+
1206
+ <span class="aliases">Also known as:
1207
+ <span class="names"><span id='<<-instance_method'>&lt;&lt;</span></span>
1208
+ </span>
1209
+
753
1210
 
754
-
755
- <div class="method-source-code" id="write-source">
756
- <pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 178</span>
757
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">write</span>(<span class="ruby-identifier">string</span>)
758
- <span class="ruby-identifier">create_socket</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@persistent</span>
759
-
760
- <span class="ruby-identifier">num_bytes</span> = <span class="ruby-value">0</span>
761
-
762
- <span class="ruby-keyword">if</span> <span class="ruby-ivar">@protocol</span> <span class="ruby-operator">==</span> <span class="ruby-value">:udp</span>
763
- <span class="ruby-identifier">num_bytes</span> = <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">send</span> <span class="ruby-identifier">string</span>, <span class="ruby-value">0</span>
764
- <span class="ruby-keyword">else</span>
765
- <span class="ruby-identifier">num_bytes</span> = <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">string</span>
766
- <span class="ruby-keyword">end</span>
767
-
768
- <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@persistent</span>
769
- <span class="ruby-comment"># Read in data to prevent RST packets.</span>
770
- <span class="ruby-identifier">has_data</span> = <span class="ruby-operator">::</span><span class="ruby-constant">IO</span>.<span class="ruby-identifier">select</span> [<span class="ruby-ivar">@socket</span>], <span class="ruby-keyword">nil</span>, <span class="ruby-keyword">nil</span>, <span class="ruby-value">0</span>
771
- <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">readpartial</span> <span class="ruby-value">0xFFFF</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">has_data</span>
772
-
773
- <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">close</span>
774
- <span class="ruby-keyword">end</span>
775
-
776
- <span class="ruby-identifier">num_bytes</span>
777
- <span class="ruby-keyword">end</span></pre>
778
- </div>
779
-
780
- </div>
1211
+
1212
+ </h3><div class="docstring">
1213
+ <div class="discussion">
1214
+
1215
+ <p>Writes the given string to the socket. Returns the number of bytes written.</p>
781
1216
 
782
-
783
- <div class="aliases">
784
- Also aliased as: <a href="Socket.html#method-i-3C-3C">&lt;&lt;</a>
785
- </div>
786
-
787
1217
 
788
-
789
- </div>
1218
+ </div>
1219
+ </div>
1220
+ <div class="tags">
1221
+
790
1222
 
1223
+ </div><table class="source_code">
1224
+ <tr>
1225
+ <td>
1226
+ <pre class="lines">
1227
+
1228
+
1229
+ 178
1230
+ 179
1231
+ 180
1232
+ 181
1233
+ 182
1234
+ 183
1235
+ 184
1236
+ 185
1237
+ 186
1238
+ 187
1239
+ 188
1240
+ 189
1241
+ 190
1242
+ 191
1243
+ 192
1244
+ 193
1245
+ 194
1246
+ 195
1247
+ 196
1248
+ 197
1249
+ 198</pre>
1250
+ </td>
1251
+ <td>
1252
+ <pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 178</span>
1253
+
1254
+ <span class='kw'>def</span> <span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='id identifier rubyid_string'>string</span><span class='rparen'>)</span>
1255
+ <span class='id identifier rubyid_create_socket'>create_socket</span> <span class='kw'>unless</span> <span class='ivar'>@persistent</span>
1256
+
1257
+ <span class='id identifier rubyid_num_bytes'>num_bytes</span> <span class='op'>=</span> <span class='int'>0</span>
1258
+
1259
+ <span class='kw'>if</span> <span class='ivar'>@protocol</span> <span class='op'>==</span> <span class='symbol'>:udp</span>
1260
+ <span class='id identifier rubyid_num_bytes'>num_bytes</span> <span class='op'>=</span> <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span> <span class='id identifier rubyid_string'>string</span><span class='comma'>,</span> <span class='int'>0</span>
1261
+ <span class='kw'>else</span>
1262
+ <span class='id identifier rubyid_num_bytes'>num_bytes</span> <span class='op'>=</span> <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span> <span class='id identifier rubyid_string'>string</span>
1263
+ <span class='kw'>end</span>
1264
+
1265
+ <span class='kw'>unless</span> <span class='ivar'>@persistent</span>
1266
+ <span class='comment'># Read in data to prevent RST packets.
1267
+ </span> <span class='id identifier rubyid_has_data'>has_data</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>IO</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbracket'>[</span><span class='ivar'>@socket</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='int'>0</span>
1268
+ <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_readpartial'>readpartial</span> <span class='int'>0xFFFF</span> <span class='kw'>if</span> <span class='id identifier rubyid_has_data'>has_data</span>
791
1269
 
792
- </section>
1270
+ <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span>
1271
+ <span class='kw'>end</span>
793
1272
 
794
- </section>
795
- </main>
1273
+ <span class='id identifier rubyid_num_bytes'>num_bytes</span>
1274
+ <span class='kw'>end</span></pre>
1275
+ </td>
1276
+ </tr>
1277
+ </table>
1278
+ </div>
1279
+
1280
+ </div>
796
1281
 
1282
+ </div>
797
1283
 
798
- <footer id="validator-badges" role="contentinfo">
799
- <p><a href="http://validator.w3.org/check/referer">Validate</a>
800
- <p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.1.
801
- <p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
802
- </footer>
1284
+ <div id="footer">
1285
+ Generated on Sat Mar 15 21:04:54 2014 by
1286
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1287
+ 0.8.7.3 (ruby-2.1.1).
1288
+ </div>
803
1289
 
1290
+ </body>
1291
+ </html>