rio 0.3.1

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 (395) hide show
  1. data/COPYING +340 -0
  2. data/ChangeLog +755 -0
  3. data/README +65 -0
  4. data/RUNME.1st.rb +75 -0
  5. data/Rakefile +312 -0
  6. data/VERSION +1 -0
  7. data/doc/README_MSWIN32.txt +39 -0
  8. data/doc/RELEASE_NOTES +130 -0
  9. data/doc/generators/template/html/rio.rb +895 -0
  10. data/doc/rdoc/classes/Kernel.html +181 -0
  11. data/doc/rdoc/classes/Kernel.src/M000183.html +18 -0
  12. data/doc/rdoc/classes/RIO.html +508 -0
  13. data/doc/rdoc/classes/RIO.src/M000001.html +18 -0
  14. data/doc/rdoc/classes/RIO.src/M000002.html +18 -0
  15. data/doc/rdoc/classes/RIO.src/M000003.html +18 -0
  16. data/doc/rdoc/classes/RIO/Doc.html +138 -0
  17. data/doc/rdoc/classes/RIO/Doc/HOWTO.html +1031 -0
  18. data/doc/rdoc/classes/RIO/Doc/INTRO.html +1116 -0
  19. data/doc/rdoc/classes/RIO/Doc/MISC.html +443 -0
  20. data/doc/rdoc/classes/RIO/Doc/SYNOPSIS.html +325 -0
  21. data/doc/rdoc/classes/RIO/Rio.html +6333 -0
  22. data/doc/rdoc/classes/RIO/Rio.src/M000004.html +18 -0
  23. data/doc/rdoc/classes/RIO/Rio.src/M000005.html +20 -0
  24. data/doc/rdoc/classes/RIO/Rio.src/M000006.html +27 -0
  25. data/doc/rdoc/classes/RIO/Rio.src/M000007.html +27 -0
  26. data/doc/rdoc/classes/RIO/Rio.src/M000008.html +16 -0
  27. data/doc/rdoc/classes/RIO/Rio.src/M000009.html +18 -0
  28. data/doc/rdoc/classes/RIO/Rio.src/M000010.html +20 -0
  29. data/doc/rdoc/classes/RIO/Rio.src/M000011.html +16 -0
  30. data/doc/rdoc/classes/RIO/Rio.src/M000012.html +16 -0
  31. data/doc/rdoc/classes/RIO/Rio.src/M000013.html +16 -0
  32. data/doc/rdoc/classes/RIO/Rio.src/M000014.html +16 -0
  33. data/doc/rdoc/classes/RIO/Rio.src/M000015.html +16 -0
  34. data/doc/rdoc/classes/RIO/Rio.src/M000016.html +16 -0
  35. data/doc/rdoc/classes/RIO/Rio.src/M000017.html +16 -0
  36. data/doc/rdoc/classes/RIO/Rio.src/M000018.html +16 -0
  37. data/doc/rdoc/classes/RIO/Rio.src/M000019.html +16 -0
  38. data/doc/rdoc/classes/RIO/Rio.src/M000020.html +16 -0
  39. data/doc/rdoc/classes/RIO/Rio.src/M000021.html +16 -0
  40. data/doc/rdoc/classes/RIO/Rio.src/M000022.html +16 -0
  41. data/doc/rdoc/classes/RIO/Rio.src/M000023.html +16 -0
  42. data/doc/rdoc/classes/RIO/Rio.src/M000024.html +16 -0
  43. data/doc/rdoc/classes/RIO/Rio.src/M000025.html +16 -0
  44. data/doc/rdoc/classes/RIO/Rio.src/M000026.html +16 -0
  45. data/doc/rdoc/classes/RIO/Rio.src/M000027.html +16 -0
  46. data/doc/rdoc/classes/RIO/Rio.src/M000028.html +16 -0
  47. data/doc/rdoc/classes/RIO/Rio.src/M000029.html +16 -0
  48. data/doc/rdoc/classes/RIO/Rio.src/M000030.html +16 -0
  49. data/doc/rdoc/classes/RIO/Rio.src/M000031.html +16 -0
  50. data/doc/rdoc/classes/RIO/Rio.src/M000032.html +16 -0
  51. data/doc/rdoc/classes/RIO/Rio.src/M000033.html +16 -0
  52. data/doc/rdoc/classes/RIO/Rio.src/M000034.html +16 -0
  53. data/doc/rdoc/classes/RIO/Rio.src/M000035.html +16 -0
  54. data/doc/rdoc/classes/RIO/Rio.src/M000036.html +16 -0
  55. data/doc/rdoc/classes/RIO/Rio.src/M000037.html +16 -0
  56. data/doc/rdoc/classes/RIO/Rio.src/M000038.html +16 -0
  57. data/doc/rdoc/classes/RIO/Rio.src/M000039.html +16 -0
  58. data/doc/rdoc/classes/RIO/Rio.src/M000040.html +16 -0
  59. data/doc/rdoc/classes/RIO/Rio.src/M000041.html +16 -0
  60. data/doc/rdoc/classes/RIO/Rio.src/M000042.html +16 -0
  61. data/doc/rdoc/classes/RIO/Rio.src/M000043.html +16 -0
  62. data/doc/rdoc/classes/RIO/Rio.src/M000044.html +16 -0
  63. data/doc/rdoc/classes/RIO/Rio.src/M000045.html +16 -0
  64. data/doc/rdoc/classes/RIO/Rio.src/M000046.html +16 -0
  65. data/doc/rdoc/classes/RIO/Rio.src/M000047.html +16 -0
  66. data/doc/rdoc/classes/RIO/Rio.src/M000048.html +16 -0
  67. data/doc/rdoc/classes/RIO/Rio.src/M000049.html +16 -0
  68. data/doc/rdoc/classes/RIO/Rio.src/M000050.html +16 -0
  69. data/doc/rdoc/classes/RIO/Rio.src/M000051.html +16 -0
  70. data/doc/rdoc/classes/RIO/Rio.src/M000052.html +16 -0
  71. data/doc/rdoc/classes/RIO/Rio.src/M000053.html +16 -0
  72. data/doc/rdoc/classes/RIO/Rio.src/M000054.html +16 -0
  73. data/doc/rdoc/classes/RIO/Rio.src/M000055.html +16 -0
  74. data/doc/rdoc/classes/RIO/Rio.src/M000056.html +16 -0
  75. data/doc/rdoc/classes/RIO/Rio.src/M000057.html +16 -0
  76. data/doc/rdoc/classes/RIO/Rio.src/M000058.html +16 -0
  77. data/doc/rdoc/classes/RIO/Rio.src/M000059.html +16 -0
  78. data/doc/rdoc/classes/RIO/Rio.src/M000060.html +16 -0
  79. data/doc/rdoc/classes/RIO/Rio.src/M000061.html +16 -0
  80. data/doc/rdoc/classes/RIO/Rio.src/M000062.html +16 -0
  81. data/doc/rdoc/classes/RIO/Rio.src/M000063.html +16 -0
  82. data/doc/rdoc/classes/RIO/Rio.src/M000064.html +16 -0
  83. data/doc/rdoc/classes/RIO/Rio.src/M000065.html +16 -0
  84. data/doc/rdoc/classes/RIO/Rio.src/M000066.html +16 -0
  85. data/doc/rdoc/classes/RIO/Rio.src/M000067.html +16 -0
  86. data/doc/rdoc/classes/RIO/Rio.src/M000068.html +16 -0
  87. data/doc/rdoc/classes/RIO/Rio.src/M000069.html +16 -0
  88. data/doc/rdoc/classes/RIO/Rio.src/M000070.html +16 -0
  89. data/doc/rdoc/classes/RIO/Rio.src/M000071.html +16 -0
  90. data/doc/rdoc/classes/RIO/Rio.src/M000072.html +16 -0
  91. data/doc/rdoc/classes/RIO/Rio.src/M000073.html +16 -0
  92. data/doc/rdoc/classes/RIO/Rio.src/M000074.html +16 -0
  93. data/doc/rdoc/classes/RIO/Rio.src/M000075.html +16 -0
  94. data/doc/rdoc/classes/RIO/Rio.src/M000076.html +16 -0
  95. data/doc/rdoc/classes/RIO/Rio.src/M000077.html +16 -0
  96. data/doc/rdoc/classes/RIO/Rio.src/M000078.html +16 -0
  97. data/doc/rdoc/classes/RIO/Rio.src/M000079.html +16 -0
  98. data/doc/rdoc/classes/RIO/Rio.src/M000080.html +16 -0
  99. data/doc/rdoc/classes/RIO/Rio.src/M000081.html +16 -0
  100. data/doc/rdoc/classes/RIO/Rio.src/M000082.html +16 -0
  101. data/doc/rdoc/classes/RIO/Rio.src/M000083.html +16 -0
  102. data/doc/rdoc/classes/RIO/Rio.src/M000084.html +16 -0
  103. data/doc/rdoc/classes/RIO/Rio.src/M000085.html +16 -0
  104. data/doc/rdoc/classes/RIO/Rio.src/M000086.html +16 -0
  105. data/doc/rdoc/classes/RIO/Rio.src/M000087.html +16 -0
  106. data/doc/rdoc/classes/RIO/Rio.src/M000088.html +16 -0
  107. data/doc/rdoc/classes/RIO/Rio.src/M000089.html +16 -0
  108. data/doc/rdoc/classes/RIO/Rio.src/M000090.html +16 -0
  109. data/doc/rdoc/classes/RIO/Rio.src/M000091.html +16 -0
  110. data/doc/rdoc/classes/RIO/Rio.src/M000092.html +16 -0
  111. data/doc/rdoc/classes/RIO/Rio.src/M000093.html +16 -0
  112. data/doc/rdoc/classes/RIO/Rio.src/M000094.html +16 -0
  113. data/doc/rdoc/classes/RIO/Rio.src/M000095.html +16 -0
  114. data/doc/rdoc/classes/RIO/Rio.src/M000096.html +16 -0
  115. data/doc/rdoc/classes/RIO/Rio.src/M000097.html +16 -0
  116. data/doc/rdoc/classes/RIO/Rio.src/M000098.html +16 -0
  117. data/doc/rdoc/classes/RIO/Rio.src/M000099.html +16 -0
  118. data/doc/rdoc/classes/RIO/Rio.src/M000100.html +16 -0
  119. data/doc/rdoc/classes/RIO/Rio.src/M000101.html +16 -0
  120. data/doc/rdoc/classes/RIO/Rio.src/M000102.html +16 -0
  121. data/doc/rdoc/classes/RIO/Rio.src/M000103.html +16 -0
  122. data/doc/rdoc/classes/RIO/Rio.src/M000104.html +16 -0
  123. data/doc/rdoc/classes/RIO/Rio.src/M000105.html +16 -0
  124. data/doc/rdoc/classes/RIO/Rio.src/M000106.html +16 -0
  125. data/doc/rdoc/classes/RIO/Rio.src/M000107.html +16 -0
  126. data/doc/rdoc/classes/RIO/Rio.src/M000108.html +16 -0
  127. data/doc/rdoc/classes/RIO/Rio.src/M000109.html +16 -0
  128. data/doc/rdoc/classes/RIO/Rio.src/M000110.html +16 -0
  129. data/doc/rdoc/classes/RIO/Rio.src/M000111.html +16 -0
  130. data/doc/rdoc/classes/RIO/Rio.src/M000112.html +16 -0
  131. data/doc/rdoc/classes/RIO/Rio.src/M000113.html +16 -0
  132. data/doc/rdoc/classes/RIO/Rio.src/M000114.html +16 -0
  133. data/doc/rdoc/classes/RIO/Rio.src/M000115.html +16 -0
  134. data/doc/rdoc/classes/RIO/Rio.src/M000116.html +16 -0
  135. data/doc/rdoc/classes/RIO/Rio.src/M000117.html +16 -0
  136. data/doc/rdoc/classes/RIO/Rio.src/M000118.html +16 -0
  137. data/doc/rdoc/classes/RIO/Rio.src/M000119.html +16 -0
  138. data/doc/rdoc/classes/RIO/Rio.src/M000120.html +16 -0
  139. data/doc/rdoc/classes/RIO/Rio.src/M000121.html +16 -0
  140. data/doc/rdoc/classes/RIO/Rio.src/M000122.html +16 -0
  141. data/doc/rdoc/classes/RIO/Rio.src/M000123.html +16 -0
  142. data/doc/rdoc/classes/RIO/Rio.src/M000124.html +16 -0
  143. data/doc/rdoc/classes/RIO/Rio.src/M000125.html +16 -0
  144. data/doc/rdoc/classes/RIO/Rio.src/M000126.html +16 -0
  145. data/doc/rdoc/classes/RIO/Rio.src/M000127.html +16 -0
  146. data/doc/rdoc/classes/RIO/Rio.src/M000128.html +16 -0
  147. data/doc/rdoc/classes/RIO/Rio.src/M000129.html +16 -0
  148. data/doc/rdoc/classes/RIO/Rio.src/M000130.html +16 -0
  149. data/doc/rdoc/classes/RIO/Rio.src/M000131.html +16 -0
  150. data/doc/rdoc/classes/RIO/Rio.src/M000132.html +16 -0
  151. data/doc/rdoc/classes/RIO/Rio.src/M000133.html +16 -0
  152. data/doc/rdoc/classes/RIO/Rio.src/M000134.html +16 -0
  153. data/doc/rdoc/classes/RIO/Rio.src/M000135.html +16 -0
  154. data/doc/rdoc/classes/RIO/Rio.src/M000136.html +16 -0
  155. data/doc/rdoc/classes/RIO/Rio.src/M000137.html +16 -0
  156. data/doc/rdoc/classes/RIO/Rio.src/M000138.html +16 -0
  157. data/doc/rdoc/classes/RIO/Rio.src/M000139.html +16 -0
  158. data/doc/rdoc/classes/RIO/Rio.src/M000140.html +16 -0
  159. data/doc/rdoc/classes/RIO/Rio.src/M000141.html +16 -0
  160. data/doc/rdoc/classes/RIO/Rio.src/M000142.html +16 -0
  161. data/doc/rdoc/classes/RIO/Rio.src/M000143.html +16 -0
  162. data/doc/rdoc/classes/RIO/Rio.src/M000144.html +16 -0
  163. data/doc/rdoc/classes/RIO/Rio.src/M000145.html +16 -0
  164. data/doc/rdoc/classes/RIO/Rio.src/M000146.html +16 -0
  165. data/doc/rdoc/classes/RIO/Rio.src/M000147.html +16 -0
  166. data/doc/rdoc/classes/RIO/Rio.src/M000148.html +16 -0
  167. data/doc/rdoc/classes/RIO/Rio.src/M000149.html +16 -0
  168. data/doc/rdoc/classes/RIO/Rio.src/M000150.html +16 -0
  169. data/doc/rdoc/classes/RIO/Rio.src/M000151.html +16 -0
  170. data/doc/rdoc/classes/RIO/Rio.src/M000152.html +16 -0
  171. data/doc/rdoc/classes/RIO/Rio.src/M000153.html +16 -0
  172. data/doc/rdoc/classes/RIO/Rio.src/M000154.html +16 -0
  173. data/doc/rdoc/classes/RIO/Rio.src/M000155.html +16 -0
  174. data/doc/rdoc/classes/RIO/Rio.src/M000156.html +16 -0
  175. data/doc/rdoc/classes/RIO/Rio.src/M000157.html +16 -0
  176. data/doc/rdoc/classes/RIO/Rio.src/M000158.html +16 -0
  177. data/doc/rdoc/classes/RIO/Rio.src/M000159.html +16 -0
  178. data/doc/rdoc/classes/RIO/Rio.src/M000160.html +16 -0
  179. data/doc/rdoc/classes/RIO/Rio.src/M000161.html +16 -0
  180. data/doc/rdoc/classes/RIO/Rio.src/M000162.html +16 -0
  181. data/doc/rdoc/classes/RIO/Rio.src/M000163.html +16 -0
  182. data/doc/rdoc/classes/RIO/Rio.src/M000164.html +16 -0
  183. data/doc/rdoc/classes/RIO/Rio.src/M000165.html +16 -0
  184. data/doc/rdoc/classes/RIO/Rio.src/M000166.html +16 -0
  185. data/doc/rdoc/classes/RIO/Rio.src/M000167.html +16 -0
  186. data/doc/rdoc/classes/RIO/Rio.src/M000168.html +16 -0
  187. data/doc/rdoc/classes/RIO/Rio.src/M000169.html +16 -0
  188. data/doc/rdoc/classes/RIO/Rio.src/M000170.html +16 -0
  189. data/doc/rdoc/classes/RIO/Rio.src/M000171.html +16 -0
  190. data/doc/rdoc/classes/RIO/Rio.src/M000172.html +16 -0
  191. data/doc/rdoc/classes/RIO/Rio.src/M000173.html +16 -0
  192. data/doc/rdoc/classes/RIO/Rio.src/M000174.html +16 -0
  193. data/doc/rdoc/classes/RIO/Rio.src/M000175.html +16 -0
  194. data/doc/rdoc/classes/RIO/Rio.src/M000176.html +16 -0
  195. data/doc/rdoc/classes/RIO/Rio.src/M000177.html +16 -0
  196. data/doc/rdoc/classes/RIO/Rio.src/M000178.html +16 -0
  197. data/doc/rdoc/classes/RIO/Rio.src/M000179.html +16 -0
  198. data/doc/rdoc/classes/RIO/Rio.src/M000180.html +16 -0
  199. data/doc/rdoc/classes/RIO/Rio.src/M000181.html +16 -0
  200. data/doc/rdoc/classes/RIO/Rio.src/M000182.html +16 -0
  201. data/doc/rdoc/created.rid +1 -0
  202. data/doc/rdoc/files/README.html +215 -0
  203. data/doc/rdoc/files/lib/rio/constructor_rb.html +142 -0
  204. data/doc/rdoc/files/lib/rio/doc/HOWTO_rb.html +135 -0
  205. data/doc/rdoc/files/lib/rio/doc/INTRO_rb.html +135 -0
  206. data/doc/rdoc/files/lib/rio/doc/MISC_rb.html +135 -0
  207. data/doc/rdoc/files/lib/rio/doc/SYNOPSIS_rb.html +135 -0
  208. data/doc/rdoc/files/lib/rio/if/basic_rb.html +135 -0
  209. data/doc/rdoc/files/lib/rio/if/dir_rb.html +135 -0
  210. data/doc/rdoc/files/lib/rio/if/file_rb.html +135 -0
  211. data/doc/rdoc/files/lib/rio/if/fileordir_rb.html +135 -0
  212. data/doc/rdoc/files/lib/rio/if/grande_rb.html +135 -0
  213. data/doc/rdoc/files/lib/rio/if/internal_rb.html +135 -0
  214. data/doc/rdoc/files/lib/rio/if/methods_rb.html +135 -0
  215. data/doc/rdoc/files/lib/rio/if/path_rb.html +135 -0
  216. data/doc/rdoc/files/lib/rio/if/stream_rb.html +135 -0
  217. data/doc/rdoc/files/lib/rio/if/test_rb.html +135 -0
  218. data/doc/rdoc/files/lib/rio/kernel_rb.html +142 -0
  219. data/doc/rdoc/files/lib/rio_rb.html +153 -0
  220. data/doc/rdoc/fr_class_index.html +34 -0
  221. data/doc/rdoc/fr_file_index.html +44 -0
  222. data/doc/rdoc/fr_method_index.html +210 -0
  223. data/doc/rdoc/index.html +24 -0
  224. data/doc/rdoc/rdoc-style.css +384 -0
  225. data/doc/rfc1738.txt +1403 -0
  226. data/doc/rfc959.txt +3933 -0
  227. data/ex/colx.rb +6 -0
  228. data/ex/findinruby +19 -0
  229. data/ex/findruby +11 -0
  230. data/ex/prompt.rb +25 -0
  231. data/ex/rgb.txt.gz +0 -0
  232. data/ex/riocat +35 -0
  233. data/ex/riogunzip +31 -0
  234. data/ex/riogzip +24 -0
  235. data/ex/tolf +11 -0
  236. data/lib/rio.rb +163 -0
  237. data/lib/rio/abstract_method.rb +57 -0
  238. data/lib/rio/argv.rb +57 -0
  239. data/lib/rio/arrayio.rb +199 -0
  240. data/lib/rio/arycopy.rb +44 -0
  241. data/lib/rio/assert.rb +115 -0
  242. data/lib/rio/base.rb +59 -0
  243. data/lib/rio/constructor.rb +183 -0
  244. data/lib/rio/context.rb +117 -0
  245. data/lib/rio/context/chomp.rb +53 -0
  246. data/lib/rio/context/closeoneof.rb +50 -0
  247. data/lib/rio/context/cxx.rb +67 -0
  248. data/lib/rio/context/dir.rb +92 -0
  249. data/lib/rio/context/gzip.rb +51 -0
  250. data/lib/rio/context/methods.rb +196 -0
  251. data/lib/rio/context/stream.rb +170 -0
  252. data/lib/rio/cp.rb +305 -0
  253. data/lib/rio/cxdir.rb +79 -0
  254. data/lib/rio/dir.rb +145 -0
  255. data/lib/rio/doc.rb +45 -0
  256. data/lib/rio/doc/HOWTO.rb +691 -0
  257. data/lib/rio/doc/INTRO.rb +579 -0
  258. data/lib/rio/doc/MISC.rb +257 -0
  259. data/lib/rio/doc/SYNOPSIS.rb +170 -0
  260. data/lib/rio/entrysel.rb +162 -0
  261. data/lib/rio/exception.rb +42 -0
  262. data/lib/rio/exception/copy.rb +98 -0
  263. data/lib/rio/exception/open.rb +62 -0
  264. data/lib/rio/exception/state.rb +74 -0
  265. data/lib/rio/ext.rb +62 -0
  266. data/lib/rio/ext/csv.rb +261 -0
  267. data/lib/rio/factory.rb +236 -0
  268. data/lib/rio/file.rb +77 -0
  269. data/lib/rio/filter/chomp.rb +61 -0
  270. data/lib/rio/filter/closeoneof.rb +103 -0
  271. data/lib/rio/filter/gzip.rb +58 -0
  272. data/lib/rio/ftp.rb +275 -0
  273. data/lib/rio/ftp/conn.rb +167 -0
  274. data/lib/rio/ftp/ioh.rb +88 -0
  275. data/lib/rio/grande.rb +126 -0
  276. data/lib/rio/handle.rb +101 -0
  277. data/lib/rio/if.rb +53 -0
  278. data/lib/rio/if/basic.rb +64 -0
  279. data/lib/rio/if/dir.rb +362 -0
  280. data/lib/rio/if/file.rb +57 -0
  281. data/lib/rio/if/fileordir.rb +247 -0
  282. data/lib/rio/if/grande.rb +510 -0
  283. data/lib/rio/if/internal.rb +53 -0
  284. data/lib/rio/if/methods.rb +612 -0
  285. data/lib/rio/if/path.rb +413 -0
  286. data/lib/rio/if/stream.rb +599 -0
  287. data/lib/rio/if/test.rb +219 -0
  288. data/lib/rio/impl/path.rb +82 -0
  289. data/lib/rio/ioh.rb +137 -0
  290. data/lib/rio/iomode.rb +96 -0
  291. data/lib/rio/kernel.rb +47 -0
  292. data/lib/rio/local.rb +63 -0
  293. data/lib/rio/match.rb +51 -0
  294. data/lib/rio/matchrecord.rb +254 -0
  295. data/lib/rio/open3.rb +69 -0
  296. data/lib/rio/ops/create.rb +78 -0
  297. data/lib/rio/ops/dir.rb +302 -0
  298. data/lib/rio/ops/either.rb +117 -0
  299. data/lib/rio/ops/file.rb +94 -0
  300. data/lib/rio/ops/path.rb +292 -0
  301. data/lib/rio/ops/stream.rb +84 -0
  302. data/lib/rio/ops/stream/input.rb +237 -0
  303. data/lib/rio/ops/stream/output.rb +96 -0
  304. data/lib/rio/ops/stream/read.rb +84 -0
  305. data/lib/rio/ops/stream/write.rb +58 -0
  306. data/lib/rio/ops/symlink.rb +70 -0
  307. data/lib/rio/path.rb +117 -0
  308. data/lib/rio/path/reset.rb +70 -0
  309. data/lib/rio/record.rb +59 -0
  310. data/lib/rio/rectype.rb +86 -0
  311. data/lib/rio/rl/base.rb +147 -0
  312. data/lib/rio/rl/builder.rb +166 -0
  313. data/lib/rio/rl/ioi.rb +66 -0
  314. data/lib/rio/rl/path.rb +141 -0
  315. data/lib/rio/rl/uri.rb +118 -0
  316. data/lib/rio/scheme/aryio.rb +89 -0
  317. data/lib/rio/scheme/cmdio.rb +74 -0
  318. data/lib/rio/scheme/fd.rb +65 -0
  319. data/lib/rio/scheme/ftp.rb +73 -0
  320. data/lib/rio/scheme/http.rb +81 -0
  321. data/lib/rio/scheme/path.rb +100 -0
  322. data/lib/rio/scheme/stderr.rb +56 -0
  323. data/lib/rio/scheme/stdio.rb +71 -0
  324. data/lib/rio/scheme/strio.rb +82 -0
  325. data/lib/rio/scheme/sysio.rb +61 -0
  326. data/lib/rio/scheme/tcp.rb +74 -0
  327. data/lib/rio/scheme/tempfile.rb +104 -0
  328. data/lib/rio/state.rb +209 -0
  329. data/lib/rio/state/error.rb +73 -0
  330. data/lib/rio/stream.rb +181 -0
  331. data/lib/rio/stream/base.rb +50 -0
  332. data/lib/rio/stream/duplex.rb +76 -0
  333. data/lib/rio/stream/open.rb +203 -0
  334. data/lib/rio/symantics.rb +46 -0
  335. data/lib/rio/to_rio.rb +57 -0
  336. data/lib/rio/uri/file.rb +145 -0
  337. data/lib/rio/version.rb +52 -0
  338. data/setup.rb +1331 -0
  339. data/test/1.rb +14 -0
  340. data/test/mswin32.rb +28 -0
  341. data/test/once.rb +7 -0
  342. data/test/runtests.rb +12 -0
  343. data/test/runtests_gem.rb +15 -0
  344. data/test/tc/abs.rb +349 -0
  345. data/test/tc/all.rb +42 -0
  346. data/test/tc/cd1.rb +116 -0
  347. data/test/tc/clearsel.rb +69 -0
  348. data/test/tc/closeoncopy.rb +91 -0
  349. data/test/tc/closeoneof.rb +194 -0
  350. data/test/tc/copy-from.rb +183 -0
  351. data/test/tc/copy-to.rb +94 -0
  352. data/test/tc/copy.rb +72 -0
  353. data/test/tc/copyarray.rb +191 -0
  354. data/test/tc/copydest.rb +50 -0
  355. data/test/tc/copydir.rb +192 -0
  356. data/test/tc/copydirlines.rb +124 -0
  357. data/test/tc/copylines.rb +40 -0
  358. data/test/tc/copynonex.rb +121 -0
  359. data/test/tc/create.rb +104 -0
  360. data/test/tc/csv.rb +229 -0
  361. data/test/tc/dir.rb +79 -0
  362. data/test/tc/dirautoclose.rb +70 -0
  363. data/test/tc/dirent.rb +180 -0
  364. data/test/tc/dirss.rb +84 -0
  365. data/test/tc/each.rb +111 -0
  366. data/test/tc/each_break.rb +241 -0
  367. data/test/tc/edf.rb +82 -0
  368. data/test/tc/entary.rb +230 -0
  369. data/test/tc/eq.rb +101 -0
  370. data/test/tc/expand_path.rb +94 -0
  371. data/test/tc/ext.rb +115 -0
  372. data/test/tc/fileno.rb +95 -0
  373. data/test/tc/getrec.rb +140 -0
  374. data/test/tc/lineno.rb +197 -0
  375. data/test/tc/lines.rb +66 -0
  376. data/test/tc/methods.rb +185 -0
  377. data/test/tc/misc.rb +473 -0
  378. data/test/tc/nolines.rb +205 -0
  379. data/test/tc/noqae.rb +873 -0
  380. data/test/tc/once.rb +6 -0
  381. data/test/tc/overload.rb +137 -0
  382. data/test/tc/pa.rb +159 -0
  383. data/test/tc/pathop.rb +63 -0
  384. data/test/tc/paths.rb +147 -0
  385. data/test/tc/qae.rb +494 -0
  386. data/test/tc/qae_riovar.rb +500 -0
  387. data/test/tc/records.rb +69 -0
  388. data/test/tc/rename.rb +224 -0
  389. data/test/tc/rename_assign.rb +48 -0
  390. data/test/tc/sub.rb +49 -0
  391. data/test/tc/symlink.rb +177 -0
  392. data/test/tc/symlink0.rb +298 -0
  393. data/test/tc/symlink1.rb +115 -0
  394. data/test/tc/testcase.rb +152 -0
  395. metadata +461 -0
