ionian 0.4.1 → 0.5.0
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 +1 -1
- data/doc/Ionian/Extension/Socket.html +1143 -20
- data/doc/Ionian/Socket.html +43 -14
- data/doc/created.rid +4 -4
- data/doc/js/search_index.js +1 -1
- data/doc/table_of_contents.html +155 -0
- data/lib/ionian/extension/io.rb +1 -1
- data/lib/ionian/extension/socket.rb +212 -8
- data/lib/ionian/socket.rb +43 -7
- metadata +2 -2
data/doc/Ionian/Socket.html
CHANGED
@@ -76,6 +76,14 @@
|
|
76
76
|
<li><a class="extend" href="Extension/Socket.html">Ionian::Extension::Socket</a>
|
77
77
|
|
78
78
|
|
79
|
+
|
80
|
+
<li><a class="extend" href="Extension/Socket.html">Ionian::Extension::Socket</a>
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
<li><a class="extend" href="Extension/Socket.html">Ionian::Extension::Socket</a>
|
85
|
+
|
86
|
+
|
79
87
|
</ul>
|
80
88
|
</div>
|
81
89
|
|
@@ -156,28 +164,49 @@
|
|
156
164
|
|
157
165
|
<p>Args:</p>
|
158
166
|
|
159
|
-
<pre>host:
|
160
|
-
port:
|
161
|
-
protocol:
|
167
|
+
<pre>host: IP or hostname to connect to.
|
168
|
+
port: Connection's port number. Default is 23. Unused by :unix protocol.
|
169
|
+
protocol: Type of socket to create. :tcp, :udp, :unix. Default is :tcp.
|
170
|
+
:udp will be automatically selected for addresses in the multicast range.
|
162
171
|
persistent: The socket remains open after data is sent if this is true.
|
163
172
|
The socket closes after data is sent and a packet is received
|
164
173
|
if this is false. Default is true.
|
174
|
+
bind_port: Local UDP port to bind to for receiving data, if different than
|
175
|
+
the remote port being connected to.
|
176
|
+
reuse_addr: Set true to enable the SO_REUSEADDR flag. Allows local address reuse.
|
177
|
+
no_delay: Set true to enable the TCP_NODELAY flag. Disables Nagle algorithm.
|
178
|
+
cork: Set true to enable the TCP_CORK flag. Buffers multiple writes
|
179
|
+
into one segment.
|
165
180
|
expression: Overrides the #read_match regular expression for received data.</pre>
|
166
181
|
|
167
182
|
|
168
183
|
|
169
184
|
|
170
185
|
<div class="method-source-code" id="new-source">
|
171
|
-
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line
|
186
|
+
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 23</span>
|
172
187
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-operator">**</span><span class="ruby-identifier">kwargs</span>)
|
173
188
|
<span class="ruby-ivar">@socket</span> = <span class="ruby-keyword">nil</span>
|
174
189
|
|
190
|
+
<span class="ruby-comment"># TODO: Should be able to parse the port out of host.</span>
|
191
|
+
<span class="ruby-comment"># :port should override this parsed value.</span>
|
192
|
+
|
175
193
|
<span class="ruby-ivar">@host</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:host</span>
|
176
|
-
<span class="ruby-ivar">@port</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:port</span>,
|
177
|
-
<span class="ruby-ivar">@
|
194
|
+
<span class="ruby-ivar">@port</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:port</span>, <span class="ruby-value">23</span>
|
195
|
+
<span class="ruby-ivar">@bind_port</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:bind_port</span>, <span class="ruby-ivar">@port</span>
|
196
|
+
|
197
|
+
<span class="ruby-comment"># Automatically select UDP for the multicast range. Otherwise default to TCP.</span>
|
198
|
+
<span class="ruby-identifier">default_protocol</span> = <span class="ruby-value">:tcp</span>
|
199
|
+
<span class="ruby-identifier">default_protocol</span> = <span class="ruby-value">:udp</span> <span class="ruby-keyword">if</span> <span class="ruby-constant">Ionian</span><span class="ruby-operator">::</span><span class="ruby-constant">Extension</span><span class="ruby-operator">::</span><span class="ruby-constant">Socket</span>.<span class="ruby-identifier">multicast?</span> <span class="ruby-ivar">@host</span>
|
200
|
+
<span class="ruby-identifier">default_protocol</span> = <span class="ruby-value">:unix</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@host</span>.<span class="ruby-identifier">start_with?</span> <span class="ruby-string">'/'</span>
|
201
|
+
|
202
|
+
<span class="ruby-ivar">@protocol</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:protocol</span>, <span class="ruby-identifier">default_protocol</span>
|
178
203
|
<span class="ruby-ivar">@persistent</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:persistent</span>, <span class="ruby-keyword">true</span>
|
179
204
|
<span class="ruby-ivar">@expression</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:expression</span>, <span class="ruby-keyword">nil</span>
|
180
205
|
|
206
|
+
<span class="ruby-ivar">@reuse_addr</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:reuse_addr</span>, <span class="ruby-keyword">false</span>
|
207
|
+
<span class="ruby-ivar">@no_delay</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:no_delay</span>, <span class="ruby-keyword">false</span>
|
208
|
+
<span class="ruby-ivar">@cork</span> = <span class="ruby-identifier">kwargs</span>.<span class="ruby-identifier">fetch</span> <span class="ruby-value">:cork</span>, <span class="ruby-keyword">false</span>
|
209
|
+
|
181
210
|
<span class="ruby-identifier">create_socket</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@persistent</span>
|
182
211
|
<span class="ruby-keyword">end</span></pre>
|
183
212
|
</div>
|
@@ -245,7 +274,7 @@ expression: Overrides the #read_match regular expression for received data.</pre
|
|
245
274
|
|
246
275
|
|
247
276
|
<div class="method-source-code" id="closed-3F-source">
|
248
|
-
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line
|
277
|
+
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 94</span>
|
249
278
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">closed?</span>
|
250
279
|
<span class="ruby-keyword">return</span> <span class="ruby-keyword">true</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@socket</span>
|
251
280
|
<span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">closed?</span>
|
@@ -281,7 +310,7 @@ href="Extension/IO.html#method-i-read_match">Ionian::Extension::IO#read_match</a
|
|
281
310
|
|
282
311
|
|
283
312
|
<div class="method-source-code" id="cmd-source">
|
284
|
-
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line
|
313
|
+
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 64</span>
|
285
314
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">cmd</span>(<span class="ruby-identifier">string</span>, <span class="ruby-operator">**</span><span class="ruby-identifier">kwargs</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
286
315
|
<span class="ruby-identifier">create_socket</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@persistent</span>
|
287
316
|
|
@@ -328,7 +357,7 @@ non-persistent sockets.</p>
|
|
328
357
|
|
329
358
|
|
330
359
|
<div class="method-source-code" id="flush-source">
|
331
|
-
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line
|
360
|
+
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 101</span>
|
332
361
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">flush</span>
|
333
362
|
<span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">flush</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@persistent</span>
|
334
363
|
<span class="ruby-keyword">end</span></pre>
|
@@ -364,7 +393,7 @@ non-persistent sockets.</p>
|
|
364
393
|
|
365
394
|
|
366
395
|
<div class="method-source-code" id="has_data-3F-source">
|
367
|
-
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line
|
396
|
+
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 88</span>
|
368
397
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">has_data?</span>(<span class="ruby-operator">**</span><span class="ruby-identifier">kwargs</span>)
|
369
398
|
<span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@socket</span>
|
370
399
|
<span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">has_data?</span> <span class="ruby-identifier">kwargs</span>
|
@@ -398,7 +427,7 @@ non-persistent sockets.</p>
|
|
398
427
|
|
399
428
|
|
400
429
|
<div class="method-source-code" id="persistent-3F-source">
|
401
|
-
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line
|
430
|
+
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 56</span>
|
402
431
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">persistent?</span>
|
403
432
|
<span class="ruby-ivar">@persistent</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">false</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@persistent</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">false</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">true</span>
|
404
433
|
<span class="ruby-keyword">end</span></pre>
|
@@ -432,7 +461,7 @@ non-persistent sockets.</p>
|
|
432
461
|
|
433
462
|
|
434
463
|
<div class="method-source-code" id="protocol-3F-source">
|
435
|
-
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line
|
464
|
+
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 51</span>
|
436
465
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">protocol?</span>
|
437
466
|
<span class="ruby-ivar">@protocol</span>
|
438
467
|
<span class="ruby-keyword">end</span></pre>
|
@@ -466,7 +495,7 @@ any string not already ending with one.</p>
|
|
466
495
|
|
467
496
|
|
468
497
|
<div class="method-source-code" id="puts-source">
|
469
|
-
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line
|
498
|
+
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 107</span>
|
470
499
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">puts</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">string</span>)
|
471
500
|
<span class="ruby-keyword">self</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">string</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">chomp</span>}.<span class="ruby-identifier">join</span>(<span class="ruby-string">"\n"</span>) <span class="ruby-operator">+</span> <span class="ruby-string">"\n"</span>
|
472
501
|
<span class="ruby-keyword">end</span></pre>
|
@@ -499,7 +528,7 @@ any string not already ending with one.</p>
|
|
499
528
|
|
500
529
|
|
501
530
|
<div class="method-source-code" id="write-source">
|
502
|
-
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line
|
531
|
+
<pre><span class="ruby-comment"># File lib/ionian/socket.rb, line 113</span>
|
503
532
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">write</span>(<span class="ruby-identifier">string</span>)
|
504
533
|
<span class="ruby-identifier">create_socket</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@persistent</span>
|
505
534
|
|
data/doc/created.rid
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
|
1
|
+
Mon, 09 Dec 2013 18:32:49 -0800
|
2
2
|
lib/ionian.rb Tue, 03 Dec 2013 19:30:50 -0800
|
3
|
-
lib/ionian/extension/io.rb
|
4
|
-
lib/ionian/extension/socket.rb
|
5
|
-
lib/ionian/socket.rb
|
3
|
+
lib/ionian/extension/io.rb Wed, 04 Dec 2013 19:25:58 -0800
|
4
|
+
lib/ionian/extension/socket.rb Sat, 07 Dec 2013 14:02:46 -0800
|
5
|
+
lib/ionian/socket.rb Sat, 07 Dec 2013 15:13:22 -0800
|
data/doc/js/search_index.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
var search_data = {"index":{"searchIndex":["ionian","extension","io","socket","socket","<<()","closed?()","cmd()","expression()","expression=()","extended()","extended()","flush()","has_data?()","has_data?()","initialize_ionian()","initialize_ionian_socket()","new()","no_delay()","no_delay=()","on_match()","persistent?()","protocol?()","purge()","puts()","read_match()","register_observer()","run_match()","unregister_observer()","write()"],"longSearchIndex":["ionian","ionian::extension","ionian::extension::io","ionian::extension::socket","ionian::socket","ionian::socket#<<()","ionian::socket#closed?()","ionian::socket#cmd()","ionian::extension::io#expression()","ionian::extension::io#expression=()","ionian::extension::io::extended()","ionian::extension::socket::extended()","ionian::socket#flush()","ionian::extension::io#has_data?()","ionian::socket#has_data?()","ionian::extension::io#initialize_ionian()","ionian::extension::socket#initialize_ionian_socket()","ionian::socket::new()","ionian::extension::socket#no_delay()","ionian::extension::socket#no_delay=()","ionian::extension::io#on_match()","ionian::socket#persistent?()","ionian::socket#protocol?()","ionian::extension::io#purge()","ionian::socket#puts()","ionian::extension::io#read_match()","ionian::extension::io#register_observer()","ionian::extension::io#run_match()","ionian::extension::io#unregister_observer()","ionian::socket#write()"],"info":[["Ionian","","Ionian.html","","<p>A library to simplify interaction with IO streams. This includes network\nsockets, file sockets, and serial …\n"],["Ionian::Extension","","Ionian/Extension.html","","<p>A collection of mixins.\n"],["Ionian::Extension::IO","","Ionian/Extension/IO.html","","<p>A mixin for IO objects that allows regular expression matching and\nconvenient notification of received …\n"],["Ionian::Extension::Socket","","Ionian/Extension/Socket.html","","<p>A mixin for Socket objects.\n<p>This module was designed to be extended by instantiated objects that\nimplement …\n"],["Ionian::Socket","","Ionian/Socket.html","","<p>A convenient wrapper for TCP, UDP, and Unix sockets.\n"],["<<","Ionian::Socket","Ionian/Socket.html#method-i-3C-3C","(string)",""],["closed?","Ionian::Socket","Ionian/Socket.html#method-i-closed-3F","()","<p>Returns true if the socket is closed.\n"],["cmd","Ionian::Socket","Ionian/Socket.html#method-i-cmd","(string, **kwargs, &block)","<p>Send a command (data) to the socket. Returns an array of received matches.\nBlock yields received match. …\n"],["expression","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-expression","()","<p>Returns the regular expression used for #read_match.\n"],["expression=","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-expression-3D","(exp)","<p>Set the expression to match against the read buffer. Can be a regular\nexpression specifying capture groups, …\n"],["extended","Ionian::Extension::IO","Ionian/Extension/IO.html#method-c-extended","(obj)","<p>Called automaticallly when the object is extended with #extend.\n"],["extended","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-c-extended","(obj)","<p>Called automaticallly when the object is extended with #extend.\n"],["flush","Ionian::Socket","Ionian/Socket.html#method-i-flush","()","<p>Flushes buffered data to the operating system. This method has no effect on\nnon-persistent sockets.\n"],["has_data?","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-has_data-3F","(timeout: 0)","<p>Returns true if there is data in the receive buffer. Args:\n\n<pre>Timeout: Number of seconds to wait for data ...</pre>\n"],["has_data?","Ionian::Socket","Ionian/Socket.html#method-i-has_data-3F","(**kwargs)","<p>Returns true if there is data in the receive buffer. Args:\n\n<pre>Timeout: Number of seconds to wait for data ...</pre>\n"],["initialize_ionian","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-initialize_ionian","()","<p>Initialize the Ionian instance variables. This is called automatically if\n#extend is called on an object. …\n"],["initialize_ionian_socket","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-initialize_ionian_socket","()","<p>Initialize the Ionian Socket variables. This is called automatically if\n#extend is called on an object. …\n"],["new","Ionian::Socket","Ionian/Socket.html#method-c-new","(**kwargs)","<p>Args:\n\n<pre>host: IP or hostname to connect to.\nport: Connection's port number. Default is 23. Unused by :unix ...</pre>\n"],["no_delay","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-no_delay","()","<p>Returns true if the TCP_NODELAY flag is enabled (Nagle disabled). Otherwise\nfalse.\n"],["no_delay=","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-no_delay-3D","(value)","<p>Setting to true enables the TCP_NODELAY flag (disables Nagle). Setting to\nfalse disables the flag (enables …\n"],["on_match","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-on_match","(&block)",""],["persistent?","Ionian::Socket","Ionian/Socket.html#method-i-persistent-3F","()","<p>Returns true if the socket remains open after writing data.\n"],["protocol?","Ionian::Socket","Ionian/Socket.html#method-i-protocol-3F","()","<p>Returns a symbol of the type of protocol this socket uses: :tcp, :udp,\n:unix\n"],["purge","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-purge","()","<p>Erase the data in the IO and Ionian buffers. This is typically handled\nautomatically.\n"],["puts","Ionian::Socket","Ionian/Socket.html#method-i-puts","(*string)","<p>Writes the given string(s) to the socket and appends a newline character to\nany string not already ending …\n"],["read_match","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-read_match","(**kwargs, &block)","<p>Read matched data from the buffer. This method SHOULD NOT be used if\n#run_match is used.\n<p>Passes matches …\n"],["register_observer","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-register_observer","(&block)","<p>Register a block to be called when #run_match receives matched data. Method\ncallbacks can be registered …\n"],["run_match","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-run_match","(**kwargs)","<p>Start a thread that checks for data and notifies listeners (do |match,\nsocket|). Passes kwargs to #read_match …\n"],["unregister_observer","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-unregister_observer","(&block)","<p>Unregister a block from being called when matched data is received.\n"],["write","Ionian::Socket","Ionian/Socket.html#method-i-write","(string)","<p>Writes the given string to the socket. Returns the number of bytes written.\n"]]}}
|
1
|
+
var search_data = {"index":{"searchIndex":["ionian","extension","io","socket","socket","<<()","closed?()","cmd()","cork()","cork=()","cork?()","expression()","expression=()","extended()","extended()","flush()","has_data?()","has_data?()","initialize_ionian()","initialize_ionian_socket()","ip_add_membership()","ip_drop_membership()","ip_multicast_if()","ip_multicast_if=()","ip_multicast_loop()","ip_multicast_loop=()","ip_multicast_loop?()","ip_multicast_ttl()","ip_multicast_ttl=()","ipv6_add_membership()","ipv6_drop_membership()","ipv6_multicast_hops()","ipv6_multicast_hops=()","ipv6_multicast_if()","ipv6_multicast_if=()","ipv6_multicast_loop()","ipv6_multicast_loop=()","ipv6_multicast_loop?()","multicast()","multicast?()","new()","no_delay()","no_delay=()","no_delay?()","on_match()","persistent?()","protocol?()","purge()","puts()","read_match()","recork()","register_observer()","reuse_addr()","reuse_addr=()","reuse_addr?()","run_match()","ttl()","ttl=()","ttl?()","unregister_observer()","write()"],"longSearchIndex":["ionian","ionian::extension","ionian::extension::io","ionian::extension::socket","ionian::socket","ionian::socket#<<()","ionian::socket#closed?()","ionian::socket#cmd()","ionian::extension::socket#cork()","ionian::extension::socket#cork=()","ionian::extension::socket#cork?()","ionian::extension::io#expression()","ionian::extension::io#expression=()","ionian::extension::io::extended()","ionian::extension::socket::extended()","ionian::socket#flush()","ionian::extension::io#has_data?()","ionian::socket#has_data?()","ionian::extension::io#initialize_ionian()","ionian::extension::socket#initialize_ionian_socket()","ionian::extension::socket#ip_add_membership()","ionian::extension::socket#ip_drop_membership()","ionian::extension::socket#ip_multicast_if()","ionian::extension::socket#ip_multicast_if=()","ionian::extension::socket#ip_multicast_loop()","ionian::extension::socket#ip_multicast_loop=()","ionian::extension::socket#ip_multicast_loop?()","ionian::extension::socket#ip_multicast_ttl()","ionian::extension::socket#ip_multicast_ttl=()","ionian::extension::socket#ipv6_add_membership()","ionian::extension::socket#ipv6_drop_membership()","ionian::extension::socket#ipv6_multicast_hops()","ionian::extension::socket#ipv6_multicast_hops=()","ionian::extension::socket#ipv6_multicast_if()","ionian::extension::socket#ipv6_multicast_if=()","ionian::extension::socket#ipv6_multicast_loop()","ionian::extension::socket#ipv6_multicast_loop=()","ionian::extension::socket#ipv6_multicast_loop?()","ionian::extension::socket#multicast()","ionian::extension::socket#multicast?()","ionian::socket::new()","ionian::extension::socket#no_delay()","ionian::extension::socket#no_delay=()","ionian::extension::socket#no_delay?()","ionian::extension::io#on_match()","ionian::socket#persistent?()","ionian::socket#protocol?()","ionian::extension::io#purge()","ionian::socket#puts()","ionian::extension::io#read_match()","ionian::extension::socket#recork()","ionian::extension::io#register_observer()","ionian::extension::socket#reuse_addr()","ionian::extension::socket#reuse_addr=()","ionian::extension::socket#reuse_addr?()","ionian::extension::io#run_match()","ionian::extension::socket#ttl()","ionian::extension::socket#ttl=()","ionian::extension::socket#ttl?()","ionian::extension::io#unregister_observer()","ionian::socket#write()"],"info":[["Ionian","","Ionian.html","","<p>A library to simplify interaction with IO streams. This includes network\nsockets, file sockets, and serial …\n"],["Ionian::Extension","","Ionian/Extension.html","","<p>A collection of mixins.\n"],["Ionian::Extension::IO","","Ionian/Extension/IO.html","","<p>A mixin for IO objects that allows regular expression matching and\nconvenient notification of received …\n"],["Ionian::Extension::Socket","","Ionian/Extension/Socket.html","","<p>A mixin for Socket objects.\n<p>This module was designed to be extended by instantiated objects that\nimplement …\n"],["Ionian::Socket","","Ionian/Socket.html","","<p>A convenient wrapper for TCP, UDP, and Unix sockets.\n"],["<<","Ionian::Socket","Ionian/Socket.html#method-i-3C-3C","(string)",""],["closed?","Ionian::Socket","Ionian/Socket.html#method-i-closed-3F","()","<p>Returns true if the socket is closed.\n"],["cmd","Ionian::Socket","Ionian/Socket.html#method-i-cmd","(string, **kwargs, &block)","<p>Send a command (data) to the socket. Returns an array of received matches.\nBlock yields received match. …\n"],["cork","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-cork","()","<p>Returns true if multiple writes are buffered into a single segment. See\n#recork. Linux only. ( TCP_CORK …\n"],["cork=","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-cork-3D","(value)","<p>Buffers multiple writes into a single segment if true. The segment is sent\nonce the cork flag is disabled, …\n"],["cork?","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-cork-3F","()",""],["expression","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-expression","()","<p>Returns the regular expression used for #read_match.\n"],["expression=","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-expression-3D","(exp)","<p>Set the expression to match against the read buffer. Can be a regular\nexpression specifying capture groups, …\n"],["extended","Ionian::Extension::IO","Ionian/Extension/IO.html#method-c-extended","(obj)","<p>Called automaticallly when the object is extended with #extend.\n"],["extended","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-c-extended","(obj)","<p>Called automaticallly when the object is extended with #extend.\n"],["flush","Ionian::Socket","Ionian/Socket.html#method-i-flush","()","<p>Flushes buffered data to the operating system. This method has no effect on\nnon-persistent sockets.\n"],["has_data?","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-has_data-3F","(timeout: 0)","<p>Returns true if there is data in the receive buffer. Args:\n\n<pre>Timeout: Number of seconds to wait for data ...</pre>\n"],["has_data?","Ionian::Socket","Ionian/Socket.html#method-i-has_data-3F","(**kwargs)","<p>Returns true if there is data in the receive buffer. Args:\n\n<pre>Timeout: Number of seconds to wait for data ...</pre>\n"],["initialize_ionian","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-initialize_ionian","()","<p>Initialize the Ionian instance variables. This is called automatically if\n#extend is called on an object. …\n"],["initialize_ionian_socket","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-initialize_ionian_socket","()","<p>Initialize the Ionian Socket variables. This is called automatically if\n#extend is called on an object. …\n"],["ip_add_membership","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ip_add_membership","(address = nil, interface = nil)","<p>Join a multicast group. Address is the class D multicast address (uses\nremote address if not specified). …\n"],["ip_drop_membership","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ip_drop_membership","(address = nil, interface = nil)","<p>Leave a multicast group. Address is the class D multicast address (uses\nremote address if not specified). …\n"],["ip_multicast_if","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ip_multicast_if","()","<p>Returns the default interface for outgoing multicasts. ( IP_MULTICAST_IF )\n"],["ip_multicast_if=","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ip_multicast_if-3D","(interface = nil)","<p>Specify default interface for outgoing multicasts. ( IP_MULTICAST_IF )\n"],["ip_multicast_loop","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ip_multicast_loop","()","<p>Returns true if loopback of outgoing multicasts is enabled. (\nIP_MULTICAST_LOOP )\n"],["ip_multicast_loop=","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ip_multicast_loop-3D","(value)","<p>Enables loopback of outgoing multicasts if true. ( IP_MULTICAST_LOOP )\n"],["ip_multicast_loop?","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ip_multicast_loop-3F","()",""],["ip_multicast_ttl","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ip_multicast_ttl","()","<p>Returns the time to live (hop limit) for outgoing multicasts. (\nIP_MULTICAST_TTL )\n"],["ip_multicast_ttl=","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ip_multicast_ttl-3D","(value)","<p>Set the time to live (hop limit) for outgoing multicasts. (\nIP_MULTICAST_TTL )\n"],["ipv6_add_membership","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ipv6_add_membership","()",""],["ipv6_drop_membership","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ipv6_drop_membership","()",""],["ipv6_multicast_hops","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ipv6_multicast_hops","()",""],["ipv6_multicast_hops=","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ipv6_multicast_hops-3D","(value)",""],["ipv6_multicast_if","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ipv6_multicast_if","()",""],["ipv6_multicast_if=","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ipv6_multicast_if-3D","(value)",""],["ipv6_multicast_loop","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ipv6_multicast_loop","()",""],["ipv6_multicast_loop=","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ipv6_multicast_loop-3D","(value)",""],["ipv6_multicast_loop?","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ipv6_multicast_loop-3F","()",""],["multicast","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-multicast","(address)","<p>Returns true if the given address is within the multicast range.\n"],["multicast?","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-multicast-3F","(address)",""],["new","Ionian::Socket","Ionian/Socket.html#method-c-new","(**kwargs)","<p>Args:\n\n<pre>host: IP or hostname to connect to.\nport: Connection's port number. Default is 23. Unused ...</pre>\n"],["no_delay","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-no_delay","()","<p>Returns true if the Nagle algorithm is disabled. ( TCP_NODELAY )\n"],["no_delay=","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-no_delay-3D","(value)","<p>Disables the Nagle algorithm if true. ( TCP_NODELAY )\n"],["no_delay?","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-no_delay-3F","()",""],["on_match","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-on_match","(&block)",""],["persistent?","Ionian::Socket","Ionian/Socket.html#method-i-persistent-3F","()","<p>Returns true if the socket remains open after writing data.\n"],["protocol?","Ionian::Socket","Ionian/Socket.html#method-i-protocol-3F","()","<p>Returns a symbol of the type of protocol this socket uses: :tcp, :udp,\n:unix\n"],["purge","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-purge","()","<p>Erase the data in the IO and Ionian buffers. This is typically handled\nautomatically.\n"],["puts","Ionian::Socket","Ionian/Socket.html#method-i-puts","(*string)","<p>Writes the given string(s) to the socket and appends a newline character to\nany string not already ending …\n"],["read_match","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-read_match","(**kwargs, &block)","<p>Read matched data from the buffer. This method SHOULD NOT be used if\n#run_match is used.\n<p>Passes matches …\n"],["recork","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-recork","()","<p>Unsets cork to transmit data, then reapplies cork. ( TCP_CORK )\n"],["register_observer","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-register_observer","(&block)","<p>Register a block to be called when #run_match receives matched data. Method\ncallbacks can be registered …\n"],["reuse_addr","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-reuse_addr","()","<p>Returns true if local address reuse is allowed. ( SO_REUSEADDR )\n"],["reuse_addr=","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-reuse_addr-3D","(value)","<p>Allows local address reuse if true. ( SO_REUSEADDR )\n"],["reuse_addr?","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-reuse_addr-3F","()",""],["run_match","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-run_match","(**kwargs)","<p>Start a thread that checks for data and notifies listeners (do |match,\nsocket|). Passes kwargs to #read_match …\n"],["ttl","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ttl","()","<p>Returns the time to live (hop limit). ( IP_TTL )\n"],["ttl=","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ttl-3D","(value)","<p>Sets the time to live (hop limit). ( IP_TTL )\n"],["ttl?","Ionian::Extension::Socket","Ionian/Extension/Socket.html#method-i-ttl-3F","()",""],["unregister_observer","Ionian::Extension::IO","Ionian/Extension/IO.html#method-i-unregister_observer","(&block)","<p>Unregister a block from being called when matched data is received.\n"],["write","Ionian::Socket","Ionian/Socket.html#method-i-write","(string)","<p>Writes the given string to the socket. Returns the number of bytes written.\n"]]}}
|
data/doc/table_of_contents.html
CHANGED
@@ -78,6 +78,21 @@
|
|
78
78
|
—
|
79
79
|
<span class="container">Ionian::Socket</span>
|
80
80
|
|
81
|
+
<li class="method">
|
82
|
+
<a href="Ionian/Extension/Socket.html#method-i-cork">#cork</a>
|
83
|
+
—
|
84
|
+
<span class="container">Ionian::Extension::Socket</span>
|
85
|
+
|
86
|
+
<li class="method">
|
87
|
+
<a href="Ionian/Extension/Socket.html#method-i-cork-3D">#cork=</a>
|
88
|
+
—
|
89
|
+
<span class="container">Ionian::Extension::Socket</span>
|
90
|
+
|
91
|
+
<li class="method">
|
92
|
+
<a href="Ionian/Extension/Socket.html#method-i-cork-3F">#cork?</a>
|
93
|
+
—
|
94
|
+
<span class="container">Ionian::Extension::Socket</span>
|
95
|
+
|
81
96
|
<li class="method">
|
82
97
|
<a href="Ionian/Extension/IO.html#method-i-expression">#expression</a>
|
83
98
|
—
|
@@ -113,6 +128,106 @@
|
|
113
128
|
—
|
114
129
|
<span class="container">Ionian::Extension::Socket</span>
|
115
130
|
|
131
|
+
<li class="method">
|
132
|
+
<a href="Ionian/Extension/Socket.html#method-i-ip_add_membership">#ip_add_membership</a>
|
133
|
+
—
|
134
|
+
<span class="container">Ionian::Extension::Socket</span>
|
135
|
+
|
136
|
+
<li class="method">
|
137
|
+
<a href="Ionian/Extension/Socket.html#method-i-ip_drop_membership">#ip_drop_membership</a>
|
138
|
+
—
|
139
|
+
<span class="container">Ionian::Extension::Socket</span>
|
140
|
+
|
141
|
+
<li class="method">
|
142
|
+
<a href="Ionian/Extension/Socket.html#method-i-ip_multicast_if">#ip_multicast_if</a>
|
143
|
+
—
|
144
|
+
<span class="container">Ionian::Extension::Socket</span>
|
145
|
+
|
146
|
+
<li class="method">
|
147
|
+
<a href="Ionian/Extension/Socket.html#method-i-ip_multicast_if-3D">#ip_multicast_if=</a>
|
148
|
+
—
|
149
|
+
<span class="container">Ionian::Extension::Socket</span>
|
150
|
+
|
151
|
+
<li class="method">
|
152
|
+
<a href="Ionian/Extension/Socket.html#method-i-ip_multicast_loop">#ip_multicast_loop</a>
|
153
|
+
—
|
154
|
+
<span class="container">Ionian::Extension::Socket</span>
|
155
|
+
|
156
|
+
<li class="method">
|
157
|
+
<a href="Ionian/Extension/Socket.html#method-i-ip_multicast_loop-3D">#ip_multicast_loop=</a>
|
158
|
+
—
|
159
|
+
<span class="container">Ionian::Extension::Socket</span>
|
160
|
+
|
161
|
+
<li class="method">
|
162
|
+
<a href="Ionian/Extension/Socket.html#method-i-ip_multicast_loop-3F">#ip_multicast_loop?</a>
|
163
|
+
—
|
164
|
+
<span class="container">Ionian::Extension::Socket</span>
|
165
|
+
|
166
|
+
<li class="method">
|
167
|
+
<a href="Ionian/Extension/Socket.html#method-i-ip_multicast_ttl">#ip_multicast_ttl</a>
|
168
|
+
—
|
169
|
+
<span class="container">Ionian::Extension::Socket</span>
|
170
|
+
|
171
|
+
<li class="method">
|
172
|
+
<a href="Ionian/Extension/Socket.html#method-i-ip_multicast_ttl-3D">#ip_multicast_ttl=</a>
|
173
|
+
—
|
174
|
+
<span class="container">Ionian::Extension::Socket</span>
|
175
|
+
|
176
|
+
<li class="method">
|
177
|
+
<a href="Ionian/Extension/Socket.html#method-i-ipv6_add_membership">#ipv6_add_membership</a>
|
178
|
+
—
|
179
|
+
<span class="container">Ionian::Extension::Socket</span>
|
180
|
+
|
181
|
+
<li class="method">
|
182
|
+
<a href="Ionian/Extension/Socket.html#method-i-ipv6_drop_membership">#ipv6_drop_membership</a>
|
183
|
+
—
|
184
|
+
<span class="container">Ionian::Extension::Socket</span>
|
185
|
+
|
186
|
+
<li class="method">
|
187
|
+
<a href="Ionian/Extension/Socket.html#method-i-ipv6_multicast_hops">#ipv6_multicast_hops</a>
|
188
|
+
—
|
189
|
+
<span class="container">Ionian::Extension::Socket</span>
|
190
|
+
|
191
|
+
<li class="method">
|
192
|
+
<a href="Ionian/Extension/Socket.html#method-i-ipv6_multicast_hops-3D">#ipv6_multicast_hops=</a>
|
193
|
+
—
|
194
|
+
<span class="container">Ionian::Extension::Socket</span>
|
195
|
+
|
196
|
+
<li class="method">
|
197
|
+
<a href="Ionian/Extension/Socket.html#method-i-ipv6_multicast_if">#ipv6_multicast_if</a>
|
198
|
+
—
|
199
|
+
<span class="container">Ionian::Extension::Socket</span>
|
200
|
+
|
201
|
+
<li class="method">
|
202
|
+
<a href="Ionian/Extension/Socket.html#method-i-ipv6_multicast_if-3D">#ipv6_multicast_if=</a>
|
203
|
+
—
|
204
|
+
<span class="container">Ionian::Extension::Socket</span>
|
205
|
+
|
206
|
+
<li class="method">
|
207
|
+
<a href="Ionian/Extension/Socket.html#method-i-ipv6_multicast_loop">#ipv6_multicast_loop</a>
|
208
|
+
—
|
209
|
+
<span class="container">Ionian::Extension::Socket</span>
|
210
|
+
|
211
|
+
<li class="method">
|
212
|
+
<a href="Ionian/Extension/Socket.html#method-i-ipv6_multicast_loop-3D">#ipv6_multicast_loop=</a>
|
213
|
+
—
|
214
|
+
<span class="container">Ionian::Extension::Socket</span>
|
215
|
+
|
216
|
+
<li class="method">
|
217
|
+
<a href="Ionian/Extension/Socket.html#method-i-ipv6_multicast_loop-3F">#ipv6_multicast_loop?</a>
|
218
|
+
—
|
219
|
+
<span class="container">Ionian::Extension::Socket</span>
|
220
|
+
|
221
|
+
<li class="method">
|
222
|
+
<a href="Ionian/Extension/Socket.html#method-i-multicast">#multicast</a>
|
223
|
+
—
|
224
|
+
<span class="container">Ionian::Extension::Socket</span>
|
225
|
+
|
226
|
+
<li class="method">
|
227
|
+
<a href="Ionian/Extension/Socket.html#method-i-multicast-3F">#multicast?</a>
|
228
|
+
—
|
229
|
+
<span class="container">Ionian::Extension::Socket</span>
|
230
|
+
|
116
231
|
<li class="method">
|
117
232
|
<a href="Ionian/Extension/Socket.html#method-i-no_delay">#no_delay</a>
|
118
233
|
—
|
@@ -123,6 +238,11 @@
|
|
123
238
|
—
|
124
239
|
<span class="container">Ionian::Extension::Socket</span>
|
125
240
|
|
241
|
+
<li class="method">
|
242
|
+
<a href="Ionian/Extension/Socket.html#method-i-no_delay-3F">#no_delay?</a>
|
243
|
+
—
|
244
|
+
<span class="container">Ionian::Extension::Socket</span>
|
245
|
+
|
126
246
|
<li class="method">
|
127
247
|
<a href="Ionian/Extension/IO.html#method-i-on_match">#on_match</a>
|
128
248
|
—
|
@@ -153,16 +273,51 @@
|
|
153
273
|
—
|
154
274
|
<span class="container">Ionian::Extension::IO</span>
|
155
275
|
|
276
|
+
<li class="method">
|
277
|
+
<a href="Ionian/Extension/Socket.html#method-i-recork">#recork</a>
|
278
|
+
—
|
279
|
+
<span class="container">Ionian::Extension::Socket</span>
|
280
|
+
|
156
281
|
<li class="method">
|
157
282
|
<a href="Ionian/Extension/IO.html#method-i-register_observer">#register_observer</a>
|
158
283
|
—
|
159
284
|
<span class="container">Ionian::Extension::IO</span>
|
160
285
|
|
286
|
+
<li class="method">
|
287
|
+
<a href="Ionian/Extension/Socket.html#method-i-reuse_addr">#reuse_addr</a>
|
288
|
+
—
|
289
|
+
<span class="container">Ionian::Extension::Socket</span>
|
290
|
+
|
291
|
+
<li class="method">
|
292
|
+
<a href="Ionian/Extension/Socket.html#method-i-reuse_addr-3D">#reuse_addr=</a>
|
293
|
+
—
|
294
|
+
<span class="container">Ionian::Extension::Socket</span>
|
295
|
+
|
296
|
+
<li class="method">
|
297
|
+
<a href="Ionian/Extension/Socket.html#method-i-reuse_addr-3F">#reuse_addr?</a>
|
298
|
+
—
|
299
|
+
<span class="container">Ionian::Extension::Socket</span>
|
300
|
+
|
161
301
|
<li class="method">
|
162
302
|
<a href="Ionian/Extension/IO.html#method-i-run_match">#run_match</a>
|
163
303
|
—
|
164
304
|
<span class="container">Ionian::Extension::IO</span>
|
165
305
|
|
306
|
+
<li class="method">
|
307
|
+
<a href="Ionian/Extension/Socket.html#method-i-ttl">#ttl</a>
|
308
|
+
—
|
309
|
+
<span class="container">Ionian::Extension::Socket</span>
|
310
|
+
|
311
|
+
<li class="method">
|
312
|
+
<a href="Ionian/Extension/Socket.html#method-i-ttl-3D">#ttl=</a>
|
313
|
+
—
|
314
|
+
<span class="container">Ionian::Extension::Socket</span>
|
315
|
+
|
316
|
+
<li class="method">
|
317
|
+
<a href="Ionian/Extension/Socket.html#method-i-ttl-3F">#ttl?</a>
|
318
|
+
—
|
319
|
+
<span class="container">Ionian::Extension::Socket</span>
|
320
|
+
|
166
321
|
<li class="method">
|
167
322
|
<a href="Ionian/Extension/IO.html#method-i-unregister_observer">#unregister_observer</a>
|
168
323
|
—
|
data/lib/ionian/extension/io.rb
CHANGED