ionian 0.6.11 → 0.6.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/Ionian/Extension/IO.html +405 -65
- data/doc/Ionian/Extension/Socket.html +1 -1
- data/doc/Ionian/Extension.html +1 -1
- data/doc/Ionian/Server.html +1 -1
- data/doc/Ionian/Socket.html +1 -1
- data/doc/Ionian.html +1 -1
- data/doc/_index.html +1 -1
- data/doc/file.README.html +1 -1
- data/doc/file.license.html +1 -1
- data/doc/index.html +1 -1
- data/doc/method_list.html +44 -20
- data/doc/top-level-namespace.html +1 -1
- data/lib/ionian/extension/io.rb +60 -25
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1530db96be4407d57fc89cc8046d9f92b97f54e
|
4
|
+
data.tar.gz: b180870567aa3ed43f417748e22a1082154b3fd9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee0d50045eca52b78c7ad2ddd7caacd31256555f6686517b25fff52c39a4dcc8f57232634820e201408a84b2efa6a518baac0605efc97b5075e75feff2eb3662
|
7
|
+
data.tar.gz: 2e715c46f0edd97eae342951a54106d4e0574e37af0fa94b5325e7bc674555fe0e1ebef79574718f8f5270d939c0dd5e7db3e7182a6ca1006d62fa4bcfc17e78
|
@@ -350,7 +350,33 @@ implement the standard library IO class. my_socket.extend Ionian::IO</p>
|
|
350
350
|
<li class="public ">
|
351
351
|
<span class="summary_signature">
|
352
352
|
|
353
|
-
<a href="#
|
353
|
+
<a href="#register_error_handler-instance_method" title="#register_error_handler (instance method)">- (Block) <strong>register_error_handler</strong> {|Exception, self| ... }</a>
|
354
|
+
|
355
|
+
|
356
|
+
|
357
|
+
(also: #on_error)
|
358
|
+
|
359
|
+
</span>
|
360
|
+
|
361
|
+
|
362
|
+
|
363
|
+
|
364
|
+
|
365
|
+
|
366
|
+
|
367
|
+
|
368
|
+
|
369
|
+
<span class="summary_desc"><div class='inline'>
|
370
|
+
<p>Register a block to be called when <span class='object_link'><a href="#run_match-instance_method" title="Ionian::Extension::IO#run_match (method)">#run_match</a></span> raises an error.</p>
|
371
|
+
</div></span>
|
372
|
+
|
373
|
+
</li>
|
374
|
+
|
375
|
+
|
376
|
+
<li class="public ">
|
377
|
+
<span class="summary_signature">
|
378
|
+
|
379
|
+
<a href="#register_match_handler-instance_method" title="#register_match_handler (instance method)">- (Block) <strong>register_match_handler</strong> {|MatchData, self| ... }</a>
|
354
380
|
|
355
381
|
|
356
382
|
|
@@ -370,6 +396,30 @@ implement the standard library IO class. my_socket.extend Ionian::IO</p>
|
|
370
396
|
<p>Register a block to be called when <span class='object_link'><a href="#run_match-instance_method" title="Ionian::Extension::IO#run_match (method)">#run_match</a></span> receives matched data.</p>
|
371
397
|
</div></span>
|
372
398
|
|
399
|
+
</li>
|
400
|
+
|
401
|
+
|
402
|
+
<li class="public deprecated">
|
403
|
+
<span class="summary_signature">
|
404
|
+
|
405
|
+
<a href="#register_observer-instance_method" title="#register_observer (instance method)">- (Object) <strong>register_observer</strong>(&block) </a>
|
406
|
+
|
407
|
+
|
408
|
+
|
409
|
+
</span>
|
410
|
+
|
411
|
+
|
412
|
+
|
413
|
+
|
414
|
+
|
415
|
+
<span class="deprecated note title">deprecated</span>
|
416
|
+
|
417
|
+
|
418
|
+
|
419
|
+
<span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'>
|
420
|
+
<p>Use <span class='object_link'><a href="#register_match_handler-instance_method" title="Ionian::Extension::IO#register_match_handler (method)">#register_match_handler</a></span> instead.</p>
|
421
|
+
</div></span>
|
422
|
+
|
373
423
|
</li>
|
374
424
|
|
375
425
|
|
@@ -391,8 +441,7 @@ implement the standard library IO class. my_socket.extend Ionian::IO</p>
|
|
391
441
|
|
392
442
|
|
393
443
|
<span class="summary_desc"><div class='inline'>
|
394
|
-
<p>Start a thread that checks for data and notifies
|
395
|
-
socket|).</p>
|
444
|
+
<p>Start a thread that checks for data and notifies match and error handlers.</p>
|
396
445
|
</div></span>
|
397
446
|
|
398
447
|
</li>
|
@@ -401,7 +450,31 @@ socket|).</p>
|
|
401
450
|
<li class="public ">
|
402
451
|
<span class="summary_signature">
|
403
452
|
|
404
|
-
<a href="#
|
453
|
+
<a href="#unregister_error_handler-instance_method" title="#unregister_error_handler (instance method)">- (Object) <strong>unregister_error_handler</strong>(&block) </a>
|
454
|
+
|
455
|
+
|
456
|
+
|
457
|
+
</span>
|
458
|
+
|
459
|
+
|
460
|
+
|
461
|
+
|
462
|
+
|
463
|
+
|
464
|
+
|
465
|
+
|
466
|
+
|
467
|
+
<span class="summary_desc"><div class='inline'>
|
468
|
+
<p>Unregister a block from being called when a <span class='object_link'><a href="#run_match-instance_method" title="Ionian::Extension::IO#run_match (method)">#run_match</a></span> error is raised.</p>
|
469
|
+
</div></span>
|
470
|
+
|
471
|
+
</li>
|
472
|
+
|
473
|
+
|
474
|
+
<li class="public ">
|
475
|
+
<span class="summary_signature">
|
476
|
+
|
477
|
+
<a href="#unregister_match_handler-instance_method" title="#unregister_match_handler (instance method)">- (Object) <strong>unregister_match_handler</strong>(&block) </a>
|
405
478
|
|
406
479
|
|
407
480
|
|
@@ -419,6 +492,30 @@ socket|).</p>
|
|
419
492
|
<p>Unregister a block from being called when matched data is received.</p>
|
420
493
|
</div></span>
|
421
494
|
|
495
|
+
</li>
|
496
|
+
|
497
|
+
|
498
|
+
<li class="public deprecated">
|
499
|
+
<span class="summary_signature">
|
500
|
+
|
501
|
+
<a href="#unregister_observer-instance_method" title="#unregister_observer (instance method)">- (Object) <strong>unregister_observer</strong>(&block) </a>
|
502
|
+
|
503
|
+
|
504
|
+
|
505
|
+
</span>
|
506
|
+
|
507
|
+
|
508
|
+
|
509
|
+
|
510
|
+
|
511
|
+
<span class="deprecated note title">deprecated</span>
|
512
|
+
|
513
|
+
|
514
|
+
|
515
|
+
<span class="summary_desc"><strong>Deprecated.</strong> <div class='inline'>
|
516
|
+
<p>Use <span class='object_link'><a href="#unregister_match_handler-instance_method" title="Ionian::Extension::IO#unregister_match_handler (method)">#unregister_match_handler</a></span> instead.</p>
|
517
|
+
</div></span>
|
518
|
+
|
422
519
|
</li>
|
423
520
|
|
424
521
|
|
@@ -553,12 +650,12 @@ standard library IO::select.</p>
|
|
553
650
|
<pre class="lines">
|
554
651
|
|
555
652
|
|
556
|
-
42
|
557
653
|
43
|
558
|
-
44
|
654
|
+
44
|
655
|
+
45</pre>
|
559
656
|
</td>
|
560
657
|
<td>
|
561
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line
|
658
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line 43</span>
|
562
659
|
|
563
660
|
<span class='kw'>def</span> <span class='id identifier rubyid_expression'>expression</span>
|
564
661
|
<span class='ivar'>@ionian_expression</span>
|
@@ -598,13 +695,13 @@ href=":parameter">match</a>.</p>
|
|
598
695
|
<pre class="lines">
|
599
696
|
|
600
697
|
|
601
|
-
52
|
602
698
|
53
|
603
699
|
54
|
604
|
-
55
|
700
|
+
55
|
701
|
+
56</pre>
|
605
702
|
</td>
|
606
703
|
<td>
|
607
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line
|
704
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line 53</span>
|
608
705
|
|
609
706
|
<span class='kw'>def</span> <span class='id identifier rubyid_expression='>expression=</span> <span class='id identifier rubyid_exp'>exp</span>
|
610
707
|
<span class='ivar'>@ionian_expression</span> <span class='op'>=</span> <span class='id identifier rubyid_exp'>exp</span>
|
@@ -680,12 +777,12 @@ blocking.</p>
|
|
680
777
|
<pre class="lines">
|
681
778
|
|
682
779
|
|
683
|
-
37
|
684
780
|
38
|
685
|
-
39
|
781
|
+
39
|
782
|
+
40</pre>
|
686
783
|
</td>
|
687
784
|
<td>
|
688
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line
|
785
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line 38</span>
|
689
786
|
|
690
787
|
<span class='kw'>def</span> <span class='id identifier rubyid_has_data?'>has_data?</span> <span class='label'>timeout:</span> <span class='int'>0</span>
|
691
788
|
<span class='op'>::</span><span class='const'>IO</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='kw'>self</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='id identifier rubyid_timeout'>timeout</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='kw'>true</span> <span class='op'>:</span> <span class='kw'>false</span>
|
@@ -729,18 +826,20 @@ blocking.</p>
|
|
729
826
|
27
|
730
827
|
28
|
731
828
|
29
|
732
|
-
30
|
829
|
+
30
|
830
|
+
31</pre>
|
733
831
|
</td>
|
734
832
|
<td>
|
735
833
|
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line 23</span>
|
736
834
|
|
737
835
|
<span class='kw'>def</span> <span class='id identifier rubyid_initialize_ionian'>initialize_ionian</span>
|
738
|
-
<span class='ivar'>@
|
739
|
-
<span class='ivar'>@
|
740
|
-
<span class='ivar'>@
|
741
|
-
<span class='ivar'>@
|
742
|
-
<span class='ivar'>@
|
743
|
-
<span class='ivar'>@
|
836
|
+
<span class='ivar'>@ionian_match_handlers</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
837
|
+
<span class='ivar'>@ionian_error_handlers</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
838
|
+
<span class='ivar'>@ionian_buf</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span>
|
839
|
+
<span class='ivar'>@ionian_expression</span> <span class='op'>=</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>(.*?)[\r\n]+</span><span class='regexp_end'>/</span></span>
|
840
|
+
<span class='ivar'>@ionian_timeout</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
841
|
+
<span class='ivar'>@ionian_skip_select</span> <span class='op'>=</span> <span class='kw'>false</span>
|
842
|
+
<span class='ivar'>@ionian_build_methods</span> <span class='op'>=</span> <span class='kw'>true</span>
|
744
843
|
<span class='kw'>end</span></pre>
|
745
844
|
</td>
|
746
845
|
</tr>
|
@@ -774,14 +873,14 @@ automatically.</p>
|
|
774
873
|
<pre class="lines">
|
775
874
|
|
776
875
|
|
777
|
-
172
|
778
876
|
173
|
779
877
|
174
|
780
878
|
175
|
781
|
-
176
|
879
|
+
176
|
880
|
+
177</pre>
|
782
881
|
</td>
|
783
882
|
<td>
|
784
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line
|
883
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line 173</span>
|
785
884
|
|
786
885
|
<span class='kw'>def</span> <span class='id identifier rubyid_purge'>purge</span>
|
787
886
|
<span class='comment'># Erase IO buffer.
|
@@ -821,7 +920,6 @@ nonblocking, returns nil if no data available.</p>
|
|
821
920
|
<pre class="lines">
|
822
921
|
|
823
922
|
|
824
|
-
61
|
825
923
|
62
|
826
924
|
63
|
827
925
|
64
|
@@ -829,10 +927,11 @@ nonblocking, returns nil if no data available.</p>
|
|
829
927
|
66
|
830
928
|
67
|
831
929
|
68
|
832
|
-
69
|
930
|
+
69
|
931
|
+
70</pre>
|
833
932
|
</td>
|
834
933
|
<td>
|
835
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line
|
934
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line 62</span>
|
836
935
|
|
837
936
|
<span class='kw'>def</span> <span class='id identifier rubyid_read_all'>read_all</span> <span class='label'>nonblocking:</span> <span class='kw'>false</span>
|
838
937
|
<span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_nonblocking'>nonblocking</span> <span class='kw'>and</span> <span class='kw'>not</span> <span class='id identifier rubyid_has_data?'>has_data?</span>
|
@@ -943,7 +1042,7 @@ Set to 0 for nonblocking.</p>
|
|
943
1042
|
</span>
|
944
1043
|
|
945
1044
|
— <div class='inline'>
|
946
|
-
<p>Set to false to skip notifying match
|
1045
|
+
<p>Set to false to skip notifying match handler procs.</p>
|
947
1046
|
</div>
|
948
1047
|
|
949
1048
|
</li>
|
@@ -1030,7 +1129,6 @@ timeout period.</p>
|
|
1030
1129
|
<pre class="lines">
|
1031
1130
|
|
1032
1131
|
|
1033
|
-
106
|
1034
1132
|
107
|
1035
1133
|
108
|
1036
1134
|
109
|
@@ -1074,10 +1172,11 @@ timeout period.</p>
|
|
1074
1172
|
147
|
1075
1173
|
148
|
1076
1174
|
149
|
1077
|
-
150
|
1175
|
+
150
|
1176
|
+
151</pre>
|
1078
1177
|
</td>
|
1079
1178
|
<td>
|
1080
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line
|
1179
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line 107</span>
|
1081
1180
|
|
1082
1181
|
<span class='kw'>def</span> <span class='id identifier rubyid_read_match'>read_match</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span>
|
1083
1182
|
<span class='id identifier rubyid_timeout'>timeout</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'>:timeout</span><span class='comma'>,</span> <span class='ivar'>@ionian_timeout</span>
|
@@ -1118,9 +1217,9 @@ timeout period.</p>
|
|
1118
1217
|
<span class='comment'># Pass each match to block.
|
1119
1218
|
</span> <span class='ivar'>@matches</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</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='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_block_given?'>block_given?</span>
|
1120
1219
|
|
1121
|
-
<span class='comment'># Notify on_match
|
1122
|
-
</span> <span class='ivar'>@matches</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_match'>match</span><span class='op'>|</span> <span class='id identifier
|
1123
|
-
<span class='kw'>if</span> <span class='id identifier rubyid_notify'>notify</span> <span class='kw'>and</span> <span class='kw'>not</span> <span class='ivar'>@
|
1220
|
+
<span class='comment'># Notify on_match handlers unless the #run_match thread is active.
|
1221
|
+
</span> <span class='ivar'>@matches</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_match'>match</span><span class='op'>|</span> <span class='id identifier rubyid_notify_match_handlers'>notify_match_handlers</span> <span class='id identifier rubyid_match'>match</span> <span class='rbrace'>}</span> \
|
1222
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_notify'>notify</span> <span class='kw'>and</span> <span class='kw'>not</span> <span class='ivar'>@run_match_thread</span>
|
1124
1223
|
|
1125
1224
|
<span class='ivar'>@matches</span>
|
1126
1225
|
<span class='kw'>end</span></pre>
|
@@ -1130,9 +1229,88 @@ timeout period.</p>
|
|
1130
1229
|
</div>
|
1131
1230
|
|
1132
1231
|
<div class="method_details ">
|
1133
|
-
<h3 class="signature " id="
|
1232
|
+
<h3 class="signature " id="register_error_handler-instance_method">
|
1134
1233
|
|
1135
|
-
- (<tt>
|
1234
|
+
- (<tt>Block</tt>) <strong>register_error_handler</strong> {|Exception, self| ... }
|
1235
|
+
|
1236
|
+
|
1237
|
+
|
1238
|
+
<span class="aliases">Also known as:
|
1239
|
+
<span class="names"><span id='on_error-instance_method'>on_error</span></span>
|
1240
|
+
</span>
|
1241
|
+
|
1242
|
+
|
1243
|
+
|
1244
|
+
</h3><div class="docstring">
|
1245
|
+
<div class="discussion">
|
1246
|
+
|
1247
|
+
<p>Register a block to be called when <span class='object_link'><a href="#run_match-instance_method" title="Ionian::Extension::IO#run_match (method)">#run_match</a></span> raises an error. Method
|
1248
|
+
callbacks can be registered with &object.method(:method).</p>
|
1249
|
+
|
1250
|
+
|
1251
|
+
</div>
|
1252
|
+
</div>
|
1253
|
+
<div class="tags">
|
1254
|
+
|
1255
|
+
<p class="tag_title">Yields:</p>
|
1256
|
+
<ul class="yield">
|
1257
|
+
|
1258
|
+
<li>
|
1259
|
+
|
1260
|
+
|
1261
|
+
<span class='type'>(<tt>Exception</tt>, <tt>self</tt>)</span>
|
1262
|
+
|
1263
|
+
|
1264
|
+
|
1265
|
+
</li>
|
1266
|
+
|
1267
|
+
</ul>
|
1268
|
+
<p class="tag_title">Returns:</p>
|
1269
|
+
<ul class="return">
|
1270
|
+
|
1271
|
+
<li>
|
1272
|
+
|
1273
|
+
|
1274
|
+
<span class='type'>(<tt>Block</tt>)</span>
|
1275
|
+
|
1276
|
+
|
1277
|
+
|
1278
|
+
—
|
1279
|
+
<div class='inline'>
|
1280
|
+
<p>a reference to the given block.</p>
|
1281
|
+
</div>
|
1282
|
+
|
1283
|
+
</li>
|
1284
|
+
|
1285
|
+
</ul>
|
1286
|
+
|
1287
|
+
</div><table class="source_code">
|
1288
|
+
<tr>
|
1289
|
+
<td>
|
1290
|
+
<pre class="lines">
|
1291
|
+
|
1292
|
+
|
1293
|
+
216
|
1294
|
+
217
|
1295
|
+
218
|
1296
|
+
219</pre>
|
1297
|
+
</td>
|
1298
|
+
<td>
|
1299
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line 216</span>
|
1300
|
+
|
1301
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_register_error_handler'>register_error_handler</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span>
|
1302
|
+
<span class='ivar'>@ionian_error_handlers</span> <span class='op'><<</span> <span class='id identifier rubyid_block'>block</span> <span class='kw'>unless</span> <span class='ivar'>@ionian_error_handlers</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='id identifier rubyid_block'>block</span>
|
1303
|
+
<span class='id identifier rubyid_block'>block</span>
|
1304
|
+
<span class='kw'>end</span></pre>
|
1305
|
+
</td>
|
1306
|
+
</tr>
|
1307
|
+
</table>
|
1308
|
+
</div>
|
1309
|
+
|
1310
|
+
<div class="method_details ">
|
1311
|
+
<h3 class="signature " id="register_match_handler-instance_method">
|
1312
|
+
|
1313
|
+
- (<tt>Block</tt>) <strong>register_match_handler</strong> {|MatchData, self| ... }
|
1136
1314
|
|
1137
1315
|
|
1138
1316
|
|
@@ -1146,8 +1324,7 @@ timeout period.</p>
|
|
1146
1324
|
<div class="discussion">
|
1147
1325
|
|
1148
1326
|
<p>Register a block to be called when <span class='object_link'><a href="#run_match-instance_method" title="Ionian::Extension::IO#run_match (method)">#run_match</a></span> receives matched data.
|
1149
|
-
Method callbacks can be registered with &object.method(:method)
|
1150
|
-
Returns a reference to the given block.</p>
|
1327
|
+
Method callbacks can be registered with &object.method(:method).</p>
|
1151
1328
|
|
1152
1329
|
|
1153
1330
|
</div>
|
@@ -1158,13 +1335,49 @@ Returns a reference to the given block.</p>
|
|
1158
1335
|
<p class="tag_title">Examples:</p>
|
1159
1336
|
|
1160
1337
|
|
1161
|
-
<pre class="example code"><code>registered_block = ionian_socket.
|
1338
|
+
<pre class="example code"><code>registered_block = ionian_socket.register_match_handler { |match| ... }</code></pre>
|
1162
1339
|
|
1163
1340
|
|
1164
|
-
<pre class="example code"><code><span class='id identifier rubyid_registered_block'>registered_block</span> <span class='op'>=</span> <span class='id identifier rubyid_ionian_socket'>ionian_socket</span><span class='period'>.</span><span class='id identifier
|
1341
|
+
<pre class="example code"><code><span class='id identifier rubyid_registered_block'>registered_block</span> <span class='op'>=</span> <span class='id identifier rubyid_ionian_socket'>ionian_socket</span><span class='period'>.</span><span class='id identifier rubyid_register_match_handler'>register_match_handler</span> <span class='op'>&</span><span class='id identifier rubyid_my_object'>my_object</span><span class='period'>.</span><span class='id identifier rubyid_method'>method</span><span class='lparen'>(</span><span class='symbol'>:foo</span><span class='rparen'>)</span></code></pre>
|
1165
1342
|
|
1166
1343
|
</div>
|
1167
1344
|
|
1345
|
+
<p class="tag_title">Yields:</p>
|
1346
|
+
<ul class="yield">
|
1347
|
+
|
1348
|
+
<li>
|
1349
|
+
|
1350
|
+
|
1351
|
+
<span class='type'>(<tt>MatchData</tt>, <tt>self</tt>)</span>
|
1352
|
+
|
1353
|
+
|
1354
|
+
|
1355
|
+
—
|
1356
|
+
<div class='inline'>
|
1357
|
+
<p>Regex match.</p>
|
1358
|
+
</div>
|
1359
|
+
|
1360
|
+
</li>
|
1361
|
+
|
1362
|
+
</ul>
|
1363
|
+
<p class="tag_title">Returns:</p>
|
1364
|
+
<ul class="return">
|
1365
|
+
|
1366
|
+
<li>
|
1367
|
+
|
1368
|
+
|
1369
|
+
<span class='type'>(<tt>Block</tt>)</span>
|
1370
|
+
|
1371
|
+
|
1372
|
+
|
1373
|
+
—
|
1374
|
+
<div class='inline'>
|
1375
|
+
<p>a reference to the given block.</p>
|
1376
|
+
</div>
|
1377
|
+
|
1378
|
+
</li>
|
1379
|
+
|
1380
|
+
</ul>
|
1168
1381
|
|
1169
1382
|
</div><table class="source_code">
|
1170
1383
|
<tr>
|
@@ -1172,21 +1385,63 @@ Returns a reference to the given block.</p>
|
|
1172
1385
|
<pre class="lines">
|
1173
1386
|
|
1174
1387
|
|
1175
|
-
187
|
1176
|
-
188
|
1177
1388
|
189
|
1178
|
-
190
|
1389
|
+
190
|
1390
|
+
191
|
1391
|
+
192</pre>
|
1179
1392
|
</td>
|
1180
1393
|
<td>
|
1181
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line
|
1394
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line 189</span>
|
1182
1395
|
|
1183
|
-
<span class='kw'>def</span> <span class='id identifier
|
1184
|
-
<span class='ivar'>@
|
1396
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_register_match_handler'>register_match_handler</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span>
|
1397
|
+
<span class='ivar'>@ionian_match_handlers</span> <span class='op'><<</span> <span class='id identifier rubyid_block'>block</span> <span class='kw'>unless</span> <span class='ivar'>@ionian_match_handlers</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='id identifier rubyid_block'>block</span>
|
1185
1398
|
<span class='id identifier rubyid_block'>block</span>
|
1186
1399
|
<span class='kw'>end</span></pre>
|
1187
1400
|
</td>
|
1188
1401
|
</tr>
|
1189
1402
|
</table>
|
1403
|
+
</div>
|
1404
|
+
|
1405
|
+
<div class="method_details ">
|
1406
|
+
<h3 class="signature " id="register_observer-instance_method">
|
1407
|
+
|
1408
|
+
- (<tt>Object</tt>) <strong>register_observer</strong>(&block)
|
1409
|
+
|
1410
|
+
|
1411
|
+
|
1412
|
+
|
1413
|
+
|
1414
|
+
</h3><div class="docstring">
|
1415
|
+
<div class="discussion">
|
1416
|
+
<div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'>
|
1417
|
+
<p>Use <span class='object_link'><a href="#register_match_handler-instance_method" title="Ionian::Extension::IO#register_match_handler (method)">#register_match_handler</a></span> instead.</p>
|
1418
|
+
</div></div>
|
1419
|
+
|
1420
|
+
|
1421
|
+
</div>
|
1422
|
+
</div>
|
1423
|
+
<div class="tags">
|
1424
|
+
|
1425
|
+
|
1426
|
+
</div><table class="source_code">
|
1427
|
+
<tr>
|
1428
|
+
<td>
|
1429
|
+
<pre class="lines">
|
1430
|
+
|
1431
|
+
|
1432
|
+
197
|
1433
|
+
198
|
1434
|
+
199</pre>
|
1435
|
+
</td>
|
1436
|
+
<td>
|
1437
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line 197</span>
|
1438
|
+
|
1439
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_register_observer'>register_observer</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span>
|
1440
|
+
<span class='id identifier rubyid_register_match_handler'>register_match_handler</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span>
|
1441
|
+
<span class='kw'>end</span></pre>
|
1442
|
+
</td>
|
1443
|
+
</tr>
|
1444
|
+
</table>
|
1190
1445
|
</div>
|
1191
1446
|
|
1192
1447
|
<div class="method_details ">
|
@@ -1201,8 +1456,8 @@ Returns a reference to the given block.</p>
|
|
1201
1456
|
</h3><div class="docstring">
|
1202
1457
|
<div class="discussion">
|
1203
1458
|
|
1204
|
-
<p>Start a thread that checks for data and notifies
|
1205
|
-
|
1459
|
+
<p>Start a thread that checks for data and notifies match and error handlers.
|
1460
|
+
Passes kwargs to <span class='object_link'><a href="#read_match-instance_method" title="Ionian::Extension::IO#read_match (method)">#read_match</a></span>. This method SHOULD NOT be used if
|
1206
1461
|
<span class='object_link'><a href="#read_match-instance_method" title="Ionian::Extension::IO#read_match (method)">#read_match</a></span> is used.</p>
|
1207
1462
|
|
1208
1463
|
|
@@ -1217,7 +1472,6 @@ socket|). Passes kwargs to <span class='object_link'><a href="#read_match-instan
|
|
1217
1472
|
<pre class="lines">
|
1218
1473
|
|
1219
1474
|
|
1220
|
-
155
|
1221
1475
|
156
|
1222
1476
|
157
|
1223
1477
|
158
|
@@ -1230,22 +1484,23 @@ socket|). Passes kwargs to <span class='object_link'><a href="#read_match-instan
|
|
1230
1484
|
165
|
1231
1485
|
166
|
1232
1486
|
167
|
1233
|
-
168
|
1487
|
+
168
|
1488
|
+
169</pre>
|
1234
1489
|
</td>
|
1235
1490
|
<td>
|
1236
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line
|
1491
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line 156</span>
|
1237
1492
|
|
1238
1493
|
<span class='kw'>def</span> <span class='id identifier rubyid_run_match'>run_match</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span>
|
1239
|
-
<span class='ivar'>@
|
1494
|
+
<span class='ivar'>@run_match_thread</span> <span class='op'>||=</span> <span class='const'>Thread</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>do</span>
|
1240
1495
|
<span class='kw'>begin</span>
|
1241
1496
|
<span class='kw'>while</span> <span class='kw'>not</span> <span class='id identifier rubyid_closed?'>closed?</span> <span class='kw'>do</span>
|
1242
1497
|
<span class='id identifier rubyid_matches'>matches</span> <span class='op'>=</span> <span class='id identifier rubyid_read_match'>read_match</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span>
|
1243
|
-
<span class='id identifier rubyid_matches'>matches</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_match'>match</span><span class='op'>|</span> <span class='id identifier
|
1498
|
+
<span class='id identifier rubyid_matches'>matches</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_match'>match</span><span class='op'>|</span> <span class='id identifier rubyid_notify_match_handlers'>notify_match_handlers</span> <span class='id identifier rubyid_match'>match</span> <span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_matches'>matches</span>
|
1244
1499
|
<span class='kw'>end</span>
|
1245
|
-
<span class='kw'>rescue</span> <span class='const'>
|
1246
|
-
|
1500
|
+
<span class='kw'>rescue</span> <span class='const'>Exception</span> <span class='op'>=></span> <span class='id identifier rubyid_e'>e</span>
|
1501
|
+
<span class='id identifier rubyid_notify_error_handlers'>notify_error_handlers</span> <span class='id identifier rubyid_e'>e</span>
|
1247
1502
|
<span class='kw'>ensure</span>
|
1248
|
-
<span class='ivar'>@
|
1503
|
+
<span class='ivar'>@run_match_thread</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
1249
1504
|
<span class='kw'>end</span>
|
1250
1505
|
<span class='kw'>end</span>
|
1251
1506
|
<span class='kw'>end</span></pre>
|
@@ -1255,9 +1510,52 @@ socket|). Passes kwargs to <span class='object_link'><a href="#read_match-instan
|
|
1255
1510
|
</div>
|
1256
1511
|
|
1257
1512
|
<div class="method_details ">
|
1258
|
-
<h3 class="signature " id="
|
1513
|
+
<h3 class="signature " id="unregister_error_handler-instance_method">
|
1259
1514
|
|
1260
|
-
- (<tt>Object</tt>) <strong>
|
1515
|
+
- (<tt>Object</tt>) <strong>unregister_error_handler</strong>(&block)
|
1516
|
+
|
1517
|
+
|
1518
|
+
|
1519
|
+
|
1520
|
+
|
1521
|
+
</h3><div class="docstring">
|
1522
|
+
<div class="discussion">
|
1523
|
+
|
1524
|
+
<p>Unregister a block from being called when a <span class='object_link'><a href="#run_match-instance_method" title="Ionian::Extension::IO#run_match (method)">#run_match</a></span> error is raised.</p>
|
1525
|
+
|
1526
|
+
|
1527
|
+
</div>
|
1528
|
+
</div>
|
1529
|
+
<div class="tags">
|
1530
|
+
|
1531
|
+
|
1532
|
+
</div><table class="source_code">
|
1533
|
+
<tr>
|
1534
|
+
<td>
|
1535
|
+
<pre class="lines">
|
1536
|
+
|
1537
|
+
|
1538
|
+
224
|
1539
|
+
225
|
1540
|
+
226
|
1541
|
+
227</pre>
|
1542
|
+
</td>
|
1543
|
+
<td>
|
1544
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line 224</span>
|
1545
|
+
|
1546
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_unregister_error_handler'>unregister_error_handler</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span>
|
1547
|
+
<span class='ivar'>@ionian_error_handlers</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>
|
1548
|
+
<span class='id identifier rubyid_block'>block</span>
|
1549
|
+
<span class='kw'>end</span></pre>
|
1550
|
+
</td>
|
1551
|
+
</tr>
|
1552
|
+
</table>
|
1553
|
+
</div>
|
1554
|
+
|
1555
|
+
<div class="method_details ">
|
1556
|
+
<h3 class="signature " id="unregister_match_handler-instance_method">
|
1557
|
+
|
1558
|
+
- (<tt>Object</tt>) <strong>unregister_match_handler</strong>(&block)
|
1261
1559
|
|
1262
1560
|
|
1263
1561
|
|
@@ -1280,21 +1578,63 @@ socket|). Passes kwargs to <span class='object_link'><a href="#read_match-instan
|
|
1280
1578
|
<pre class="lines">
|
1281
1579
|
|
1282
1580
|
|
1283
|
-
|
1284
|
-
|
1285
|
-
|
1286
|
-
|
1581
|
+
202
|
1582
|
+
203
|
1583
|
+
204
|
1584
|
+
205</pre>
|
1287
1585
|
</td>
|
1288
1586
|
<td>
|
1289
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line
|
1587
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line 202</span>
|
1290
1588
|
|
1291
|
-
<span class='kw'>def</span> <span class='id identifier
|
1292
|
-
<span class='ivar'>@
|
1589
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_unregister_match_handler'>unregister_match_handler</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span>
|
1590
|
+
<span class='ivar'>@ionian_match_handlers</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>
|
1293
1591
|
<span class='id identifier rubyid_block'>block</span>
|
1294
1592
|
<span class='kw'>end</span></pre>
|
1295
1593
|
</td>
|
1296
1594
|
</tr>
|
1297
1595
|
</table>
|
1596
|
+
</div>
|
1597
|
+
|
1598
|
+
<div class="method_details ">
|
1599
|
+
<h3 class="signature " id="unregister_observer-instance_method">
|
1600
|
+
|
1601
|
+
- (<tt>Object</tt>) <strong>unregister_observer</strong>(&block)
|
1602
|
+
|
1603
|
+
|
1604
|
+
|
1605
|
+
|
1606
|
+
|
1607
|
+
</h3><div class="docstring">
|
1608
|
+
<div class="discussion">
|
1609
|
+
<div class="note deprecated"><strong>Deprecated.</strong> <div class='inline'>
|
1610
|
+
<p>Use <span class='object_link'><a href="#unregister_match_handler-instance_method" title="Ionian::Extension::IO#unregister_match_handler (method)">#unregister_match_handler</a></span> instead.</p>
|
1611
|
+
</div></div>
|
1612
|
+
|
1613
|
+
|
1614
|
+
</div>
|
1615
|
+
</div>
|
1616
|
+
<div class="tags">
|
1617
|
+
|
1618
|
+
|
1619
|
+
</div><table class="source_code">
|
1620
|
+
<tr>
|
1621
|
+
<td>
|
1622
|
+
<pre class="lines">
|
1623
|
+
|
1624
|
+
|
1625
|
+
208
|
1626
|
+
209
|
1627
|
+
210</pre>
|
1628
|
+
</td>
|
1629
|
+
<td>
|
1630
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/extension/io.rb', line 208</span>
|
1631
|
+
|
1632
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_unregister_observer'>unregister_observer</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span>
|
1633
|
+
<span class='id identifier rubyid_unregister_match_handler'>unregister_match_handler</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span>
|
1634
|
+
<span class='kw'>end</span></pre>
|
1635
|
+
</td>
|
1636
|
+
</tr>
|
1637
|
+
</table>
|
1298
1638
|
</div>
|
1299
1639
|
|
1300
1640
|
</div>
|
@@ -1302,7 +1642,7 @@ socket|). Passes kwargs to <span class='object_link'><a href="#read_match-instan
|
|
1302
1642
|
</div>
|
1303
1643
|
|
1304
1644
|
<div id="footer">
|
1305
|
-
Generated on
|
1645
|
+
Generated on Mon Jan 26 21:45:48 2015 by
|
1306
1646
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1307
1647
|
0.8.7.6 (ruby-2.1.5).
|
1308
1648
|
</div>
|
@@ -2530,7 +2530,7 @@ true.</p>
|
|
2530
2530
|
</div>
|
2531
2531
|
|
2532
2532
|
<div id="footer">
|
2533
|
-
Generated on
|
2533
|
+
Generated on Mon Jan 26 21:45:48 2015 by
|
2534
2534
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
2535
2535
|
0.8.7.6 (ruby-2.1.5).
|
2536
2536
|
</div>
|
data/doc/Ionian/Extension.html
CHANGED
@@ -119,7 +119,7 @@
|
|
119
119
|
</div>
|
120
120
|
|
121
121
|
<div id="footer">
|
122
|
-
Generated on
|
122
|
+
Generated on Mon Jan 26 21:45:48 2015 by
|
123
123
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
124
124
|
0.8.7.6 (ruby-2.1.5).
|
125
125
|
</div>
|
data/doc/Ionian/Server.html
CHANGED
@@ -930,7 +930,7 @@ connected client is passed to the block as an Ionain::Client.</p>
|
|
930
930
|
</div>
|
931
931
|
|
932
932
|
<div id="footer">
|
933
|
-
Generated on
|
933
|
+
Generated on Mon Jan 26 21:45:48 2015 by
|
934
934
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
935
935
|
0.8.7.6 (ruby-2.1.5).
|
936
936
|
</div>
|
data/doc/Ionian/Socket.html
CHANGED
@@ -1854,7 +1854,7 @@ reference to the given block. block = ionian_socket.register_observer { … }</p
|
|
1854
1854
|
</div>
|
1855
1855
|
|
1856
1856
|
<div id="footer">
|
1857
|
-
Generated on
|
1857
|
+
Generated on Mon Jan 26 21:45:48 2015 by
|
1858
1858
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1859
1859
|
0.8.7.6 (ruby-2.1.5).
|
1860
1860
|
</div>
|
data/doc/Ionian.html
CHANGED
@@ -123,7 +123,7 @@ Features regular expression matching and notification of received data.</p>
|
|
123
123
|
</div>
|
124
124
|
|
125
125
|
<div id="footer">
|
126
|
-
Generated on
|
126
|
+
Generated on Mon Jan 26 21:45:48 2015 by
|
127
127
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
128
128
|
0.8.7.6 (ruby-2.1.5).
|
129
129
|
</div>
|
data/doc/_index.html
CHANGED
@@ -155,7 +155,7 @@
|
|
155
155
|
</div>
|
156
156
|
|
157
157
|
<div id="footer">
|
158
|
-
Generated on
|
158
|
+
Generated on Mon Jan 26 21:45:47 2015 by
|
159
159
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
160
160
|
0.8.7.6 (ruby-2.1.5).
|
161
161
|
</div>
|
data/doc/file.README.html
CHANGED
@@ -139,7 +139,7 @@ data.</p>
|
|
139
139
|
</div></div>
|
140
140
|
|
141
141
|
<div id="footer">
|
142
|
-
Generated on
|
142
|
+
Generated on Mon Jan 26 21:45:48 2015 by
|
143
143
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
144
144
|
0.8.7.6 (ruby-2.1.5).
|
145
145
|
</div>
|
data/doc/file.license.html
CHANGED
@@ -64,7 +64,7 @@
|
|
64
64
|
<div id="content"><div id='filecontents'>The MIT License (MIT)<br/><br/>Copyright (c) 2013-2015 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 "Software"), 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 "AS IS", 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
|
67
|
+
Generated on Mon Jan 26 21:45:48 2015 by
|
68
68
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
69
69
|
0.8.7.6 (ruby-2.1.5).
|
70
70
|
</div>
|
data/doc/index.html
CHANGED
@@ -139,7 +139,7 @@ data.</p>
|
|
139
139
|
</div></div>
|
140
140
|
|
141
141
|
<div id="footer">
|
142
|
-
Generated on
|
142
|
+
Generated on Mon Jan 26 21:45:48 2015 by
|
143
143
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
144
144
|
0.8.7.6 (ruby-2.1.5).
|
145
145
|
</div>
|
data/doc/method_list.html
CHANGED
@@ -76,14 +76,14 @@
|
|
76
76
|
|
77
77
|
|
78
78
|
<li class="r1 ">
|
79
|
-
<span class='object_link'><a href="Ionian/
|
80
|
-
<small>Ionian::
|
79
|
+
<span class='object_link'><a href="Ionian/Socket.html#closed%3F-instance_method" title="Ionian::Socket#closed? (method)">#closed?</a></span>
|
80
|
+
<small>Ionian::Socket</small>
|
81
81
|
</li>
|
82
82
|
|
83
83
|
|
84
84
|
<li class="r2 ">
|
85
|
-
<span class='object_link'><a href="Ionian/
|
86
|
-
<small>Ionian::
|
85
|
+
<span class='object_link'><a href="Ionian/Server.html#closed%3F-instance_method" title="Ionian::Server#closed? (method)">#closed?</a></span>
|
86
|
+
<small>Ionian::Server</small>
|
87
87
|
</li>
|
88
88
|
|
89
89
|
|
@@ -118,14 +118,14 @@
|
|
118
118
|
|
119
119
|
|
120
120
|
<li class="r2 ">
|
121
|
-
<span class='object_link'><a href="Ionian/
|
122
|
-
<small>Ionian::
|
121
|
+
<span class='object_link'><a href="Ionian/Socket.html#expression%3D-instance_method" title="Ionian::Socket#expression= (method)">#expression=</a></span>
|
122
|
+
<small>Ionian::Socket</small>
|
123
123
|
</li>
|
124
124
|
|
125
125
|
|
126
126
|
<li class="r1 ">
|
127
|
-
<span class='object_link'><a href="Ionian/
|
128
|
-
<small>Ionian::
|
127
|
+
<span class='object_link'><a href="Ionian/Extension/IO.html#expression%3D-instance_method" title="Ionian::Extension::IO#expression= (method)">#expression=</a></span>
|
128
|
+
<small>Ionian::Extension::IO</small>
|
129
129
|
</li>
|
130
130
|
|
131
131
|
|
@@ -148,14 +148,14 @@
|
|
148
148
|
|
149
149
|
|
150
150
|
<li class="r1 ">
|
151
|
-
<span class='object_link'><a href="Ionian/
|
152
|
-
<small>Ionian::
|
151
|
+
<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>
|
152
|
+
<small>Ionian::Extension::IO</small>
|
153
153
|
</li>
|
154
154
|
|
155
155
|
|
156
156
|
<li class="r2 ">
|
157
|
-
<span class='object_link'><a href="Ionian/
|
158
|
-
<small>Ionian::
|
157
|
+
<span class='object_link'><a href="Ionian/Socket.html#has_data%3F-instance_method" title="Ionian::Socket#has_data? (method)">#has_data?</a></span>
|
158
|
+
<small>Ionian::Socket</small>
|
159
159
|
</li>
|
160
160
|
|
161
161
|
|
@@ -352,26 +352,26 @@
|
|
352
352
|
|
353
353
|
|
354
354
|
<li class="r1 ">
|
355
|
-
<span class='object_link'><a href="Ionian/
|
356
|
-
<small>Ionian::
|
355
|
+
<span class='object_link'><a href="Ionian/Server.html#port-instance_method" title="Ionian::Server#port (method)">#port</a></span>
|
356
|
+
<small>Ionian::Server</small>
|
357
357
|
</li>
|
358
358
|
|
359
359
|
|
360
360
|
<li class="r2 ">
|
361
|
-
<span class='object_link'><a href="Ionian/
|
362
|
-
<small>Ionian::
|
361
|
+
<span class='object_link'><a href="Ionian/Socket.html#port-instance_method" title="Ionian::Socket#port (method)">#port</a></span>
|
362
|
+
<small>Ionian::Socket</small>
|
363
363
|
</li>
|
364
364
|
|
365
365
|
|
366
366
|
<li class="r1 ">
|
367
|
-
<span class='object_link'><a href="Ionian/
|
368
|
-
<small>Ionian::
|
367
|
+
<span class='object_link'><a href="Ionian/Socket.html#protocol-instance_method" title="Ionian::Socket#protocol (method)">#protocol</a></span>
|
368
|
+
<small>Ionian::Socket</small>
|
369
369
|
</li>
|
370
370
|
|
371
371
|
|
372
372
|
<li class="r2 ">
|
373
|
-
<span class='object_link'><a href="Ionian/
|
374
|
-
<small>Ionian::
|
373
|
+
<span class='object_link'><a href="Ionian/Server.html#protocol-instance_method" title="Ionian::Server#protocol (method)">#protocol</a></span>
|
374
|
+
<small>Ionian::Server</small>
|
375
375
|
</li>
|
376
376
|
|
377
377
|
|
@@ -412,6 +412,18 @@
|
|
412
412
|
|
413
413
|
|
414
414
|
<li class="r1 ">
|
415
|
+
<span class='object_link'><a href="Ionian/Extension/IO.html#register_error_handler-instance_method" title="Ionian::Extension::IO#register_error_handler (method)">#register_error_handler</a></span>
|
416
|
+
<small>Ionian::Extension::IO</small>
|
417
|
+
</li>
|
418
|
+
|
419
|
+
|
420
|
+
<li class="r2 ">
|
421
|
+
<span class='object_link'><a href="Ionian/Extension/IO.html#register_match_handler-instance_method" title="Ionian::Extension::IO#register_match_handler (method)">#register_match_handler</a></span>
|
422
|
+
<small>Ionian::Extension::IO</small>
|
423
|
+
</li>
|
424
|
+
|
425
|
+
|
426
|
+
<li class="r1 deprecated">
|
415
427
|
<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>
|
416
428
|
<small>Ionian::Extension::IO</small>
|
417
429
|
</li>
|
@@ -460,6 +472,18 @@
|
|
460
472
|
|
461
473
|
|
462
474
|
<li class="r1 ">
|
475
|
+
<span class='object_link'><a href="Ionian/Extension/IO.html#unregister_error_handler-instance_method" title="Ionian::Extension::IO#unregister_error_handler (method)">#unregister_error_handler</a></span>
|
476
|
+
<small>Ionian::Extension::IO</small>
|
477
|
+
</li>
|
478
|
+
|
479
|
+
|
480
|
+
<li class="r2 ">
|
481
|
+
<span class='object_link'><a href="Ionian/Extension/IO.html#unregister_match_handler-instance_method" title="Ionian::Extension::IO#unregister_match_handler (method)">#unregister_match_handler</a></span>
|
482
|
+
<small>Ionian::Extension::IO</small>
|
483
|
+
</li>
|
484
|
+
|
485
|
+
|
486
|
+
<li class="r1 deprecated">
|
463
487
|
<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>
|
464
488
|
<small>Ionian::Extension::IO</small>
|
465
489
|
</li>
|
@@ -103,7 +103,7 @@
|
|
103
103
|
</div>
|
104
104
|
|
105
105
|
<div id="footer">
|
106
|
-
Generated on
|
106
|
+
Generated on Mon Jan 26 21:45:48 2015 by
|
107
107
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
108
108
|
0.8.7.6 (ruby-2.1.5).
|
109
109
|
</div>
|
data/lib/ionian/extension/io.rb
CHANGED
@@ -21,12 +21,13 @@ module Ionian
|
|
21
21
|
# Initialize the Ionian instance variables.
|
22
22
|
# This is called automatically if #extend is called on an object.
|
23
23
|
def initialize_ionian
|
24
|
-
@
|
25
|
-
@
|
26
|
-
@
|
27
|
-
@
|
28
|
-
@
|
29
|
-
@
|
24
|
+
@ionian_match_handlers = []
|
25
|
+
@ionian_error_handlers = []
|
26
|
+
@ionian_buf = ''
|
27
|
+
@ionian_expression = /(.*?)[\r\n]+/
|
28
|
+
@ionian_timeout = nil
|
29
|
+
@ionian_skip_select = false
|
30
|
+
@ionian_build_methods = true
|
30
31
|
end
|
31
32
|
|
32
33
|
# @return [Boolean] True if there is data in the receive buffer.
|
@@ -94,7 +95,7 @@ module Ionian
|
|
94
95
|
# match for this single method call.
|
95
96
|
#
|
96
97
|
# @option kwargs [Boolean] :notify (true) Set to false to skip notifying
|
97
|
-
# match
|
98
|
+
# match handler procs.
|
98
99
|
#
|
99
100
|
# @option kwargs [Boolean] :skip_select (false) Skip over the
|
100
101
|
# IO::select statement. Use if you are calling IO::select ahead of
|
@@ -142,27 +143,27 @@ module Ionian
|
|
142
143
|
# Pass each match to block.
|
143
144
|
@matches.each { |match| yield match } if block_given?
|
144
145
|
|
145
|
-
# Notify on_match
|
146
|
-
@matches.each { |match|
|
147
|
-
if notify and not @
|
146
|
+
# Notify on_match handlers unless the #run_match thread is active.
|
147
|
+
@matches.each { |match| notify_match_handlers match } \
|
148
|
+
if notify and not @run_match_thread
|
148
149
|
|
149
150
|
@matches
|
150
151
|
end
|
151
152
|
|
152
|
-
# Start a thread that checks for data and notifies
|
153
|
+
# Start a thread that checks for data and notifies match and error handlers.
|
153
154
|
# Passes kwargs to {#read_match}.
|
154
155
|
# This method SHOULD NOT be used if {#read_match} is used.
|
155
156
|
def run_match **kwargs
|
156
|
-
@
|
157
|
+
@run_match_thread ||= Thread.new do
|
157
158
|
begin
|
158
159
|
while not closed? do
|
159
160
|
matches = read_match **kwargs
|
160
|
-
matches.each { |match|
|
161
|
+
matches.each { |match| notify_match_handlers match } if matches
|
161
162
|
end
|
162
|
-
rescue
|
163
|
-
|
163
|
+
rescue Exception => e
|
164
|
+
notify_error_handlers e
|
164
165
|
ensure
|
165
|
-
@
|
166
|
+
@run_match_thread = nil
|
166
167
|
end
|
167
168
|
end
|
168
169
|
end
|
@@ -177,23 +178,51 @@ module Ionian
|
|
177
178
|
|
178
179
|
# Register a block to be called when {#run_match} receives matched data.
|
179
180
|
# Method callbacks can be registered with &object.method(:method).
|
180
|
-
#
|
181
|
+
# @return [Block] a reference to the given block.
|
182
|
+
# @yield [MatchData, self] Regex match.
|
181
183
|
#
|
182
184
|
# @example
|
183
|
-
# registered_block = ionian_socket.
|
185
|
+
# registered_block = ionian_socket.register_match_handler { |match| ... }
|
184
186
|
#
|
185
187
|
# @example
|
186
|
-
# registered_block = ionian_socket.
|
187
|
-
def
|
188
|
-
@
|
188
|
+
# registered_block = ionian_socket.register_match_handler &my_object.method(:foo)
|
189
|
+
def register_match_handler &block
|
190
|
+
@ionian_match_handlers << block unless @ionian_match_handlers.include? block
|
189
191
|
block
|
190
192
|
end
|
191
193
|
|
192
|
-
alias_method :on_match, :
|
194
|
+
alias_method :on_match, :register_match_handler
|
195
|
+
|
196
|
+
# @deprecated Use {#register_match_handler} instead.
|
197
|
+
def register_observer &block
|
198
|
+
register_match_handler &block
|
199
|
+
end
|
193
200
|
|
194
201
|
# Unregister a block from being called when matched data is received.
|
202
|
+
def unregister_match_handler &block
|
203
|
+
@ionian_match_handlers.delete_if { |o| o == block }
|
204
|
+
block
|
205
|
+
end
|
206
|
+
|
207
|
+
# @deprecated Use {#unregister_match_handler} instead.
|
195
208
|
def unregister_observer &block
|
196
|
-
|
209
|
+
unregister_match_handler &block
|
210
|
+
end
|
211
|
+
|
212
|
+
# Register a block to be called when {#run_match} raises an error.
|
213
|
+
# Method callbacks can be registered with &object.method(:method).
|
214
|
+
# @return [Block] a reference to the given block.
|
215
|
+
# @yield [Exception, self]
|
216
|
+
def register_error_handler &block
|
217
|
+
@ionian_error_handlers << block unless @ionian_error_handlers.include? block
|
218
|
+
block
|
219
|
+
end
|
220
|
+
|
221
|
+
alias_method :on_error, :register_error_handler
|
222
|
+
|
223
|
+
# Unregister a block from being called when a {#run_match} error is raised.
|
224
|
+
def unregister_error_handler &block
|
225
|
+
@ionian_error_handlers.delete_if { |o| o == block }
|
197
226
|
block
|
198
227
|
end
|
199
228
|
|
@@ -202,8 +231,14 @@ module Ionian
|
|
202
231
|
|
203
232
|
# Send match to each of the registered observers. Includes self
|
204
233
|
# as the second block parameter.
|
205
|
-
def
|
206
|
-
@
|
234
|
+
def notify_match_handlers match
|
235
|
+
@ionian_match_handlers.each { |handler| handler.call match, self }
|
236
|
+
end
|
237
|
+
|
238
|
+
# Send exception to each of the registered observers. Includes self
|
239
|
+
# as the second block parameter.
|
240
|
+
def notify_error_handlers exception
|
241
|
+
@ionian_error_handlers.each { |handler| handler.call exception, self }
|
207
242
|
end
|
208
243
|
|
209
244
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ionian
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex McLain
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|