@@ -0,0 +1,181 @@
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>Module: Kernel</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 class="class-mod"><strong>Module</strong></td>
53
+ <td class="class-name-in-header">Kernel</td>
54
+ <td rowspan="2" class="class-header-space-col"></td>
55
+ <td rowspan="2">
56
+ <a class="in-url" href="../files/lib/rio/kernel_rb.html">
57
+ lib/rio/kernel.rb
58
+ </a>
59
+ &nbsp;&nbsp;
60
+ </td>
61
+ </tr>
62
+
63
+ </table>
64
+ </div>
65
+ <!-- banner header -->
66
+
67
+ <div id="bodyContent">
68
+
69
+
70
+
71
+ <div id="contextContent">
72
+
73
+ <div id="description">
74
+ <p>
75
+ To create the documentation for Rio run the command
76
+ </p>
77
+ <pre>
78
+ rake rdoc
79
+ </pre>
80
+ <p>
81
+ from the distribution directory. Then point your browser at the
82
+ &#8216;doc/rdoc&#8217; directory.
83
+ </p>
84
+ <p>
85
+ Suggested Reading
86
+ </p>
87
+ <ul>
88
+ <li><a href="RIO/Doc/SYNOPSIS.html">RIO::Doc::SYNOPSIS</a>
89
+
90
+ </li>
91
+ <li><a href="RIO/Doc/INTRO.html">RIO::Doc::INTRO</a>
92
+
93
+ </li>
94
+ <li><a href="RIO/Doc/HOWTO.html">RIO::Doc::HOWTO</a>
95
+
96
+ </li>
97
+ <li><a href="RIO/Rio.html">RIO::Rio</a>
98
+
99
+ </li>
100
+ </ul>
101
+ <p>
102
+ <b>Rio is pre-alpha software. The documented interface and behavior is
103
+ subject to change without notice.</b>
104
+ </p>
105
+
106
+ </div>
107
+
108
+
109
+ </div>
110
+
111
+ <div id="method-list">
112
+ <h3 class="section-bar">Methods</h3>
113
+
114
+ <div class="name-list">
115
+ <a href="#M000184">io</a>&nbsp;&nbsp;
116
+ <a href="#M000183">rio</a>&nbsp;&nbsp;
117
+ </div>
118
+ </div>
119
+
120
+ </div>
121
+
122
+
123
+ <!-- if includes -->
124
+
125
+ <div id="section">
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+ <!-- if method_list -->
135
+ <div id="methods">
136
+ <h3 class="section-bar">Public Instance methods</h3>
137
+
138
+ <div id="method-M000184" class="method-detail">
139
+ <a name="M000184"></a>
140
+
141
+ <div class="method-heading">
142
+ <span class="method-name">io</span><span class="method-args">(*args)</span>
143
+ </div>
144
+
145
+ <div class="method-description">
146
+ <p>
147
+ Alias for <a href="Kernel.html#M000183">rio</a>
148
+ </p>
149
+ </div>
150
+ </div>
151
+
152
+ <div id="method-M000183" class="method-detail">
153
+ <a name="M000183"></a>
154
+
155
+ <div class="method-heading">
156
+ <a href="Kernel.src/M000183.html" target="Code" class="method-signature"
157
+ onclick="popupCode('Kernel.src/M000183.html');return false;">
158
+ <span class="method-name">rio</span><span class="method-args">(*args) {|self| ...}</span>
159
+ </a>
160
+ </div>
161
+
162
+ <div class="method-description">
163
+ <p>
164
+ Shortcut for <a href="RIO.html#M000001">RIO.rio</a>
165
+ </p>
166
+ </div>
167
+ </div>
168
+
169
+
170
+ </div>
171
+
172
+
173
+ </div>
174
+
175
+
176
+ <div id="validator-badges">
177
+ <p><small>Copyright &copy; 2005 Christopher Kleckner. <a href="http://www.gnu.org/licenses/gpl.html">All rights reserved</a>.</small></p>
178
+ </div>
179
+
180
+ </body>
181
+ </html>
@@ -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>rio (Kernel)</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/rio/kernel.rb, line 42</span>
14
+ 42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rio</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-comment cmt"># :yields: self</span>
15
+ 43: <span class="ruby-constant">RIO</span><span class="ruby-operator">::</span><span class="ruby-constant">Rio</span>.<span class="ruby-identifier">rio</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
16
+ 44: <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,508 @@
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>Module: RIO</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 class="class-mod"><strong>Module</strong></td>
53
+ <td class="class-name-in-header">RIO</td>
54
+ <td rowspan="2" class="class-header-space-col"></td>
55
+ <td rowspan="2">
56
+ <a class="in-url" href="../files/lib/rio_rb.html">
57
+ lib/rio.rb
58
+ </a>
59
+ &nbsp;&nbsp;
60
+ <a class="in-url" href="../files/lib/rio/doc/HOWTO_rb.html">
61
+ lib/rio/doc/HOWTO.rb
62
+ </a>
63
+ &nbsp;&nbsp;
64
+ <a class="in-url" href="../files/lib/rio/doc/INTRO_rb.html">
65
+ lib/rio/doc/INTRO.rb
66
+ </a>
67
+ &nbsp;&nbsp;
68
+ <a class="in-url" href="../files/lib/rio/doc/MISC_rb.html">
69
+ lib/rio/doc/MISC.rb
70
+ </a>
71
+ &nbsp;&nbsp;
72
+ <a class="in-url" href="../files/lib/rio/doc/SYNOPSIS_rb.html">
73
+ lib/rio/doc/SYNOPSIS.rb
74
+ </a>
75
+ &nbsp;&nbsp;
76
+ <a class="in-url" href="../files/lib/rio/if/basic_rb.html">
77
+ lib/rio/if/basic.rb
78
+ </a>
79
+ &nbsp;&nbsp;
80
+ <a class="in-url" href="../files/lib/rio/if/dir_rb.html">
81
+ lib/rio/if/dir.rb
82
+ </a>
83
+ &nbsp;&nbsp;
84
+ <a class="in-url" href="../files/lib/rio/if/file_rb.html">
85
+ lib/rio/if/file.rb
86
+ </a>
87
+ &nbsp;&nbsp;
88
+ <a class="in-url" href="../files/lib/rio/if/fileordir_rb.html">
89
+ lib/rio/if/fileordir.rb
90
+ </a>
91
+ &nbsp;&nbsp;
92
+ <a class="in-url" href="../files/lib/rio/if/grande_rb.html">
93
+ lib/rio/if/grande.rb
94
+ </a>
95
+ &nbsp;&nbsp;
96
+ <a class="in-url" href="../files/lib/rio/if/internal_rb.html">
97
+ lib/rio/if/internal.rb
98
+ </a>
99
+ &nbsp;&nbsp;
100
+ <a class="in-url" href="../files/lib/rio/if/methods_rb.html">
101
+ lib/rio/if/methods.rb
102
+ </a>
103
+ &nbsp;&nbsp;
104
+ <a class="in-url" href="../files/lib/rio/if/path_rb.html">
105
+ lib/rio/if/path.rb
106
+ </a>
107
+ &nbsp;&nbsp;
108
+ <a class="in-url" href="../files/lib/rio/if/stream_rb.html">
109
+ lib/rio/if/stream.rb
110
+ </a>
111
+ &nbsp;&nbsp;
112
+ <a class="in-url" href="../files/lib/rio/if/test_rb.html">
113
+ lib/rio/if/test.rb
114
+ </a>
115
+ &nbsp;&nbsp;
116
+ <a class="in-url" href="../files/lib/rio/constructor_rb.html">
117
+ lib/rio/constructor.rb
118
+ </a>
119
+ &nbsp;&nbsp;
120
+ </td>
121
+ </tr>
122
+
123
+ </table>
124
+ </div>
125
+ <!-- banner header -->
126
+
127
+ <div id="bodyContent">
128
+
129
+
130
+
131
+ <div id="contextContent">
132
+
133
+ <div id="description">
134
+ <p>
135
+ To create the documentation for <a href="RIO/Rio.html">Rio</a> run the
136
+ command
137
+ </p>
138
+ <pre>
139
+ rake rdoc
140
+ </pre>
141
+ <p>
142
+ from the distribution directory. Then point your browser at the
143
+ &#8216;doc/rdoc&#8217; directory.
144
+ </p>
145
+ <p>
146
+ Suggested Reading
147
+ </p>
148
+ <ul>
149
+ <li><a href="RIO/Doc/SYNOPSIS.html">RIO::Doc::SYNOPSIS</a>
150
+
151
+ </li>
152
+ <li><a href="RIO/Doc/INTRO.html">RIO::Doc::INTRO</a>
153
+
154
+ </li>
155
+ <li><a href="RIO/Doc/HOWTO.html">RIO::Doc::HOWTO</a>
156
+
157
+ </li>
158
+ <li><a href="RIO/Rio.html">RIO::Rio</a>
159
+
160
+ </li>
161
+ </ul>
162
+ <p>
163
+ <b><a href="RIO/Rio.html">Rio</a> is pre-alpha software. The documented
164
+ interface and behavior is subject to change without notice.</b>
165
+ </p>
166
+
167
+ </div>
168
+
169
+
170
+ </div>
171
+
172
+ <div id="method-list">
173
+ <h3 class="section-bar">Methods</h3>
174
+
175
+ <div class="name-list">
176
+ <a href="#M000002">cwd</a>&nbsp;&nbsp;
177
+ <a href="#M000001">rio</a>&nbsp;&nbsp;
178
+ <a href="#M000003">root</a>&nbsp;&nbsp;
179
+ </div>
180
+ </div>
181
+
182
+ </div>
183
+
184
+
185
+ <!-- if includes -->
186
+
187
+ <div id="section">
188
+
189
+ <div id="class-list">
190
+ <h3 class="section-bar">Classes and Modules</h3>
191
+
192
+ Module <a href="RIO/Doc.html" class="link">RIO::Doc</a><br />
193
+ Class <a href="RIO/Rio.html" class="link">RIO::Rio</a><br />
194
+
195
+ </div>
196
+
197
+ <div id="constants-list">
198
+ <h3 class="section-bar">Constants</h3>
199
+
200
+ <div class="name-list">
201
+ <table summary="Constants">
202
+ <tr class="top-aligned-row context-row">
203
+ <td class="context-item-name">SEEK_SET</td>
204
+ <td>=</td>
205
+ <td class="context-item-value">IO::SEEK_SET</td>
206
+ </tr>
207
+ <tr class="top-aligned-row context-row">
208
+ <td class="context-item-name">SEEK_END</td>
209
+ <td>=</td>
210
+ <td class="context-item-value">IO::SEEK_END</td>
211
+ </tr>
212
+ <tr class="top-aligned-row context-row">
213
+ <td class="context-item-name">SEEK_CUR</td>
214
+ <td>=</td>
215
+ <td class="context-item-value">IO::SEEK_CUR</td>
216
+ </tr>
217
+ </table>
218
+ </div>
219
+ </div>
220
+
221
+
222
+
223
+
224
+
225
+
226
+ <!-- if method_list -->
227
+ <div id="methods">
228
+ <h3 class="section-bar">Public Instance methods</h3>
229
+
230
+ <div id="method-M000002" class="method-detail">
231
+ <a name="M000002"></a>
232
+
233
+ <div class="method-heading">
234
+ <a href="RIO.src/M000002.html" target="Code" class="method-signature"
235
+ onclick="popupCode('RIO.src/M000002.html');return false;">
236
+ <span class="method-name">cwd</span><span class="method-args">(*args) {|self| ...}</span>
237
+ </a>
238
+ </div>
239
+
240
+ <div class="method-description">
241
+ <p>
242
+ Create a <a href="RIO/Rio.html">Rio</a> as with <a
243
+ href="RIO.html#M000001">RIO#rio</a> which refers to the current working
244
+ directory
245
+ </p>
246
+ <pre>
247
+ wd = RIO.cwd
248
+ </pre>
249
+ </div>
250
+ </div>
251
+
252
+ <div id="method-M000001" class="method-detail">
253
+ <a name="M000001"></a>
254
+
255
+ <div class="method-heading">
256
+ <a href="RIO.src/M000001.html" target="Code" class="method-signature"
257
+ onclick="popupCode('RIO.src/M000001.html');return false;">
258
+ <span class="method-name">rio</span><span class="method-args">(*args) {|self| ...}</span>
259
+ </a>
260
+ </div>
261
+
262
+ <div class="method-description">
263
+ <p>
264
+ <a href="RIO/Rio.html">Rio</a> Constructor
265
+ </p>
266
+ <p>
267
+ For purposes of discussion, we divide Rios into two catagories, those that
268
+ have a path and those that don&#8217;t.
269
+ </p>
270
+ <h4>Creating a <a href="RIO/Rio.html">Rio</a> that has a path</h4>
271
+ <p>
272
+ To create a <a href="RIO/Rio.html">Rio</a> that has a path the arguments to
273
+ <tt>rio</tt> may be:
274
+ </p>
275
+ <ul>
276
+ <li>a string representing the entire path. The separator used for Rios is as
277
+ specified in RFC1738 (&#8217;/&#8217;).
278
+
279
+ <pre>
280
+ rio('adir/afile')
281
+ </pre>
282
+ </li>
283
+ <li>a string representing a fully qualified <tt>file</tt> URL as per RFC1738
284
+
285
+ <pre>
286
+ rio('file:///atopleveldir/adir/afile')
287
+ </pre>
288
+ </li>
289
+ <li>a <tt>URI</tt> object representing a <tt>file</tt> or generic <tt>URL</tt>
290
+
291
+ <pre>
292
+ rio(URI('adir/afile'))
293
+ </pre>
294
+ </li>
295
+ <li>the components of a path as separate arguments
296
+
297
+ <pre>
298
+ rio('adir','afile')
299
+ </pre>
300
+ </li>
301
+ <li>the components of a path as an array of separate arguments
302
+
303
+ <pre>
304
+ rio(%w/adir afile/)
305
+ </pre>
306
+ </li>
307
+ <li>another <a href="RIO/Rio.html">Rio</a>
308
+
309
+ <pre>
310
+ another_rio = rio('adir/afile')
311
+ rio(another_rio)
312
+ </pre>
313
+ </li>
314
+ <li>any object whose <tt>to_s</tt> method returns one of the above
315
+
316
+ <pre>
317
+ rio(Pathname.new('apath'))
318
+ </pre>
319
+ </li>
320
+ <li>any combination of the above either as separate arguments or as elements of
321
+ an array,
322
+
323
+ <pre>
324
+ another_rio = rio('dir1/dir2')
325
+ auri = URI('dir4/dir5)
326
+ rio(another_rio,'dir3',auri,'dir6/dir7')
327
+ </pre>
328
+ </li>
329
+ </ul>
330
+ <h5>Creating a <a href="RIO/Rio.html">Rio</a> that refers to a web page</h5>
331
+ <p>
332
+ To create a <a href="RIO/Rio.html">Rio</a> that refers to a web page the
333
+ arguments to <tt>rio</tt> may be:
334
+ </p>
335
+ <ul>
336
+ <li>a string representing a fully qualified <tt>http</tt> URL
337
+
338
+ <pre>
339
+ rio('http://ruby-doc.org/index.html')
340
+ </pre>
341
+ </li>
342
+ <li>a <tt>URI</tt> object representing a <tt>http</tt> <tt>URL</tt>
343
+
344
+ <pre>
345
+ rio(URI('http://ruby-doc.org/index.html'))
346
+ </pre>
347
+ </li>
348
+ <li>either of the above with additional path elements
349
+
350
+ <pre>
351
+ rio('http://www.ruby-doc.org/','core','classes/Object.html')
352
+ </pre>
353
+ </li>
354
+ </ul>
355
+ <h5>Creating a <a href="RIO/Rio.html">Rio</a> that refers to a file or directory on a FTP server</h5>
356
+ <p>
357
+ To create a <a href="RIO/Rio.html">Rio</a> that refers to a file on a FTP
358
+ server the arguments to <tt>rio</tt> may be:
359
+ </p>
360
+ <ul>
361
+ <li>a string representing a fully qualified <tt>ftp</tt> URL
362
+
363
+ <pre>
364
+ rio('ftp://user:password@ftp.example.com/afile.tar.gz')
365
+ </pre>
366
+ </li>
367
+ <li>a <tt>URI</tt> object representing a <tt>ftp</tt> <tt>URL</tt>
368
+
369
+ <pre>
370
+ rio(URI('ftp://ftp.example.com/afile.tar.gz'))
371
+ </pre>
372
+ </li>
373
+ <li>either of the above with additional path elements
374
+
375
+ <pre>
376
+ rio('ftp://ftp.gnu.org/pub/gnu','emacs','windows','README')
377
+ </pre>
378
+ </li>
379
+ </ul>
380
+ <h4>Creating Rios that do not have a path</h4>
381
+ <p>
382
+ To create a <a href="RIO/Rio.html">Rio</a> without a path, the first
383
+ argument to <tt>rio</tt> is usually a single character.
384
+ </p>
385
+ <h5>Creating a <a href="RIO/Rio.html">Rio</a> that refers to a clone of your programs stdin or stdout.</h5>
386
+ <p>
387
+ <tt>rio(?-)</tt> (mnemonic: &#8217;-&#8217; is used by some Unix programs
388
+ to specify stdin or stdout in place of a file)
389
+ </p>
390
+ <p>
391
+ Just as a <a href="RIO/Rio.html">Rio</a> that refers to a file, does not
392
+ know whether that file will be opened for reading or writing until an I/O
393
+ operation is specified, a <tt>stdio:</tt> <a href="RIO/Rio.html">Rio</a>
394
+ does not know whether it will connect to stdin or stdout until an I/O
395
+ operation is specified.
396
+ </p>
397
+ <h5>Creating a <a href="RIO/Rio.html">Rio</a> that refers to a clone of your programs stderr.</h5>
398
+ <p>
399
+ <tt>rio(?=)</tt> (mnemonic: &#8217;-&#8217; refers to fileno 1, so
400
+ &#8217;=&#8217; refers to fileno 2)
401
+ </p>
402
+ <h5>Creating a <a href="RIO/Rio.html">Rio</a> that refers to an arbitrary IO object.</h5>
403
+ <pre>
404
+ an_io = ::File.new('afile')
405
+ rio(an_io)
406
+ </pre>
407
+ <h5>Creating a <a href="RIO/Rio.html">Rio</a> that refers to a file descriptor</h5>
408
+ <p>
409
+ <tt>rio(?#,fd)</tt> (mnemonic: a file descriptor is a number
410
+ &#8217;#&#8217;)
411
+ </p>
412
+ <pre>
413
+ an_io = ::File.new('afile')
414
+ fnum = an_io.fileno
415
+ rio(?#,fnum)
416
+ </pre>
417
+ <h5>Creating a <a href="RIO/Rio.html">Rio</a> that refers to a StringIO object</h5>
418
+ <p>
419
+ <tt>rio(?&quot;)</tt> (mnemonic: &#8217;&quot;&#8217; surrounds strings)
420
+ </p>
421
+ <ul>
422
+ <li>create a <a href="RIO/Rio.html">Rio</a> that refers to a string that it
423
+ creates
424
+
425
+ <pre>
426
+ rio(?&quot;)
427
+ </pre>
428
+ </li>
429
+ <li>create a <a href="RIO/Rio.html">Rio</a> that refers to a string of your
430
+ choosing
431
+
432
+ <pre>
433
+ astring = &quot;&quot;
434
+ rio(?&quot;,astring)
435
+ </pre>
436
+ </li>
437
+ </ul>
438
+ <h5>Creating a <a href="RIO/Rio.html">Rio</a> that refers to a Tempfile object</h5>
439
+ <p>
440
+ <tt>rio(??)</tt> (mnemonic: &#8217;?&#8217; you don&#8217;t know its name)
441
+ </p>
442
+ <pre>
443
+ rio(??)
444
+ rio(??,basename='rio',tmpdir=Dir::tmpdir)
445
+ </pre>
446
+ <h5>Creating a <a href="RIO/Rio.html">Rio</a> that refers to an arbitrary TCPSocket</h5>
447
+ <pre>
448
+ rio('tcp:',hostname,port)
449
+ </pre>
450
+ <p>
451
+ or
452
+ </p>
453
+ <pre>
454
+ rio('tcp://hostname:port')
455
+ </pre>
456
+ <h5>Creating a <a href="RIO/Rio.html">Rio</a> that runs an external program and connects to its stdin and stdout</h5>
457
+ <p>
458
+ <tt>rio(?-,cmd)</tt> (mnemonic: &#8217;-&#8217; is used by some Unix
459
+ programs to specify stdin or stdout in place of a file)
460
+ </p>
461
+ <p>
462
+ or
463
+ </p>
464
+ <p>
465
+ <tt>rio(?`,cmd)</tt> (mnemonic: &#8217;`&#8217; (backtick) runs an external
466
+ program in ruby)
467
+ </p>
468
+ <p>
469
+ This is <a href="RIO/Rio.html">Rio</a>&#8217;s interface to IO#popen
470
+ </p>
471
+ </div>
472
+ </div>
473
+
474
+ <div id="method-M000003" class="method-detail">
475
+ <a name="M000003"></a>
476
+
477
+ <div class="method-heading">
478
+ <a href="RIO.src/M000003.html" target="Code" class="method-signature"
479
+ onclick="popupCode('RIO.src/M000003.html');return false;">
480
+ <span class="method-name">root</span><span class="method-args">(*args) {|self| ...}</span>
481
+ </a>
482
+ </div>
483
+
484
+ <div class="method-description">
485
+ <p>
486
+ Create a <a href="RIO/Rio.html">Rio</a> as with <a
487
+ href="RIO.html#M000001">RIO#rio</a> which refers to a directory at the root
488
+ of the file system
489
+ </p>
490
+ <pre>
491
+ tmpdir = RIO.root('tmp') #=&gt; rio('/tmp')
492
+ </pre>
493
+ </div>
494
+ </div>
495
+
496
+
497
+ </div>
498
+
499
+
500
+ </div>
501
+
502
+
503
+ <div id="validator-badges">
504
+ <p><small>Copyright &copy; 2005 Christopher Kleckner. <a href="http://www.gnu.org/licenses/gpl.html">All rights reserved</a>.</small></p>
505
+ </div>
506
+
507
+ </body>
508
+ </html>