ionian 0.6.10 → 0.6.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/Ionian.html +3 -3
- data/doc/Ionian/Extension.html +2 -2
- data/doc/Ionian/Extension/IO.html +2 -2
- data/doc/Ionian/Extension/Socket.html +2 -2
- data/doc/Ionian/Server.html +2 -2
- data/doc/Ionian/Socket.html +84 -65
- data/doc/_index.html +2 -2
- data/doc/file.README.html +4 -3
- data/doc/file.license.html +3 -3
- data/doc/index.html +4 -3
- data/doc/method_list.html +18 -18
- data/doc/top-level-namespace.html +2 -2
- data/lib/ionian/socket.rb +51 -41
- data/license.txt +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e26c23c377fd8040799e0402c9b158b349b1d214
|
4
|
+
data.tar.gz: e14513b53b83104a714628e5c90858bc3a91107e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc4340836f0686884445e7c27f213952fc3791b7d8aec7f508818fc3c8a02e786a1f0245ede4380b6b152848d3a28373467970718f0b15775116fce160588a06
|
7
|
+
data.tar.gz: c9b71ce2de0646eddd164342ee6f84d156d603b58c0e882b79088e6fadf77f00126b716577ff75f80ba5574680f6dff3d8551a5723e6dd4c20e5884086b28908
|
data/doc/Ionian.html
CHANGED
@@ -80,7 +80,7 @@
|
|
80
80
|
|
81
81
|
<dt class="r1 last">Defined in:</dt>
|
82
82
|
<dd class="r1 last">lib/ionian.rb<span class="defines">,<br />
|
83
|
-
lib/ionian/
|
83
|
+
lib/ionian/socket.rb,<br /> lib/ionian/server.rb,<br /> lib/ionian/extension/io.rb,<br /> lib/ionian/extension/socket.rb</span>
|
84
84
|
</dd>
|
85
85
|
|
86
86
|
</dl>
|
@@ -123,9 +123,9 @@ Features regular expression matching and notification of received data.</p>
|
|
123
123
|
</div>
|
124
124
|
|
125
125
|
<div id="footer">
|
126
|
-
Generated on Fri
|
126
|
+
Generated on Fri Jan 23 20:34:47 2015 by
|
127
127
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
128
|
-
0.8.7.6 (ruby-2.1.
|
128
|
+
0.8.7.6 (ruby-2.1.5).
|
129
129
|
</div>
|
130
130
|
|
131
131
|
</body>
|
data/doc/Ionian/Extension.html
CHANGED
@@ -119,9 +119,9 @@
|
|
119
119
|
</div>
|
120
120
|
|
121
121
|
<div id="footer">
|
122
|
-
Generated on Fri
|
122
|
+
Generated on Fri Jan 23 20:34:47 2015 by
|
123
123
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
124
|
-
0.8.7.6 (ruby-2.1.
|
124
|
+
0.8.7.6 (ruby-2.1.5).
|
125
125
|
</div>
|
126
126
|
|
127
127
|
</body>
|
@@ -1302,9 +1302,9 @@ socket|). Passes kwargs to <span class='object_link'><a href="#read_match-instan
|
|
1302
1302
|
</div>
|
1303
1303
|
|
1304
1304
|
<div id="footer">
|
1305
|
-
Generated on Fri
|
1305
|
+
Generated on Fri Jan 23 20:34:48 2015 by
|
1306
1306
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1307
|
-
0.8.7.6 (ruby-2.1.
|
1307
|
+
0.8.7.6 (ruby-2.1.5).
|
1308
1308
|
</div>
|
1309
1309
|
|
1310
1310
|
</body>
|
@@ -2530,9 +2530,9 @@ true.</p>
|
|
2530
2530
|
</div>
|
2531
2531
|
|
2532
2532
|
<div id="footer">
|
2533
|
-
Generated on Fri
|
2533
|
+
Generated on Fri Jan 23 20:34:48 2015 by
|
2534
2534
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
2535
|
-
0.8.7.6 (ruby-2.1.
|
2535
|
+
0.8.7.6 (ruby-2.1.5).
|
2536
2536
|
</div>
|
2537
2537
|
|
2538
2538
|
</body>
|
data/doc/Ionian/Server.html
CHANGED
@@ -930,9 +930,9 @@ 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 Fri
|
933
|
+
Generated on Fri Jan 23 20:34:48 2015 by
|
934
934
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
935
|
-
0.8.7.6 (ruby-2.1.
|
935
|
+
0.8.7.6 (ruby-2.1.5).
|
936
936
|
</div>
|
937
937
|
|
938
938
|
</body>
|
data/doc/Ionian/Socket.html
CHANGED
@@ -664,6 +664,23 @@ in the multicast range, or if the broadcast flag is set.</p>
|
|
664
664
|
|
665
665
|
</li>
|
666
666
|
|
667
|
+
<li>
|
668
|
+
<span class="name">:connect_timeout</span>
|
669
|
+
<span class="type">(<tt>Fixnum</tt>)</span>
|
670
|
+
<span class="default">
|
671
|
+
|
672
|
+
— default:
|
673
|
+
<tt>nil</tt>
|
674
|
+
|
675
|
+
</span>
|
676
|
+
|
677
|
+
— <div class='inline'>
|
678
|
+
<p>Number of seconds to wait when connecting before timing out. Raises
|
679
|
+
Errno::EHOSTUNREACH.</p>
|
680
|
+
</div>
|
681
|
+
|
682
|
+
</li>
|
683
|
+
|
667
684
|
<li>
|
668
685
|
<span class="name">:persistent</span>
|
669
686
|
<span class="type">(<tt>Boolean</tt>)</span>
|
@@ -824,9 +841,6 @@ the block.</p>
|
|
824
841
|
<pre class="lines">
|
825
842
|
|
826
843
|
|
827
|
-
73
|
828
|
-
74
|
829
|
-
75
|
830
844
|
76
|
831
845
|
77
|
832
846
|
78
|
@@ -903,10 +917,14 @@ the block.</p>
|
|
903
917
|
149
|
904
918
|
150
|
905
919
|
151
|
906
|
-
152
|
920
|
+
152
|
921
|
+
153
|
922
|
+
154
|
923
|
+
155
|
924
|
+
156</pre>
|
907
925
|
</td>
|
908
926
|
<td>
|
909
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line
|
927
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 76</span>
|
910
928
|
|
911
929
|
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span> <span class='id identifier rubyid_existing_socket'>existing_socket</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span>
|
912
930
|
<span class='ivar'>@socket</span> <span class='op'>=</span> <span class='id identifier rubyid_existing_socket'>existing_socket</span>
|
@@ -946,11 +964,12 @@ the block.</p>
|
|
946
964
|
<span class='comment'># Initialize new socket.
|
947
965
|
</span>
|
948
966
|
<span class='comment'># Parse host out of "host:port" if specified.
|
949
|
-
</span> <span class='id identifier
|
967
|
+
</span> <span class='id identifier rubyid_host_port_array'>host_port_array</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='lparen'>(</span><span class='symbol'>:host</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>:</span><span class='tstring_end'>'</span></span>
|
950
968
|
|
951
|
-
<span class='ivar'>@host</span> <span class='op'>=</span> <span class='id identifier
|
952
|
-
<span class='ivar'>@port</span> <span class='op'>=</span> <span class='id identifier rubyid_kwargs'>kwargs</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span> <span class='symbol'>:port</span><span class='comma'>,</span> <span class='id identifier
|
969
|
+
<span class='ivar'>@host</span> <span class='op'>=</span> <span class='id identifier rubyid_host_port_array'>host_port_array</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
|
970
|
+
<span class='ivar'>@port</span> <span class='op'>=</span> <span class='id identifier rubyid_kwargs'>kwargs</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span> <span class='symbol'>:port</span><span class='comma'>,</span> <span class='lparen'>(</span><span class='id identifier rubyid_host_port_array'>host_port_array</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='int'>23</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
|
953
971
|
<span class='ivar'>@bind_port</span> <span class='op'>=</span> <span class='id identifier rubyid_kwargs'>kwargs</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span> <span class='symbol'>:bind_port</span><span class='comma'>,</span> <span class='ivar'>@port</span>
|
972
|
+
<span class='ivar'>@connect_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'>:connect_timeout</span><span class='comma'>,</span> <span class='kw'>nil</span>
|
954
973
|
|
955
974
|
<span class='ivar'>@broadcast</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'>:broadcast</span><span class='comma'>,</span> <span class='kw'>false</span>
|
956
975
|
|
@@ -1221,13 +1240,13 @@ the block.</p>
|
|
1221
1240
|
<pre class="lines">
|
1222
1241
|
|
1223
1242
|
|
1224
|
-
|
1225
|
-
|
1226
|
-
|
1227
|
-
|
1243
|
+
226
|
1244
|
+
227
|
1245
|
+
228
|
1246
|
+
229</pre>
|
1228
1247
|
</td>
|
1229
1248
|
<td>
|
1230
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line
|
1249
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 226</span>
|
1231
1250
|
|
1232
1251
|
<span class='kw'>def</span> <span class='id identifier rubyid_closed?'>closed?</span>
|
1233
1252
|
<span class='kw'>return</span> <span class='kw'>true</span> <span class='kw'>unless</span> <span class='ivar'>@socket</span>
|
@@ -1329,20 +1348,20 @@ the block.</p>
|
|
1329
1348
|
<pre class="lines">
|
1330
1349
|
|
1331
1350
|
|
1332
|
-
179
|
1333
|
-
180
|
1334
|
-
181
|
1335
|
-
182
|
1336
1351
|
183
|
1337
1352
|
184
|
1338
1353
|
185
|
1339
1354
|
186
|
1340
1355
|
187
|
1341
1356
|
188
|
1342
|
-
189
|
1357
|
+
189
|
1358
|
+
190
|
1359
|
+
191
|
1360
|
+
192
|
1361
|
+
193</pre>
|
1343
1362
|
</td>
|
1344
1363
|
<td>
|
1345
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line
|
1364
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 183</span>
|
1346
1365
|
|
1347
1366
|
<span class='kw'>def</span> <span class='id identifier rubyid_cmd'>cmd</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</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>
|
1348
1367
|
<span class='id identifier rubyid_create_socket'>create_socket</span> <span class='kw'>unless</span> <span class='ivar'>@persistent</span>
|
@@ -1386,12 +1405,12 @@ the block.</p>
|
|
1386
1405
|
<pre class="lines">
|
1387
1406
|
|
1388
1407
|
|
1389
|
-
|
1390
|
-
|
1391
|
-
|
1408
|
+
159
|
1409
|
+
160
|
1410
|
+
161</pre>
|
1392
1411
|
</td>
|
1393
1412
|
<td>
|
1394
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line
|
1413
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 159</span>
|
1395
1414
|
|
1396
1415
|
<span class='kw'>def</span> <span class='id identifier rubyid_expression'>expression</span>
|
1397
1416
|
<span class='ivar'>@expression</span> <span class='op'>||</span> <span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_expression'>expression</span>
|
@@ -1427,13 +1446,13 @@ the block.</p>
|
|
1427
1446
|
<pre class="lines">
|
1428
1447
|
|
1429
1448
|
|
1430
|
-
|
1431
|
-
|
1432
|
-
|
1433
|
-
|
1449
|
+
164
|
1450
|
+
165
|
1451
|
+
166
|
1452
|
+
167</pre>
|
1434
1453
|
</td>
|
1435
1454
|
<td>
|
1436
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line
|
1455
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 164</span>
|
1437
1456
|
|
1438
1457
|
<span class='kw'>def</span> <span class='id identifier rubyid_expression='>expression=</span> <span class='id identifier rubyid_exp'>exp</span>
|
1439
1458
|
<span class='ivar'>@expression</span> <span class='op'>=</span> <span class='id identifier rubyid_exp'>exp</span>
|
@@ -1471,12 +1490,12 @@ non-persistent sockets.</p>
|
|
1471
1490
|
<pre class="lines">
|
1472
1491
|
|
1473
1492
|
|
1474
|
-
|
1475
|
-
|
1476
|
-
|
1493
|
+
233
|
1494
|
+
234
|
1495
|
+
235</pre>
|
1477
1496
|
</td>
|
1478
1497
|
<td>
|
1479
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line
|
1498
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 233</span>
|
1480
1499
|
|
1481
1500
|
<span class='kw'>def</span> <span class='id identifier rubyid_flush'>flush</span>
|
1482
1501
|
<span class='ivar'>@socket</span><span class='period'>.</span><span class='id identifier rubyid_flush'>flush</span> <span class='kw'>if</span> <span class='ivar'>@persistent</span>
|
@@ -1528,13 +1547,13 @@ non-persistent sockets.</p>
|
|
1528
1547
|
<pre class="lines">
|
1529
1548
|
|
1530
1549
|
|
1531
|
-
|
1532
|
-
|
1533
|
-
|
1534
|
-
|
1550
|
+
220
|
1551
|
+
221
|
1552
|
+
222
|
1553
|
+
223</pre>
|
1535
1554
|
</td>
|
1536
1555
|
<td>
|
1537
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line
|
1556
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 220</span>
|
1538
1557
|
|
1539
1558
|
<span class='kw'>def</span> <span class='id identifier rubyid_has_data?'>has_data?</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span>
|
1540
1559
|
<span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>unless</span> <span class='ivar'>@socket</span>
|
@@ -1584,12 +1603,12 @@ non-persistent sockets.</p>
|
|
1584
1603
|
<pre class="lines">
|
1585
1604
|
|
1586
1605
|
|
1587
|
-
|
1588
|
-
|
1589
|
-
|
1606
|
+
170
|
1607
|
+
171
|
1608
|
+
172</pre>
|
1590
1609
|
</td>
|
1591
1610
|
<td>
|
1592
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line
|
1611
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 170</span>
|
1593
1612
|
|
1594
1613
|
<span class='kw'>def</span> <span class='id identifier rubyid_persistent?'>persistent?</span>
|
1595
1614
|
<span class='ivar'>@persistent</span> <span class='op'>==</span> <span class='kw'>false</span> <span class='op'>||</span> <span class='ivar'>@persistent</span> <span class='op'>==</span> <span class='kw'>nil</span> <span class='op'>?</span> <span class='kw'>false</span> <span class='op'>:</span> <span class='kw'>true</span>
|
@@ -1626,12 +1645,12 @@ any string not already ending with one.</p>
|
|
1626
1645
|
<pre class="lines">
|
1627
1646
|
|
1628
1647
|
|
1629
|
-
|
1630
|
-
|
1631
|
-
|
1648
|
+
239
|
1649
|
+
240
|
1650
|
+
241</pre>
|
1632
1651
|
</td>
|
1633
1652
|
<td>
|
1634
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line
|
1653
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 239</span>
|
1635
1654
|
|
1636
1655
|
<span class='kw'>def</span> <span class='id identifier rubyid_puts'>puts</span> <span class='op'>*</span><span class='id identifier rubyid_string'>string</span>
|
1637
1656
|
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span> <span class='id identifier rubyid_string'>string</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_s'>s</span><span class='op'>|</span> <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_chomp'>chomp</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>\n</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>\n</span><span class='tstring_end'>"</span></span>
|
@@ -1673,14 +1692,14 @@ reference to the given block. block = ionian_socket.register_observer { … }</p
|
|
1673
1692
|
<pre class="lines">
|
1674
1693
|
|
1675
1694
|
|
1676
|
-
|
1677
|
-
|
1678
|
-
|
1679
|
-
|
1680
|
-
|
1695
|
+
199
|
1696
|
+
200
|
1697
|
+
201
|
1698
|
+
202
|
1699
|
+
203</pre>
|
1681
1700
|
</td>
|
1682
1701
|
<td>
|
1683
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line
|
1702
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 199</span>
|
1684
1703
|
|
1685
1704
|
<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>
|
1686
1705
|
<span class='ivar'>@ionian_listeners</span> <span class='op'><<</span> <span class='id identifier rubyid_block'>block</span> <span class='kw'>unless</span> <span class='ivar'>@ionian_listeners</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='id identifier rubyid_block'>block</span>
|
@@ -1718,14 +1737,14 @@ reference to the given block. block = ionian_socket.register_observer { … }</p
|
|
1718
1737
|
<pre class="lines">
|
1719
1738
|
|
1720
1739
|
|
1721
|
-
|
1722
|
-
|
1723
|
-
|
1724
|
-
|
1725
|
-
|
1740
|
+
208
|
1741
|
+
209
|
1742
|
+
210
|
1743
|
+
211
|
1744
|
+
212</pre>
|
1726
1745
|
</td>
|
1727
1746
|
<td>
|
1728
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line
|
1747
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 208</span>
|
1729
1748
|
|
1730
1749
|
<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>
|
1731
1750
|
<span class='ivar'>@ionian_listeners</span><span class='period'>.</span><span class='id identifier rubyid_delete_if'>delete_if</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_o'>o</span><span class='op'>|</span> <span class='id identifier rubyid_o'>o</span> <span class='op'>==</span> <span class='id identifier rubyid_block'>block</span> <span class='rbrace'>}</span>
|
@@ -1767,10 +1786,6 @@ reference to the given block. block = ionian_socket.register_observer { … }</p
|
|
1767
1786
|
<pre class="lines">
|
1768
1787
|
|
1769
1788
|
|
1770
|
-
241
|
1771
|
-
242
|
1772
|
-
243
|
1773
|
-
244
|
1774
1789
|
245
|
1775
1790
|
246
|
1776
1791
|
247
|
@@ -1793,10 +1808,14 @@ reference to the given block. block = ionian_socket.register_observer { … }</p
|
|
1793
1808
|
264
|
1794
1809
|
265
|
1795
1810
|
266
|
1796
|
-
267
|
1811
|
+
267
|
1812
|
+
268
|
1813
|
+
269
|
1814
|
+
270
|
1815
|
+
271</pre>
|
1797
1816
|
</td>
|
1798
1817
|
<td>
|
1799
|
-
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line
|
1818
|
+
<pre class="code"><span class="info file"># File 'lib/ionian/socket.rb', line 245</span>
|
1800
1819
|
|
1801
1820
|
<span class='kw'>def</span> <span class='id identifier rubyid_write'>write</span> <span class='id identifier rubyid_string'>string</span>
|
1802
1821
|
<span class='id identifier rubyid_create_socket'>create_socket</span> <span class='kw'>unless</span> <span class='ivar'>@persistent</span>
|
@@ -1835,9 +1854,9 @@ reference to the given block. block = ionian_socket.register_observer { … }</p
|
|
1835
1854
|
</div>
|
1836
1855
|
|
1837
1856
|
<div id="footer">
|
1838
|
-
Generated on Fri
|
1857
|
+
Generated on Fri Jan 23 20:34:48 2015 by
|
1839
1858
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1840
|
-
0.8.7.6 (ruby-2.1.
|
1859
|
+
0.8.7.6 (ruby-2.1.5).
|
1841
1860
|
</div>
|
1842
1861
|
|
1843
1862
|
</body>
|
data/doc/_index.html
CHANGED
@@ -155,9 +155,9 @@
|
|
155
155
|
</div>
|
156
156
|
|
157
157
|
<div id="footer">
|
158
|
-
Generated on Fri
|
158
|
+
Generated on Fri Jan 23 20:34:47 2015 by
|
159
159
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
160
|
-
0.8.7.6 (ruby-2.1.
|
160
|
+
0.8.7.6 (ruby-2.1.5).
|
161
161
|
</div>
|
162
162
|
|
163
163
|
</body>
|
data/doc/file.README.html
CHANGED
@@ -79,7 +79,8 @@ data.</p>
|
|
79
79
|
|
80
80
|
<h2 id="label-Installation">Installation</h2>
|
81
81
|
|
82
|
-
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_gem'>gem</span> <span class='id identifier rubyid_install'>install</span> <span class='id identifier rubyid_ionian'>ionian</span
|
82
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_gem'>gem</span> <span class='id identifier rubyid_install'>install</span> <span class='id identifier rubyid_ionian'>ionian</span>
|
83
|
+
</code></pre>
|
83
84
|
|
84
85
|
<h2 id="label-Code+Examples">Code Examples</h2>
|
85
86
|
|
@@ -138,9 +139,9 @@ data.</p>
|
|
138
139
|
</div></div>
|
139
140
|
|
140
141
|
<div id="footer">
|
141
|
-
Generated on Fri
|
142
|
+
Generated on Fri Jan 23 20:34:47 2015 by
|
142
143
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
143
|
-
0.8.7.6 (ruby-2.1.
|
144
|
+
0.8.7.6 (ruby-2.1.5).
|
144
145
|
</div>
|
145
146
|
|
146
147
|
</body>
|
data/doc/file.license.html
CHANGED
@@ -61,12 +61,12 @@
|
|
61
61
|
|
62
62
|
<iframe id="search_frame"></iframe>
|
63
63
|
|
64
|
-
<div id="content"><div id='filecontents'>The MIT License (MIT)<br/><br/>Copyright (c) 2013-
|
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 Fri
|
67
|
+
Generated on Fri Jan 23 20:34:47 2015 by
|
68
68
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
69
|
-
0.8.7.6 (ruby-2.1.
|
69
|
+
0.8.7.6 (ruby-2.1.5).
|
70
70
|
</div>
|
71
71
|
|
72
72
|
</body>
|
data/doc/index.html
CHANGED
@@ -79,7 +79,8 @@ data.</p>
|
|
79
79
|
|
80
80
|
<h2 id="label-Installation">Installation</h2>
|
81
81
|
|
82
|
-
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_gem'>gem</span> <span class='id identifier rubyid_install'>install</span> <span class='id identifier rubyid_ionian'>ionian</span
|
82
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_gem'>gem</span> <span class='id identifier rubyid_install'>install</span> <span class='id identifier rubyid_ionian'>ionian</span>
|
83
|
+
</code></pre>
|
83
84
|
|
84
85
|
<h2 id="label-Code+Examples">Code Examples</h2>
|
85
86
|
|
@@ -138,9 +139,9 @@ data.</p>
|
|
138
139
|
</div></div>
|
139
140
|
|
140
141
|
<div id="footer">
|
141
|
-
Generated on Fri
|
142
|
+
Generated on Fri Jan 23 20:34:47 2015 by
|
142
143
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
143
|
-
0.8.7.6 (ruby-2.1.
|
144
|
+
0.8.7.6 (ruby-2.1.5).
|
144
145
|
</div>
|
145
146
|
|
146
147
|
</body>
|
data/doc/method_list.html
CHANGED
@@ -106,14 +106,14 @@
|
|
106
106
|
|
107
107
|
|
108
108
|
<li class="r2 ">
|
109
|
-
<span class='object_link'><a href="Ionian/
|
110
|
-
<small>Ionian::
|
109
|
+
<span class='object_link'><a href="Ionian/Extension/IO.html#expression-instance_method" title="Ionian::Extension::IO#expression (method)">#expression</a></span>
|
110
|
+
<small>Ionian::Extension::IO</small>
|
111
111
|
</li>
|
112
112
|
|
113
113
|
|
114
114
|
<li class="r1 ">
|
115
|
-
<span class='object_link'><a href="Ionian/
|
116
|
-
<small>Ionian::
|
115
|
+
<span class='object_link'><a href="Ionian/Socket.html#expression-instance_method" title="Ionian::Socket#expression (method)">#expression</a></span>
|
116
|
+
<small>Ionian::Socket</small>
|
117
117
|
</li>
|
118
118
|
|
119
119
|
|
@@ -166,14 +166,14 @@
|
|
166
166
|
|
167
167
|
|
168
168
|
<li class="r2 ">
|
169
|
-
<span class='object_link'><a href="Ionian/
|
170
|
-
<small>Ionian::
|
169
|
+
<span class='object_link'><a href="Ionian/Server.html#initialize-instance_method" title="Ionian::Server#initialize (method)">#initialize</a></span>
|
170
|
+
<small>Ionian::Server</small>
|
171
171
|
</li>
|
172
172
|
|
173
173
|
|
174
174
|
<li class="r1 ">
|
175
|
-
<span class='object_link'><a href="Ionian/
|
176
|
-
<small>Ionian::
|
175
|
+
<span class='object_link'><a href="Ionian/Socket.html#initialize-instance_method" title="Ionian::Socket#initialize (method)">#initialize</a></span>
|
176
|
+
<small>Ionian::Socket</small>
|
177
177
|
</li>
|
178
178
|
|
179
179
|
|
@@ -316,13 +316,13 @@
|
|
316
316
|
|
317
317
|
|
318
318
|
<li class="r1 ">
|
319
|
-
<span class='object_link'><a href="Ionian/Extension/Socket.html#multicast-
|
319
|
+
<span class='object_link'><a href="Ionian/Extension/Socket.html#multicast-class_method" title="Ionian::Extension::Socket.multicast (method)">multicast</a></span>
|
320
320
|
<small>Ionian::Extension::Socket</small>
|
321
321
|
</li>
|
322
322
|
|
323
323
|
|
324
324
|
<li class="r2 ">
|
325
|
-
<span class='object_link'><a href="Ionian/Extension/Socket.html#multicast-
|
325
|
+
<span class='object_link'><a href="Ionian/Extension/Socket.html#multicast-instance_method" title="Ionian::Extension::Socket#multicast (method)">#multicast</a></span>
|
326
326
|
<small>Ionian::Extension::Socket</small>
|
327
327
|
</li>
|
328
328
|
|
@@ -364,14 +364,14 @@
|
|
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/Server.html#protocol-instance_method" title="Ionian::Server#protocol (method)">#protocol</a></span>
|
368
|
+
<small>Ionian::Server</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/Socket.html#protocol-instance_method" title="Ionian::Socket#protocol (method)">#protocol</a></span>
|
374
|
+
<small>Ionian::Socket</small>
|
375
375
|
</li>
|
376
376
|
|
377
377
|
|
@@ -460,14 +460,14 @@
|
|
460
460
|
|
461
461
|
|
462
462
|
<li class="r1 ">
|
463
|
-
<span class='object_link'><a href="Ionian/
|
464
|
-
<small>Ionian::
|
463
|
+
<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
|
+
<small>Ionian::Extension::IO</small>
|
465
465
|
</li>
|
466
466
|
|
467
467
|
|
468
468
|
<li class="r2 ">
|
469
|
-
<span class='object_link'><a href="Ionian/
|
470
|
-
<small>Ionian::
|
469
|
+
<span class='object_link'><a href="Ionian/Socket.html#unregister_observer-instance_method" title="Ionian::Socket#unregister_observer (method)">#unregister_observer</a></span>
|
470
|
+
<small>Ionian::Socket</small>
|
471
471
|
</li>
|
472
472
|
|
473
473
|
|
@@ -103,9 +103,9 @@
|
|
103
103
|
</div>
|
104
104
|
|
105
105
|
<div id="footer">
|
106
|
-
Generated on Fri
|
106
|
+
Generated on Fri Jan 23 20:34:47 2015 by
|
107
107
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
108
|
-
0.8.7.6 (ruby-2.1.
|
108
|
+
0.8.7.6 (ruby-2.1.5).
|
109
109
|
</div>
|
110
110
|
|
111
111
|
</body>
|
data/lib/ionian/socket.rb
CHANGED
@@ -40,6 +40,9 @@ module Ionian
|
|
40
40
|
# :udp will be automatically selected for addresses in the multicast
|
41
41
|
# range, or if the broadcast flag is set.
|
42
42
|
#
|
43
|
+
# @option kwargs [Fixnum] :connect_timeout (nil) Number of seconds to wait
|
44
|
+
# when connecting before timing out. Raises Errno::EHOSTUNREACH.
|
45
|
+
#
|
43
46
|
# @option kwargs [Boolean] :persistent (true) The socket remains open after
|
44
47
|
# data is sent if this is true. The socket closes after data is sent and
|
45
48
|
# a packet is received if this is false.
|
@@ -108,11 +111,12 @@ module Ionian
|
|
108
111
|
# Initialize new socket.
|
109
112
|
|
110
113
|
# Parse host out of "host:port" if specified.
|
111
|
-
|
114
|
+
host_port_array = kwargs.fetch(:host).to_s.split ':'
|
112
115
|
|
113
|
-
@host =
|
114
|
-
@port = kwargs.fetch :port,
|
116
|
+
@host = host_port_array[0]
|
117
|
+
@port = kwargs.fetch :port, (host_port_array[1] || 23).to_i
|
115
118
|
@bind_port = kwargs.fetch :bind_port, @port
|
119
|
+
@connect_timeout = kwargs.fetch :connect_timeout, nil
|
116
120
|
|
117
121
|
@broadcast = kwargs.fetch :broadcast, false
|
118
122
|
|
@@ -275,46 +279,52 @@ module Ionian
|
|
275
279
|
def create_socket
|
276
280
|
@socket.close if @socket and not @socket.closed?
|
277
281
|
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
282
|
+
begin
|
283
|
+
Timeout.timeout(@connect_timeout) do
|
284
|
+
case @protocol
|
285
|
+
when :tcp
|
286
|
+
@socket = ::TCPSocket.new @host, @port
|
287
|
+
@socket.extend Ionian::Extension::Socket
|
288
|
+
|
289
|
+
@socket.no_delay = @no_delay
|
290
|
+
# Windows complains at SO_CORK, so only set it if it was specified.
|
291
|
+
@socket.cork = @cork if @cork
|
292
|
+
|
293
|
+
when :udp
|
294
|
+
@socket = ::UDPSocket.new
|
295
|
+
@socket.extend Ionian::Extension::Socket
|
296
|
+
|
297
|
+
@socket.reuse_addr = true if
|
298
|
+
@reuse_addr or
|
299
|
+
@broadcast or
|
300
|
+
Ionian::Extension::Socket.multicast? @host
|
301
|
+
|
302
|
+
@socket.broadcast = true if @broadcast
|
303
|
+
|
304
|
+
@socket.bind ::Socket::INADDR_ANY, @bind_port
|
305
|
+
@socket.connect @host, @port
|
306
|
+
|
307
|
+
@socket.ip_add_membership if Ionian::Extension::Socket.multicast? @host
|
308
|
+
|
309
|
+
when :unix
|
310
|
+
@socket = ::UNIXSocket.new @host
|
311
|
+
@socket.extend Ionian::Extension::Socket
|
312
|
+
|
313
|
+
end
|
295
314
|
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
315
|
+
# Windows complains at SO_LINGER, so only set it if it was specified.
|
316
|
+
@socket.linger = @linger if @linger
|
317
|
+
|
318
|
+
@socket.expression = @expression if @expression
|
319
|
+
|
320
|
+
# Register listeners.
|
321
|
+
@ionian_listeners.each { |proc| @socket.on_match &proc }
|
322
|
+
|
323
|
+
initialize_socket_methods
|
324
|
+
end
|
325
|
+
rescue Timeout::Error
|
326
|
+
raise Errno::EHOSTUNREACH
|
307
327
|
end
|
308
|
-
|
309
|
-
# Windows complains at SO_LINGER, so only set it if it was specified.
|
310
|
-
@socket.linger = @linger if @linger
|
311
|
-
|
312
|
-
@socket.expression = @expression if @expression
|
313
|
-
|
314
|
-
# Register listeners.
|
315
|
-
@ionian_listeners.each { |proc| @socket.on_match &proc }
|
316
|
-
|
317
|
-
initialize_socket_methods
|
318
328
|
end
|
319
329
|
|
320
330
|
# Expose the @socket methods that haven't been defined by this class.
|
data/license.txt
CHANGED
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.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex McLain
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -164,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
164
164
|
version: '0'
|
165
165
|
requirements: []
|
166
166
|
rubyforge_project:
|
167
|
-
rubygems_version: 2.
|
167
|
+
rubygems_version: 2.4.5
|
168
168
|
signing_key:
|
169
169
|
specification_version: 4
|
170
170
|
summary: Regular expression matching and notification for IO streams.
|