rev 0.1.1 → 0.1.2

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.
Files changed (207) hide show
  1. data/README +45 -9
  2. data/doc/rdoc/classes/Rev.html +368 -0
  3. data/doc/rdoc/classes/Rev.src/M000001.html +28 -0
  4. data/doc/rdoc/classes/Rev.src/M000002.html +35 -0
  5. data/doc/rdoc/classes/Rev.src/M000003.html +24 -0
  6. data/doc/rdoc/classes/Rev.src/M000004.html +28 -0
  7. data/doc/rdoc/classes/Rev.src/M000005.html +27 -0
  8. data/doc/rdoc/classes/Rev.src/M000006.html +33 -0
  9. data/doc/rdoc/classes/Rev.src/M000007.html +43 -0
  10. data/doc/rdoc/classes/Rev.src/M000008.html +16 -0
  11. data/doc/rdoc/classes/Rev/Buffer.html +354 -0
  12. data/doc/rdoc/classes/Rev/Buffer.src/M000019.html +17 -0
  13. data/doc/rdoc/classes/Rev/Buffer.src/M000020.html +29 -0
  14. data/doc/rdoc/classes/Rev/Buffer.src/M000021.html +27 -0
  15. data/doc/rdoc/classes/Rev/Buffer.src/M000022.html +27 -0
  16. data/doc/rdoc/classes/Rev/Buffer.src/M000023.html +31 -0
  17. data/doc/rdoc/classes/Rev/Buffer.src/M000024.html +31 -0
  18. data/doc/rdoc/classes/Rev/Buffer.src/M000025.html +30 -0
  19. data/doc/rdoc/classes/Rev/Buffer.src/M000026.html +50 -0
  20. data/doc/rdoc/classes/Rev/Buffer.src/M000027.html +22 -0
  21. data/doc/rdoc/classes/Rev/Buffer.src/M000028.html +24 -0
  22. data/doc/rdoc/classes/Rev/Buffer.src/M000029.html +24 -0
  23. data/doc/rdoc/classes/Rev/BufferedIO.html +397 -0
  24. data/doc/rdoc/classes/Rev/BufferedIO.src/M000095.html +23 -0
  25. data/doc/rdoc/classes/Rev/BufferedIO.src/M000096.html +16 -0
  26. data/doc/rdoc/classes/Rev/BufferedIO.src/M000097.html +16 -0
  27. data/doc/rdoc/classes/Rev/BufferedIO.src/M000098.html +16 -0
  28. data/doc/rdoc/classes/Rev/BufferedIO.src/M000099.html +18 -0
  29. data/doc/rdoc/classes/Rev/BufferedIO.src/M000100.html +18 -0
  30. data/doc/rdoc/classes/Rev/BufferedIO.src/M000101.html +23 -0
  31. data/doc/rdoc/classes/Rev/BufferedIO.src/M000102.html +18 -0
  32. data/doc/rdoc/classes/Rev/BufferedIO.src/M000103.html +20 -0
  33. data/doc/rdoc/classes/Rev/BufferedIO.src/M000104.html +24 -0
  34. data/doc/rdoc/classes/Rev/BufferedIO.src/M000105.html +23 -0
  35. data/doc/rdoc/classes/Rev/BufferedIO.src/M000106.html +22 -0
  36. data/doc/rdoc/classes/Rev/BufferedIO.src/M000107.html +29 -0
  37. data/doc/rdoc/classes/Rev/BufferedIO/Writer.html +154 -0
  38. data/doc/rdoc/classes/Rev/BufferedIO/Writer.src/M000108.html +19 -0
  39. data/doc/rdoc/classes/Rev/BufferedIO/Writer.src/M000109.html +18 -0
  40. data/doc/rdoc/classes/Rev/DNSResolver.html +401 -0
  41. data/doc/rdoc/classes/Rev/DNSResolver.src/M000124.html +25 -0
  42. data/doc/rdoc/classes/Rev/DNSResolver.src/M000125.html +29 -0
  43. data/doc/rdoc/classes/Rev/DNSResolver.src/M000126.html +20 -0
  44. data/doc/rdoc/classes/Rev/DNSResolver.src/M000127.html +19 -0
  45. data/doc/rdoc/classes/Rev/DNSResolver.src/M000128.html +16 -0
  46. data/doc/rdoc/classes/Rev/DNSResolver.src/M000129.html +16 -0
  47. data/doc/rdoc/classes/Rev/DNSResolver.src/M000131.html +19 -0
  48. data/doc/rdoc/classes/Rev/DNSResolver.src/M000132.html +21 -0
  49. data/doc/rdoc/classes/Rev/DNSResolver.src/M000133.html +27 -0
  50. data/doc/rdoc/classes/Rev/DNSResolver.src/M000134.html +28 -0
  51. data/doc/rdoc/classes/Rev/DNSResolver.src/M000135.html +55 -0
  52. data/doc/rdoc/classes/Rev/DNSResolver/Timeout.html +154 -0
  53. data/doc/rdoc/classes/Rev/DNSResolver/Timeout.src/M000136.html +20 -0
  54. data/doc/rdoc/classes/Rev/DNSResolver/Timeout.src/M000137.html +22 -0
  55. data/doc/rdoc/classes/Rev/HttpChunkHeader.html +156 -0
  56. data/doc/rdoc/classes/Rev/HttpChunkHeader.src/M000031.html +19 -0
  57. data/doc/rdoc/classes/Rev/HttpClient.html +460 -0
  58. data/doc/rdoc/classes/Rev/HttpClient.src/M000042.html +18 -0
  59. data/doc/rdoc/classes/Rev/HttpClient.src/M000043.html +27 -0
  60. data/doc/rdoc/classes/Rev/HttpClient.src/M000044.html +24 -0
  61. data/doc/rdoc/classes/Rev/HttpClient.src/M000045.html +19 -0
  62. data/doc/rdoc/classes/Rev/HttpClient.src/M000046.html +17 -0
  63. data/doc/rdoc/classes/Rev/HttpClient.src/M000047.html +19 -0
  64. data/doc/rdoc/classes/Rev/HttpClient.src/M000048.html +18 -0
  65. data/doc/rdoc/classes/Rev/HttpClient.src/M000049.html +18 -0
  66. data/doc/rdoc/classes/Rev/HttpClient.src/M000050.html +19 -0
  67. data/doc/rdoc/classes/Rev/HttpClient.src/M000051.html +19 -0
  68. data/doc/rdoc/classes/Rev/HttpClient.src/M000052.html +19 -0
  69. data/doc/rdoc/classes/Rev/HttpClient.src/M000053.html +41 -0
  70. data/doc/rdoc/classes/Rev/HttpClient.src/M000054.html +18 -0
  71. data/doc/rdoc/classes/Rev/HttpClient.src/M000055.html +34 -0
  72. data/doc/rdoc/classes/Rev/HttpEncoding.html +310 -0
  73. data/doc/rdoc/classes/Rev/HttpEncoding.src/M000009.html +20 -0
  74. data/doc/rdoc/classes/Rev/HttpEncoding.src/M000010.html +20 -0
  75. data/doc/rdoc/classes/Rev/HttpEncoding.src/M000011.html +18 -0
  76. data/doc/rdoc/classes/Rev/HttpEncoding.src/M000012.html +18 -0
  77. data/doc/rdoc/classes/Rev/HttpEncoding.src/M000013.html +18 -0
  78. data/doc/rdoc/classes/Rev/HttpEncoding.src/M000014.html +19 -0
  79. data/doc/rdoc/classes/Rev/HttpEncoding.src/M000015.html +18 -0
  80. data/doc/rdoc/classes/Rev/HttpEncoding.src/M000016.html +18 -0
  81. data/doc/rdoc/classes/Rev/HttpEncoding.src/M000017.html +22 -0
  82. data/doc/rdoc/classes/Rev/HttpEncoding.src/M000018.html +18 -0
  83. data/doc/rdoc/classes/Rev/HttpResponseHeader.html +219 -0
  84. data/doc/rdoc/classes/Rev/HttpResponseHeader.src/M000032.html +18 -0
  85. data/doc/rdoc/classes/Rev/HttpResponseHeader.src/M000033.html +18 -0
  86. data/doc/rdoc/classes/Rev/HttpResponseHeader.src/M000034.html +18 -0
  87. data/doc/rdoc/classes/Rev/IOWatcher.html +285 -0
  88. data/doc/rdoc/classes/Rev/IOWatcher.src/M000079.html +17 -0
  89. data/doc/rdoc/classes/Rev/IOWatcher.src/M000080.html +27 -0
  90. data/doc/rdoc/classes/Rev/IOWatcher.src/M000081.html +26 -0
  91. data/doc/rdoc/classes/Rev/IOWatcher.src/M000082.html +27 -0
  92. data/doc/rdoc/classes/Rev/IOWatcher.src/M000083.html +27 -0
  93. data/doc/rdoc/classes/Rev/IOWatcher.src/M000084.html +24 -0
  94. data/doc/rdoc/classes/Rev/IOWatcher.src/M000085.html +25 -0
  95. data/doc/rdoc/classes/Rev/Listener.html +207 -0
  96. data/doc/rdoc/classes/Rev/Listener.src/M000065.html +19 -0
  97. data/doc/rdoc/classes/Rev/Listener.src/M000066.html +19 -0
  98. data/doc/rdoc/classes/Rev/Listener.src/M000067.html +16 -0
  99. data/doc/rdoc/classes/Rev/Listener.src/M000068.html +18 -0
  100. data/doc/rdoc/classes/Rev/Loop.html +395 -0
  101. data/doc/rdoc/classes/Rev/Loop.src/M000070.html +25 -0
  102. data/doc/rdoc/classes/Rev/Loop.src/M000071.html +45 -0
  103. data/doc/rdoc/classes/Rev/Loop.src/M000072.html +18 -0
  104. data/doc/rdoc/classes/Rev/Loop.src/M000073.html +23 -0
  105. data/doc/rdoc/classes/Rev/Loop.src/M000074.html +19 -0
  106. data/doc/rdoc/classes/Rev/Loop.src/M000075.html +17 -0
  107. data/doc/rdoc/classes/Rev/Loop.src/M000076.html +27 -0
  108. data/doc/rdoc/classes/Rev/Loop.src/M000077.html +32 -0
  109. data/doc/rdoc/classes/Rev/Loop.src/M000078.html +32 -0
  110. data/doc/rdoc/classes/Rev/Server.html +164 -0
  111. data/doc/rdoc/classes/Rev/Server.src/M000121.html +32 -0
  112. data/doc/rdoc/classes/Rev/Server.src/M000122.html +20 -0
  113. data/doc/rdoc/classes/Rev/Socket.html +213 -0
  114. data/doc/rdoc/classes/Rev/Socket.src/M000035.html +21 -0
  115. data/doc/rdoc/classes/Rev/Socket.src/M000036.html +25 -0
  116. data/doc/rdoc/classes/Rev/Socket.src/M000037.html +16 -0
  117. data/doc/rdoc/classes/Rev/Socket.src/M000038.html +16 -0
  118. data/doc/rdoc/classes/Rev/Socket/Connector.html +154 -0
  119. data/doc/rdoc/classes/Rev/Socket/Connector.src/M000040.html +19 -0
  120. data/doc/rdoc/classes/Rev/Socket/Connector.src/M000041.html +28 -0
  121. data/doc/rdoc/classes/Rev/TCPListener.html +161 -0
  122. data/doc/rdoc/classes/Rev/TCPListener.src/M000069.html +23 -0
  123. data/doc/rdoc/classes/Rev/TCPServer.html +147 -0
  124. data/doc/rdoc/classes/Rev/TCPServer.src/M000123.html +20 -0
  125. data/doc/rdoc/classes/Rev/TCPSocket.html +233 -0
  126. data/doc/rdoc/classes/Rev/TCPSocket.src/M000056.html +20 -0
  127. data/doc/rdoc/classes/Rev/TCPSocket.src/M000057.html +34 -0
  128. data/doc/rdoc/classes/Rev/TCPSocket.src/M000058.html +24 -0
  129. data/doc/rdoc/classes/Rev/TCPSocket.src/M000059.html +18 -0
  130. data/doc/rdoc/classes/Rev/TCPSocket/TCPConnectResolver.html +171 -0
  131. data/doc/rdoc/classes/Rev/TCPSocket/TCPConnectResolver.src/M000060.html +19 -0
  132. data/doc/rdoc/classes/Rev/TCPSocket/TCPConnectResolver.src/M000061.html +27 -0
  133. data/doc/rdoc/classes/Rev/TCPSocket/TCPConnectResolver.src/M000062.html +23 -0
  134. data/doc/rdoc/classes/Rev/TCPSocket/TCPConnectSocket.html +154 -0
  135. data/doc/rdoc/classes/Rev/TCPSocket/TCPConnectSocket.src/M000063.html +25 -0
  136. data/doc/rdoc/classes/Rev/TCPSocket/TCPConnectSocket.src/M000064.html +23 -0
  137. data/doc/rdoc/classes/Rev/TimerWatcher.html +288 -0
  138. data/doc/rdoc/classes/Rev/TimerWatcher.src/M000086.html +17 -0
  139. data/doc/rdoc/classes/Rev/TimerWatcher.src/M000087.html +27 -0
  140. data/doc/rdoc/classes/Rev/TimerWatcher.src/M000088.html +26 -0
  141. data/doc/rdoc/classes/Rev/TimerWatcher.src/M000089.html +27 -0
  142. data/doc/rdoc/classes/Rev/TimerWatcher.src/M000090.html +27 -0
  143. data/doc/rdoc/classes/Rev/TimerWatcher.src/M000091.html +42 -0
  144. data/doc/rdoc/classes/Rev/TimerWatcher.src/M000092.html +24 -0
  145. data/doc/rdoc/classes/Rev/UNIXListener.html +147 -0
  146. data/doc/rdoc/classes/Rev/UNIXListener.src/M000120.html +18 -0
  147. data/doc/rdoc/classes/Rev/UNIXServer.html +147 -0
  148. data/doc/rdoc/classes/Rev/UNIXServer.src/M000030.html +18 -0
  149. data/doc/rdoc/classes/Rev/UNIXSocket.html +175 -0
  150. data/doc/rdoc/classes/Rev/UNIXSocket.src/M000093.html +18 -0
  151. data/doc/rdoc/classes/Rev/UNIXSocket.src/M000094.html +21 -0
  152. data/doc/rdoc/classes/Rev/Watcher.html +349 -0
  153. data/doc/rdoc/classes/Rev/Watcher.src/M000110.html +20 -0
  154. data/doc/rdoc/classes/Rev/Watcher.src/M000111.html +20 -0
  155. data/doc/rdoc/classes/Rev/Watcher.src/M000112.html +17 -0
  156. data/doc/rdoc/classes/Rev/Watcher.src/M000113.html +48 -0
  157. data/doc/rdoc/classes/Rev/Watcher.src/M000114.html +62 -0
  158. data/doc/rdoc/classes/Rev/Watcher.src/M000115.html +34 -0
  159. data/doc/rdoc/classes/Rev/Watcher.src/M000116.html +34 -0
  160. data/doc/rdoc/classes/Rev/Watcher.src/M000117.html +27 -0
  161. data/doc/rdoc/classes/Rev/Watcher.src/M000118.html +24 -0
  162. data/doc/rdoc/classes/Rev/Watcher.src/M000119.html +27 -0
  163. data/doc/rdoc/created.rid +1 -0
  164. data/doc/rdoc/files/LICENSE.html +165 -0
  165. data/doc/rdoc/files/README.html +297 -0
  166. data/doc/rdoc/files/ext/rev/rev_buffer_c.html +101 -0
  167. data/doc/rdoc/files/ext/rev/rev_ext_c.html +101 -0
  168. data/doc/rdoc/files/ext/rev/rev_io_watcher_c.html +101 -0
  169. data/doc/rdoc/files/ext/rev/rev_loop_c.html +101 -0
  170. data/doc/rdoc/files/ext/rev/rev_timer_watcher_c.html +101 -0
  171. data/doc/rdoc/files/ext/rev/rev_watcher_c.html +101 -0
  172. data/doc/rdoc/files/lib/rev/buffered_io_rb.html +101 -0
  173. data/doc/rdoc/files/lib/rev/dns_resolver_rb.html +101 -0
  174. data/doc/rdoc/files/lib/rev/http_client_rb.html +101 -0
  175. data/doc/rdoc/files/lib/rev/io_watcher_rb.html +101 -0
  176. data/doc/rdoc/files/lib/rev/listener_rb.html +108 -0
  177. data/doc/rdoc/files/lib/rev/loop_rb.html +101 -0
  178. data/doc/rdoc/files/lib/rev/server_rb.html +101 -0
  179. data/doc/rdoc/files/lib/rev/socket_rb.html +109 -0
  180. data/doc/rdoc/files/lib/rev/timer_watcher_rb.html +101 -0
  181. data/doc/rdoc/files/lib/rev/watcher_rb.html +101 -0
  182. data/doc/rdoc/files/lib/rev_rb.html +101 -0
  183. data/doc/rdoc/fr_class_index.html +52 -0
  184. data/doc/rdoc/fr_file_index.html +45 -0
  185. data/doc/rdoc/fr_method_index.html +163 -0
  186. data/doc/rdoc/index.html +24 -0
  187. data/doc/rdoc/rdoc-style.css +208 -0
  188. data/ext/rev/extconf.rb +1 -1
  189. data/ext/rev/rev.h +0 -1
  190. data/ext/rev/rev_buffer.c +606 -0
  191. data/ext/rev/rev_ext.c +1 -0
  192. data/ext/rev/rev_io_watcher.c +53 -19
  193. data/ext/rev/rev_loop.c +12 -35
  194. data/ext/rev/rev_timer_watcher.c +45 -3
  195. data/ext/rev/rev_watcher.c +13 -1
  196. data/lib/http11_client.bundle +0 -0
  197. data/lib/rev.rb +1 -1
  198. data/lib/rev/buffered_io.rb +25 -22
  199. data/lib/rev/dns_resolver.rb +31 -14
  200. data/lib/rev/http_client.rb +88 -91
  201. data/lib/rev/listener.rb +22 -5
  202. data/lib/rev/loop.rb +13 -0
  203. data/lib/rev/server.rb +10 -3
  204. data/lib/rev/socket.rb +30 -9
  205. data/lib/rev/watcher.rb +4 -2
  206. data/lib/rev_ext.bundle +0 -0
  207. metadata +230 -2
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>on_writable (Rev::BufferedIO::Writer)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rev/buffered_io.rb, line 138</span>
14
+ 138: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">on_writable</span>
15
+ 139: <span class="ruby-ivar">@buffered_io</span>.<span class="ruby-identifier">__send__</span>(<span class="ruby-identifier">:write_output_buffer</span>)
16
+ 140: <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,401 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Rev::DNSResolver</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Rev::DNSResolver</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/rev/dns_resolver_rb.html">
59
+ lib/rev/dns_resolver.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ <a href="IOWatcher.html">
69
+ IOWatcher
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+ <div id="description">
84
+ <p>
85
+ A non-blocking DNS resolver. It provides interfaces for querying both
86
+ /etc/hosts and nameserves listed in /etc/resolv.conf, or nameservers of
87
+ your choosing.
88
+ </p>
89
+ <p>
90
+ Presently the client only supports UDP requests against your nameservers
91
+ and cannot resolve anything with records larger than 512-bytes. Also, IPv6
92
+ is not presently supported.
93
+ </p>
94
+ <p>
95
+ <a href="DNSResolver.html">DNSResolver</a> objects are one-shot. Once they
96
+ resolve a domain name they automatically <a
97
+ href="DNSResolver.html#M000127">detach</a> themselves from the event loop
98
+ and cannot be used again.
99
+ </p>
100
+
101
+ </div>
102
+
103
+
104
+ </div>
105
+
106
+ <div id="method-list">
107
+ <h3 class="section-bar">Methods</h3>
108
+
109
+ <div class="name-list">
110
+ <a href="#M000126">attach</a>&nbsp;&nbsp;
111
+ <a href="#M000127">detach</a>&nbsp;&nbsp;
112
+ <a href="#M000124">hosts</a>&nbsp;&nbsp;
113
+ <a href="#M000125">new</a>&nbsp;&nbsp;
114
+ <a href="#M000129">on_failure</a>&nbsp;&nbsp;
115
+ <a href="#M000132">on_readable</a>&nbsp;&nbsp;
116
+ <a href="#M000128">on_success</a>&nbsp;&nbsp;
117
+ <a href="#M000130">on_timeout</a>&nbsp;&nbsp;
118
+ <a href="#M000134">request_message</a>&nbsp;&nbsp;
119
+ <a href="#M000133">request_question</a>&nbsp;&nbsp;
120
+ <a href="#M000135">response_address</a>&nbsp;&nbsp;
121
+ <a href="#M000131">send_request</a>&nbsp;&nbsp;
122
+ </div>
123
+ </div>
124
+
125
+ </div>
126
+
127
+
128
+ <!-- if includes -->
129
+
130
+ <div id="section">
131
+
132
+ <div id="class-list">
133
+ <h3 class="section-bar">Classes and Modules</h3>
134
+
135
+ Class <a href="DNSResolver/Timeout.html" class="link">Rev::DNSResolver::Timeout</a><br />
136
+
137
+ </div>
138
+
139
+ <div id="constants-list">
140
+ <h3 class="section-bar">Constants</h3>
141
+
142
+ <div class="name-list">
143
+ <table summary="Constants">
144
+ <tr class="top-aligned-row context-row">
145
+ <td class="context-item-name">RESOLV_CONF</td>
146
+ <td>=</td>
147
+ <td class="context-item-value">'/etc/resolv.conf'</td>
148
+ </tr>
149
+ <tr class="top-aligned-row context-row">
150
+ <td class="context-item-name">HOSTS</td>
151
+ <td>=</td>
152
+ <td class="context-item-value">'/etc/hosts'</td>
153
+ </tr>
154
+ <tr class="top-aligned-row context-row">
155
+ <td class="context-item-name">DNS_PORT</td>
156
+ <td>=</td>
157
+ <td class="context-item-value">53</td>
158
+ </tr>
159
+ <tr class="top-aligned-row context-row">
160
+ <td class="context-item-name">DATAGRAM_SIZE</td>
161
+ <td>=</td>
162
+ <td class="context-item-value">512</td>
163
+ </tr>
164
+ <tr class="top-aligned-row context-row">
165
+ <td class="context-item-name">TIMEOUT</td>
166
+ <td>=</td>
167
+ <td class="context-item-value">3</td>
168
+ </tr>
169
+ <tr class="top-aligned-row context-row">
170
+ <td class="context-item-name">RETRIES</td>
171
+ <td>=</td>
172
+ <td class="context-item-value">4</td>
173
+ </tr>
174
+ </table>
175
+ </div>
176
+ </div>
177
+
178
+
179
+
180
+
181
+
182
+
183
+ <!-- if method_list -->
184
+ <div id="methods">
185
+ <h3 class="section-bar">Public Class methods</h3>
186
+
187
+ <div id="method-M000124" class="method-detail">
188
+ <a name="M000124"></a>
189
+
190
+ <div class="method-heading">
191
+ <a href="DNSResolver.src/M000124.html" target="Code" class="method-signature"
192
+ onclick="popupCode('DNSResolver.src/M000124.html');return false;">
193
+ <span class="method-name">hosts</span><span class="method-args">(host, hostfile = HOSTS)</span>
194
+ </a>
195
+ </div>
196
+
197
+ <div class="method-description">
198
+ <p>
199
+ Query /etc/hosts (or the specified hostfile) for the given host
200
+ </p>
201
+ </div>
202
+ </div>
203
+
204
+ <div id="method-M000125" class="method-detail">
205
+ <a name="M000125"></a>
206
+
207
+ <div class="method-heading">
208
+ <a href="DNSResolver.src/M000125.html" target="Code" class="method-signature"
209
+ onclick="popupCode('DNSResolver.src/M000125.html');return false;">
210
+ <span class="method-name">new</span><span class="method-args">(hostname, *nameservers)</span>
211
+ </a>
212
+ </div>
213
+
214
+ <div class="method-description">
215
+ <p>
216
+ Create a <a href="DNSResolver.html#M000125">new</a> <a
217
+ href="Watcher.html">Rev::Watcher</a> descended object to resolve the given
218
+ hostname. If you so desire you can also specify a list of nameservers to
219
+ query. By default the resolver will use nameservers listed in
220
+ /etc/resolv.conf
221
+ </p>
222
+ </div>
223
+ </div>
224
+
225
+ <h3 class="section-bar">Public Instance methods</h3>
226
+
227
+ <div id="method-M000126" class="method-detail">
228
+ <a name="M000126"></a>
229
+
230
+ <div class="method-heading">
231
+ <a href="DNSResolver.src/M000126.html" target="Code" class="method-signature"
232
+ onclick="popupCode('DNSResolver.src/M000126.html');return false;">
233
+ <span class="method-name">attach</span><span class="method-args">(evloop)</span>
234
+ </a>
235
+ </div>
236
+
237
+ <div class="method-description">
238
+ <p>
239
+ Attach the <a href="DNSResolver.html">DNSResolver</a> to the given event
240
+ loop
241
+ </p>
242
+ </div>
243
+ </div>
244
+
245
+ <div id="method-M000127" class="method-detail">
246
+ <a name="M000127"></a>
247
+
248
+ <div class="method-heading">
249
+ <a href="DNSResolver.src/M000127.html" target="Code" class="method-signature"
250
+ onclick="popupCode('DNSResolver.src/M000127.html');return false;">
251
+ <span class="method-name">detach</span><span class="method-args">()</span>
252
+ </a>
253
+ </div>
254
+
255
+ <div class="method-description">
256
+ <p>
257
+ Detach the <a href="DNSResolver.html">DNSResolver</a> from the given event
258
+ loop
259
+ </p>
260
+ </div>
261
+ </div>
262
+
263
+ <div id="method-M000129" class="method-detail">
264
+ <a name="M000129"></a>
265
+
266
+ <div class="method-heading">
267
+ <a href="DNSResolver.src/M000129.html" target="Code" class="method-signature"
268
+ onclick="popupCode('DNSResolver.src/M000129.html');return false;">
269
+ <span class="method-name">on_failure</span><span class="method-args">()</span>
270
+ </a>
271
+ </div>
272
+
273
+ <div class="method-description">
274
+ <p>
275
+ Called when we receive a response indicating the name didn&#8216;t resolve
276
+ </p>
277
+ </div>
278
+ </div>
279
+
280
+ <div id="method-M000128" class="method-detail">
281
+ <a name="M000128"></a>
282
+
283
+ <div class="method-heading">
284
+ <a href="DNSResolver.src/M000128.html" target="Code" class="method-signature"
285
+ onclick="popupCode('DNSResolver.src/M000128.html');return false;">
286
+ <span class="method-name">on_success</span><span class="method-args">(address)</span>
287
+ </a>
288
+ </div>
289
+
290
+ <div class="method-description">
291
+ <p>
292
+ Called when the name has successfully resolved to an address
293
+ </p>
294
+ </div>
295
+ </div>
296
+
297
+ <div id="method-M000130" class="method-detail">
298
+ <a name="M000130"></a>
299
+
300
+ <div class="method-heading">
301
+ <span class="method-name">on_timeout</span><span class="method-args">()</span>
302
+ </div>
303
+
304
+ <div class="method-description">
305
+ <p>
306
+ Alias for <a href="DNSResolver.html#M000129">on_failure</a>
307
+ </p>
308
+ </div>
309
+ </div>
310
+
311
+ <h3 class="section-bar">Protected Instance methods</h3>
312
+
313
+ <div id="method-M000132" class="method-detail">
314
+ <a name="M000132"></a>
315
+
316
+ <div class="method-heading">
317
+ <a href="DNSResolver.src/M000132.html" target="Code" class="method-signature"
318
+ onclick="popupCode('DNSResolver.src/M000132.html');return false;">
319
+ <span class="method-name">on_readable</span><span class="method-args">()</span>
320
+ </a>
321
+ </div>
322
+
323
+ <div class="method-description">
324
+ <p>
325
+ Called by the subclass when the DNS response is available
326
+ </p>
327
+ </div>
328
+ </div>
329
+
330
+ <div id="method-M000134" class="method-detail">
331
+ <a name="M000134"></a>
332
+
333
+ <div class="method-heading">
334
+ <a href="DNSResolver.src/M000134.html" target="Code" class="method-signature"
335
+ onclick="popupCode('DNSResolver.src/M000134.html');return false;">
336
+ <span class="method-name">request_message</span><span class="method-args">()</span>
337
+ </a>
338
+ </div>
339
+
340
+ <div class="method-description">
341
+ </div>
342
+ </div>
343
+
344
+ <div id="method-M000133" class="method-detail">
345
+ <a name="M000133"></a>
346
+
347
+ <div class="method-heading">
348
+ <a href="DNSResolver.src/M000133.html" target="Code" class="method-signature"
349
+ onclick="popupCode('DNSResolver.src/M000133.html');return false;">
350
+ <span class="method-name">request_question</span><span class="method-args">(hostname)</span>
351
+ </a>
352
+ </div>
353
+
354
+ <div class="method-description">
355
+ </div>
356
+ </div>
357
+
358
+ <div id="method-M000135" class="method-detail">
359
+ <a name="M000135"></a>
360
+
361
+ <div class="method-heading">
362
+ <a href="DNSResolver.src/M000135.html" target="Code" class="method-signature"
363
+ onclick="popupCode('DNSResolver.src/M000135.html');return false;">
364
+ <span class="method-name">response_address</span><span class="method-args">(message)</span>
365
+ </a>
366
+ </div>
367
+
368
+ <div class="method-description">
369
+ </div>
370
+ </div>
371
+
372
+ <div id="method-M000131" class="method-detail">
373
+ <a name="M000131"></a>
374
+
375
+ <div class="method-heading">
376
+ <a href="DNSResolver.src/M000131.html" target="Code" class="method-signature"
377
+ onclick="popupCode('DNSResolver.src/M000131.html');return false;">
378
+ <span class="method-name">send_request</span><span class="method-args">()</span>
379
+ </a>
380
+ </div>
381
+
382
+ <div class="method-description">
383
+ <p>
384
+ Send a request to the DNS server
385
+ </p>
386
+ </div>
387
+ </div>
388
+
389
+
390
+ </div>
391
+
392
+
393
+ </div>
394
+
395
+
396
+ <div id="validator-badges">
397
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
398
+ </div>
399
+
400
+ </body>
401
+ </html>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>hosts (Rev::DNSResolver)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rev/dns_resolver.rb, line 40</span>
14
+ 40: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">hosts</span>(<span class="ruby-identifier">host</span>, <span class="ruby-identifier">hostfile</span> = <span class="ruby-constant">HOSTS</span>)
15
+ 41: <span class="ruby-identifier">hosts</span> = {}
16
+ 42: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">hostfile</span>).<span class="ruby-identifier">each_line</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">host_entry</span><span class="ruby-operator">|</span>
17
+ 43: <span class="ruby-identifier">entries</span> = <span class="ruby-identifier">host_entry</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/#.*$/</span>, <span class="ruby-value str">''</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\s+/</span>, <span class="ruby-value str">' '</span>).<span class="ruby-identifier">split</span>(<span class="ruby-value str">' '</span>)
18
+ 44: <span class="ruby-identifier">addr</span> = <span class="ruby-identifier">entries</span>.<span class="ruby-identifier">shift</span>
19
+ 45: <span class="ruby-identifier">entries</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">hosts</span>[<span class="ruby-identifier">e</span>] <span class="ruby-operator">||=</span> <span class="ruby-identifier">addr</span> }
20
+ 46: <span class="ruby-keyword kw">end</span>
21
+ 47:
22
+ 48: <span class="ruby-identifier">hosts</span>[<span class="ruby-identifier">host</span>]
23
+ 49: <span class="ruby-keyword kw">end</span></pre>
24
+ </body>
25
+ </html>
@@ -0,0 +1,29 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>new (Rev::DNSResolver)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rev/dns_resolver.rb, line 55</span>
14
+ 55: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">hostname</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">nameservers</span>)
15
+ 56: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nameservers</span>.<span class="ruby-identifier">empty?</span>
16
+ 57: <span class="ruby-identifier">nameservers</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-constant">RESOLV_CONF</span>).<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/^\s*nameserver\s+([0-9.:]+)/</span>).<span class="ruby-identifier">flatten</span>
17
+ 58: <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>, <span class="ruby-node">&quot;no nameservers found in #{RESOLV_CONF}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nameservers</span>.<span class="ruby-identifier">empty?</span>
18
+ 59: <span class="ruby-keyword kw">end</span>
19
+ 60:
20
+ 61: <span class="ruby-ivar">@nameservers</span> = <span class="ruby-identifier">nameservers</span>
21
+ 62: <span class="ruby-ivar">@question</span> = <span class="ruby-identifier">request_question</span> <span class="ruby-identifier">hostname</span>
22
+ 63:
23
+ 64: <span class="ruby-ivar">@socket</span> = <span class="ruby-constant">UDPSocket</span>.<span class="ruby-identifier">new</span>
24
+ 65: <span class="ruby-ivar">@timer</span> = <span class="ruby-constant">Timeout</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
25
+ 66:
26
+ 67: <span class="ruby-keyword kw">super</span>(<span class="ruby-ivar">@socket</span>)
27
+ 68: <span class="ruby-keyword kw">end</span></pre>
28
+ </body>
29
+ </html>