rio 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (342) hide show
  1. data/ChangeLog +171 -0
  2. data/README +3 -16
  3. data/RUNME.1st.rb +1 -3
  4. data/Rakefile +10 -7
  5. data/VERSION +1 -1
  6. data/doc/ANNOUNCE +1 -1
  7. data/doc/RELEASE_NOTES +3 -4
  8. data/ex/colx.rb +8 -0
  9. data/ex/findinruby +16 -0
  10. data/ex/findruby +15 -0
  11. data/ex/passwd_report.rb +8 -0
  12. data/ex/prompt.rb +25 -0
  13. data/ex/rgb.txt.gz +0 -0
  14. data/ex/riocat +35 -0
  15. data/ex/riogunzip +31 -0
  16. data/ex/riogzip +24 -0
  17. data/ex/rioprompt.rb +6 -0
  18. data/ex/targz2zip +17 -0
  19. data/ex/tolf +11 -0
  20. data/lib/rio.rb +0 -3
  21. data/lib/rio/construct.rb +14 -20
  22. data/lib/rio/dir.rb +2 -2
  23. data/lib/rio/doc/INTRO.rb +12 -16
  24. data/lib/rio/ext.rb +2 -1
  25. data/lib/rio/ext/csv.rb +5 -1
  26. data/lib/rio/ext/yaml.rb +11 -12
  27. data/lib/rio/filter.rb +1 -1
  28. data/lib/rio/ftp.rb +1 -1
  29. data/lib/rio/if/dir.rb +2 -2
  30. data/lib/rio/if/grande.rb +7 -1
  31. data/lib/rio/if/yaml.rb +1 -1
  32. data/lib/rio/ioh.rb +11 -1
  33. data/lib/rio/ops/construct.rb +11 -10
  34. data/lib/rio/ops/dir.rb +38 -19
  35. data/lib/rio/rl/ioi.rb +2 -2
  36. data/lib/rio/scheme/temp.rb +2 -2
  37. data/lib/rio/state.rb +1 -1
  38. data/lib/rio/stream/open.rb +9 -6
  39. data/lib/rio/util.rb +49 -0
  40. data/lib/rio/version.rb +1 -1
  41. data/test/tc/all.rb +3 -1
  42. data/test/tc/cd1.rb +0 -3
  43. data/test/tc/clearsel.rb +1 -2
  44. data/test/tc/copy-from.rb +0 -3
  45. data/test/tc/copy-to.rb +0 -3
  46. data/test/tc/copyarray.rb +1 -4
  47. data/test/tc/copydir.rb +0 -3
  48. data/test/tc/copydirlines.rb +0 -3
  49. data/test/tc/copynonex.rb +0 -3
  50. data/test/tc/csv.rb +0 -3
  51. data/test/tc/dir.rb +0 -3
  52. data/test/tc/dir_iter.rb +384 -0
  53. data/test/tc/dirautoclose.rb +4 -7
  54. data/test/tc/dirent.rb +3 -5
  55. data/test/tc/dirss.rb +2 -5
  56. data/test/tc/each.rb +3 -3
  57. data/test/tc/each_break.rb +17 -28
  58. data/test/tc/edf.rb +1 -2
  59. data/test/tc/entary.rb +1 -4
  60. data/test/tc/expand_path.rb +1 -2
  61. data/test/tc/ext.rb +0 -3
  62. data/test/tc/fileno.rb +1 -2
  63. data/test/tc/get.rb +151 -0
  64. data/test/tc/lineno.rb +1 -2
  65. data/test/tc/methods.rb +1 -1
  66. data/test/tc/misc.rb +1 -5
  67. data/test/tc/nolines.rb +3 -4
  68. data/test/tc/noqae.rb +1 -4
  69. data/test/tc/pa.rb +1 -2
  70. data/test/tc/pathop.rb +0 -3
  71. data/test/tc/paths.rb +1 -3
  72. data/test/tc/qae.rb +1 -2
  73. data/test/tc/qae_riovar.rb +1 -2
  74. data/test/tc/records.rb +1 -2
  75. data/test/tc/rename.rb +1 -3
  76. data/test/tc/rename_assign.rb +0 -3
  77. data/test/tc/riorl.rb +82 -52
  78. data/test/tc/selnosel.rb +0 -3
  79. data/test/tc/sub.rb +0 -3
  80. data/test/tc/symlink.rb +1 -2
  81. data/test/tc/symlink0.rb +1 -2
  82. data/test/tc/symlink1.rb +1 -2
  83. data/test/tc/temp.rb +0 -3
  84. data/test/tc/tempdir.rb +0 -3
  85. data/test/tc/tempfile.rb +0 -3
  86. data/test/tc/testcase.rb +9 -4
  87. data/test/tc/yaml.rb +11 -1
  88. metadata +141 -386
  89. data/doc/rdoc/classes/Kernel.html +0 -181
  90. data/doc/rdoc/classes/Kernel.src/M000214.html +0 -18
  91. data/doc/rdoc/classes/RIO.html +0 -621
  92. data/doc/rdoc/classes/RIO.src/M000001.html +0 -18
  93. data/doc/rdoc/classes/RIO.src/M000002.html +0 -18
  94. data/doc/rdoc/classes/RIO.src/M000003.html +0 -18
  95. data/doc/rdoc/classes/RIO/Doc.html +0 -138
  96. data/doc/rdoc/classes/RIO/Doc/HOWTO.html +0 -1040
  97. data/doc/rdoc/classes/RIO/Doc/INTRO.html +0 -1613
  98. data/doc/rdoc/classes/RIO/Doc/MISC.html +0 -443
  99. data/doc/rdoc/classes/RIO/Doc/SYNOPSIS.html +0 -338
  100. data/doc/rdoc/classes/RIO/IF.html +0 -114
  101. data/doc/rdoc/classes/RIO/IF/CSV.html +0 -202
  102. data/doc/rdoc/classes/RIO/IF/CSV.src/M000004.html +0 -19
  103. data/doc/rdoc/classes/RIO/IF/CSV.src/M000005.html +0 -16
  104. data/doc/rdoc/classes/RIO/IF/CSV.src/M000006.html +0 -16
  105. data/doc/rdoc/classes/RIO/IF/YAML.html +0 -499
  106. data/doc/rdoc/classes/RIO/IF/YAML.src/M000007.html +0 -19
  107. data/doc/rdoc/classes/RIO/IF/YAML.src/M000008.html +0 -16
  108. data/doc/rdoc/classes/RIO/IF/YAML.src/M000009.html +0 -16
  109. data/doc/rdoc/classes/RIO/IF/YAML.src/M000010.html +0 -16
  110. data/doc/rdoc/classes/RIO/IF/YAML.src/M000011.html +0 -16
  111. data/doc/rdoc/classes/RIO/IF/YAML.src/M000012.html +0 -16
  112. data/doc/rdoc/classes/RIO/IF/YAML.src/M000013.html +0 -16
  113. data/doc/rdoc/classes/RIO/IF/YAML.src/M000014.html +0 -16
  114. data/doc/rdoc/classes/RIO/IF/YAML.src/M000015.html +0 -16
  115. data/doc/rdoc/classes/RIO/IF/YAML.src/M000016.html +0 -16
  116. data/doc/rdoc/classes/RIO/IF/YAML.src/M000017.html +0 -16
  117. data/doc/rdoc/classes/RIO/Rio.html +0 -7121
  118. data/doc/rdoc/classes/RIO/Rio.src/M000018.html +0 -18
  119. data/doc/rdoc/classes/RIO/Rio.src/M000019.html +0 -20
  120. data/doc/rdoc/classes/RIO/Rio.src/M000020.html +0 -27
  121. data/doc/rdoc/classes/RIO/Rio.src/M000021.html +0 -16
  122. data/doc/rdoc/classes/RIO/Rio.src/M000023.html +0 -19
  123. data/doc/rdoc/classes/RIO/Rio.src/M000024.html +0 -20
  124. data/doc/rdoc/classes/RIO/Rio.src/M000025.html +0 -16
  125. data/doc/rdoc/classes/RIO/Rio.src/M000026.html +0 -16
  126. data/doc/rdoc/classes/RIO/Rio.src/M000027.html +0 -16
  127. data/doc/rdoc/classes/RIO/Rio.src/M000028.html +0 -16
  128. data/doc/rdoc/classes/RIO/Rio.src/M000029.html +0 -16
  129. data/doc/rdoc/classes/RIO/Rio.src/M000030.html +0 -16
  130. data/doc/rdoc/classes/RIO/Rio.src/M000031.html +0 -16
  131. data/doc/rdoc/classes/RIO/Rio.src/M000032.html +0 -16
  132. data/doc/rdoc/classes/RIO/Rio.src/M000033.html +0 -16
  133. data/doc/rdoc/classes/RIO/Rio.src/M000034.html +0 -16
  134. data/doc/rdoc/classes/RIO/Rio.src/M000035.html +0 -16
  135. data/doc/rdoc/classes/RIO/Rio.src/M000036.html +0 -16
  136. data/doc/rdoc/classes/RIO/Rio.src/M000037.html +0 -16
  137. data/doc/rdoc/classes/RIO/Rio.src/M000038.html +0 -16
  138. data/doc/rdoc/classes/RIO/Rio.src/M000039.html +0 -16
  139. data/doc/rdoc/classes/RIO/Rio.src/M000040.html +0 -16
  140. data/doc/rdoc/classes/RIO/Rio.src/M000041.html +0 -16
  141. data/doc/rdoc/classes/RIO/Rio.src/M000042.html +0 -16
  142. data/doc/rdoc/classes/RIO/Rio.src/M000043.html +0 -16
  143. data/doc/rdoc/classes/RIO/Rio.src/M000044.html +0 -16
  144. data/doc/rdoc/classes/RIO/Rio.src/M000045.html +0 -16
  145. data/doc/rdoc/classes/RIO/Rio.src/M000046.html +0 -16
  146. data/doc/rdoc/classes/RIO/Rio.src/M000047.html +0 -16
  147. data/doc/rdoc/classes/RIO/Rio.src/M000048.html +0 -16
  148. data/doc/rdoc/classes/RIO/Rio.src/M000049.html +0 -16
  149. data/doc/rdoc/classes/RIO/Rio.src/M000050.html +0 -16
  150. data/doc/rdoc/classes/RIO/Rio.src/M000051.html +0 -16
  151. data/doc/rdoc/classes/RIO/Rio.src/M000052.html +0 -16
  152. data/doc/rdoc/classes/RIO/Rio.src/M000053.html +0 -16
  153. data/doc/rdoc/classes/RIO/Rio.src/M000054.html +0 -16
  154. data/doc/rdoc/classes/RIO/Rio.src/M000055.html +0 -16
  155. data/doc/rdoc/classes/RIO/Rio.src/M000056.html +0 -16
  156. data/doc/rdoc/classes/RIO/Rio.src/M000057.html +0 -16
  157. data/doc/rdoc/classes/RIO/Rio.src/M000058.html +0 -16
  158. data/doc/rdoc/classes/RIO/Rio.src/M000059.html +0 -16
  159. data/doc/rdoc/classes/RIO/Rio.src/M000060.html +0 -16
  160. data/doc/rdoc/classes/RIO/Rio.src/M000061.html +0 -16
  161. data/doc/rdoc/classes/RIO/Rio.src/M000062.html +0 -16
  162. data/doc/rdoc/classes/RIO/Rio.src/M000063.html +0 -16
  163. data/doc/rdoc/classes/RIO/Rio.src/M000064.html +0 -16
  164. data/doc/rdoc/classes/RIO/Rio.src/M000065.html +0 -16
  165. data/doc/rdoc/classes/RIO/Rio.src/M000066.html +0 -16
  166. data/doc/rdoc/classes/RIO/Rio.src/M000067.html +0 -16
  167. data/doc/rdoc/classes/RIO/Rio.src/M000068.html +0 -16
  168. data/doc/rdoc/classes/RIO/Rio.src/M000069.html +0 -16
  169. data/doc/rdoc/classes/RIO/Rio.src/M000070.html +0 -16
  170. data/doc/rdoc/classes/RIO/Rio.src/M000071.html +0 -16
  171. data/doc/rdoc/classes/RIO/Rio.src/M000072.html +0 -16
  172. data/doc/rdoc/classes/RIO/Rio.src/M000073.html +0 -16
  173. data/doc/rdoc/classes/RIO/Rio.src/M000074.html +0 -16
  174. data/doc/rdoc/classes/RIO/Rio.src/M000075.html +0 -16
  175. data/doc/rdoc/classes/RIO/Rio.src/M000076.html +0 -16
  176. data/doc/rdoc/classes/RIO/Rio.src/M000077.html +0 -16
  177. data/doc/rdoc/classes/RIO/Rio.src/M000078.html +0 -16
  178. data/doc/rdoc/classes/RIO/Rio.src/M000079.html +0 -16
  179. data/doc/rdoc/classes/RIO/Rio.src/M000080.html +0 -16
  180. data/doc/rdoc/classes/RIO/Rio.src/M000081.html +0 -16
  181. data/doc/rdoc/classes/RIO/Rio.src/M000082.html +0 -16
  182. data/doc/rdoc/classes/RIO/Rio.src/M000083.html +0 -16
  183. data/doc/rdoc/classes/RIO/Rio.src/M000084.html +0 -16
  184. data/doc/rdoc/classes/RIO/Rio.src/M000085.html +0 -16
  185. data/doc/rdoc/classes/RIO/Rio.src/M000086.html +0 -16
  186. data/doc/rdoc/classes/RIO/Rio.src/M000087.html +0 -16
  187. data/doc/rdoc/classes/RIO/Rio.src/M000088.html +0 -16
  188. data/doc/rdoc/classes/RIO/Rio.src/M000089.html +0 -16
  189. data/doc/rdoc/classes/RIO/Rio.src/M000090.html +0 -16
  190. data/doc/rdoc/classes/RIO/Rio.src/M000091.html +0 -16
  191. data/doc/rdoc/classes/RIO/Rio.src/M000092.html +0 -16
  192. data/doc/rdoc/classes/RIO/Rio.src/M000093.html +0 -16
  193. data/doc/rdoc/classes/RIO/Rio.src/M000094.html +0 -16
  194. data/doc/rdoc/classes/RIO/Rio.src/M000095.html +0 -16
  195. data/doc/rdoc/classes/RIO/Rio.src/M000096.html +0 -16
  196. data/doc/rdoc/classes/RIO/Rio.src/M000097.html +0 -16
  197. data/doc/rdoc/classes/RIO/Rio.src/M000098.html +0 -16
  198. data/doc/rdoc/classes/RIO/Rio.src/M000099.html +0 -16
  199. data/doc/rdoc/classes/RIO/Rio.src/M000100.html +0 -16
  200. data/doc/rdoc/classes/RIO/Rio.src/M000101.html +0 -16
  201. data/doc/rdoc/classes/RIO/Rio.src/M000102.html +0 -16
  202. data/doc/rdoc/classes/RIO/Rio.src/M000103.html +0 -16
  203. data/doc/rdoc/classes/RIO/Rio.src/M000104.html +0 -16
  204. data/doc/rdoc/classes/RIO/Rio.src/M000105.html +0 -16
  205. data/doc/rdoc/classes/RIO/Rio.src/M000106.html +0 -16
  206. data/doc/rdoc/classes/RIO/Rio.src/M000107.html +0 -16
  207. data/doc/rdoc/classes/RIO/Rio.src/M000108.html +0 -16
  208. data/doc/rdoc/classes/RIO/Rio.src/M000109.html +0 -16
  209. data/doc/rdoc/classes/RIO/Rio.src/M000110.html +0 -16
  210. data/doc/rdoc/classes/RIO/Rio.src/M000111.html +0 -16
  211. data/doc/rdoc/classes/RIO/Rio.src/M000112.html +0 -16
  212. data/doc/rdoc/classes/RIO/Rio.src/M000113.html +0 -16
  213. data/doc/rdoc/classes/RIO/Rio.src/M000114.html +0 -16
  214. data/doc/rdoc/classes/RIO/Rio.src/M000115.html +0 -16
  215. data/doc/rdoc/classes/RIO/Rio.src/M000116.html +0 -16
  216. data/doc/rdoc/classes/RIO/Rio.src/M000117.html +0 -16
  217. data/doc/rdoc/classes/RIO/Rio.src/M000118.html +0 -16
  218. data/doc/rdoc/classes/RIO/Rio.src/M000119.html +0 -16
  219. data/doc/rdoc/classes/RIO/Rio.src/M000120.html +0 -16
  220. data/doc/rdoc/classes/RIO/Rio.src/M000121.html +0 -16
  221. data/doc/rdoc/classes/RIO/Rio.src/M000122.html +0 -16
  222. data/doc/rdoc/classes/RIO/Rio.src/M000123.html +0 -16
  223. data/doc/rdoc/classes/RIO/Rio.src/M000124.html +0 -16
  224. data/doc/rdoc/classes/RIO/Rio.src/M000125.html +0 -16
  225. data/doc/rdoc/classes/RIO/Rio.src/M000126.html +0 -16
  226. data/doc/rdoc/classes/RIO/Rio.src/M000127.html +0 -16
  227. data/doc/rdoc/classes/RIO/Rio.src/M000128.html +0 -16
  228. data/doc/rdoc/classes/RIO/Rio.src/M000129.html +0 -16
  229. data/doc/rdoc/classes/RIO/Rio.src/M000130.html +0 -16
  230. data/doc/rdoc/classes/RIO/Rio.src/M000131.html +0 -16
  231. data/doc/rdoc/classes/RIO/Rio.src/M000132.html +0 -16
  232. data/doc/rdoc/classes/RIO/Rio.src/M000133.html +0 -16
  233. data/doc/rdoc/classes/RIO/Rio.src/M000134.html +0 -16
  234. data/doc/rdoc/classes/RIO/Rio.src/M000135.html +0 -16
  235. data/doc/rdoc/classes/RIO/Rio.src/M000136.html +0 -16
  236. data/doc/rdoc/classes/RIO/Rio.src/M000137.html +0 -16
  237. data/doc/rdoc/classes/RIO/Rio.src/M000138.html +0 -16
  238. data/doc/rdoc/classes/RIO/Rio.src/M000139.html +0 -16
  239. data/doc/rdoc/classes/RIO/Rio.src/M000140.html +0 -16
  240. data/doc/rdoc/classes/RIO/Rio.src/M000141.html +0 -16
  241. data/doc/rdoc/classes/RIO/Rio.src/M000142.html +0 -16
  242. data/doc/rdoc/classes/RIO/Rio.src/M000143.html +0 -16
  243. data/doc/rdoc/classes/RIO/Rio.src/M000144.html +0 -16
  244. data/doc/rdoc/classes/RIO/Rio.src/M000145.html +0 -16
  245. data/doc/rdoc/classes/RIO/Rio.src/M000146.html +0 -16
  246. data/doc/rdoc/classes/RIO/Rio.src/M000147.html +0 -16
  247. data/doc/rdoc/classes/RIO/Rio.src/M000148.html +0 -16
  248. data/doc/rdoc/classes/RIO/Rio.src/M000149.html +0 -16
  249. data/doc/rdoc/classes/RIO/Rio.src/M000150.html +0 -16
  250. data/doc/rdoc/classes/RIO/Rio.src/M000151.html +0 -16
  251. data/doc/rdoc/classes/RIO/Rio.src/M000152.html +0 -16
  252. data/doc/rdoc/classes/RIO/Rio.src/M000153.html +0 -16
  253. data/doc/rdoc/classes/RIO/Rio.src/M000154.html +0 -16
  254. data/doc/rdoc/classes/RIO/Rio.src/M000155.html +0 -16
  255. data/doc/rdoc/classes/RIO/Rio.src/M000156.html +0 -16
  256. data/doc/rdoc/classes/RIO/Rio.src/M000157.html +0 -16
  257. data/doc/rdoc/classes/RIO/Rio.src/M000158.html +0 -16
  258. data/doc/rdoc/classes/RIO/Rio.src/M000159.html +0 -16
  259. data/doc/rdoc/classes/RIO/Rio.src/M000160.html +0 -16
  260. data/doc/rdoc/classes/RIO/Rio.src/M000161.html +0 -16
  261. data/doc/rdoc/classes/RIO/Rio.src/M000162.html +0 -16
  262. data/doc/rdoc/classes/RIO/Rio.src/M000163.html +0 -16
  263. data/doc/rdoc/classes/RIO/Rio.src/M000164.html +0 -16
  264. data/doc/rdoc/classes/RIO/Rio.src/M000165.html +0 -16
  265. data/doc/rdoc/classes/RIO/Rio.src/M000166.html +0 -16
  266. data/doc/rdoc/classes/RIO/Rio.src/M000167.html +0 -16
  267. data/doc/rdoc/classes/RIO/Rio.src/M000168.html +0 -16
  268. data/doc/rdoc/classes/RIO/Rio.src/M000169.html +0 -16
  269. data/doc/rdoc/classes/RIO/Rio.src/M000170.html +0 -16
  270. data/doc/rdoc/classes/RIO/Rio.src/M000171.html +0 -16
  271. data/doc/rdoc/classes/RIO/Rio.src/M000172.html +0 -16
  272. data/doc/rdoc/classes/RIO/Rio.src/M000173.html +0 -16
  273. data/doc/rdoc/classes/RIO/Rio.src/M000174.html +0 -16
  274. data/doc/rdoc/classes/RIO/Rio.src/M000175.html +0 -16
  275. data/doc/rdoc/classes/RIO/Rio.src/M000176.html +0 -16
  276. data/doc/rdoc/classes/RIO/Rio.src/M000177.html +0 -16
  277. data/doc/rdoc/classes/RIO/Rio.src/M000178.html +0 -16
  278. data/doc/rdoc/classes/RIO/Rio.src/M000179.html +0 -16
  279. data/doc/rdoc/classes/RIO/Rio.src/M000180.html +0 -16
  280. data/doc/rdoc/classes/RIO/Rio.src/M000181.html +0 -16
  281. data/doc/rdoc/classes/RIO/Rio.src/M000182.html +0 -16
  282. data/doc/rdoc/classes/RIO/Rio.src/M000183.html +0 -16
  283. data/doc/rdoc/classes/RIO/Rio.src/M000184.html +0 -16
  284. data/doc/rdoc/classes/RIO/Rio.src/M000185.html +0 -16
  285. data/doc/rdoc/classes/RIO/Rio.src/M000186.html +0 -16
  286. data/doc/rdoc/classes/RIO/Rio.src/M000187.html +0 -16
  287. data/doc/rdoc/classes/RIO/Rio.src/M000188.html +0 -16
  288. data/doc/rdoc/classes/RIO/Rio.src/M000189.html +0 -16
  289. data/doc/rdoc/classes/RIO/Rio.src/M000190.html +0 -16
  290. data/doc/rdoc/classes/RIO/Rio.src/M000191.html +0 -16
  291. data/doc/rdoc/classes/RIO/Rio.src/M000192.html +0 -16
  292. data/doc/rdoc/classes/RIO/Rio.src/M000193.html +0 -16
  293. data/doc/rdoc/classes/RIO/Rio.src/M000194.html +0 -16
  294. data/doc/rdoc/classes/RIO/Rio.src/M000195.html +0 -16
  295. data/doc/rdoc/classes/RIO/Rio.src/M000196.html +0 -16
  296. data/doc/rdoc/classes/RIO/Rio.src/M000197.html +0 -16
  297. data/doc/rdoc/classes/RIO/Rio.src/M000198.html +0 -16
  298. data/doc/rdoc/classes/RIO/Rio.src/M000199.html +0 -16
  299. data/doc/rdoc/classes/RIO/Rio.src/M000200.html +0 -16
  300. data/doc/rdoc/classes/RIO/Rio.src/M000201.html +0 -16
  301. data/doc/rdoc/classes/RIO/Rio.src/M000202.html +0 -16
  302. data/doc/rdoc/classes/RIO/Rio.src/M000203.html +0 -16
  303. data/doc/rdoc/classes/RIO/Rio.src/M000204.html +0 -16
  304. data/doc/rdoc/classes/RIO/Rio.src/M000205.html +0 -16
  305. data/doc/rdoc/classes/RIO/Rio.src/M000206.html +0 -16
  306. data/doc/rdoc/classes/RIO/Rio.src/M000207.html +0 -16
  307. data/doc/rdoc/classes/RIO/Rio.src/M000208.html +0 -16
  308. data/doc/rdoc/classes/RIO/Rio.src/M000209.html +0 -16
  309. data/doc/rdoc/classes/RIO/Rio.src/M000210.html +0 -16
  310. data/doc/rdoc/classes/RIO/Rio.src/M000211.html +0 -16
  311. data/doc/rdoc/classes/RIO/Rio.src/M000212.html +0 -16
  312. data/doc/rdoc/classes/RIO/Rio.src/M000213.html +0 -16
  313. data/doc/rdoc/created.rid +0 -1
  314. data/doc/rdoc/files/README.html +0 -243
  315. data/doc/rdoc/files/lib/rio/constructor_rb.html +0 -142
  316. data/doc/rdoc/files/lib/rio/doc/HOWTO_rb.html +0 -135
  317. data/doc/rdoc/files/lib/rio/doc/INTRO_rb.html +0 -135
  318. data/doc/rdoc/files/lib/rio/doc/MISC_rb.html +0 -135
  319. data/doc/rdoc/files/lib/rio/doc/SYNOPSIS_rb.html +0 -135
  320. data/doc/rdoc/files/lib/rio/if/basic_rb.html +0 -135
  321. data/doc/rdoc/files/lib/rio/if/csv_rb.html +0 -135
  322. data/doc/rdoc/files/lib/rio/if/dir_rb.html +0 -135
  323. data/doc/rdoc/files/lib/rio/if/file_rb.html +0 -135
  324. data/doc/rdoc/files/lib/rio/if/fileordir_rb.html +0 -135
  325. data/doc/rdoc/files/lib/rio/if/grande_entry_rb.html +0 -135
  326. data/doc/rdoc/files/lib/rio/if/grande_rb.html +0 -135
  327. data/doc/rdoc/files/lib/rio/if/grande_stream_rb.html +0 -135
  328. data/doc/rdoc/files/lib/rio/if/internal_rb.html +0 -135
  329. data/doc/rdoc/files/lib/rio/if/path_rb.html +0 -135
  330. data/doc/rdoc/files/lib/rio/if/stream_rb.html +0 -135
  331. data/doc/rdoc/files/lib/rio/if/string_rb.html +0 -135
  332. data/doc/rdoc/files/lib/rio/if/temp_rb.html +0 -135
  333. data/doc/rdoc/files/lib/rio/if/test_rb.html +0 -135
  334. data/doc/rdoc/files/lib/rio/if/yaml_rb.html +0 -135
  335. data/doc/rdoc/files/lib/rio/kernel_rb.html +0 -142
  336. data/doc/rdoc/files/lib/rio_rb.html +0 -154
  337. data/doc/rdoc/fr_class_index.html +0 -37
  338. data/doc/rdoc/fr_file_index.html +0 -49
  339. data/doc/rdoc/fr_method_index.html +0 -241
  340. data/doc/rdoc/index.html +0 -24
  341. data/doc/rdoc/rdoc-style.css +0 -384
  342. data/test/methods/path.rb +0 -12
