rio 0.4.2 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (641) hide show
  1. data/.gitignore +21 -0
  2. data/Gemfile +4 -0
  3. data/{COPYING → LICENSE} +3 -0
  4. data/README +20 -27
  5. data/Rakefile +48 -277
  6. data/lib/rio.rb +63 -24
  7. data/lib/rio/.document +5 -0
  8. data/lib/rio/abstract_method.rb +3 -14
  9. data/lib/rio/alturi.rb +507 -0
  10. data/lib/rio/alturi/algorithm.rb +313 -0
  11. data/lib/rio/alturi/cached_fields.rb +68 -0
  12. data/lib/rio/alturi/escape.rb +82 -0
  13. data/lib/rio/alturi/parse.rb +75 -0
  14. data/lib/rio/alturi/path_parts.rb +81 -0
  15. data/lib/rio/alturi/regex.rb +76 -0
  16. data/lib/rio/alturi/uri_parts.rb +512 -0
  17. data/lib/rio/argv.rb +3 -14
  18. data/lib/rio/arraynge.rb +146 -0
  19. data/lib/rio/arycopy.rb +3 -14
  20. data/lib/rio/assert.rb +87 -15
  21. data/lib/rio/base.rb +7 -30
  22. data/lib/rio/callstr.rb +3 -14
  23. data/lib/rio/const.rb +3 -14
  24. data/lib/rio/construct.rb +4 -15
  25. data/lib/rio/constructor.rb +4 -19
  26. data/lib/rio/context.rb +17 -14
  27. data/lib/rio/context/autoclose.rb +3 -14
  28. data/lib/rio/context/binmode.rb +63 -0
  29. data/lib/rio/context/copying.rb +3 -14
  30. data/lib/rio/context/cxx.rb +3 -14
  31. data/lib/rio/context/dir.rb +5 -15
  32. data/lib/rio/context/encoding.rb +84 -0
  33. data/lib/rio/context/gzip.rb +3 -14
  34. data/lib/rio/context/methods.rb +8 -17
  35. data/lib/rio/context/skip.rb +3 -14
  36. data/lib/rio/context/stream.rb +3 -14
  37. data/lib/rio/cp.rb +5 -20
  38. data/lib/rio/cxuri.rb +67 -0
  39. data/lib/rio/dbg/trace_states.rb +18 -0
  40. data/lib/rio/def.rb +3 -14
  41. data/lib/rio/dir.rb +9 -18
  42. data/lib/rio/doc.rb +3 -14
  43. data/lib/rio/doc/EXAMPLES.rb +256 -269
  44. data/lib/rio/doc/HOWTO.rb +685 -707
  45. data/lib/rio/doc/INDEX.rb +261 -282
  46. data/lib/rio/doc/INTRO.rb +1029 -1040
  47. data/lib/rio/doc/OPTIONAL.rb +77 -103
  48. data/lib/rio/doc/SYNOPSIS.rb +122 -143
  49. data/lib/rio/entrysel.rb +3 -14
  50. data/lib/rio/exception.rb +4 -14
  51. data/lib/rio/exception/copy.rb +3 -14
  52. data/lib/rio/exception/notimplemented.rb +3 -14
  53. data/lib/rio/exception/notsupported.rb +3 -14
  54. data/lib/rio/exception/open.rb +3 -14
  55. data/lib/rio/exception/state.rb +3 -14
  56. data/lib/rio/ext.rb +14 -17
  57. data/lib/rio/ext/csv.rb +25 -304
  58. data/lib/rio/ext/csv/csv-legacy.rb +344 -0
  59. data/lib/rio/ext/csv/csv.rb +359 -0
  60. data/lib/rio/ext/csv/filter.rb +209 -0
  61. data/lib/rio/ext/if.rb +3 -14
  62. data/lib/rio/ext/mp3info.rb +3 -14
  63. data/lib/rio/ext/splitlines.rb +3 -14
  64. data/lib/rio/ext/yaml.rb +3 -14
  65. data/lib/rio/ext/yaml/doc.rb +3 -14
  66. data/lib/rio/ext/yaml/tie.rb +3 -14
  67. data/lib/rio/ext/zipfile.rb +3 -14
  68. data/lib/rio/ext/zipfile/fs.rb +3 -14
  69. data/lib/rio/ext/zipfile/rl.rb +3 -14
  70. data/lib/rio/ext/zipfile/rootdir.rb +3 -14
  71. data/lib/rio/ext/zipfile/state.rb +3 -14
  72. data/lib/rio/ext/zipfile/wrap.rb +3 -14
  73. data/lib/rio/factory.rb +96 -213
  74. data/lib/rio/fibpipe.rb +373 -0
  75. data/lib/rio/file.rb +8 -17
  76. data/lib/rio/filter.rb +4 -15
  77. data/lib/rio/filter/closeoneof.rb +3 -14
  78. data/lib/rio/filter/gzip.rb +18 -27
  79. data/lib/rio/fs.rb +172 -0
  80. data/lib/rio/fs/base.rb +3 -14
  81. data/lib/rio/fs/impl.rb +3 -14
  82. data/lib/rio/fs/native.rb +3 -14
  83. data/lib/rio/fs/stream.rb +3 -14
  84. data/lib/rio/fs/url.rb +3 -14
  85. data/lib/rio/ftp/conncache.rb +16 -18
  86. data/lib/rio/ftp/dir.rb +4 -15
  87. data/lib/rio/ftp/fs.rb +62 -42
  88. data/lib/rio/fwd.rb +15 -0
  89. data/lib/rio/grande.rb +4 -15
  90. data/lib/rio/handle.rb +3 -45
  91. data/lib/rio/if.rb +15 -20
  92. data/lib/rio/if/basic.rb +3 -36
  93. data/lib/rio/if/csv.rb +7 -20
  94. data/lib/rio/if/dir.rb +9 -21
  95. data/lib/rio/if/file.rb +6 -19
  96. data/lib/rio/if/fileordir.rb +18 -29
  97. data/lib/rio/if/grande.rb +109 -120
  98. data/lib/rio/if/grande_entry.rb +5 -18
  99. data/lib/rio/if/grande_stream.rb +29 -42
  100. data/lib/rio/if/internal.rb +15 -16
  101. data/lib/rio/if/path.rb +35 -47
  102. data/lib/rio/if/rubyio.rb +35 -47
  103. data/lib/rio/if/string.rb +3 -16
  104. data/lib/rio/if/temp.rb +3 -16
  105. data/lib/rio/if/test.rb +8 -20
  106. data/lib/rio/if/yaml.rb +16 -29
  107. data/lib/rio/ioh.rb +35 -34
  108. data/lib/rio/iomode.rb +3 -14
  109. data/lib/rio/ios/fail.rb +3 -14
  110. data/lib/rio/ios/generic.rb +3 -14
  111. data/lib/rio/ios/mode.rb +3 -14
  112. data/lib/rio/ios/null.rb +3 -14
  113. data/lib/rio/iowrap.rb +3 -14
  114. data/lib/rio/kernel.rb +4 -17
  115. data/lib/rio/local.rb +3 -14
  116. data/lib/rio/match.rb +3 -14
  117. data/lib/rio/matchrecord.rb +8 -17
  118. data/lib/rio/no_warn.rb +3 -14
  119. data/lib/rio/nullio.rb +3 -14
  120. data/lib/rio/open3.rb +3 -16
  121. data/lib/rio/ops.rb +33 -0
  122. data/lib/rio/ops/construct.rb +3 -14
  123. data/lib/rio/ops/create.rb +11 -25
  124. data/lib/rio/ops/dir.rb +17 -24
  125. data/lib/rio/ops/either.rb +28 -31
  126. data/lib/rio/ops/file.rb +29 -26
  127. data/lib/rio/ops/path.rb +65 -34
  128. data/lib/rio/ops/stream.rb +13 -15
  129. data/lib/rio/ops/stream/input.rb +59 -28
  130. data/lib/rio/ops/stream/output.rb +4 -14
  131. data/lib/rio/ops/stream/read.rb +4 -15
  132. data/lib/rio/ops/stream/write.rb +3 -14
  133. data/lib/rio/ops/symlink.rb +6 -15
  134. data/lib/rio/path.rb +10 -17
  135. data/lib/rio/path/reset.rb +3 -14
  136. data/lib/rio/piper.rb +3 -27
  137. data/lib/rio/piper/cp.rb +50 -27
  138. data/lib/rio/prompt.rb +3 -14
  139. data/lib/rio/rectype.rb +8 -16
  140. data/lib/rio/rl/base.rb +12 -25
  141. data/lib/rio/rl/builder.rb +25 -24
  142. data/lib/rio/rl/chmap.rb +3 -16
  143. data/lib/rio/rl/fs2url.rb +5 -16
  144. data/lib/rio/rl/ioi.rb +3 -14
  145. data/lib/rio/rl/path.rb +14 -25
  146. data/lib/rio/rl/pathmethods.rb +3 -14
  147. data/lib/rio/rl/uri.rb +18 -35
  148. data/lib/rio/rl/withpath.rb +36 -53
  149. data/lib/rio/rrl/base.rb +75 -0
  150. data/lib/rio/rrl/builder.rb +122 -0
  151. data/lib/rio/rrl/chmap.rb +53 -0
  152. data/lib/rio/rrl/ioi.rb +78 -0
  153. data/lib/rio/rrl/path.rb +117 -0
  154. data/lib/rio/rrl/withpath.rb +269 -0
  155. data/lib/rio/scheme/aryio.rb +3 -14
  156. data/lib/rio/scheme/cmdio.rb +73 -42
  157. data/lib/rio/scheme/cmdpipe.rb +122 -59
  158. data/lib/rio/scheme/fd.rb +19 -33
  159. data/lib/rio/scheme/ftp.rb +34 -40
  160. data/lib/rio/scheme/http.rb +13 -22
  161. data/lib/rio/scheme/null.rb +6 -17
  162. data/lib/rio/scheme/path.rb +60 -71
  163. data/lib/rio/scheme/stderr.rb +9 -21
  164. data/lib/rio/scheme/stdio.rb +14 -26
  165. data/lib/rio/scheme/strio.rb +37 -38
  166. data/lib/rio/scheme/sysio.rb +20 -32
  167. data/lib/rio/scheme/tcp.rb +3 -14
  168. data/lib/rio/scheme/temp.rb +103 -92
  169. data/lib/rio/state.rb +85 -67
  170. data/lib/rio/state/data.rb +55 -0
  171. data/lib/rio/state/error.rb +7 -27
  172. data/lib/rio/stream.rb +46 -19
  173. data/lib/rio/stream/base.rb +14 -14
  174. data/lib/rio/stream/duplex.rb +64 -26
  175. data/lib/rio/stream/open.rb +9 -19
  176. data/lib/rio/symantics.rb +3 -14
  177. data/lib/rio/tempdir.rb +8 -17
  178. data/lib/rio/to_rio.rb +3 -16
  179. data/lib/rio/to_rio/all.rb +3 -14
  180. data/lib/rio/to_rio/array.rb +3 -14
  181. data/lib/rio/to_rio/io.rb +3 -14
  182. data/lib/rio/to_rio/object.rb +3 -14
  183. data/lib/rio/to_rio/string.rb +3 -14
  184. data/lib/rio/uri/file.rb +98 -153
  185. data/lib/rio/uriref.rb +144 -0
  186. data/lib/rio/util.rb +3 -14
  187. data/lib/rio/version.rb +4 -15
  188. data/misc/clean-heading-comments.rb +39 -0
  189. data/misc/fixdoclinks.rb +36 -0
  190. data/misc/update-copyright.rb +17 -0
  191. data/rio.gemspec +31 -0
  192. data/test/alturi/tc/create.rb +24 -0
  193. data/test/alturi/tc/empty.rb +13 -0
  194. data/test/alturi/tc/encoding.rb +73 -0
  195. data/test/alturi/tc/file_test.rb +335 -0
  196. data/test/alturi/tc/ftp_alturi.rb +147 -0
  197. data/test/alturi/tc/generic_test.rb +335 -0
  198. data/test/alturi/tc/http_test.rb +359 -0
  199. data/test/alturi/tc/path_parts_test.rb +215 -0
  200. data/test/alturi/tc/rfc_test.rb +83 -0
  201. data/test/alturi/tc/uri_parts_authority.rb +129 -0
  202. data/test/alturi/tc/uri_parts_test.rb +473 -0
  203. data/test/alturi/tc/uri_parts_userinfo.rb +140 -0
  204. data/test/alturi/tests.rb +27 -0
  205. data/test/base_test.rb +18 -0
  206. data/test/bin/demo_chdir.rb +60 -0
  207. data/test/bin/elipsis.rb +11 -0
  208. data/test/env.sh +4 -0
  209. data/test/ftp/initftpfiles.rb +1 -0
  210. data/test/ftp/tc/anon_copy_data.rb +31 -0
  211. data/test/ftp/tc/anon_misc.rb +109 -0
  212. data/test/ftp/tc/anon_read.rb +99 -0
  213. data/test/ftp/tc/anon_special.rb +37 -0
  214. data/test/ftp/tc/anon_write.rb +68 -0
  215. data/test/ftp/tc/copy.rb +35 -0
  216. data/test/ftp/tc/empty.rb +16 -0
  217. data/test/ftp/tc/ftp2ftp.rb +42 -0
  218. data/test/ftp/tc/ftp_fs.rb +333 -0
  219. data/test/ftp/testdef.rb +7 -2
  220. data/test/ftp/tests.rb +24 -0
  221. data/test/gem_runtests.rb +1 -1
  222. data/test/http/copy-from-http.rb +0 -1
  223. data/test/http/def.rb +20 -0
  224. data/test/http/tc/copy_from_http.rb +128 -0
  225. data/test/http/tc/empty.rb +14 -0
  226. data/test/http/tc/uri_meta.rb +52 -0
  227. data/test/http/tests.rb +19 -0
  228. data/test/lib/assertions.rb +7 -0
  229. data/test/lib/run_tests.rb +26 -0
  230. data/test/lib/temp_server.rb +7 -4
  231. data/test/methods/test_suite.rb +108 -0
  232. data/test/platform.rb +5 -0
  233. data/test/qpdir.rb +2 -0
  234. data/test/rio/scheme.rb +49 -0
  235. data/test/rio/tc/pathparts.rb +61 -0
  236. data/test/riotest/test_suite.rb +33 -0
  237. data/test/riotest/unit_test.rb +118 -0
  238. data/test/riotest/util.rb +23 -0
  239. data/test/runalltests.rb +1 -1
  240. data/test/runftptests.rb +2 -7
  241. data/test/runhttp.rb +4 -2
  242. data/test/runhttptests.rb +6 -5
  243. data/test/runtests.rb +66 -37
  244. data/test/srv/www/htdocs/riotest/dir/index.html +11 -0
  245. data/test/srv/www/htdocs/riotest/hw.html +8 -0
  246. data/test/srv/www/htdocs/riotest/lines.txt.gz +0 -0
  247. data/test/tc/abs2.rb +358 -0
  248. data/test/tc/all.rb +17 -10
  249. data/test/tc/base2.rb +8 -7
  250. data/test/tc/clearsel.rb +3 -2
  251. data/test/tc/closeoneof.rb +14 -15
  252. data/test/tc/cmdio.rb +193 -0
  253. data/test/tc/cmdpipe.rb +258 -63
  254. data/test/tc/copy.rb +3 -2
  255. data/test/tc/copyarray.rb +0 -4
  256. data/test/tc/copydest.rb +2 -3
  257. data/test/tc/copydir.rb +5 -1
  258. data/test/tc/copydir2.rb +68 -0
  259. data/test/tc/create.rb +4 -9
  260. data/test/tc/csv.rb +38 -119
  261. data/test/tc/csv2.rb +38 -57
  262. data/test/tc/csv_columns.rb +210 -8
  263. data/test/tc/csv_gzip.rb +78 -0
  264. data/test/tc/csv_headers.rb +134 -0
  265. data/test/tc/csvutil.rb +53 -16
  266. data/test/tc/dir.rb +3 -4
  267. data/test/tc/dir_iter.rb +3 -1
  268. data/test/tc/dirent.rb +8 -7
  269. data/test/tc/each.rb +62 -47
  270. data/test/tc/each_break.rb +67 -25
  271. data/test/tc/edf.rb +3 -2
  272. data/test/tc/empty.rb +6 -4
  273. data/test/tc/encoding.rb +30 -0
  274. data/test/tc/entary.rb +6 -5
  275. data/test/tc/eq.rb +2 -2
  276. data/test/tc/expand_path.rb +14 -14
  277. data/test/tc/ext.rb +7 -7
  278. data/test/tc/fileno.rb +3 -2
  279. data/test/tc/files_select.rb +1 -1
  280. data/test/tc/getrec.rb +2 -3
  281. data/test/tc/gzip.rb +5 -3
  282. data/test/tc/likeio.rb +5 -5
  283. data/test/tc/lineno.rb +1 -1
  284. data/test/tc/lines.rb +4 -4
  285. data/test/tc/misc.rb +29 -171
  286. data/test/tc/nolines.rb +4 -2
  287. data/test/tc/noqae.rb +12 -10
  288. data/test/tc/overload.rb +1 -2
  289. data/test/tc/pa.rb +25 -24
  290. data/test/tc/path_parts.rb +54 -20
  291. data/test/tc/paths.rb +3 -2
  292. data/test/tc/piper.rb +32 -31
  293. data/test/tc/programs_util.rb +9 -9
  294. data/test/tc/qae.rb +9 -8
  295. data/test/tc/qae_riovar.rb +9 -8
  296. data/test/tc/records.rb +3 -2
  297. data/test/tc/rename.rb +4 -4
  298. data/test/tc/riorl.rb +19 -19
  299. data/test/tc/rlparts.ans.yml +1161 -0
  300. data/test/tc/splitlines.rb +1 -1
  301. data/test/tc/splitpath.rb +9 -8
  302. data/test/tc/strio.rb +73 -0
  303. data/test/tc/symlink.rb +3 -2
  304. data/test/tc/symlink0.rb +4 -3
  305. data/test/tc/symlink1.rb +4 -3
  306. data/test/tc/temp.rb +40 -26
  307. data/test/tc/tempdir.rb +12 -12
  308. data/test/tc/testcase.rb +45 -31
  309. data/test/tc/tonl.rb +0 -1
  310. data/test/tc/truncate.rb +111 -13
  311. data/test/tc/yaml.rb +1 -1
  312. data/test/test_suite.rb +31 -0
  313. data/test/tests.rb +35 -0
  314. data/test/tsuite.rb +19 -0
  315. data/test/uriref/tc/basic.rb +171 -0
  316. data/test/uriref/tc/build.rb +30 -0
  317. data/test/uriref/tc/empty.rb +13 -0
  318. data/test/uriref/tc/route.rb +72 -0
  319. data/test/uriref/tests.rb +16 -0
  320. metadata +356 -424
  321. data/ChangeLog +0 -3122
  322. data/VERSION +0 -1
  323. data/build_doc.rb +0 -94
  324. data/doc/ANNOUNCE +0 -157
  325. data/doc/RELEASE_NOTES +0 -308
  326. data/doc/RIOIS +0 -215
  327. data/doc/generators/template/html/rio.css +0 -428
  328. data/doc/generators/template/html/rio.rb +0 -523
  329. data/doc/generators/template/html/ugly.rb +0 -132
  330. data/doc/pkg_def.rb +0 -60
  331. data/doc/rdoc/classes/Kernel.html +0 -133
  332. data/doc/rdoc/classes/Kernel.src/M000234.html +0 -18
  333. data/doc/rdoc/classes/RIO.html +0 -625
  334. data/doc/rdoc/classes/RIO.src/M000001.html +0 -18
  335. data/doc/rdoc/classes/RIO.src/M000002.html +0 -18
  336. data/doc/rdoc/classes/RIO.src/M000003.html +0 -18
  337. data/doc/rdoc/classes/RIO/Doc.html +0 -149
  338. data/doc/rdoc/classes/RIO/Doc/EXAMPLES.html +0 -432
  339. data/doc/rdoc/classes/RIO/Doc/HOWTO.html +0 -1084
  340. data/doc/rdoc/classes/RIO/Doc/INDEX.html +0 -368
  341. data/doc/rdoc/classes/RIO/Doc/INTRO.html +0 -1529
  342. data/doc/rdoc/classes/RIO/Doc/OPTIONAL.html +0 -221
  343. data/doc/rdoc/classes/RIO/Doc/SYNOPSIS.html +0 -336
  344. data/doc/rdoc/classes/RIO/IF.html +0 -165
  345. data/doc/rdoc/classes/RIO/IF/CSV.html +0 -203
  346. data/doc/rdoc/classes/RIO/IF/CSV.src/M000129.html +0 -19
  347. data/doc/rdoc/classes/RIO/IF/CSV.src/M000130.html +0 -16
  348. data/doc/rdoc/classes/RIO/IF/CSV.src/M000131.html +0 -16
  349. data/doc/rdoc/classes/RIO/IF/Dir.html +0 -343
  350. data/doc/rdoc/classes/RIO/IF/Dir.src/M000045.html +0 -16
  351. data/doc/rdoc/classes/RIO/IF/Dir.src/M000046.html +0 -16
  352. data/doc/rdoc/classes/RIO/IF/Dir.src/M000047.html +0 -16
  353. data/doc/rdoc/classes/RIO/IF/Dir.src/M000048.html +0 -16
  354. data/doc/rdoc/classes/RIO/IF/Dir.src/M000049.html +0 -16
  355. data/doc/rdoc/classes/RIO/IF/Dir.src/M000050.html +0 -16
  356. data/doc/rdoc/classes/RIO/IF/Dir.src/M000051.html +0 -16
  357. data/doc/rdoc/classes/RIO/IF/File.html +0 -223
  358. data/doc/rdoc/classes/RIO/IF/File.src/M000216.html +0 -16
  359. data/doc/rdoc/classes/RIO/IF/File.src/M000217.html +0 -16
  360. data/doc/rdoc/classes/RIO/IF/File.src/M000218.html +0 -16
  361. data/doc/rdoc/classes/RIO/IF/File.src/M000219.html +0 -16
  362. data/doc/rdoc/classes/RIO/IF/FileOrDir.html +0 -572
  363. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000117.html +0 -16
  364. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000118.html +0 -16
  365. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000119.html +0 -16
  366. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000120.html +0 -16
  367. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000121.html +0 -16
  368. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000122.html +0 -16
  369. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000123.html +0 -16
  370. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000124.html +0 -16
  371. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000125.html +0 -16
  372. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000126.html +0 -16
  373. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000127.html +0 -16
  374. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000128.html +0 -16
  375. data/doc/rdoc/classes/RIO/IF/Grande.html +0 -1376
  376. data/doc/rdoc/classes/RIO/IF/Grande.src/M000052.html +0 -16
  377. data/doc/rdoc/classes/RIO/IF/Grande.src/M000053.html +0 -16
  378. data/doc/rdoc/classes/RIO/IF/Grande.src/M000054.html +0 -16
  379. data/doc/rdoc/classes/RIO/IF/Grande.src/M000055.html +0 -16
  380. data/doc/rdoc/classes/RIO/IF/Grande.src/M000056.html +0 -16
  381. data/doc/rdoc/classes/RIO/IF/Grande.src/M000057.html +0 -16
  382. data/doc/rdoc/classes/RIO/IF/Grande.src/M000058.html +0 -21
  383. data/doc/rdoc/classes/RIO/IF/Grande.src/M000059.html +0 -16
  384. data/doc/rdoc/classes/RIO/IF/Grande.src/M000060.html +0 -16
  385. data/doc/rdoc/classes/RIO/IF/Grande.src/M000061.html +0 -16
  386. data/doc/rdoc/classes/RIO/IF/Grande.src/M000062.html +0 -16
  387. data/doc/rdoc/classes/RIO/IF/Grande.src/M000063.html +0 -16
  388. data/doc/rdoc/classes/RIO/IF/Grande.src/M000064.html +0 -16
  389. data/doc/rdoc/classes/RIO/IF/Grande.src/M000065.html +0 -21
  390. data/doc/rdoc/classes/RIO/IF/Grande.src/M000066.html +0 -16
  391. data/doc/rdoc/classes/RIO/IF/Grande.src/M000067.html +0 -16
  392. data/doc/rdoc/classes/RIO/IF/Grande.src/M000068.html +0 -16
  393. data/doc/rdoc/classes/RIO/IF/Grande.src/M000069.html +0 -16
  394. data/doc/rdoc/classes/RIO/IF/Grande.src/M000070.html +0 -16
  395. data/doc/rdoc/classes/RIO/IF/GrandeEntry.html +0 -810
  396. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000107.html +0 -16
  397. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000108.html +0 -16
  398. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000109.html +0 -16
  399. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000110.html +0 -16
  400. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000111.html +0 -16
  401. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000112.html +0 -16
  402. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000113.html +0 -16
  403. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000114.html +0 -16
  404. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000115.html +0 -16
  405. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000116.html +0 -16
  406. data/doc/rdoc/classes/RIO/IF/GrandeStream.html +0 -1513
  407. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000071.html +0 -16
  408. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000072.html +0 -16
  409. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000073.html +0 -16
  410. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000074.html +0 -16
  411. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000075.html +0 -16
  412. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000076.html +0 -16
  413. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000077.html +0 -16
  414. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000078.html +0 -16
  415. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000079.html +0 -16
  416. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000080.html +0 -16
  417. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000081.html +0 -16
  418. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000082.html +0 -16
  419. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000083.html +0 -16
  420. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000084.html +0 -16
  421. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000085.html +0 -16
  422. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000086.html +0 -16
  423. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000087.html +0 -19
  424. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000088.html +0 -16
  425. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000089.html +0 -16
  426. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000090.html +0 -16
  427. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000091.html +0 -16
  428. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000092.html +0 -16
  429. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000093.html +0 -16
  430. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000094.html +0 -16
  431. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000095.html +0 -16
  432. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000096.html +0 -16
  433. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000097.html +0 -16
  434. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000098.html +0 -16
  435. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000099.html +0 -16
  436. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000100.html +0 -16
  437. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000101.html +0 -16
  438. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000102.html +0 -16
  439. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000103.html +0 -16
  440. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000104.html +0 -16
  441. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000105.html +0 -16
  442. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000106.html +0 -16
  443. data/doc/rdoc/classes/RIO/IF/Path.html +0 -999
  444. data/doc/rdoc/classes/RIO/IF/Path.src/M000132.html +0 -16
  445. data/doc/rdoc/classes/RIO/IF/Path.src/M000133.html +0 -16
  446. data/doc/rdoc/classes/RIO/IF/Path.src/M000134.html +0 -16
  447. data/doc/rdoc/classes/RIO/IF/Path.src/M000135.html +0 -16
  448. data/doc/rdoc/classes/RIO/IF/Path.src/M000136.html +0 -16
  449. data/doc/rdoc/classes/RIO/IF/Path.src/M000137.html +0 -16
  450. data/doc/rdoc/classes/RIO/IF/Path.src/M000138.html +0 -16
  451. data/doc/rdoc/classes/RIO/IF/Path.src/M000139.html +0 -16
  452. data/doc/rdoc/classes/RIO/IF/Path.src/M000140.html +0 -16
  453. data/doc/rdoc/classes/RIO/IF/Path.src/M000141.html +0 -16
  454. data/doc/rdoc/classes/RIO/IF/Path.src/M000142.html +0 -16
  455. data/doc/rdoc/classes/RIO/IF/Path.src/M000143.html +0 -16
  456. data/doc/rdoc/classes/RIO/IF/Path.src/M000144.html +0 -16
  457. data/doc/rdoc/classes/RIO/IF/Path.src/M000145.html +0 -16
  458. data/doc/rdoc/classes/RIO/IF/Path.src/M000146.html +0 -16
  459. data/doc/rdoc/classes/RIO/IF/Path.src/M000147.html +0 -16
  460. data/doc/rdoc/classes/RIO/IF/Path.src/M000148.html +0 -16
  461. data/doc/rdoc/classes/RIO/IF/Path.src/M000149.html +0 -16
  462. data/doc/rdoc/classes/RIO/IF/Path.src/M000150.html +0 -16
  463. data/doc/rdoc/classes/RIO/IF/Path.src/M000151.html +0 -16
  464. data/doc/rdoc/classes/RIO/IF/Path.src/M000152.html +0 -16
  465. data/doc/rdoc/classes/RIO/IF/Path.src/M000153.html +0 -16
  466. data/doc/rdoc/classes/RIO/IF/Path.src/M000154.html +0 -18
  467. data/doc/rdoc/classes/RIO/IF/Path.src/M000155.html +0 -16
  468. data/doc/rdoc/classes/RIO/IF/Path.src/M000156.html +0 -16
  469. data/doc/rdoc/classes/RIO/IF/Path.src/M000157.html +0 -16
  470. data/doc/rdoc/classes/RIO/IF/Path.src/M000158.html +0 -16
  471. data/doc/rdoc/classes/RIO/IF/Path.src/M000159.html +0 -16
  472. data/doc/rdoc/classes/RIO/IF/Path.src/M000160.html +0 -16
  473. data/doc/rdoc/classes/RIO/IF/Path.src/M000161.html +0 -16
  474. data/doc/rdoc/classes/RIO/IF/Path.src/M000162.html +0 -16
  475. data/doc/rdoc/classes/RIO/IF/Path.src/M000163.html +0 -16
  476. data/doc/rdoc/classes/RIO/IF/RubyIO.html +0 -1416
  477. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000004.html +0 -16
  478. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000005.html +0 -16
  479. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000006.html +0 -16
  480. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000007.html +0 -16
  481. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000008.html +0 -16
  482. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000009.html +0 -16
  483. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000010.html +0 -16
  484. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000011.html +0 -16
  485. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000012.html +0 -16
  486. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000013.html +0 -16
  487. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000014.html +0 -16
  488. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000015.html +0 -16
  489. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000016.html +0 -16
  490. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000017.html +0 -16
  491. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000018.html +0 -16
  492. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000019.html +0 -16
  493. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000020.html +0 -16
  494. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000021.html +0 -16
  495. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000022.html +0 -16
  496. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000023.html +0 -16
  497. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000024.html +0 -16
  498. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000025.html +0 -16
  499. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000026.html +0 -16
  500. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000027.html +0 -16
  501. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000028.html +0 -16
  502. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000029.html +0 -16
  503. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000030.html +0 -16
  504. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000031.html +0 -16
  505. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000032.html +0 -16
  506. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000033.html +0 -16
  507. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000034.html +0 -16
  508. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000035.html +0 -16
  509. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000036.html +0 -16
  510. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000037.html +0 -16
  511. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000038.html +0 -16
  512. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000039.html +0 -16
  513. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000040.html +0 -16
  514. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000041.html +0 -16
  515. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000042.html +0 -16
  516. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000043.html +0 -16
  517. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000044.html +0 -16
  518. data/doc/rdoc/classes/RIO/IF/String.html +0 -203
  519. data/doc/rdoc/classes/RIO/IF/String.src/M000213.html +0 -16
  520. data/doc/rdoc/classes/RIO/IF/String.src/M000214.html +0 -16
  521. data/doc/rdoc/classes/RIO/IF/String.src/M000215.html +0 -16
  522. data/doc/rdoc/classes/RIO/IF/Test.html +0 -990
  523. data/doc/rdoc/classes/RIO/IF/Test.src/M000177.html +0 -16
  524. data/doc/rdoc/classes/RIO/IF/Test.src/M000178.html +0 -16
  525. data/doc/rdoc/classes/RIO/IF/Test.src/M000179.html +0 -16
  526. data/doc/rdoc/classes/RIO/IF/Test.src/M000180.html +0 -16
  527. data/doc/rdoc/classes/RIO/IF/Test.src/M000181.html +0 -16
  528. data/doc/rdoc/classes/RIO/IF/Test.src/M000182.html +0 -16
  529. data/doc/rdoc/classes/RIO/IF/Test.src/M000183.html +0 -16
  530. data/doc/rdoc/classes/RIO/IF/Test.src/M000184.html +0 -16
  531. data/doc/rdoc/classes/RIO/IF/Test.src/M000185.html +0 -16
  532. data/doc/rdoc/classes/RIO/IF/Test.src/M000186.html +0 -16
  533. data/doc/rdoc/classes/RIO/IF/Test.src/M000187.html +0 -16
  534. data/doc/rdoc/classes/RIO/IF/Test.src/M000188.html +0 -16
  535. data/doc/rdoc/classes/RIO/IF/Test.src/M000189.html +0 -16
  536. data/doc/rdoc/classes/RIO/IF/Test.src/M000190.html +0 -16
  537. data/doc/rdoc/classes/RIO/IF/Test.src/M000191.html +0 -16
  538. data/doc/rdoc/classes/RIO/IF/Test.src/M000192.html +0 -16
  539. data/doc/rdoc/classes/RIO/IF/Test.src/M000193.html +0 -16
  540. data/doc/rdoc/classes/RIO/IF/Test.src/M000194.html +0 -16
  541. data/doc/rdoc/classes/RIO/IF/Test.src/M000195.html +0 -16
  542. data/doc/rdoc/classes/RIO/IF/Test.src/M000196.html +0 -16
  543. data/doc/rdoc/classes/RIO/IF/Test.src/M000197.html +0 -16
  544. data/doc/rdoc/classes/RIO/IF/Test.src/M000198.html +0 -16
  545. data/doc/rdoc/classes/RIO/IF/Test.src/M000199.html +0 -16
  546. data/doc/rdoc/classes/RIO/IF/Test.src/M000200.html +0 -16
  547. data/doc/rdoc/classes/RIO/IF/Test.src/M000201.html +0 -16
  548. data/doc/rdoc/classes/RIO/IF/Test.src/M000202.html +0 -16
  549. data/doc/rdoc/classes/RIO/IF/Test.src/M000203.html +0 -16
  550. data/doc/rdoc/classes/RIO/IF/Test.src/M000204.html +0 -16
  551. data/doc/rdoc/classes/RIO/IF/Test.src/M000205.html +0 -16
  552. data/doc/rdoc/classes/RIO/IF/Test.src/M000206.html +0 -16
  553. data/doc/rdoc/classes/RIO/IF/Test.src/M000207.html +0 -16
  554. data/doc/rdoc/classes/RIO/IF/Test.src/M000208.html +0 -16
  555. data/doc/rdoc/classes/RIO/IF/Test.src/M000209.html +0 -16
  556. data/doc/rdoc/classes/RIO/IF/Test.src/M000210.html +0 -16
  557. data/doc/rdoc/classes/RIO/IF/Test.src/M000211.html +0 -16
  558. data/doc/rdoc/classes/RIO/IF/Test.src/M000212.html +0 -16
  559. data/doc/rdoc/classes/RIO/IF/YAML.html +0 -517
  560. data/doc/rdoc/classes/RIO/IF/YAML.src/M000164.html +0 -19
  561. data/doc/rdoc/classes/RIO/IF/YAML.src/M000165.html +0 -16
  562. data/doc/rdoc/classes/RIO/IF/YAML.src/M000166.html +0 -16
  563. data/doc/rdoc/classes/RIO/IF/YAML.src/M000167.html +0 -16
  564. data/doc/rdoc/classes/RIO/IF/YAML.src/M000168.html +0 -16
  565. data/doc/rdoc/classes/RIO/IF/YAML.src/M000169.html +0 -16
  566. data/doc/rdoc/classes/RIO/IF/YAML.src/M000170.html +0 -16
  567. data/doc/rdoc/classes/RIO/IF/YAML.src/M000171.html +0 -16
  568. data/doc/rdoc/classes/RIO/IF/YAML.src/M000172.html +0 -16
  569. data/doc/rdoc/classes/RIO/IF/YAML.src/M000173.html +0 -16
  570. data/doc/rdoc/classes/RIO/IF/YAML.src/M000174.html +0 -16
  571. data/doc/rdoc/classes/RIO/IF/YAML.src/M000175.html +0 -16
  572. data/doc/rdoc/classes/RIO/IF/YAML.src/M000176.html +0 -16
  573. data/doc/rdoc/classes/RIO/Rio.html +0 -508
  574. data/doc/rdoc/classes/RIO/Rio.src/M000220.html +0 -18
  575. data/doc/rdoc/classes/RIO/Rio.src/M000221.html +0 -20
  576. data/doc/rdoc/classes/RIO/Rio.src/M000222.html +0 -27
  577. data/doc/rdoc/classes/RIO/Rio.src/M000223.html +0 -16
  578. data/doc/rdoc/classes/RIO/Rio.src/M000225.html +0 -19
  579. data/doc/rdoc/classes/RIO/Rio.src/M000226.html +0 -20
  580. data/doc/rdoc/classes/RIO/Rio.src/M000227.html +0 -16
  581. data/doc/rdoc/classes/RIO/Rio.src/M000228.html +0 -16
  582. data/doc/rdoc/classes/RIO/Rio.src/M000229.html +0 -16
  583. data/doc/rdoc/classes/RIO/Rio.src/M000230.html +0 -16
  584. data/doc/rdoc/classes/RIO/Rio.src/M000231.html +0 -16
  585. data/doc/rdoc/classes/RIO/Rio.src/M000232.html +0 -16
  586. data/doc/rdoc/classes/RIO/Rio.src/M000233.html +0 -16
  587. data/doc/rdoc/created.rid +0 -1
  588. data/doc/rdoc/files/README.html +0 -232
  589. data/doc/rdoc/files/lib/rio/constructor_rb.html +0 -141
  590. data/doc/rdoc/files/lib/rio/doc/EXAMPLES_rb.html +0 -134
  591. data/doc/rdoc/files/lib/rio/doc/HOWTO_rb.html +0 -134
  592. data/doc/rdoc/files/lib/rio/doc/INDEX_rb.html +0 -134
  593. data/doc/rdoc/files/lib/rio/doc/INTRO_rb.html +0 -134
  594. data/doc/rdoc/files/lib/rio/doc/OPTIONAL_rb.html +0 -134
  595. data/doc/rdoc/files/lib/rio/doc/SYNOPSIS_rb.html +0 -134
  596. data/doc/rdoc/files/lib/rio/if/basic_rb.html +0 -134
  597. data/doc/rdoc/files/lib/rio/if/csv_rb.html +0 -134
  598. data/doc/rdoc/files/lib/rio/if/dir_rb.html +0 -134
  599. data/doc/rdoc/files/lib/rio/if/file_rb.html +0 -134
  600. data/doc/rdoc/files/lib/rio/if/fileordir_rb.html +0 -134
  601. data/doc/rdoc/files/lib/rio/if/grande_entry_rb.html +0 -134
  602. data/doc/rdoc/files/lib/rio/if/grande_rb.html +0 -141
  603. data/doc/rdoc/files/lib/rio/if/grande_stream_rb.html +0 -134
  604. data/doc/rdoc/files/lib/rio/if/internal_rb.html +0 -134
  605. data/doc/rdoc/files/lib/rio/if/path_rb.html +0 -134
  606. data/doc/rdoc/files/lib/rio/if/rubyio_rb.html +0 -134
  607. data/doc/rdoc/files/lib/rio/if/string_rb.html +0 -134
  608. data/doc/rdoc/files/lib/rio/if/temp_rb.html +0 -134
  609. data/doc/rdoc/files/lib/rio/if/test_rb.html +0 -134
  610. data/doc/rdoc/files/lib/rio/if/yaml_rb.html +0 -134
  611. data/doc/rdoc/files/lib/rio/kernel_rb.html +0 -142
  612. data/doc/rdoc/files/lib/rio_rb.html +0 -153
  613. data/doc/rdoc/fr_class_index.html +0 -49
  614. data/doc/rdoc/fr_file_index.html +0 -51
  615. data/doc/rdoc/fr_method_index.html +0 -260
  616. data/doc/rdoc/index.html +0 -30
  617. data/doc/rdoc/rdoc-style.css +0 -428
  618. data/doc/rfc1738.txt +0 -1403
  619. data/doc/rfc959.txt +0 -3933
  620. data/ex/catcsv.rb +0 -64
  621. data/ex/colx.rb +0 -8
  622. data/ex/findinruby +0 -15
  623. data/ex/findruby +0 -14
  624. data/ex/passwd_report.rb +0 -8
  625. data/ex/prompt.rb +0 -25
  626. data/ex/rgb.txt.gz +0 -0
  627. data/ex/riocat +0 -42
  628. data/ex/riogunzip +0 -31
  629. data/ex/riogzip +0 -24
  630. data/ex/rioprompt.rb +0 -10
  631. data/ex/targz2zip +0 -17
  632. data/ex/tonl +0 -10
  633. data/setup.rb +0 -1360
  634. data/test/ftp/all.rb +0 -9
  635. data/test/ftp/anon_copy_data.rb +0 -36
  636. data/test/ftp/anon_misc.rb +0 -124
  637. data/test/ftp/anon_read.rb +0 -105
  638. data/test/ftp/anon_special.rb +0 -68
  639. data/test/ftp/anon_write.rb +0 -70
  640. data/test/ftp/ftp2ftp.rb +0 -51
  641. data/test/tc/abs.rb +0 -355
