ionian 0.6.4 → 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/doc/_index.html CHANGED
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
6
  <title>
7
- Documentation by YARD 0.8.7.3
7
+ Documentation by YARD 0.8.7.4
8
8
 
9
9
  </title>
10
10
 
@@ -15,7 +15,7 @@
15
15
  <script type="text/javascript" charset="utf-8">
16
16
  hasFrames = window.top.frames.main ? true : false;
17
17
  relpath = '';
18
- framesUrl = "frames.html#!" + escape(window.location.href);
18
+ framesUrl = "frames.html#!_index.html";
19
19
  </script>
20
20
 
21
21
 
@@ -56,7 +56,7 @@
56
56
 
57
57
  <iframe id="search_frame"></iframe>
58
58
 
59
- <div id="content"><h1 class="noborder title">Documentation by YARD 0.8.7.3</h1>
59
+ <div id="content"><h1 class="noborder title">Documentation by YARD 0.8.7.4</h1>
60
60
  <div id="listing">
61
61
  <h1 class="alphaindex">Alphabetic Index</h1>
62
62
 
@@ -155,9 +155,9 @@
155
155
  </div>
156
156
 
157
157
  <div id="footer">
158
- Generated on Sat Mar 15 21:04:53 2014 by
158
+ Generated on Fri Apr 11 21:18:17 2014 by
159
159
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
160
- 0.8.7.3 (ruby-2.1.1).
160
+ 0.8.7.4 (ruby-2.1.1).
161
161
  </div>
162
162
 
163
163
  </body>
data/doc/css/style.css CHANGED
@@ -291,6 +291,7 @@ li.r2 { background: #fafafa; }
291
291
  -moz-box-shadow: -2px 2px 6px #bbb;
292
292
  z-index: 5000;
293
293
  position: relative;
294
+ overflow-x: auto;
294
295
  }
295
296
  #toc.nofloat { float: none; max-width: none; border: none; padding: 0; margin: 20px 0; -webkit-box-shadow: none; -moz-box-shadow: none; }
296
297
  #toc.nofloat.hidden { padding: 0; background: 0; margin-bottom: 5px; }
data/doc/file.README.html CHANGED
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  File: README
8
8
 
9
- &mdash; Documentation by YARD 0.8.7.3
9
+ &mdash; Documentation by YARD 0.8.7.4
10
10
 
11
11
  </title>
12
12
 
@@ -17,7 +17,7 @@
17
17
  <script type="text/javascript" charset="utf-8">
18
18
  hasFrames = window.top.frames.main ? true : false;
19
19
  relpath = '';
20
- framesUrl = "frames.html#!" + escape(window.location.href);
20
+ framesUrl = "frames.html#!file.README.html";
21
21
  </script>
22
22
 
23
23
 
@@ -124,9 +124,9 @@
124
124
  </div></div>
125
125
 
126
126
  <div id="footer">
127
- Generated on Sat Mar 15 21:04:53 2014 by
127
+ Generated on Fri Apr 11 21:18:17 2014 by
128
128
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
129
- 0.8.7.3 (ruby-2.1.1).
129
+ 0.8.7.4 (ruby-2.1.1).
130
130
  </div>
131
131
 
132
132
  </body>
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  File: license
8
8
 
9
- &mdash; Documentation by YARD 0.8.7.3
9
+ &mdash; Documentation by YARD 0.8.7.4
10
10
 
11
11
  </title>
12
12
 
@@ -17,7 +17,7 @@
17
17
  <script type="text/javascript" charset="utf-8">
18
18
  hasFrames = window.top.frames.main ? true : false;
19
19
  relpath = '';
20
- framesUrl = "frames.html#!" + escape(window.location.href);
20
+ framesUrl = "frames.html#!file.license.html";
21
21
  </script>
22
22
 
23
23
 