@@ -1,443 +0,0 @@
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::Doc::MISC</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::Doc::MISC</td>
54
- <td rowspan="2" class="class-header-space-col"></td>
55
- <td rowspan="2">
56
- <a class="in-url" href="../../../files/lib/rio/doc/MISC_rb.html">
57
- lib/rio/doc/MISC.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
- The following example are provided without comment
76
- </p>
77
- <pre>
78
- array = rio('afile').readlines
79
-
80
- rio('afile') &gt; rio('acopy')
81
-
82
- ary = rio('afile').chomp.lines[0...10]
83
-
84
- rio('adir').rename.all.files('*.htm') do |file|
85
- file.ext = '.html'
86
- end
87
- </pre>
88
- <p>
89
- A basic familiarity with ruby and shell operations should allow a casual
90
- reader to guess what these examples will do. How they are being performed
91
- may not be what a casual reader might expect. I will explain these example
92
- to illustrate the <a href="../Rio.html">Rio</a> basics.
93
- </p>
94
- <p>
95
- For many more examples please read the <a href="HOWTO.html">HOWTO</a>
96
- document and the rdoc documentation.
97
- </p>
98
- <h2>Example 1.</h2>
99
- <pre>
100
- array = rio('afile').readlines
101
- </pre>
102
- <p>
103
- This uses IO#readlines to read the lines of &#8216;afile&#8217; into an
104
- array.
105
- </p>
106
- <h3>Creating a <a href="../Rio.html">Rio</a></h3>
107
- <p>
108
- <a href="../Rio.html">Rio</a> extends the module <a
109
- href="../../Kernel.html">Kernel</a> by adding one function <em>rio</em>,
110
- which acts as a constructor returning a <a href="../Rio.html">Rio</a>. This
111
- constructor builds a description of the resource the <a
112
- href="../Rio.html">Rio</a> will access (usually a path). It does not open
113
- the resource, check for its existance, or do anything except remember its
114
- specifcation. <em>rio</em> returns the <a href="../Rio.html">Rio</a> which
115
- can be chained to a <a href="../Rio.html">Rio</a> method as in this example
116
- or stored in a variable. This coud have been written
117
- </p>
118
- <pre>
119
- ario = rio('afile')
120
- array = ario.readlines
121
-
122
- ario = rio('afile')
123
- </pre>
124
- <p>
125
- In this case the resource specified is a relative path. After the first
126
- line the <a href="../Rio.html">Rio</a> does know or care whether it is a
127
- path to a file nor whether it exists. <a href="../Rio.html">Rio</a>
128
- provides many methods that only deal with a resource at this level, much as
129
- the standard library classes Pathname and URI. It should be noted at this
130
- point that <a href="../Rio.html">Rio</a> paths stored internally as a URL
131
- as specified in RFC 1738 and therefore use slashes as separators. A
132
- resource can also be specified without separators, because <em>rio</em>
133
- interprets multiple arguments as parts of a path to be joined, and an array
134
- as an array of parts to be joined. So the following all specify the same
135
- resource.
136
- </p>
137
- <pre>
138
- rio('adir/afile')
139
- rio('adir','afile')
140
- rio(%w/adir afile/)
141
- </pre>
142
- <p>
143
- The rio constructor can be used to specify non-file-system resources, but
144
- for this example we will restrict our discussion to paths to entities on
145
- file-systems.
146
- </p>
147
- <pre>
148
- array = ario.readlines
149
- </pre>
150
- <p>
151
- Now that we have a <a href="../Rio.html">Rio</a>, we can call one of its
152
- methods; in this case <em>readlines</em>. This is an example of using a <a
153
- href="../Rio.html">Rio</a> as a proxy for the builtin IO#readlines. Given
154
- the method <em>readlines</em>, the <a href="../Rio.html">Rio</a> opens
155
- &#8216;afile&#8217; for reading, calls readlines on the resulting IO
156
- object, closes the IO object, and returns the lines read.
157
- </p>
158
- <h2>Example 2</h2>
159
- <pre>
160
- rio('afile') &gt; rio('acopy')
161
- </pre>
162
- <p>
163
- This copies the file &#8216;afile&#8217; into the file &#8216;acopy&#8217;.
164
- </p>
165
- <p>
166
- The first things that happen here are the creation of the Rios. As
167
- described in Example 1, when created a <a href="../Rio.html">Rio</a> simply
168
- remembers the specifcation of its resource. In this case, a relative path
169
- &#8216;afile&#8217; on the left and a relative path &#8216;acopy&#8217; on
170
- the right.
171
- </p>
172
- <p>
173
- Next the <a href="../Rio.html">Rio</a>#&gt; (copy-to) method is called on
174
- the &#8216;afile&#8217; <a href="../Rio.html">Rio</a> with the
175
- &#8216;acopy&#8217; <a href="../Rio.html">Rio</a> as its argument. If that
176
- looks like a greater-than operator to you, think Unix shell, with Rios
177
- &#8217;&gt;&#8217; is the copy-to operator.
178
- </p>
179
- <p>
180
- Upon seeing the copy-to operator, the <a href="../Rio.html">Rio</a> has all
181
- the information it needs to proceed. It determines that it must be opened
182
- for reading, that its argument must be opened for writing, and that
183
- it&#8217;s contents must be copied to the resource referenced by it&#8217;
184
- argument &#8212; and that is what it does. Then it closes itself and its
185
- argument.
186
- </p>
187
- <p>
188
- Consider if we had written this example this way.
189
- </p>
190
- <pre>
191
- afile = rio('afile')
192
- acopy = rio('acopy')
193
- afile &gt; acopy
194
- </pre>
195
- <p>
196
- In this case we would still have variables referencing the Rios, and
197
- perhaps we would like do things a little differently than described above.
198
- Be assured that the selection of mode and automatic closing of files are
199
- the default behaviour and can be changed. Say we wanted &#8216;afile&#8217;
200
- to remain open so that we could rewind it and make a second copy, we might
201
- do something like this:
202
- </p>
203
- <pre>
204
- afile = rio('afile').nocloseoneof
205
- afile &gt; rio('acopy1')
206
- afile.rewind &gt; rio('acopy2')
207
- afile.close
208
- </pre>
209
- <p>
210
- Actually the &#8216;thinking process&#8217; of the <a
211
- href="../Rio.html">Rio</a> when it sees a copy-to operator is much more
212
- complex that described above. If its argument had been a rio referencing a
213
- directory, it would not have opened itself for reading, but instead used
214
- FileUtils#cp to copy itself; if its argument had been a string, its
215
- contents would have ended up in the string; If its argument had been an
216
- array, its lines would been elements of that array; if its argument had
217
- been a socket, the its contents would have been copied to the socket. See
218
- the documentation for details.
219
- </p>
220
- <h2>Example 3.</h2>
221
- <pre>
222
- array = rio('afile').chomp.lines[0...10]
223
- </pre>
224
- <p>
225
- This fills <tt>array</tt> with the first ten lines of &#8216;afile&#8217;,
226
- with each line chomped
227
- </p>
228
- <p>
229
- The casual observer mentioned above might think that <tt>lines</tt> returns
230
- an array of lines and that this is a simple rewording of <tt>array = <a
231
- href="http://0...10">rio('afile').readlines</a></tt> or even of <tt>array =
232
- <a href="http://0...10">File.new('afile').readlines</a></tt>. They would be
233
- wrong.
234
- </p>
235
- <p>
236
- <tt>chomp</tt> is a configuration method which turns on chomp-mode and
237
- returns the <a href="../Rio.html">Rio</a>. Chomp-mode causes all line
238
- oriented read operations to perform a String#chomp on each line
239
- </p>
240
- <h3>Reading files</h3>
241
- <p>
242
- <a href="../Rio.html">Rio</a> provides four methods to select which part of
243
- the file is read and how the file is divided. They are <tt>lines</tt>,
244
- <tt>records</tt>, <tt>rows</tt> and <tt>bytes</tt>. Briefly, <tt>lines</tt>
245
- specifies that the file should be read line by line and +bytes(n)+
246
- specifies that the file should be read in <em>n</em> byte chunks. All four
247
- take arguments which can be used to filter lines or chunks in or out. For
248
- simple Rios <tt>records</tt> and <tt>rows</tt> only specify the filter
249
- arguments and are provided for use be extensions. For example, the CSV
250
- extension returns an array of the columns in a line when <tt>records</tt>
251
- is used. In the absence of an extension <tt>records</tt> and <tt>rows</tt>
252
- behave like <tt>lines</tt>.
253
- </p>
254
- <p>
255
- First lets rewrite our example as:
256
- </p>
257
- <pre>
258
- array = rio('afile').chomp.lines(0...10).to_a
259
- </pre>
260
- <p>
261
- The arguments to lines specify which records are to be read. Arguments are
262
- interpreted based on their class as follows:
263
- </p>
264
- <ul>
265
- <li>Range - interpreted as a range of record numbers to be read
266
-
267
- </li>
268
- <li>Integer - interpreted as a one-element range
269
-
270
- </li>
271
- <li>RegExp - only matching records are processed
272
-
273
- </li>
274
- <li>Symbol - sent to each record, which is processed unless the result is false
275
- or nil
276
-
277
- </li>
278
- <li>Proc - called for each record, the record is processed unless the return
279
- value is false or nil
280
-
281
- </li>
282
- </ul>
283
- <p>
284
- See the documentation for details and examples.
285
- </p>
286
- <p>
287
- In our example we have specified the Range (0...10). The <tt>lines</tt>
288
- method is just configuring the <a href="../Rio.html">Rio</a>, it does not
289
- trigger any IO operation. The fact that it was called and the arguments it
290
- was called with are stored away and the <a href="../Rio.html">Rio</a> is
291
- returned for further configuration or an actual IO operation. When an IO
292
- operation is called the Range will be used to limit processing to the first
293
- ten records. For example:
294
- </p>
295
- <pre>
296
- rio('afile').lines(0...10).each { |line| ... } # block will be called for the first 10 records
297
- rio('afile').lines(0...10).to_a # the first 10 records will be returned in an array
298
- rio('afile').lines(0...10) &gt; rio('acopy') # the first 10 records will be copied to 'acopy'
299
- </pre>
300
- <p>
301
- &quot;But wait&quot;, you say, &quot;In our original example the range was
302
- an argument to the subscript operator, not to <tt>lines</tt>&quot;. This
303
- works because the subscript operator processes its arguments as if they had
304
- been arguments to the most-recently-called selection method and then calls
305
- <tt>to_a</tt> on the rio. So our rewrite of the example does precisely the
306
- same thing as the original
307
- </p>
308
- <p>
309
- The big difference between the original example and the
310
- casual-observer&#8217;s solution is that hers creates an array of the
311
- entire contents and only returns the first 10 while the original only puts
312
- 10 records into the array.
313
- </p>
314
- <p>
315
- As a sidenote, Rios also have an optimization that can really help in
316
- certain situations. If records are only selected using Ranges, it stops
317
- iterating when it is beyond the point where it could possibly ever match.
318
- This can make a dramatic difference when one is only interested in the
319
- first few lines of very large files.
320
- </p>
321
- <h2>Example 4.</h2>
322
- <pre>
323
- rio('adir').rename.all.files('*.htm') do |file|
324
- file.ext = '.html'
325
- end
326
- </pre>
327
- <p>
328
- This changes the extension of all .htm files below &#8216;adir&#8217; to
329
- &#8217;.html&#8217;
330
- </p>
331
- <p>
332
- First we create the rio as always.
333
- </p>
334
- <p>
335
- Next we process the <tt>rename</tt> method. When used as it is here &#8212;
336
- without arguments &#8212; it just turns on rename-mode and returns the <a
337
- href="../Rio.html">Rio</a>.
338
- </p>
339
- <p>
340
- <tt>all</tt> is another configuration method, which causes directories to
341
- be processed recursively
342
- </p>
343
- <p>
344
- <tt>files</tt> is another configuration method. In example 3 we used
345
- <tt>lines</tt> to select what to process when iterating through a file.
346
- <tt>files</tt> is used to select what to process when iterating through
347
- directories. The arguments to <tt>files</tt> can be the same as those for
348
- <tt>lines</tt> except that Ranges can not be used and globs can.
349
- </p>
350
- <p>
351
- In our example, the argument to <tt>files</tt> is a string which is treated
352
- as a glob. As with <tt>lines</tt>, <tt>files</tt> does not trigger any IO,
353
- it just configures the <a href="../Rio.html">Rio</a>.
354
- </p>
355
- <h3>There&#8217;s no action</h3>
356
- <p>
357
- The previous examples had something that triggered IO: <tt>readlines</tt>,
358
- <tt>to_a</tt>, <tt>each</tt>, <tt>&gt; (copy-to)</tt>. This example does
359
- not. This example illustrates <a href="../Rio.html">Rio</a>&#8217;s
360
- &#8216;implied each&#8217;. All the configuration methods will call each
361
- for you if a block is given. So, because a block follows the files method,
362
- it calls <tt>each</tt> and passes it the block.
363
- </p>
364
- <p>
365
- Let&#8217;s recap. At this point we have a <a href="../Rio.html">Rio</a>
366
- with a resource specified. We have configured with a couple of modes,
367
- &#8216;rename&#8217;, and &#8216;all&#8217;, and we have limited the
368
- elements we want to process to entries that are files and match the glob
369
- &#8217;*.htm&#8217;. <tt>each</tt> causes the <a href="../Rio.html">Rio</a>
370
- to open the directory and call the block for each entry that is both a file
371
- and matches the glob. It was also configured with <tt>all</tt>,so it
372
- descends into subdirectories to find further matches and calles the block
373
- for each of them. The argument passed to the block is a <a
374
- href="../Rio.html">Rio</a> referencing the entry on the file-system.
375
- </p>
376
- <p>
377
- The <em>rename_mode</em> we set has had no effect on our iteration at all,
378
- so why is it there? In general, configuration options that are not
379
- applicable to a <a href="../Rio.html">Rio</a> are silently ignored,
380
- however, for directories some of them are passed on to the Rios for each
381
- entry when iterating. Since <tt>rename</tt> is one such option, The example
382
- could have been written:
383
- </p>
384
- <pre>
385
- rio('adir').all.files('*.htm') do |file|
386
- file.rename.ext = '.html'
387
- end
388
- </pre>
389
- <p>
390
- The rename-with-no-args method affects the behaviour of the <tt>ext=</tt>
391
- option. In this case, setting it for the directory, rather than for each
392
- file in the block seems to make the intent of the code more clear, but that
393
- is a matter of personal taste. See the documentation for more information
394
- on the rename-with-no-args method
395
- </p>
396
- <h2>Suggested Reading</h2>
397
- <ul>
398
- <li><a href="SYNOPSIS.html">RIO::Doc::SYNOPSIS</a>
399
-
400
- </li>
401
- <li><a href="INTRO.html">RIO::Doc::INTRO</a>
402
-
403
- </li>
404
- <li><a href="HOWTO.html">RIO::Doc::HOWTO</a>
405
-
406
- </li>
407
- <li><a href="../Rio.html">RIO::Rio</a>
408
-
409
- </li>
410
- </ul>
411
-
412
- </div>
413
-
414
-
415
- </div>
416
-
417
-
418
- </div>
419
-
420
-
421
- <!-- if includes -->
422
-
423
- <div id="section">
424
-
425
-
426
-
427
-
428
-
429
-
430
-
431
-
432
- <!-- if method_list -->
433
-
434
-
435
- </div>
436
-
437
-
438
- <div id="validator-badges">
439
- <p><small>Copyright &copy; 2005 Christopher Kleckner. <a href="http://www.gnu.org/licenses/gpl.html">All rights reserved</a>.</small></p>
440
- </div>
441
-
442
- </body>
443
- </html>
@@ -1,338 +0,0 @@
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::Doc::SYNOPSIS</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::Doc::SYNOPSIS</td>
54
- <td rowspan="2" class="class-header-space-col"></td>
55
- <td rowspan="2">
56
- <a class="in-url" href="../../../files/lib/rio/doc/SYNOPSIS_rb.html">
57
- lib/rio/doc/SYNOPSIS.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
- <h1><a href="../Rio.html">Rio</a> - Ruby I/O Comfort Class</h1>
75
- <p>
76
- <a href="../Rio.html">Rio</a> is a convenience class wrapping much of the
77
- functionality of IO, File, Dir, Pathname, FileUtils, Tempfile, StringIO,
78
- OpenURI, Zlib, and CSV.
79
- </p>
80
- <h2><a href="SYNOPSIS.html">SYNOPSIS</a></h2>
81
- <p>
82
- For the following assume:
83
- </p>
84
- <pre>
85
- astring = &quot;&quot;
86
- anarray = []
87
- </pre>
88
- <p>
89
- Copy or append a file to a string
90
- </p>
91
- <pre>
92
- rio('afile') &gt; astring # copy
93
- rio('afile') &gt;&gt; astring # append
94
- </pre>
95
- <p>
96
- Copy or append a string to a file
97
- </p>
98
- <pre>
99
- rio('afile') &lt; astring # copy
100
- rio('afile') &lt;&lt; astring # append
101
- </pre>
102
- <p>
103
- Copy or append the lines of a file to an array
104
- </p>
105
- <pre>
106
- rio('afile') &gt; anarray
107
- rio('afile') &gt;&gt; anarray
108
- </pre>
109
- <p>
110
- Copy or append a file to another file
111
- </p>
112
- <pre>
113
- rio('afile') &gt; rio('another_file')
114
- rio('afile') &gt;&gt; rio('another_file')
115
- </pre>
116
- <p>
117
- Copy a file to a directory
118
- </p>
119
- <pre>
120
- rio('adir') &lt;&lt; rio('afile')
121
- </pre>
122
- <p>
123
- Copy a directory structure to another directory
124
- </p>
125
- <pre>
126
- rio('adir') &gt;&gt; rio('another_directory')
127
- </pre>
128
- <p>
129
- Copy a web-page to a file
130
- </p>
131
- <pre>
132
- rio('http://rubydoc.org/') &gt; rio('afile')
133
- </pre>
134
- <p>
135
- Ways to get the chomped lines of a file into an array
136
- </p>
137
- <pre>
138
- anarray = rio('afile').chomp[] # subscript operator
139
- rio('afile').chomp &gt; anarray # copy-to operator
140
- anarray = rio('afile').chomp.to_a # to_a
141
- anarray = rio('afile').chomp.readlines # IO#readlines
142
- </pre>
143
- <p>
144
- Copy a gzipped file un-gzipping it
145
- </p>
146
- <pre>
147
- rio('afile.gz').gzip &gt; rio('afile')
148
- </pre>
149
- <p>
150
- Copy a plain file, gzipping it
151
- </p>
152
- <pre>
153
- rio('afile.gz').gzip &lt; rio('afile')
154
- </pre>
155
- <p>
156
- Copy a file from a ftp server into a local file un-gzipping it
157
- </p>
158
- <pre>
159
- rio('ftp://host/afile.gz').gzip &gt; rio('afile')
160
- </pre>
161
- <p>
162
- Iterate over the entries in a directory
163
- </p>
164
- <pre>
165
- rio('adir').entries { |entrio| ... }
166
- </pre>
167
- <p>
168
- Iterate over only the files in a directory
169
- </p>
170
- <pre>
171
- rio('adir').files { |entrio| ... }
172
- </pre>
173
- <p>
174
- Iterate over only the .rb files in a directory
175
- </p>
176
- <pre>
177
- rio('adir').files('*.rb') { |entrio| ... }
178
- </pre>
179
- <p>
180
- Iterate over only the <em>dot</em> files in a directory
181
- </p>
182
- <pre>
183
- rio('adir').files(/^\./) { |entrio| ... }
184
- </pre>
185
- <p>
186
- Iterate over the files in a directory and its subdirectories, skipping
187
- &#8217;.svn&#8217; and &#8216;CVS&#8217; directories
188
- </p>
189
- <pre>
190
- rio('adir').norecurse(/^\.svn$/,'CVS').files { |entrio| ... }
191
- </pre>
192
- <p>
193
- Create an array of the .rb entries in a directory
194
- </p>
195
- <pre>
196
- anarray = rio('adir')['*.rb']
197
- </pre>
198
- <p>
199
- Create an array of the .rb entries in a directory and its subdirectories
200
- </p>
201
- <pre>
202
- anarray = rio('adir').all['*.rb']
203
- </pre>
204
- <p>
205
- Iterate over the .rb files in a directory and its subdirectories
206
- </p>
207
- <pre>
208
- rio('adir').all.files('*.rb') { |entrio| ... }
209
- </pre>
210
- <p>
211
- Copy an entire directory structure and the .rb files within it
212
- </p>
213
- <pre>
214
- rio('adir').dirs.files('*.rb') &gt; rio('another_directory')
215
- </pre>
216
- <p>
217
- Iterate over the first 10 chomped lines of a file
218
- </p>
219
- <pre>
220
- rio('afile').chomp.lines(0..9) { |line| ... }
221
- </pre>
222
- <p>
223
- Put the first 10 chomped lines of a file into an array
224
- </p>
225
- <pre>
226
- anarray = rio('afile').chomp.lines[0..9]
227
- </pre>
228
- <p>
229
- Copy the first 10 lines of a file into another file
230
- </p>
231
- <pre>
232
- rio('afile').lines(0..9) &gt; rio('another_file')
233
- </pre>
234
- <p>
235
- Copy the first 10 lines of a file to stdout
236
- </p>
237
- <pre>
238
- rio('afile').lines(0..9) &gt; rio(?-)
239
- </pre>
240
- <p>
241
- Copy the first 10 lines of a gzipped file on an ftp server to stdout
242
- </p>
243
- <pre>
244
- rio('ftp://host/afile.gz').gzip.lines(0..9) &gt; rio(?-)
245
- </pre>
246
- <p>
247
- Put the first 100 chomped lines of a gzipped file into an array
248
- </p>
249
- <pre>
250
- anarray = rio('afile.gz').chomp.gzip[0...100]
251
- </pre>
252
- <p>
253
- Put chomped lines that start with &#8216;<a
254
- href="../Rio.html">Rio</a>&#8217; into an array
255
- </p>
256
- <pre>
257
- anarray = rio('afile').chomp[/^Rio/]
258
- </pre>
259
- <p>
260
- Iterate over the non-empty, non-comment chomped lines of a file
261
- </p>
262
- <pre>
263
- rio('afile').chomp.skiplines(:empty?,/^\s*#/) { |line| ... }
264
- </pre>
265
- <p>
266
- Copy the output of th ps command into an array, skipping the header line
267
- and the ps command entry
268
- </p>
269
- <pre>
270
- rio(?-,'ps -a').skiplines(0,/ps$/) &gt; anarray
271
- </pre>
272
- <p>
273
- Prompt for input and return what was typed
274
- </p>
275
- <pre>
276
- ans = rio(?-).print(&quot;Type Something: &quot;).chomp.gets
277
- </pre>
278
- <p>
279
- Change the extension of all .htm files in a directory and its
280
- subdirectories to .html
281
- </p>
282
- <pre>
283
- rio('adir').rename.all.files('*.htm') do |htmfile|
284
- htmfile.extname = '.html'
285
- end
286
- </pre>
287
- <p>
288
- Create a symbolic link &#8216;asymlink&#8217; in &#8216;adir&#8217; which
289
- refers to &#8216;adir/afile&#8216;
290
- </p>
291
- <pre>
292
- rio('adir/afile').symlink('adir/asymlink')
293
- </pre>
294
- <h3>SUGGESTED READING</h3>
295
- <ul>
296
- <li><a href="INTRO.html">RIO::Doc::INTRO</a>
297
-
298
- </li>
299
- <li><a href="HOWTO.html">RIO::Doc::HOWTO</a>
300
-
301
- </li>
302
- <li><a href="../Rio.html">RIO::Rio</a>
303
-
304
- </li>
305
- </ul>
306
-
307
- </div>
308
-
309
-
310
- </div>
311
-
312
-
313
- </div>
314
-
315
-
316
- <!-- if includes -->
317
-
318
- <div id="section">
319
-
320
-
321
-
322
-
323
-
324
-
325
-
326
-
327
- <!-- if method_list -->
328
-
329
-
330
- </div>
331
-
332
-
333
- <div id="validator-badges">
334
- <p><small>Copyright &copy; 2005 Christopher Kleckner. <a href="http://www.gnu.org/licenses/gpl.html">All rights reserved</a>.</small></p>
335
- </div>
336
-
337
- </body>
338
- </html>