ionian 0.6.11 → 0.6.12
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.
- 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
|