@@ -64,9 +64,9 @@
64
64
  <div id="content"><div id='filecontents'>The MIT License (MIT)<br/><br/>Copyright (c) 2013 Alex McLain<br/><br/>Permission is hereby granted, free of charge, to any person obtaining a copy<br/>of this software and associated documentation files (the &quot;Software&quot;), to deal<br/>in the Software without restriction, including without limitation the rights<br/>to use, copy, modify, merge, publish, distribute, sublicense, and/or sell<br/>copies of the Software, and to permit persons to whom the Software is<br/>furnished to do so, subject to the following conditions:<br/><br/>The above copyright notice and this permission notice shall be included in<br/>all copies or substantial portions of the Software.<br/><br/>THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR<br/>IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br/>FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE<br/>AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER<br/>LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,<br/>OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN<br/>THE SOFTWARE.
65
65
 
66
66
  <div id="footer">
67
- Generated on Sat Mar 15 21:04:53 2014 by
67
+ Generated on Fri Apr 11 21:18:17 2014 by
68
68
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
69
- 0.8.7.3 (ruby-2.1.1).
69
+ 0.8.7.4 (ruby-2.1.1).
70
70
  </div>
71
71
 
72
72
  </body>
data/doc/frames.html CHANGED
@@ -4,7 +4,7 @@
4
4
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
5
  <head>
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
7
- <title>Documentation by YARD 0.8.7.3</title>
7
+ <title>Documentation by YARD 0.8.7.4</title>
8
8
  </head>
9
9
  <script type="text/javascript" charset="utf-8">