data/doc/RIOIS DELETED
@@ -1,215 +0,0 @@
1
- Rio IS
2
-
3
- === EASY
4
-
5
- Anything that does I/O is a Rio:
6
-
7
- File:
8
- rio('aflile')
9
- Directory:
10
- rio('adir')
11
- Web Page:
12
- rio('http://ahost/adir/afile')
13
- Any IO:
14
- rio(any_io)
15
-
16
- ... much more
17
-
18
- Makes common tasks easy
19
-
20
- rio('afile') > rio('copy of afile')
21
- rio('adir') > rio('copy of adir')
22
- rio('gzipped_file.gz').gzip > rio('ungzipped_file')
23
- chomped_lines = rio('afile').chomp[]
24
-
25
- ... much more
26
-
27
- === Powerful
28
-
29
- rb_files= rio('adir').files['*.rb']
30
- rb_files_including_those_in_subdirectories = rio('adir').all.files['*.rb']
31
- first_ten_lines_chomped = rio('afile').chomp[0..9]
32
- first_ten_lines_chomped_from_gzipped_file = rio('afile.gz').gzip.chomp[0..9]
33
- first_ten_lines_chomped_from_gzipped_file_on_ftp_server = rio('ftp://ahost/afile.gz').gzip.chomp[0..9]
34
-
35
- ... much more
36
-
37
- === Consistent
38
-
39
- To iterate, add a block:
40
- rio('afile').lines(/regular_expression/) { |line| ... }
41
- rio('adir').files('
42
- To return an array, use a subscript:
43
- rio('afile').lines[/regular_expression/]
44
- To copy use the copy-operator:
45
- rio('afile').lines(/regular_expression/) > rio('destination_file')
46
-
47
-
48
-
49
-
50
-
51
- = Rio - Ruby I/O Facilitator
52
-
53
- fa-cil-i-tate: To make easy or easier [http://www.thefreedictionary.com/facilitate]
54
-
55
- == Overview
56
-
57
- Rio is a facade for most of the standard ruby classes that deal with I/O;
58
- providing a simple, intuitive, succinct interface to the functionality
59
- provided by IO, File, Dir, Pathname, FileUtils, Tempfile, StringIO, OpenURI
60
- and others. Rio also provides an application level interface which allows many
61
- common I/O idioms to be expressed succinctly.
62
-
63
- == New
64
-
65
- Enhanced support for FTP file-systems. All of Rio's most powerful
66
- idioms are now supported seamlessly on FTP servers.
67
-
68
- # copy a file from or to an FTP server
69
- rio('ftp://ahost/adir/afile') > rio('localfile') # server -> local file
70
- rio('ftp://ahost/adir/afile') < rio('localfile') # local file -> server
71
-
72
- # copy an entire directory structure from or to an FTP server
73
- rio('ftp://ahost/adir') > rio('localdir') # server -> local directory
74
- rio('ftp://ahost/adir') < rio('localdir') # local directory -> server
75
-
76
- All of Rio's grande selection and filtering options are available for
77
- files and directories on FTP servers.
78
-
79
- # create a gzipped copy of a web page on an ftp server
80
- rio('ftp://ftphost/f.html.gz').gzip < rio('http://httphost/f.html')
81
-
82
- # dump the first 10 lines of a gzipped log file on an FTP server to stdout
83
- rio('ftp://ftphost/logfile.txt').lines(0...10) > ?-
84
-
85
- # iterate through the entries of a directory on an FTP server
86
- rio('ftp://ftphost/adir').entries { |entrio| ... }
87
-
88
- # get an array of all .rb files on an ftp server
89
- rb_files = rio('ftp://ftphost/').all.files['*.rb']
90
-
91
-
92
- == SYNOPSIS
93
-
94
- For the following assume:
95
- astring = ""
96
- anarray = []
97
-
98
- Copy or append a file to a string
99
- rio('afile') > astring # copy
100
- rio('afile') >> astring # append
101
-
102
- Copy or append a string to a file
103
- rio('afile') < astring # copy
104
- rio('afile') << astring # append
105
-
106
- Copy or append the lines of a file to an array
107
- rio('afile') > anarray
108
- rio('afile') >> anarray
109
-
110
- Copy or append a file to another file
111
- rio('afile') > rio('another_file')
112
- rio('afile') >> rio('another_file')
113
-
114
- Copy a file to a directory
115
- rio('adir') << rio('afile')
116
-
117
- Copy a directory structure to another directory
118
- rio('adir') >> rio('another_directory')
119
-
120
- Copy a web-page to a file
121
- rio('http://rubydoc.org/') > rio('afile')
122
-
123
- Ways to get the chomped lines of a file into an array
124
- anarray = rio('afile').chomp[] # subscript operator
125
- rio('afile').chomp > anarray # copy-to operator
126
- anarray = rio('afile').chomp.to_a # to_a
127
- anarray = rio('afile').chomp.readlines # IO#readlines
128
-
129
- Copy a gzipped file un-gzipping it
130
- rio('afile.gz').gzip > rio('afile')
131
-
132
- Copy a plain file, gzipping it
133
- rio('afile.gz').gzip < rio('afile')
134
-
135
- Copy a file from a ftp server into a local file un-gzipping it
136
- rio('ftp://host/afile.gz').gzip > rio('afile')
137
-
138
- Iterate over the entries in a directory
139
- rio('adir').entries { |entrio| ... }
140
-
141
- Iterate over only the files in a directory
142
- rio('adir').files { |entrio| ... }
143
-
144
- Iterate over only the .rb files in a directory
145
- rio('adir').files('*.rb') { |entrio| ... }
146
-
147
- Iterate over .rb files but not symlinks to .rb files
148
- rio('adir').files('*.rb').skip(:symlink?) { |entrio| ... }
149
-
150
- Iterate over only the _dot_ files in a directory
151
- rio('adir').files(/^\./) { |entrio| ... }
152
-
153
- Iterate over the files in a directory and its subdirectories, skipping
154
- '.svn' and 'CVS' directories
155
-
156
- rio('adir').norecurse(/^\.svn$/,'CVS').files { |entrio| ... }
157
-
158
- Create an array of the .rb entries in a directory
159
- anarray = rio('adir')['*.rb']
160
-
161
- Create an array of the .rb entries in a directory and its
162
- subdirectories.
163
- anarray = rio('adir').all['*.rb']
164
-
165
- Iterate over the .rb files in a directory and its subdirectories
166
- rio('adir').all.files('*.rb') { |entrio| ... }
167
-
168
- Iterate over the non-empty, non-comment chomped lines of a file
169
- rio('afile').chomp.skip.lines(:empty?,/^\s*#/) { |line| ... }
170
-
171
- Copy the output of th ps command into an array, skipping the header
172
- line and the ps command entry
173
- rio(?-,'ps -a').skip.lines(0,/ps$/) > anarray
174
-
175
- Prompt for input and return what was typed
176
- ans = rio(?-).print("Type Something: ").chomp.gets
177
-
178
- Change the extension of all .htm files in a directory and its
179
- subdirectories to .html
180
- rio('adir').rename.all.files('*.htm') do |htmfile|
181
- htmfile.extname = '.html'
182
- end
183
-
184
- Create a symbolic link 'asymlink' in 'adir' which refers to
185
- 'adir/afile'
186
- rio('adir/afile').symlink('adir/asymlink')
187
-
188
- Copy a CSV file, changing the separator to a semicolon
189
- rio('comma.csv').csv > rio('semicolon.csv').csv(';')
190
-
191
- Iterate through a CSVfile with each line parsed into an array
192
- rio('afile.csv').csv { |array_of_fields| ...}
193
-
194
- Create a tab separated file of accounts in a UNIX passwd file,
195
- listing only the username, uid, and realname fields
196
- rio('/etc/passwd').csv(':').columns(0,2,4) > rio('rpt').csv("\t")
197
-
198
- Pipe multiple commands
199
- rio('afile') | rio(?-,'acmd') | 'another_cmd' | ?-
200
-
201
- == Contact
202
-
203
- Project:: http://rubyforge.org/projects/rio/
204
- Documentation:: http://rio.rubyforge.org/
205
- Bugs:: http://rubyforge.org/tracker/?group_id=821
206
- Email:: rio4ruby@rubyforge.org
207
-
208
- == Copyright
209
- Copyright (c) 2005,2006,2007,2008 Christopher Kleckner. All rights reserved
210
-
211
- == License
212
- Rio is released under the GNU General Public License
213
- (http://www.gnu.org/licenses/gpl.html)
214
-
215
- -Christopher Kleckner
@@ -1,428 +0,0 @@
1
- /*
2
- *
3
- * = CSS2 RDoc HTML template
4
- *
5
- * This is a template for RDoc that uses XHTML 1.0 Transitional and dictates a
6
- * bit more of the appearance of the output to cascading stylesheets than the
7
- * default. It was designed for clean inline code display, and uses DHTMl to
8
- * toggle the visbility of each method's source with each click on the '[source]'
9
- * link.
10
- *
11
- * == Authors
12
- *
13
- * * Michael Granger <ged@FaerieMUD.org>
14
- *
15
- * Copyright (c) 2002, 2003 The FaerieMUD Consortium. Some rights reserved.
16
- *
17
- * This work is licensed under the Creative Commons Attribution License. To view
18
- * a copy of this license, visit http://creativecommons.org/licenses/by/1.0/ or
19
- * send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California
20
- * 94305, USA.
21
- *
22
- *
23
- * Modified by Christopher Kleckner
24
- * Copyright (c) 2005,2006,2007,2008. Some rights reserved.
25
- * Licensed under the same terms as the original.
26
- */
27
-
28
- body {
29
- font-family: Verdana,Arial,Helvetica,sans-serif;
30
- font-size: 90%;
31
- margin: 0;
32
- margin-left: 0px;
33
- padding: 0;
34
- background: white;
35
- }
36
-
37
- h1,h2,h3,h4 { margin: 0; color: #8b4726; background: transparent; }
38
- h1 { font-size: 150%; }
39
- h2 { font-size: 140%; }
40
- h3 { font-size: 130%; }
41
- h4 { font-size: 120%; }
42
- h2,h3,h4 { margin-top: 1em; }
43
-
44
- a {
45
- background: transparent;
46
- color: #8b4500;
47
- text-decoration: none;
48
- }
49
- a:hover {
50
- color: #ffa500;
51
- background: #8b4500;
52
- }
53
-
54
- /* Override the base stylesheet's Anchor inside a table cell */
55
- td > a {
56
- background: transparent;
57
- color: #099;
58
- text-decoration: none;
59
- }
60
-
61
- small {
62
- font-size: 0.7em;
63
- }
64
- /* and inside a section title */
65
- .section-title > a {
66
- background: transparent;
67
- color: #8b4500;
68
- text-decoration: none;
69
- }
70
-
71
- /* === Structural elements =================================== */
72
-
73
- div#index {
74
- margin: 0;
75
- margin-left: 0px;
76
- padding: 0;
77
- font-size: 90%;
78
- background: #ffdead;
79
- }
80
-
81
-
82
- div#index a {
83
- margin-left: 0.7em;
84
- }
85
- div#index-entries a {
86
- background: transparent;
87
- margin-left: 0.7em;
88
- color: #8b4500;
89
- }
90
- div#index-entries a:hover {
91
- background: transparent;
92
- margin-left: 0.7em;
93
- /* color: #ffdead; */
94
- color: #ffdead;
95
- background: #8b4500;
96
- /*background: #ffdead;*/
97
- }
98
- .name-list a {
99
- margin-left: 0.7em;
100
- background: #ffdead;
101
- color: #8b4500;
102
- }
103
- .name-list a:hover {
104
- margin-left: 0.7em;
105
- color: #ffdead;
106
- background: #8b4500;
107
- }
108
- .section-bar {
109
- color: #555;
110
- /* background: #8b4500; */
111
-
112
- border-bottom: 1px solid #999;
113
- margin-left: 0px;
114
- }
115
-
116
- div#index .section-bar {
117
- margin-left: 0px;
118
- padding-left: 0.7em;
119
- background: #8b4500;
120
- color: #ffdead;
121
- font-size: small;
122
- }
123
-
124
-
125
- .section-title {
126
- /*background: #8b4500; */
127
- background: #ffdead;
128
- color: #eee;
129
- padding: 3px;
130
- margin-top: 2em;
131
- margin-left: 0px;
132
- border: 1px solid #999;
133
- }
134
-
135
- div#classHeader, div#fileHeader {
136
- width: auto;
137
- color: white;
138
- padding: 0.5em 1.5em 0.5em 1.5em;
139
- margin: 0;
140
- margin-left: 0px;
141
- border-bottom: 3px solid #006;
142
- }
143
-
144
- div#classHeader a, div#fileHeader a {
145
- background: inherit;
146
- color: white;
147
- }
148
-
149
- div#classHeader td, div#fileHeader td {
150
- background: inherit;
151
- color: white;
152
- }
153
-
154
-
155
- div#fileHeader {
156
- background: #8b4500;
157
-
158
- }
159
- #fileHeader h1,#fileHeader h2,#fileHeader h3,#fileHeader h4 {
160
- margin: 0;
161
- color: #ffdead;
162
- }
163
-
164
- div#classHeader {
165
- background: #8b4500;
166
- }
167
- td.class-header-space-col {
168
- width: 2em;
169
- }
170
-
171
-
172
- .class-mod {
173
- font-size: 110%;
174
- font-weight: bold;
175
- font-family: monospace;
176
- text-transform: lowercase;
177
- text-align: bottom;
178
-
179
- }
180
- .class-name-in-header {
181
- font-size: 150%;
182
- font-weight: bold;
183
- font-family: monospace;
184
- }
185
- .in-url {
186
- font-size: 80%
187
- }
188
-
189
- div#bodyContent {
190
- padding: 0 1.5em 0 1.5em;
191
- }
192
-
193
-
194
- div#description {
195
- padding: 0.5em 1.5em;
196
- /* background: #efefef; */
197
- background: #ffdead;
198
- border: 1px dotted #999;
199
- }
200
-
201
- div#description h1,h2,h3,h4,h5,h6 {
202
- color: #8b4500;
203
- background: transparent;
204
- }
205
-
206
- div#validator-badges {
207
- text-align: center;
208
- }
209
- div#validator-badges img { border: 0; }
210
-
211
- div#copyright {
212
- color: #333;
213
- background: #efefef;
214
- font: 0.75em sans-serif;
215
- margin-top: 5em;
216
- margin-bottom: 0;
217
- padding: 0.5em 2em;
218
- }
219
-
220
-
221
- /* === Classes =================================== */
222
-
223
- table.header-table {
224
- color: white;
225
- font-size: small;
226
- }
227
-
228
- .type-note {
229
- font-size: small;
230
- color: #DEDEDE;
231
- }
232
-
233
- .xxsection-bar {
234
- background: #eee;
235
- color: #333;
236
- padding: 3px;
237
- }
238
-
239
-
240
-
241
- .section-title {
242
- background: #79a;
243
- color: #eee;
244
- padding: 3px;
245
- margin-top: 2em;
246
- margin-left: 0px;
247
- border: 1px solid #999;
248
- }
249
-
250
- .top-aligned-row { vertical-align: top }
251
- .bottom-aligned-row { vertical-align: bottom }
252
-
253
- span.include-name {
254
- font-size: small;
255
- }
256
- .include-name a {
257
- font-weight: bold;
258
- }
259
- ul.includes-ul {
260
- list-style-type: none;
261
- padding-left: 1em;
262
- }
263
-
264
-
265
- /* --- Context section classes ----------------------- */
266
-
267
- .context-row { }
268
- .context-item-name { font-family: monospace; font-weight: bold; color: black; }
269
- .context-item-value { font-size: small; color: #448; }
270
- .context-item-desc { color: #333; padding-left: 2em; }
271
-
272
- /* --- Method classes -------------------------- */
273
- .method-detail {
274
- background: #ffdead;
275
- padding: 0;
276
- margin-top: 0.5em;
277
- margin-bottom: 1em;
278
- border: 1px dotted #ccc;
279
- }
280
- .method-heading {
281
- font-family: monospace;
282
- font-weight: bold;
283
- font-size: 130%;
284
- color: #191970;
285
- /* background: #b0c4de; */
286
- background: #ffa07a;
287
- border-bottom: 1px solid #666;
288
- padding: 0.2em 0.5em 0 0.5em;
289
- }
290
- .method-heading a {
291
- text-decoration: none;
292
- }
293
- .method-heading a:hover {
294
- text-decoration: underline;
295
- background: inherit;
296
- color: inherit;
297
- }
298
- .method-signature { color: black; background: inherit; }
299
- .method-name { font-weight: bold; }
300
- .method-args { font-style: italic; }
301
-
302
- .method-description { padding: 0 0.5em 0 0.5em; }
303
- pre.method-description
304
- {
305
- padding: 0 0.5em 0 0.5em;
306
- color: #ee2222;
307
- }
308
-
309
- #description pre
310
- {
311
- padding: 0.2em 0 0.2em 0;
312
- margin: 0.3em 0 0.3em 0;
313
- background: #fff8dc;
314
- /* background: #ffffff; */
315
- border-left: 3px solid #8b6508;
316
- border-bottom: 1px solid #8b6508;
317
- border-top: 1px solid #8b6508;
318
- }
319
-
320
- .method-description pre
321
- {
322
- padding: 0.2em 0 0.2em 0;
323
- margin: 0.3em 0 0.3em 0;
324
- background: #fff8dc;
325
- /* background: #ffffff; */
326
- border-left: 3px solid #8b6508;
327
- border-bottom: 1px solid #8b6508;
328
- border-top: 1px solid #8b6508;
329
- }
330
-
331
-
332
- #description h1 {
333
- color: #8b4500;
334
- margin: 0.5em 0 0.2em 0;
335
- /*border: 1px solid red;*/
336
- }
337
- #description h2 {
338
- color: #8b4500;
339
- margin: 0.5em 0 0.2em 0;
340
- /*border: 1px solid red;*/
341
- }
342
- #description h3 {
343
- color: #8b4500;
344
- margin: 0.5em 0 0.2em 0;
345
- /*border: 1px solid red;*/
346
- }
347
- #description h4 {
348
- color: #8b4500;
349
- margin: 0.5em 0 0.2em 0;
350
- /*border: 1px solid red;*/
351
- }
352
- #description p {
353
- margin: 0.5em 0 0.2em 0;
354
- /*border: 1px solid red;*/
355
- }
356
- #description ul {
357
- margin: 0.2em 0 0.5em 0;
358
- /* border: 1px solid red; */
359
- }
360
- #description a {
361
- background: #ffdead;
362
- /* background: #eef; */
363
- color: #8b4500;
364
- text-decoration: none;
365
- }
366
- #description a:hover { text-decoration: underline; }
367
- .method-description a {
368
- background: #ffdead;
369
- /* background: #eef; */
370
- color: #8b4500;
371
- text-decoration: none;
372
- }
373
- .method-description a:hover { text-decoration: underline; }
374
-
375
- .method-description table
376
- {
377
- border-top: 1px solid brown;
378
- border-bottom: 1px solid brown;
379
- margin: 0.4em 2em 0.4em 2em;
380
- }
381
- .method-description li
382
- {
383
- padding: 0 0 0 0;
384
- margin: 0 0 0 0;
385
-
386
- }
387
- .method-description p {
388
- margin: 0.5em 0 0.2em 0;
389
- /* border: 1px solid red; */
390
- }
391
- .method-description tt {
392
- margin: 0.5em 0 0.2em 0;
393
- font-weight: bold;
394
- color: #000044;
395
- }
396
- .method-description ul {
397
- margin: 0.2em 0 0.5em 0;
398
- /* border: 1px solid red; */
399
- }
400
-
401
-
402
- /* --- Source code sections -------------------- */
403
-
404
- a.source-toggle { font-size: 90%; }
405
- div.method-source-code {
406
- background: #262626;
407
- color: #ffdead;
408
- margin: 1em;
409
- padding: 0.5em;
410
- border: 1px dashed #999;
411
- overflow: hidden;
412
- }
413
-
414
- div.method-source-code pre { color: #ffdead; overflow: hidden; }
415
-
416
- /* --- Ruby keyword styles --------------------- */
417
-
418
- .standalone-code { background: #221111; color: #ffdead; overflow: hidden; }
419
-
420
- .ruby-constant { color: #7fffd4; background: transparent; }
421
- .ruby-keyword { color: #00ffff; background: transparent; }
422
- .ruby-ivar { color: #eedd82; background: transparent; }
423
- .ruby-operator { color: #00ffee; background: transparent; }
424
- .ruby-identifier { color: #ffdead; background: transparent; }
425
- .ruby-node { color: #ffa07a; background: transparent; }
426
- .ruby-comment { color: #b22222; font-weight: bold; background: transparent; }
427
- .ruby-regexp { color: #ffa07a; background: transparent; }
428
- .ruby-value { color: #7fffd4; background: transparent; }