10
10
  window.onload = function() {
data/doc/index.html CHANGED
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  File: README
8
8
 
9
- &mdash; Documentation by YARD 0.8.7.3
9
+ &mdash; Documentation by YARD 0.8.7.4
10
10
 
11
11
  </title>
12
12
 
@@ -17,7 +17,7 @@
17
17
  <script type="text/javascript" charset="utf-8">
18
18
  hasFrames = window.top.frames.main ? true : false;
19
19
  relpath = '';
20
- framesUrl = "frames.html#!" + escape(window.location.href);
20
+ framesUrl = "frames.html#!file.README.html";
21
21
  </script>
22
22
 
23
23
 
@@ -124,9 +124,9 @@
124
124
  </div></div>
125
125
 
126
126
  <div id="footer">
127
- Generated on Sat Mar 15 21:04:53 2014 by
127
+ Generated on Fri Apr 11 21:18:17 2014 by
128
128
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
129
- 0.8.7.3 (ruby-2.1.1).
129
+ 0.8.7.4 (ruby-2.1.1).
130
130
  </div>
131
131
 
132
132
  </body>
data/doc/method_list.html CHANGED
@@ -48,13 +48,25 @@
48
48
 
49
49
 
50
50
  <li class="r1 ">
51
- <span class='object_link'><a href="Ionian/Server.html#close-instance_method" title="Ionian::Server#close (method)">#close</a></span>
52
- <small>Ionian::Server</small>
51
+ <span class='object_link'><a href="Ionian/Socket.html#bind_port-instance_method" title="Ionian::Socket#bind_port (method)">#bind_port</a></span>
52
+ <small>Ionian::Socket</small>
53
53
  </li>
54
54
 
55
55
 
56
56
  <li class="r2 ">
57
- <span class='object_link'><a href="Ionian/Server.html#closed%3F-instance_method" title="Ionian::Server#closed? (method)">#closed?</a></span>
57
+ <span class='object_link'><a href="Ionian/Extension/Socket.html#broadcast-instance_method" title="Ionian::Extension::Socket#broadcast (method)">#broadcast</a></span>
58
+ <small>Ionian::Extension::Socket</small>
59
+ </li>
60
+
61
+
62
+ <li class="r1 ">
63
+ <span class='object_link'><a href="Ionian/Extension/Socket.html#broadcast%3D-instance_method" title="Ionian::Extension::Socket#broadcast= (method)">#broadcast=</a></span>
64
+ <small>Ionian::Extension::Socket</small>
65
+ </li>
66
+
67
+
68
+ <li class="r2 ">
69
+ <span class='object_link'><a href="Ionian/Server.html#close-instance_method" title="Ionian::Server#close (method)">#close</a></span>
58
70
  <small>Ionian::Server</small>
59
71
  </li>
60
72
 
@@ -66,65 +78,77 @@
66
78
 
67
79
 
68
80
  <li class="r2 ">
81
+ <span class='object_link'><a href="Ionian/Server.html#closed%3F-instance_method" title="Ionian::Server#closed? (method)">#closed?</a></span>
82
+ <small>Ionian::Server</small>
83
+ </li>
84
+
85
+
86
+ <li class="r1 ">
69
87
  <span class='object_link'><a href="Ionian/Socket.html#cmd-instance_method" title="Ionian::Socket#cmd (method)">#cmd</a></span>
70
88
  <small>Ionian::Socket</small>
71
89
  </li>
72
90
 
73
91
 
74
- <li class="r1 ">
92
+ <li class="r2 ">
75
93
  <span class='object_link'><a href="Ionian/Extension/Socket.html#cork-instance_method" title="Ionian::Extension::Socket#cork (method)">#cork</a></span>
76
94
  <small>Ionian::Extension::Socket</small>
77
95
  </li>
78
96
 
79
97
 
80
- <li class="r2 ">
98
+ <li class="r1 ">
81
99
  <span class='object_link'><a href="Ionian/Extension/Socket.html#cork%3D-instance_method" title="Ionian::Extension::Socket#cork= (method)">#cork=</a></span>
82
100
  <small>Ionian::Extension::Socket</small>
83
101
  </li>
84
102
 
85
103
 
86
- <li class="r1 ">
104
+ <li class="r2 ">
87
105
  <span class='object_link'><a href="Ionian/Socket.html#expression-instance_method" title="Ionian::Socket#expression (method)">#expression</a></span>
88
106
  <small>Ionian::Socket</small>
89
107
  </li>
90
108
 
91
109
 
92
- <li class="r2 ">
110
+ <li class="r1 ">
93
111
  <span class='object_link'><a href="Ionian/Extension/IO.html#expression-instance_method" title="Ionian::Extension::IO#expression (method)">#expression</a></span>
94
112
  <small>Ionian::Extension::IO</small>
95
113
  </li>
96
114
 
97
115
 
98
- <li class="r1 ">
116
+ <li class="r2 ">
99
117
  <span class='object_link'><a href="Ionian/Extension/IO.html#expression%3D-instance_method" title="Ionian::Extension::IO#expression= (method)">#expression=</a></span>
100
118
  <small>Ionian::Extension::IO</small>
101
119
  </li>
102
120
 
103
121
 
104
- <li class="r2 ">
122
+ <li class="r1 ">
105
123
  <span class='object_link'><a href="Ionian/Socket.html#expression%3D-instance_method" title="Ionian::Socket#expression= (method)">#expression=</a></span>
106
124
  <small>Ionian::Socket</small>
107
125
  </li>
108
126
 
109
127
 
110
- <li class="r1 ">
128
+ <li class="r2 ">
111
129
  <span class='object_link'><a href="Ionian/Extension/IO.html#extended-class_method" title="Ionian::Extension::IO.extended (method)">extended</a></span>
112
130
  <small>Ionian::Extension::IO</small>
113
131
  </li>
114
132
 
115
133
 
116
- <li class="r2 ">
134
+ <li class="r1 ">
117
135
  <span class='object_link'><a href="Ionian/Extension/Socket.html#extended-class_method" title="Ionian::Extension::Socket.extended (method)">extended</a></span>
118
136
  <small>Ionian::Extension::Socket</small>
119
137
  </li>
120
138
 
121
139
 
122
- <li class="r1 ">
140
+ <li class="r2 ">
123
141
  <span class='object_link'><a href="Ionian/Socket.html#flush-instance_method" title="Ionian::Socket#flush (method)">#flush</a></span>
124
142
  <small>Ionian::Socket</small>
125
143
  </li>
126
144
 
127
145
 
146
+ <li class="r1 ">
147
+ <span class='object_link'><a href="Ionian/Extension/IO.html#has_data%3F-instance_method" title="Ionian::Extension::IO#has_data? (method)">#has_data?</a></span>
148
+ <small>Ionian::Extension::IO</small>
149
+ </li>
150
+
151
+
128
152
  <li class="r2 ">
129
153
  <span class='object_link'><a href="Ionian/Socket.html#has_data%3F-instance_method" title="Ionian::Socket#has_data? (method)">#has_data?</a></span>
130
154
  <small>Ionian::Socket</small>
@@ -132,8 +156,8 @@
132
156
 
133
157
 
134
158
  <li class="r1 ">
135
- <span class='object_link'><a href="Ionian/Extension/IO.html#has_data%3F-instance_method" title="Ionian::Extension::IO#has_data? (method)">#has_data?</a></span>
136
- <small>Ionian::Extension::IO</small>
159
+ <span class='object_link'><a href="Ionian/Socket.html#host-instance_method" title="Ionian::Socket#host (method)">#host</a></span>
160
+ <small>Ionian::Socket</small>
137
161
  </li>
138
162
 
139
163
 
@@ -263,6 +287,18 @@
263
287
  </li>
264
288
 
265
289
 
290
+ <li class="r1 ">
291
+ <span class='object_link'><a href="Ionian/Extension/Socket.html#linger-instance_method" title="Ionian::Extension::Socket#linger (method)">#linger</a></span>
292
+ <small>Ionian::Extension::Socket</small>
293
+ </li>
294
+
295
+
296
+ <li class="r2 ">
297
+ <span class='object_link'><a href="Ionian/Extension/Socket.html#linger%3D-instance_method" title="Ionian::Extension::Socket#linger= (method)">#linger=</a></span>
298
+ <small>Ionian::Extension::Socket</small>
299
+ </li>
300
+
301
+
266
302
  <li class="r1 ">
267
303
  <span class='object_link'><a href="Ionian/Server.html#listen-instance_method" title="Ionian::Server#listen (method)">#listen</a></span>
268
304
  <small>Ionian::Server</small>
@@ -270,13 +306,13 @@
270
306
 
271
307
 
272
308
  <li class="r2 ">
273
- <span class='object_link'><a href="Ionian/Extension/Socket.html#multicast-instance_method" title="Ionian::Extension::Socket#multicast (method)">#multicast</a></span>
309
+ <span class='object_link'><a href="Ionian/Extension/Socket.html#multicast-class_method" title="Ionian::Extension::Socket.multicast (method)">multicast</a></span>
274
310
  <small>Ionian::Extension::Socket</small>
275
311
  </li>
276
312
 
277
313
 
278
314
  <li class="r1 ">
279
- <span class='object_link'><a href="Ionian/Extension/Socket.html#multicast-class_method" title="Ionian::Extension::Socket.multicast (method)">multicast</a></span>
315
+ <span class='object_link'><a href="Ionian/Extension/Socket.html#multicast-instance_method" title="Ionian::Extension::Socket#multicast (method)">#multicast</a></span>
280
316
  <small>Ionian::Extension::Socket</small>
281
317
  </li>
282
318
 
@@ -306,53 +342,53 @@
306
342
 
307
343
 
308
344
  <li class="r2 ">
309
- <span class='object_link'><a href="Ionian/Socket.html#protocol-instance_method" title="Ionian::Socket#protocol (method)">#protocol</a></span>
345
+ <span class='object_link'><a href="Ionian/Socket.html#port-instance_method" title="Ionian::Socket#port (method)">#port</a></span>
310
346
  <small>Ionian::Socket</small>
311
347
  </li>
312
348
 
313
349
 
314
350
  <li class="r1 ">
351
+ <span class='object_link'><a href="Ionian/Socket.html#protocol-instance_method" title="Ionian::Socket#protocol (method)">#protocol</a></span>
352
+ <small>Ionian::Socket</small>
353
+ </li>
354
+
355
+
356
+ <li class="r2 ">
315
357
  <span class='object_link'><a href="Ionian/Extension/IO.html#purge-instance_method" title="Ionian::Extension::IO#purge (method)">#purge</a></span>
316
358
  <small>Ionian::Extension::IO</small>
317
359
  </li>
318
360
 
319
361
 
320
- <li class="r2 ">
362
+ <li class="r1 ">
321
363
  <span class='object_link'><a href="Ionian/Socket.html#puts-instance_method" title="Ionian::Socket#puts (method)">#puts</a></span>
322
364
  <small>Ionian::Socket</small>
323
365
  </li>
324
366
 
325
367
 
326
- <li class="r1 ">
368
+ <li class="r2 ">
327
369
  <span class='object_link'><a href="Ionian/Extension/IO.html#read_all-instance_method" title="Ionian::Extension::IO#read_all (method)">#read_all</a></span>
328
370
  <small>Ionian::Extension::IO</small>
329
371
  </li>
330
372
 
331
373
 
332
- <li class="r2 ">
374
+ <li class="r1 ">
333
375
  <span class='object_link'><a href="Ionian/Extension/IO.html#read_match-instance_method" title="Ionian::Extension::IO#read_match (method)">#read_match</a></span>
334
376
  <small>Ionian::Extension::IO</small>
335
377
  </li>
336
378
 
337
379
 
338
- <li class="r1 ">
380
+ <li class="r2 ">
339
381
  <span class='object_link'><a href="Ionian/Extension/Socket.html#recork-instance_method" title="Ionian::Extension::Socket#recork (method)">#recork</a></span>
340
382
  <small>Ionian::Extension::Socket</small>
341
383
  </li>
342
384
 
343
385
 
344
- <li class="r2 ">
386
+ <li class="r1 ">
345
387
  <span class='object_link'><a href="Ionian/Server.html#register_accept_listener-instance_method" title="Ionian::Server#register_accept_listener (method)">#register_accept_listener</a></span>
346
388
  <small>Ionian::Server</small>
347
389
  </li>
348
390
 
349
391
 
350
- <li class="r1 ">
351
- <span class='object_link'><a href="Ionian/Socket.html#register_observer-instance_method" title="Ionian::Socket#register_observer (method)">#register_observer</a></span>
352
- <small>Ionian::Socket</small>
353
- </li>
354
-
355
-
356
392
  <li class="r2 ">
357
393
  <span class='object_link'><a href="Ionian/Extension/IO.html#register_observer-instance_method" title="Ionian::Extension::IO#register_observer (method)">#register_observer</a></span>
358
394
  <small>Ionian::Extension::IO</small>
@@ -360,47 +396,47 @@
360
396
 
361
397
 
362
398
  <li class="r1 ">
399
+ <span class='object_link'><a href="Ionian/Socket.html#register_observer-instance_method" title="Ionian::Socket#register_observer (method)">#register_observer</a></span>
400
+ <small>Ionian::Socket</small>
401
+ </li>
402
+
403
+
404
+ <li class="r2 ">
363
405
  <span class='object_link'><a href="Ionian/Extension/Socket.html#reuse_addr-instance_method" title="Ionian::Extension::Socket#reuse_addr (method)">#reuse_addr</a></span>
364
406
  <small>Ionian::Extension::Socket</small>
365
407
  </li>
366
408
 
367
409
 
368
- <li class="r2 ">
410
+ <li class="r1 ">
369
411
  <span class='object_link'><a href="Ionian/Extension/Socket.html#reuse_addr%3D-instance_method" title="Ionian::Extension::Socket#reuse_addr= (method)">#reuse_addr=</a></span>
370
412
  <small>Ionian::Extension::Socket</small>
371
413
  </li>
372
414
 
373
415
 
374
- <li class="r1 ">
416
+ <li class="r2 ">
375
417
  <span class='object_link'><a href="Ionian/Extension/IO.html#run_match-instance_method" title="Ionian::Extension::IO#run_match (method)">#run_match</a></span>
376
418
  <small>Ionian::Extension::IO</small>
377
419
  </li>
378
420
 
379
421
 
380
- <li class="r2 ">
422
+ <li class="r1 ">
381
423
  <span class='object_link'><a href="Ionian/Extension/Socket.html#ttl-instance_method" title="Ionian::Extension::Socket#ttl (method)">#ttl</a></span>
382
424
  <small>Ionian::Extension::Socket</small>
383
425
  </li>
384
426
 
385
427
 
386
- <li class="r1 ">
428
+ <li class="r2 ">
387
429
  <span class='object_link'><a href="Ionian/Extension/Socket.html#ttl%3D-instance_method" title="Ionian::Extension::Socket#ttl= (method)">#ttl=</a></span>
388
430
  <small>Ionian::Extension::Socket</small>
389
431
  </li>
390
432
 
391
433
 
392
- <li class="r2 ">
434
+ <li class="r1 ">
393
435
  <span class='object_link'><a href="Ionian/Server.html#unregister_accept_listener-instance_method" title="Ionian::Server#unregister_accept_listener (method)">#unregister_accept_listener</a></span>
394
436
  <small>Ionian::Server</small>
395
437
  </li>
396
438
 
397
439
 
398
- <li class="r1 ">
399
- <span class='object_link'><a href="Ionian/Extension/IO.html#unregister_observer-instance_method" title="Ionian::Extension::IO#unregister_observer (method)">#unregister_observer</a></span>
400
- <small>Ionian::Extension::IO</small>
401
- </li>
402
-
403
-
404
440
  <li class="r2 ">
405
441
  <span class='object_link'><a href="Ionian/Socket.html#unregister_observer-instance_method" title="Ionian::Socket#unregister_observer (method)">#unregister_observer</a></span>
406
442
  <small>Ionian::Socket</small>
@@ -408,6 +444,12 @@
408
444
 
409
445
 
410
446
  <li class="r1 ">
447
+ <span class='object_link'><a href="Ionian/Extension/IO.html#unregister_observer-instance_method" title="Ionian::Extension::IO#unregister_observer (method)">#unregister_observer</a></span>
448
+ <small>Ionian::Extension::IO</small>
449
+ </li>
450
+
451
+
452
+ <li class="r2 ">
411
453
  <span class='object_link'><a href="Ionian/Socket.html#write-instance_method" title="Ionian::Socket#write (method)">#write</a></span>
412
454
  <small>Ionian::Socket</small>
413
455
  </li>
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Top Level Namespace
8
8
 
9
- &mdash; Documentation by YARD 0.8.7.3
9
+ &mdash; Documentation by YARD 0.8.7.4
10
10
 
11
11
  </title>
12
12
 
@@ -17,7 +17,7 @@
17
17
  <script type="text/javascript" charset="utf-8">
18
18
  hasFrames = window.top.frames.main ? true : false;
19
19
  relpath = '';
20
- framesUrl = "frames.html#!" + escape(window.location.href);
20
+ framesUrl = "frames.html#!top-level-namespace.html";
21
21
  </script>
22
22
 
23
23
 
@@ -103,9 +103,9 @@
103
103
  </div>
104
104
 
105
105
  <div id="footer">
106
- Generated on Sat Mar 15 21:04:53 2014 by
106
+ Generated on Fri Apr 11 21:18:17 2014 by
107
107
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
108
- 0.8.7.3 (ruby-2.1.1).
108
+ 0.8.7.4 (ruby-2.1.1).
109
109
  </div>
110
110
 
111
111
  </body>
@@ -12,7 +12,7 @@ module Ionian
12
12
  attr_accessor :ionian_timeout
13
13
 
14
14
  # Called automaticallly when the object is extended with #extend.
15
- def self.extended(obj)
15
+ def self.extended obj
16
16
  obj.initialize_ionian
17
17
  end
18
18
 
@@ -46,7 +46,7 @@ module Ionian
46
46
  # sequence. It is possible to use named captures in a
47
47
  # regex, which allows for convienient accessors like
48
48
  # match[:parameter].
49
- def expression=(exp)
49
+ def expression= exp
50
50
  @ionian_expression = exp
51
51
  @ionian_expression = Regexp.new "(.*?)#{expression}" if exp.is_a? String
52
52
  end
@@ -54,7 +54,9 @@ module Ionian
54
54
  # Read all data in the buffer.
55
55
  # An alternative to using #readpartial with a large length.
56
56
  def read_all
57
- readpartial 0xFFFF
57
+ data = ''
58
+ data += readpartial 0xFFFF while has_data?
59
+ data
58
60
  end
59
61
 
60
62
  # Read matched data from the buffer.
@@ -83,7 +85,7 @@ module Ionian
83
85
  # are calling IO::select ahead of this method.
84
86
  # build_methods: Build accessor methods from named capture groups.
85
87
  # Enabled by default.
86
- def read_match(**kwargs, &block)
88
+ def read_match **kwargs, &block
87
89
  timeout = kwargs.fetch :timeout, @ionian_timeout
88
90
  notify = kwargs.fetch :notify, true
89
91
  skip_select = kwargs.fetch :skip_select, @ionian_skip_select
@@ -97,10 +99,7 @@ module Ionian
97
99
  end
98
100
 
99
101
  # Read data from the IO buffer until it's empty.
100
- loop do
101
- @ionian_buf << readpartial(0xFFFF)
102
- break unless ::IO.select [self], nil, nil, 0
103
- end
102
+ @ionian_buf << read_all
104
103
 
105
104
  @matches = []
106
105
 
@@ -113,19 +112,21 @@ module Ionian
113
112
  if build_methods
114
113
  @matches.each do |match|
115
114
  match.names
116
- .map {|name| name.to_sym}
117
- .each {|symbol| match.singleton_class
118
- .send(:define_method, symbol) { match[symbol] } \
119
- unless match.respond_to? symbol
115
+ .map { |name| name.to_sym }
116
+ .each { |symbol|
117
+ match.singleton_class
118
+ .send(:define_method, symbol) { match[symbol] } \
119
+ unless match.respond_to? symbol
120
120
  }
121
121
  end
122
122
  end
123
123
 
124
124
  # Pass each match to block.
125
- @matches.each {|match| yield match} if block_given?
125
+ @matches.each { |match| yield match } if block_given?
126
126
 
127
127
  # Notify on_match listeners unless the #run_match thread is active.
128
- @matches.each {|match| notify_listeners match} if notify and not @match_listener
128
+ @matches.each { |match| notify_listeners match } \
129
+ if notify and not @match_listener
129
130
 
130
131
  @matches
131
132
  end
@@ -133,12 +134,12 @@ module Ionian
133
134
  # Start a thread that checks for data and notifies listeners (do |match, socket|).
134
135
  # Passes kwargs to #read_match.
135
136
  # This method SHOULD NOT be used if #read_match is used.
136
- def run_match(**kwargs)
137
+ def run_match **kwargs
137
138
  @match_listener ||= Thread.new do
138
139
  begin
139
140
  while not closed? do
140
141
  matches = read_match **kwargs
141
- matches.each {|match| notify_listeners match } if matches
142
+ matches.each { |match| notify_listeners match } if matches
142
143
  end
143
144
  rescue EOFError
144
145
  rescue IOError
@@ -152,10 +153,7 @@ module Ionian
152
153
  # This is typically handled automatically.
153
154
  def purge
154
155
  # Erase IO buffer.
155
- while ::IO.select [self], nil, nil, 0
156
- readpartial(0xFFFF)
157
- end
158
-
156
+ read_all
159
157
  @ionian_buf = ''
160
158
  end
161
159
 
@@ -163,7 +161,7 @@ module Ionian
163
161
  # Method callbacks can be registered with &object.method(:method).
164
162
  # Returns a reference to the given block.
165
163
  # block = ionian_socket.register_observer { ... }
166
- def register_observer(&block)
164
+ def register_observer &block
167
165
  @ionian_listeners << block unless @ionian_listeners.include? block
168
166
  block
169
167
  end
@@ -171,8 +169,8 @@ module Ionian
171
169
  alias_method :on_match, :register_observer
172
170
 
173
171
  # Unregister a block from being called when matched data is received.
174
- def unregister_observer(&block)
175
- @ionian_listeners.delete_if {|o| o == block}
172
+ def unregister_observer &block
173
+ @ionian_listeners.delete_if { |o| o == block }
176
174
  block
177
175
  end
178
176
 
@@ -182,7 +180,7 @@ module Ionian
182
180
  # Send match to each of the registered observers. Includes self
183
181
  # as the second block parameter.
184
182
  def notify_listeners match
185
- @ionian_listeners.each {|listener| listener.call match, self}
183
+ @ionian_listeners.each { |listener| listener.call match, self }
186
184
  end
187
185
 
188
186
  end