rio 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (320) hide show
  1. data/COPYING +1 -0
  2. data/README +11 -9
  3. data/Rakefile +1 -1
  4. data/doc/#RIOIS# +216 -0
  5. data/doc/ANNOUNCE +22 -16
  6. data/doc/RELEASE_NOTES +14 -7
  7. data/lib/rio/doc/EXAMPLES.rb +2 -2
  8. data/lib/rio/doc/INTRO.rb +0 -2
  9. data/lib/rio/doc/OPTIONAL.rb +1 -1
  10. data/lib/rio/doc/SYNOPSIS.rb +1 -1
  11. data/lib/rio/factory.rb +1 -0
  12. data/lib/rio/ftp/fs.rb +2 -1
  13. data/lib/rio/ftp/ftpfile.rb +20 -20
  14. data/lib/rio/if/grande.rb +16 -10
  15. data/lib/rio/if/test.rb +1 -1
  16. data/lib/rio/ops/construct.rb +13 -12
  17. data/lib/rio/ops/dir.rb +2 -1
  18. data/lib/rio/rl/fs2url.rb +2 -2
  19. data/lib/rio/rl/path.rb +1 -0
  20. data/lib/rio/rl/uri.rb +4 -0
  21. data/lib/rio/rl/withpath.rb +1 -0
  22. data/lib/rio/scheme/ftp.rb +46 -3
  23. data/lib/rio/uri/file.rb +16 -6
  24. data/lib/rio/version.rb +1 -1
  25. data/test/ftp/anon_copy_data.rb +36 -0
  26. data/test/ftp/testdef.rb +5 -4
  27. data/test/http/all.rb +1 -0
  28. data/test/http/copy-from-http.rb +2 -1
  29. data/test/http/uri-meta.rb +72 -0
  30. data/test/lib/temp_server.rb +3 -1
  31. data/test/runalltests.rb +2 -2
  32. data/test/runftptests.rb +1 -1
  33. data/test/runhttp.rb +1 -2
  34. metadata +5 -312
  35. data/doc/rdoc/classes/Kernel.html +0 -133
  36. data/doc/rdoc/classes/Kernel.src/M000233.html +0 -18
  37. data/doc/rdoc/classes/RIO.html +0 -625
  38. data/doc/rdoc/classes/RIO.src/M000001.html +0 -18
  39. data/doc/rdoc/classes/RIO.src/M000002.html +0 -18
  40. data/doc/rdoc/classes/RIO.src/M000003.html +0 -18
  41. data/doc/rdoc/classes/RIO/Doc.html +0 -148
  42. data/doc/rdoc/classes/RIO/Doc/EXAMPLES.html +0 -432
  43. data/doc/rdoc/classes/RIO/Doc/HOWTO.html +0 -1075
  44. data/doc/rdoc/classes/RIO/Doc/INDEX.html +0 -368
  45. data/doc/rdoc/classes/RIO/Doc/INTRO.html +0 -1533
  46. data/doc/rdoc/classes/RIO/Doc/OPTIONAL.html +0 -221
  47. data/doc/rdoc/classes/RIO/Doc/SYNOPSIS.html +0 -337
  48. data/doc/rdoc/classes/RIO/IF.html +0 -165
  49. data/doc/rdoc/classes/RIO/IF/CSV.html +0 -203
  50. data/doc/rdoc/classes/RIO/IF/CSV.src/M000116.html +0 -19
  51. data/doc/rdoc/classes/RIO/IF/CSV.src/M000117.html +0 -16
  52. data/doc/rdoc/classes/RIO/IF/CSV.src/M000118.html +0 -16
  53. data/doc/rdoc/classes/RIO/IF/Dir.html +0 -343
  54. data/doc/rdoc/classes/RIO/IF/Dir.src/M000045.html +0 -16
  55. data/doc/rdoc/classes/RIO/IF/Dir.src/M000046.html +0 -16
  56. data/doc/rdoc/classes/RIO/IF/Dir.src/M000047.html +0 -16
  57. data/doc/rdoc/classes/RIO/IF/Dir.src/M000048.html +0 -16
  58. data/doc/rdoc/classes/RIO/IF/Dir.src/M000049.html +0 -16
  59. data/doc/rdoc/classes/RIO/IF/Dir.src/M000050.html +0 -16
  60. data/doc/rdoc/classes/RIO/IF/Dir.src/M000051.html +0 -16
  61. data/doc/rdoc/classes/RIO/IF/File.html +0 -223
  62. data/doc/rdoc/classes/RIO/IF/File.src/M000212.html +0 -16
  63. data/doc/rdoc/classes/RIO/IF/File.src/M000213.html +0 -16
  64. data/doc/rdoc/classes/RIO/IF/File.src/M000214.html +0 -16
  65. data/doc/rdoc/classes/RIO/IF/File.src/M000215.html +0 -16
  66. data/doc/rdoc/classes/RIO/IF/FileOrDir.html +0 -572
  67. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000155.html +0 -16
  68. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000156.html +0 -16
  69. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000157.html +0 -16
  70. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000158.html +0 -16
  71. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000159.html +0 -16
  72. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000160.html +0 -16
  73. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000161.html +0 -16
  74. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000162.html +0 -16
  75. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000163.html +0 -16
  76. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000164.html +0 -16
  77. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000165.html +0 -16
  78. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000166.html +0 -16
  79. data/doc/rdoc/classes/RIO/IF/Grande.html +0 -1349
  80. data/doc/rdoc/classes/RIO/IF/Grande.src/M000088.html +0 -16
  81. data/doc/rdoc/classes/RIO/IF/Grande.src/M000089.html +0 -16
  82. data/doc/rdoc/classes/RIO/IF/Grande.src/M000090.html +0 -16
  83. data/doc/rdoc/classes/RIO/IF/Grande.src/M000091.html +0 -16
  84. data/doc/rdoc/classes/RIO/IF/Grande.src/M000092.html +0 -16
  85. data/doc/rdoc/classes/RIO/IF/Grande.src/M000093.html +0 -21
  86. data/doc/rdoc/classes/RIO/IF/Grande.src/M000094.html +0 -16
  87. data/doc/rdoc/classes/RIO/IF/Grande.src/M000095.html +0 -16
  88. data/doc/rdoc/classes/RIO/IF/Grande.src/M000096.html +0 -16
  89. data/doc/rdoc/classes/RIO/IF/Grande.src/M000097.html +0 -16
  90. data/doc/rdoc/classes/RIO/IF/Grande.src/M000098.html +0 -16
  91. data/doc/rdoc/classes/RIO/IF/Grande.src/M000099.html +0 -16
  92. data/doc/rdoc/classes/RIO/IF/Grande.src/M000100.html +0 -21
  93. data/doc/rdoc/classes/RIO/IF/Grande.src/M000101.html +0 -16
  94. data/doc/rdoc/classes/RIO/IF/Grande.src/M000102.html +0 -16
  95. data/doc/rdoc/classes/RIO/IF/Grande.src/M000103.html +0 -16
  96. data/doc/rdoc/classes/RIO/IF/Grande.src/M000104.html +0 -16
  97. data/doc/rdoc/classes/RIO/IF/Grande.src/M000105.html +0 -16
  98. data/doc/rdoc/classes/RIO/IF/GrandeEntry.html +0 -810
  99. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000106.html +0 -16
  100. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000107.html +0 -16
  101. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000108.html +0 -16
  102. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000109.html +0 -16
  103. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000110.html +0 -16
  104. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000111.html +0 -16
  105. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000112.html +0 -16
  106. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000113.html +0 -16
  107. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000114.html +0 -16
  108. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000115.html +0 -16
  109. data/doc/rdoc/classes/RIO/IF/GrandeStream.html +0 -1513
  110. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000052.html +0 -16
  111. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000053.html +0 -16
  112. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000054.html +0 -16
  113. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000055.html +0 -16
  114. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000056.html +0 -16
  115. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000057.html +0 -16
  116. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000058.html +0 -16
  117. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000059.html +0 -16
  118. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000060.html +0 -16
  119. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000061.html +0 -16
  120. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000062.html +0 -16
  121. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000063.html +0 -16
  122. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000064.html +0 -16
  123. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000065.html +0 -16
  124. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000066.html +0 -16
  125. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000067.html +0 -16
  126. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000068.html +0 -19
  127. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000069.html +0 -16
  128. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000070.html +0 -16
  129. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000071.html +0 -16
  130. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000072.html +0 -16
  131. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000073.html +0 -16
  132. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000074.html +0 -16
  133. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000075.html +0 -16
  134. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000076.html +0 -16
  135. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000077.html +0 -16
  136. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000078.html +0 -16
  137. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000079.html +0 -16
  138. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000080.html +0 -16
  139. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000081.html +0 -16
  140. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000082.html +0 -16
  141. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000083.html +0 -16
  142. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000084.html +0 -16
  143. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000085.html +0 -16
  144. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000086.html +0 -16
  145. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000087.html +0 -16
  146. data/doc/rdoc/classes/RIO/IF/Path.html +0 -999
  147. data/doc/rdoc/classes/RIO/IF/Path.src/M000180.html +0 -16
  148. data/doc/rdoc/classes/RIO/IF/Path.src/M000181.html +0 -16
  149. data/doc/rdoc/classes/RIO/IF/Path.src/M000182.html +0 -16
  150. data/doc/rdoc/classes/RIO/IF/Path.src/M000183.html +0 -16
  151. data/doc/rdoc/classes/RIO/IF/Path.src/M000184.html +0 -16
  152. data/doc/rdoc/classes/RIO/IF/Path.src/M000185.html +0 -16
  153. data/doc/rdoc/classes/RIO/IF/Path.src/M000186.html +0 -16
  154. data/doc/rdoc/classes/RIO/IF/Path.src/M000187.html +0 -16
  155. data/doc/rdoc/classes/RIO/IF/Path.src/M000188.html +0 -16
  156. data/doc/rdoc/classes/RIO/IF/Path.src/M000189.html +0 -16
  157. data/doc/rdoc/classes/RIO/IF/Path.src/M000190.html +0 -16
  158. data/doc/rdoc/classes/RIO/IF/Path.src/M000191.html +0 -16
  159. data/doc/rdoc/classes/RIO/IF/Path.src/M000192.html +0 -16
  160. data/doc/rdoc/classes/RIO/IF/Path.src/M000193.html +0 -16
  161. data/doc/rdoc/classes/RIO/IF/Path.src/M000194.html +0 -16
  162. data/doc/rdoc/classes/RIO/IF/Path.src/M000195.html +0 -16
  163. data/doc/rdoc/classes/RIO/IF/Path.src/M000196.html +0 -16
  164. data/doc/rdoc/classes/RIO/IF/Path.src/M000197.html +0 -16
  165. data/doc/rdoc/classes/RIO/IF/Path.src/M000198.html +0 -16
  166. data/doc/rdoc/classes/RIO/IF/Path.src/M000199.html +0 -16
  167. data/doc/rdoc/classes/RIO/IF/Path.src/M000200.html +0 -16
  168. data/doc/rdoc/classes/RIO/IF/Path.src/M000201.html +0 -16
  169. data/doc/rdoc/classes/RIO/IF/Path.src/M000202.html +0 -18
  170. data/doc/rdoc/classes/RIO/IF/Path.src/M000203.html +0 -16
  171. data/doc/rdoc/classes/RIO/IF/Path.src/M000204.html +0 -16
  172. data/doc/rdoc/classes/RIO/IF/Path.src/M000205.html +0 -16
  173. data/doc/rdoc/classes/RIO/IF/Path.src/M000206.html +0 -16
  174. data/doc/rdoc/classes/RIO/IF/Path.src/M000207.html +0 -16
  175. data/doc/rdoc/classes/RIO/IF/Path.src/M000208.html +0 -16
  176. data/doc/rdoc/classes/RIO/IF/Path.src/M000209.html +0 -16
  177. data/doc/rdoc/classes/RIO/IF/Path.src/M000210.html +0 -16
  178. data/doc/rdoc/classes/RIO/IF/Path.src/M000211.html +0 -16
  179. data/doc/rdoc/classes/RIO/IF/RubyIO.html +0 -1414
  180. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000004.html +0 -16
  181. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000005.html +0 -16
  182. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000006.html +0 -16
  183. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000007.html +0 -16
  184. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000008.html +0 -16
  185. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000009.html +0 -16
  186. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000010.html +0 -16
  187. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000011.html +0 -16
  188. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000012.html +0 -16
  189. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000013.html +0 -16
  190. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000014.html +0 -16
  191. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000015.html +0 -16
  192. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000016.html +0 -16
  193. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000017.html +0 -16
  194. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000018.html +0 -16
  195. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000019.html +0 -16
  196. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000020.html +0 -16
  197. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000021.html +0 -16
  198. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000022.html +0 -16
  199. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000023.html +0 -16
  200. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000024.html +0 -16
  201. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000025.html +0 -16
  202. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000026.html +0 -16
  203. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000027.html +0 -16
  204. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000028.html +0 -16
  205. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000029.html +0 -16
  206. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000030.html +0 -16
  207. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000031.html +0 -16
  208. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000032.html +0 -16
  209. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000033.html +0 -16
  210. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000034.html +0 -16
  211. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000035.html +0 -16
  212. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000036.html +0 -16
  213. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000037.html +0 -16
  214. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000038.html +0 -16
  215. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000039.html +0 -16
  216. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000040.html +0 -16
  217. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000041.html +0 -16
  218. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000042.html +0 -16
  219. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000043.html +0 -16
  220. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000044.html +0 -16
  221. data/doc/rdoc/classes/RIO/IF/String.html +0 -203
  222. data/doc/rdoc/classes/RIO/IF/String.src/M000216.html +0 -16
  223. data/doc/rdoc/classes/RIO/IF/String.src/M000217.html +0 -16
  224. data/doc/rdoc/classes/RIO/IF/String.src/M000218.html +0 -16
  225. data/doc/rdoc/classes/RIO/IF/Test.html +0 -990
  226. data/doc/rdoc/classes/RIO/IF/Test.src/M000119.html +0 -16
  227. data/doc/rdoc/classes/RIO/IF/Test.src/M000120.html +0 -16
  228. data/doc/rdoc/classes/RIO/IF/Test.src/M000121.html +0 -16
  229. data/doc/rdoc/classes/RIO/IF/Test.src/M000122.html +0 -16
  230. data/doc/rdoc/classes/RIO/IF/Test.src/M000123.html +0 -16
  231. data/doc/rdoc/classes/RIO/IF/Test.src/M000124.html +0 -16
  232. data/doc/rdoc/classes/RIO/IF/Test.src/M000125.html +0 -16
  233. data/doc/rdoc/classes/RIO/IF/Test.src/M000126.html +0 -16
  234. data/doc/rdoc/classes/RIO/IF/Test.src/M000127.html +0 -16
  235. data/doc/rdoc/classes/RIO/IF/Test.src/M000128.html +0 -16
  236. data/doc/rdoc/classes/RIO/IF/Test.src/M000129.html +0 -16
  237. data/doc/rdoc/classes/RIO/IF/Test.src/M000130.html +0 -16
  238. data/doc/rdoc/classes/RIO/IF/Test.src/M000131.html +0 -16
  239. data/doc/rdoc/classes/RIO/IF/Test.src/M000132.html +0 -16
  240. data/doc/rdoc/classes/RIO/IF/Test.src/M000133.html +0 -16
  241. data/doc/rdoc/classes/RIO/IF/Test.src/M000134.html +0 -16
  242. data/doc/rdoc/classes/RIO/IF/Test.src/M000135.html +0 -16
  243. data/doc/rdoc/classes/RIO/IF/Test.src/M000136.html +0 -16
  244. data/doc/rdoc/classes/RIO/IF/Test.src/M000137.html +0 -16
  245. data/doc/rdoc/classes/RIO/IF/Test.src/M000138.html +0 -16
  246. data/doc/rdoc/classes/RIO/IF/Test.src/M000139.html +0 -16
  247. data/doc/rdoc/classes/RIO/IF/Test.src/M000140.html +0 -16
  248. data/doc/rdoc/classes/RIO/IF/Test.src/M000141.html +0 -16
  249. data/doc/rdoc/classes/RIO/IF/Test.src/M000142.html +0 -16
  250. data/doc/rdoc/classes/RIO/IF/Test.src/M000143.html +0 -16
  251. data/doc/rdoc/classes/RIO/IF/Test.src/M000144.html +0 -16
  252. data/doc/rdoc/classes/RIO/IF/Test.src/M000145.html +0 -16
  253. data/doc/rdoc/classes/RIO/IF/Test.src/M000146.html +0 -16
  254. data/doc/rdoc/classes/RIO/IF/Test.src/M000147.html +0 -16
  255. data/doc/rdoc/classes/RIO/IF/Test.src/M000148.html +0 -16
  256. data/doc/rdoc/classes/RIO/IF/Test.src/M000149.html +0 -16
  257. data/doc/rdoc/classes/RIO/IF/Test.src/M000150.html +0 -16
  258. data/doc/rdoc/classes/RIO/IF/Test.src/M000151.html +0 -16
  259. data/doc/rdoc/classes/RIO/IF/Test.src/M000152.html +0 -16
  260. data/doc/rdoc/classes/RIO/IF/Test.src/M000153.html +0 -16
  261. data/doc/rdoc/classes/RIO/IF/Test.src/M000154.html +0 -16
  262. data/doc/rdoc/classes/RIO/IF/YAML.html +0 -517
  263. data/doc/rdoc/classes/RIO/IF/YAML.src/M000167.html +0 -19
  264. data/doc/rdoc/classes/RIO/IF/YAML.src/M000168.html +0 -16
  265. data/doc/rdoc/classes/RIO/IF/YAML.src/M000169.html +0 -16
  266. data/doc/rdoc/classes/RIO/IF/YAML.src/M000170.html +0 -16
  267. data/doc/rdoc/classes/RIO/IF/YAML.src/M000171.html +0 -16
  268. data/doc/rdoc/classes/RIO/IF/YAML.src/M000172.html +0 -16
  269. data/doc/rdoc/classes/RIO/IF/YAML.src/M000173.html +0 -16
  270. data/doc/rdoc/classes/RIO/IF/YAML.src/M000174.html +0 -16
  271. data/doc/rdoc/classes/RIO/IF/YAML.src/M000175.html +0 -16
  272. data/doc/rdoc/classes/RIO/IF/YAML.src/M000176.html +0 -16
  273. data/doc/rdoc/classes/RIO/IF/YAML.src/M000177.html +0 -16
  274. data/doc/rdoc/classes/RIO/IF/YAML.src/M000178.html +0 -16
  275. data/doc/rdoc/classes/RIO/IF/YAML.src/M000179.html +0 -16
  276. data/doc/rdoc/classes/RIO/Rio.html +0 -508
  277. data/doc/rdoc/classes/RIO/Rio.src/M000219.html +0 -18
  278. data/doc/rdoc/classes/RIO/Rio.src/M000220.html +0 -20
  279. data/doc/rdoc/classes/RIO/Rio.src/M000221.html +0 -27
  280. data/doc/rdoc/classes/RIO/Rio.src/M000222.html +0 -16
  281. data/doc/rdoc/classes/RIO/Rio.src/M000224.html +0 -19
  282. data/doc/rdoc/classes/RIO/Rio.src/M000225.html +0 -20
  283. data/doc/rdoc/classes/RIO/Rio.src/M000226.html +0 -16
  284. data/doc/rdoc/classes/RIO/Rio.src/M000227.html +0 -16
  285. data/doc/rdoc/classes/RIO/Rio.src/M000228.html +0 -16
  286. data/doc/rdoc/classes/RIO/Rio.src/M000229.html +0 -16
  287. data/doc/rdoc/classes/RIO/Rio.src/M000230.html +0 -16
  288. data/doc/rdoc/classes/RIO/Rio.src/M000231.html +0 -16
  289. data/doc/rdoc/classes/RIO/Rio.src/M000232.html +0 -16
  290. data/doc/rdoc/created.rid +0 -1
  291. data/doc/rdoc/files/README.html +0 -229
  292. data/doc/rdoc/files/lib/rio/constructor_rb.html +0 -141
  293. data/doc/rdoc/files/lib/rio/doc/EXAMPLES_rb.html +0 -134
  294. data/doc/rdoc/files/lib/rio/doc/HOWTO_rb.html +0 -134
  295. data/doc/rdoc/files/lib/rio/doc/INDEX_rb.html +0 -134
  296. data/doc/rdoc/files/lib/rio/doc/INTRO_rb.html +0 -134
  297. data/doc/rdoc/files/lib/rio/doc/OPTIONAL_rb.html +0 -134
  298. data/doc/rdoc/files/lib/rio/doc/SYNOPSIS_rb.html +0 -134
  299. data/doc/rdoc/files/lib/rio/if/basic_rb.html +0 -134
  300. data/doc/rdoc/files/lib/rio/if/csv_rb.html +0 -134
  301. data/doc/rdoc/files/lib/rio/if/dir_rb.html +0 -134
  302. data/doc/rdoc/files/lib/rio/if/file_rb.html +0 -134
  303. data/doc/rdoc/files/lib/rio/if/fileordir_rb.html +0 -134
  304. data/doc/rdoc/files/lib/rio/if/grande_entry_rb.html +0 -134
  305. data/doc/rdoc/files/lib/rio/if/grande_rb.html +0 -141
  306. data/doc/rdoc/files/lib/rio/if/grande_stream_rb.html +0 -134
  307. data/doc/rdoc/files/lib/rio/if/internal_rb.html +0 -134
  308. data/doc/rdoc/files/lib/rio/if/path_rb.html +0 -134
  309. data/doc/rdoc/files/lib/rio/if/rubyio_rb.html +0 -134
  310. data/doc/rdoc/files/lib/rio/if/string_rb.html +0 -134
  311. data/doc/rdoc/files/lib/rio/if/temp_rb.html +0 -134
  312. data/doc/rdoc/files/lib/rio/if/test_rb.html +0 -134
  313. data/doc/rdoc/files/lib/rio/if/yaml_rb.html +0 -134
  314. data/doc/rdoc/files/lib/rio/kernel_rb.html +0 -142
  315. data/doc/rdoc/files/lib/rio_rb.html +0 -153
  316. data/doc/rdoc/fr_class_index.html +0 -49
  317. data/doc/rdoc/fr_file_index.html +0 -51
  318. data/doc/rdoc/fr_method_index.html +0 -259
  319. data/doc/rdoc/index.html +0 -30
  320. data/doc/rdoc/rdoc-style.css +0 -428
@@ -1,16 +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>
7
- <head>
8
- <title>open (RIO::IF::FileOrDir)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rio/if/fileordir.rb, line 42</span>
14
- 42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">m</span>,<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">m</span>,<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
- </body>
16
- </html>
@@ -1,16 +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>
7
- <head>
8
- <title>symlink (RIO::IF::FileOrDir)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rio/if/fileordir.rb, line 75</span>
14
- 75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">symlink</span>(<span class="ruby-identifier">dest</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">symlink</span>(<span class="ruby-identifier">dest</span>); <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
- </body>
16
- </html>
@@ -1,16 +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>
7
- <head>
8
- <title>readlink (RIO::IF::FileOrDir)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rio/if/fileordir.rb, line 82</span>
14
- 82: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">readlink</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">readlink</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>) <span class="ruby-keyword kw">end</span></pre>
15
- </body>
16
- </html>
@@ -1,16 +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>
7
- <head>
8
- <title>rename (RIO::IF::FileOrDir)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rio/if/fileordir.rb, line 109</span>
14
- 109: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rename</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">rename</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
- </body>
16
- </html>
@@ -1,16 +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>
7
- <head>
8
- <title>rename! (RIO::IF::FileOrDir)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rio/if/fileordir.rb, line 114</span>
14
- 114: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rename!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">rename!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
- </body>
16
- </html>
@@ -1,16 +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>
7
- <head>
8
- <title>read (RIO::IF::FileOrDir)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rio/if/fileordir.rb, line 141</span>
14
- 141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">read</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)<span class="ruby-keyword kw">end</span></pre>
15
- </body>
16
- </html>
@@ -1,16 +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>
7
- <head>
8
- <title>rewind (RIO::IF::FileOrDir)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rio/if/fileordir.rb, line 167</span>
14
- 167: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rewind</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">rewind</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
- </body>
16
- </html>
@@ -1,16 +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>
7
- <head>
8
- <title>seek (RIO::IF::FileOrDir)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rio/if/fileordir.rb, line 199</span>
14
- 199: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">seek</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">seek</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>); <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
- </body>
16
- </html>
@@ -1,16 +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>
7
- <head>
8
- <title>pos (RIO::IF::FileOrDir)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rio/if/fileordir.rb, line 227</span>
14
- 227: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pos</span>() <span class="ruby-identifier">target</span>.<span class="ruby-identifier">pos</span> <span class="ruby-keyword kw">end</span></pre>
15
- </body>
16
- </html>
@@ -1,16 +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>
7
- <head>
8
- <title>tell (RIO::IF::FileOrDir)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rio/if/fileordir.rb, line 230</span>
14
- 230: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tell</span>() <span class="ruby-identifier">target</span>.<span class="ruby-identifier">tell</span> <span class="ruby-keyword kw">end</span></pre>
15
- </body>
16
- </html>
@@ -1,16 +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>
7
- <head>
8
- <title>pos= (RIO::IF::FileOrDir)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rio/if/fileordir.rb, line 254</span>
14
- 254: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pos=</span>(<span class="ruby-identifier">integer</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">integer</span> <span class="ruby-keyword kw">end</span></pre>
15
- </body>
16
- </html>
@@ -1,16 +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>
7
- <head>
8
- <title>reopen (RIO::IF::FileOrDir)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rio/if/fileordir.rb, line 259</span>
14
- 259: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reopen</span>(<span class="ruby-identifier">mode</span>=<span class="ruby-keyword kw">nil</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">reopen</span>(<span class="ruby-identifier">mode</span>); <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
- </body>
16
- </html>
@@ -1,1349 +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::IF::Grande</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
- <meta name="revisit-after" content="5 days">
12
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
13
- <script type="text/javascript">
14
- // <![CDATA[
15
-
16
- function popupCode( url ) {
17
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
18
- }
19
-
20
- function toggleCode( id ) {
21
- if ( document.getElementById )
22
- elem = document.getElementById( id );
23
- else if ( document.all )
24
- elem = eval( "document.all." + id );
25
- else
26
- return false;
27
-
28
- elemStyle = elem.style;
29
-
30
- if ( elemStyle.display != "block" ) {
31
- elemStyle.display = "block"
32
- } else {
33
- elemStyle.display = "none"
34
- }
35
-
36
- return true;
37
- }
38
-
39
- // Make codeblocks hidden by default
40
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
41
-
42
- // ]]>
43
- </script>
44
-
45
- </head>
46
- <body>
47
-
48
-
49
-
50
- <div id="classHeader">
51
- <table class="header-table">
52
- <tr class="top-aligned-row">
53
- <td class="class-mod"><strong>Module</strong></td>
54
- <td class="class-name-in-header">RIO::IF::Grande</td>
55
- <td rowspan="2" class="class-header-space-col"></td>
56
- <td rowspan="2">
57
- <a class="in-url" href="../../../files/lib/rio/if/grande_rb.html">
58
- lib/rio/if/grande.rb
59
- </a>
60
- &nbsp;&nbsp;
61
- </td>
62
- </tr>
63
-
64
- </table>
65
- </div>
66
- <!-- banner header -->
67
-
68
- <div id="bodyContent">
69
-
70
-
71
-
72
- <div id="contextContent">
73
-
74
-
75
-
76
- </div>
77
-
78
- <div id="method-list">
79
- <h3 class="section-bar">Methods</h3>
80
-
81
- <div class="name-list">
82
- <a href="#M000100">&lt;</a>&nbsp;&nbsp;
83
- <a href="#M000098">&lt;&lt;</a>&nbsp;&nbsp;
84
- <a href="#M000093">&gt;</a>&nbsp;&nbsp;
85
- <a href="#M000096">&gt;&gt;</a>&nbsp;&nbsp;
86
- <a href="#M000089">[]</a>&nbsp;&nbsp;
87
- <a href="#M000099">append_from</a>&nbsp;&nbsp;
88
- <a href="#M000097">append_to</a>&nbsp;&nbsp;
89
- <a href="#M000101">copy_from</a>&nbsp;&nbsp;
90
- <a href="#M000094">copy_to</a>&nbsp;&nbsp;
91
- <a href="#M000091">delete</a>&nbsp;&nbsp;
92
- <a href="#M000092">delete!</a>&nbsp;&nbsp;
93
- <a href="#M000090">each</a>&nbsp;&nbsp;
94
- <a href="#M000104">empty?</a>&nbsp;&nbsp;
95
- <a href="#M000102">get</a>&nbsp;&nbsp;
96
- <a href="#M000103">skip</a>&nbsp;&nbsp;
97
- <a href="#M000105">split</a>&nbsp;&nbsp;
98
- <a href="#M000088">to_a</a>&nbsp;&nbsp;
99
- <a href="#M000095">|</a>&nbsp;&nbsp;
100
- </div>
101
- </div>
102
-
103
-
104
-
105
- <!-- if includes -->
106
-
107
- <div id="section">
108
-
109
-
110
-
111
-
112
-
113
-
114
-
115
-
116
- <!-- if method_list -->
117
- <div id="methods">
118
- <h3 class="section-bar">Public Instance methods</h3>
119
-
120
- <div id="method-M000100" class="method-detail">
121
- <a name="M000100"></a>
122
-
123
- <div class="method-heading">
124
- <a href="Grande.src/M000100.html" target="Code" class="method-signature"
125
- onclick="popupCode('Grande.src/M000100.html');return false;">
126
- <span class="method-name">&lt;</span><span class="method-args">(source)</span>
127
- </a>
128
- </div>
129
-
130
- <div class="method-description">
131
- <p>
132
- Grande Copy-From Operator
133
- </p>
134
- <p>
135
- The copy-from grande-operator copies a Rio from another Rio or another ruby
136
- object. Its operation is dependent on the the file system objects
137
- referenced, the rio options set, and the state of its source and
138
- destination. In the broadest of terms it could be described as doing the
139
- following:
140
- </p>
141
- <pre>
142
- source.each do |entry|
143
- destination &lt;&lt; entry
144
- end
145
- </pre>
146
- <p>
147
- That is to say, it iterates through its argument, calling the copy-from
148
- operator again for each element. While it is not implemented like this, and
149
- the above code would not give the same results, This generalized
150
- description is convenient. For example the code:
151
- </p>
152
- <pre>
153
- dst &lt; src
154
- # is like
155
- src.each { |line| dst &lt;&lt; line }
156
- </pre>
157
- <p>
158
- for any of the following definitions of src and dst
159
- </p>
160
- <ul>
161
- <li>copying files
162
-
163
- <pre>
164
- src = rio('afile')
165
- dst = rio('acopy')
166
- </pre>
167
- </li>
168
- <li>copying parts of files
169
-
170
- <pre>
171
- src = rio('afile').lines(0..9)
172
- dst = rio('acopy')
173
- </pre>
174
- </li>
175
- <li>copying directories
176
-
177
- <pre>
178
- src = rio('srcdir')
179
- dst = rio('dstdir')
180
- </pre>
181
- </li>
182
- <li>copy directories selectively
183
-
184
- <pre>
185
- src = rio('srcdir').dirs(/^\./).files('*.tmp')
186
- dst = rio('dstdir')
187
- </pre>
188
- </li>
189
- <li>copying to a file from an array
190
-
191
- <pre>
192
- src = [&quot;line0\n&quot;,&quot;line1\n&quot;]
193
- dst = rio('afile')
194
- </pre>
195
- </li>
196
- <li>copying to a directory from an array
197
-
198
- <pre>
199
- array = [rio(&quot;file1&quot;),rio(&quot;file2&quot;)]
200
- dst = rio('adir')
201
- </pre>
202
- </li>
203
- </ul>
204
- <p>
205
- Arrays are handled differently depending on whether the rio references a
206
- file or a directory.
207
- </p>
208
- <ul>
209
- <li>If the destination is a file.
210
-
211
- <pre>
212
- dest = rio('afile')
213
- dest &lt; array
214
- # is roughly equivelent to
215
- array.each do |el|
216
- case el
217
- when ::String then dest.print(el)
218
- when ::Rio then dest &lt;&lt; el
219
- else dest &lt;&lt; rio(el)
220
- end
221
- </pre>
222
- </li>
223
- <li>If the destination is a directory
224
-
225
- <pre>
226
- dest = rio('adir')
227
- dest &lt; array
228
- # is roughly equivelent to
229
- array.each do |el|
230
- case el
231
- when ::String then rio(el)
232
- when ::Rio then dest &lt;&lt; el
233
- else dest &lt;&lt; rio(el)
234
- end
235
- </pre>
236
- </li>
237
- </ul>
238
- <p>
239
- To improve run-time efficiency, Rio will choose from among several
240
- strategies when copying. For instance when no file or directory filtering
241
- is specified, FileUtils#cp_r is used to copy directories; and when no line
242
- filtering is specified, FileUtils#cp is used to copy files.
243
- </p>
244
- <pre>
245
- rio('adir') &lt; rio('anotherdir') # 'anotherdir' is copied to 'adir' using FileUtils#cp_r
246
- rio('adir') &lt; rio('anotherdir').files('*.rb') # copy only .rb files
247
- rio('afile') &lt; rio('anotherfile') # 'anotherfile' is copied to 'afile' using FileUtils#cp
248
- rio('afile') &lt; ios # ios must be an IO object opened for reading
249
- rio('afile') &lt; astring # basically the same as rio('afile').print(astring)
250
-
251
- anarray = [ astring, rio('anotherfile') ]
252
- rio('afile') &lt; anarray # copies each element to 'afile' as if one had written
253
- ario = rio('afile')
254
- anarray.each do |el|
255
- ario &lt;&lt; el
256
- end
257
- ario.close
258
- rio('skeldir') &lt; rio('adir').dirs # copy only the directory structure
259
- rio('destdir') &lt; rio('adir').dirs.files(/^\./) # copy the directory structure and all dot files
260
- </pre>
261
- <p>
262
- See also <a href="Grande.html#M000093">></a> (copy-to), <a
263
- href="Grande.html#M000090">each</a>, <a href="Grande.html#M000089">[]</a>
264
- </p>
265
- </div>
266
- </div>
267
-
268
- <div id="method-M000098" class="method-detail">
269
- <a name="M000098"></a>
270
-
271
- <div class="method-heading">
272
- <a href="Grande.src/M000098.html" target="Code" class="method-signature"
273
- onclick="popupCode('Grande.src/M000098.html');return false;">
274
- <span class="method-name">&lt;&lt;</span><span class="method-args">(source)</span>
275
- </a>
276
- </div>
277
-
278
- <div class="method-description">
279
- <p>
280
- Grande Append-From Operator
281
- </p>
282
- <p>
283
- The append-from grande-operator copies a Rio from another Rio or another
284
- ruby object. This behaves like <a href="Grande.html#M000100"><</a>
285
- (copy-from) except unopened Rios are opened for append.
286
- </p>
287
- <p>
288
- The following summarizes how objects are copied:
289
- </p>
290
- <table>
291
- <tr><td valign="top">IO:</td><td>IO#each is used to iterate through the source with each record appended to
292
- the Rio
293
-
294
- </td></tr>
295
- <tr><td valign="top">Array:</td><td>Each element of the Array is appended individually to the Rio.
296
-
297
- </td></tr>
298
- <tr><td valign="top">String:</td><td>The string is appended to the Rio using <a
299
- href="RubyIO.html#M000015">print</a>
300
-
301
- </td></tr>
302
- <tr><td valign="top">Rio:</td><td>The source Rio is appended using its <a href="Grande.html#M000096">>></a>
303
- (append-to) operator
304
-
305
- </td></tr>
306
- </table>
307
- <p>
308
- See <a href="Grande.html#M000100"><</a> (copy-from)
309
- </p>
310
- </div>
311
- </div>
312
-
313
- <div id="method-M000093" class="method-detail">
314
- <a name="M000093"></a>
315
-
316
- <div class="method-heading">
317
- <a href="Grande.src/M000093.html" target="Code" class="method-signature"
318
- onclick="popupCode('Grande.src/M000093.html');return false;">
319
- <span class="method-name">&gt;</span><span class="method-args">(destination)</span>
320
- </a>
321
- </div>
322
-
323
- <div class="method-description">
324
- <p>
325
- Grande Copy-To Operator
326
- </p>
327
- <p>
328
- The copy grande-operator copies a Rio to a another Rio or another ruby
329
- object. The behaviour and the library used depend on the types of the of
330
- the source and destination. For simple file or directory copying
331
- ::FileUtils#cp or ::FileUtils#cp_r will be used. If any of the Rio grande
332
- methods are specified for the source or destination, the source Rio will be
333
- iterated through copying records to the destintion as specified. Roughly
334
- equivelant to
335
- </p>
336
- <pre>
337
- dst = rio('dst_file')
338
- rio('src_file').each do |line|
339
- dst.print(line)
340
- end
341
- dst.close
342
- </pre>
343
- <p>
344
- The destination of the copy operators may be a:
345
- </p>
346
- <table>
347
- <tr><td valign="top">IO:</td><td>Each record of the Rio is written to the IO using IO#print. The IO must be
348
- opened for writing.
349
-
350
- </td></tr>
351
- <tr><td valign="top">Array:</td><td>Each record or entry of the Rio becomes an element of the array
352
-
353
- </td></tr>
354
- <tr><td valign="top">String:</td><td>Puts the entire contents of the Rio into the string
355
-
356
- </td></tr>
357
- <tr><td valign="top">Rio:</td><td>Depends on the destination. See below.
358
-
359
- </td></tr>
360
- </table>
361
- <p>
362
- Copy a file to a file
363
- </p>
364
- <pre>
365
- rio('src_file') &gt; rio('dst_file')
366
- </pre>
367
- <p>
368
- Copy a file to a directory
369
- </p>
370
- <pre>
371
- rio('src_file') &gt; rio('dst_dir')
372
- </pre>
373
- <p>
374
- Copy a directory to another directory
375
- </p>
376
- <pre>
377
- rio('src_dir') &gt; rio('dst_dir')
378
- </pre>
379
- <p>
380
- Make an ungizipped copy of a gzipped file
381
- </p>
382
- <pre>
383
- rio('src.txt.gz').gzip &gt; rio('dst.txt')
384
- </pre>
385
- <p>
386
- Copying to an array
387
- </p>
388
- <pre>
389
- rio('afile') &gt; ary # each line of the file becomes and element of the ary
390
- rio('afile').chomp &gt; ary # same thing with lines chomped
391
- rio('afile.gz').gzip.chomp &gt; ary # same thing from a gzipped file
392
-
393
- rio('afile').lines(0..9) &gt; ary # ary will contain only the first ten lines of the file
394
- rio('afile').chomp.lines(0..9) &gt; ary # same thing with lines chomped
395
- rio('afile').gzip.chomp.lines(0..9) &gt; ary # same thing from a gzipped file
396
-
397
- rio('afile').skiplines(0..9) &gt; ary # ary will contain all but the first ten lines of the file
398
-
399
- rio('adir') &gt; ary # ary will contain a Rio for each entry in the directory
400
- rio('adir').files &gt; ary # same, but only files
401
- rio('adir').files('*.rb') &gt;ary # same, but only .rb files
402
- </pre>
403
- <p>
404
- Copying to a string
405
- </p>
406
- <pre>
407
- rio('afile') &gt; astring # slurp the entire contents of the file into astring
408
- astring = rio('afile').contents # same effect
409
- </pre>
410
- <p>
411
- Copy the first line <b>and</b> every line containing the word Rio into a
412
- gzipped file
413
- </p>
414
- <pre>
415
- rio('src').lines(1,/Rio/) &gt; rio('dst.gz').gzip
416
- </pre>
417
- <p>
418
- Copy lines of a web page into an array with each line chomped
419
- </p>
420
- <pre>
421
- rio('http://ruby-doc.org/index.html').chomp &gt; an_array
422
- </pre>
423
- <p>
424
- Copy the first and 8th through 10th columns of the first ten rows of a
425
- gzipped csv file on a web site into a local gzipped csv file that uses
426
- semi-colons as separators
427
- </p>
428
- <pre>
429
- rio('http://domain/file.csv.gz').columns(0,7..9).gzip.csv[0..9] &gt; rio('localfile.csv.gz').csv(';').gzip
430
- </pre>
431
- <p>
432
- See also <a href="Grande.html#M000096">>></a>, <a
433
- href="Grande.html#M000095">|</a>
434
- </p>
435
- </div>
436
- </div>
437
-
438
- <div id="method-M000096" class="method-detail">
439
- <a name="M000096"></a>
440
-
441
- <div class="method-heading">
442
- <a href="Grande.src/M000096.html" target="Code" class="method-signature"
443
- onclick="popupCode('Grande.src/M000096.html');return false;">
444
- <span class="method-name">&gt;&gt;</span><span class="method-args">(destination)</span>
445
- </a>
446
- </div>
447
-
448
- <div class="method-description">
449
- <p>
450
- Grande Append-To Operator
451
- </p>
452
- <p>
453
- The append-to grande-operator is the same as <a
454
- href="Grande.html#M000093">></a> (copy-to) except that it opens the
455
- destination for append. The destination can be a kind of:
456
- </p>
457
- <table>
458
- <tr><td valign="top">IO:</td><td>Each record of the Rio is written to the IO using IO#print. The IO must be
459
- opened for writing.
460
-
461
- </td></tr>
462
- <tr><td valign="top">Array:</td><td>Each record or entry of the Rio is appended to the destination array
463
-
464
- </td></tr>
465
- <tr><td valign="top">String:</td><td>Appends the entire contents of the Rio to destination
466
-
467
- </td></tr>
468
- <tr><td valign="top">Rio:</td><td>Just like <a href="Grande.html#M000093">></a> (copy-to) except the unopened
469
- object are opened for append. If the destination is already opened for
470
- writing or is a directory, this is identical to <a
471
- href="Grande.html#M000093">></a> (copy-to)
472
-
473
- </td></tr>
474
- </table>
475
- <p>
476
- See <a href="Grande.html#M000093">></a> (copy-to)
477
- </p>
478
- <pre>
479
- rio('afile') &gt;&gt; rio('anotherfile') # append the contents of 'afile' to 'anotherfile'
480
- rio('afile') &gt;&gt; rio('adir') # copies 'afile' to the directory 'adir'
481
- rio('adir') &gt;&gt; rio('anotherdir') # copy directory 'adir' recursively to 'anotherdir'
482
- rio('adir') &gt;&gt; array # a Rio for each entry in the directory will be appended to ary
483
- </pre>
484
- </div>
485
- </div>
486
-
487
- <div id="method-M000089" class="method-detail">
488
- <a name="M000089"></a>
489
-
490
- <div class="method-heading">
491
- <a href="Grande.src/M000089.html" target="Code" class="method-signature"
492
- onclick="popupCode('Grande.src/M000089.html');return false;">
493
- <span class="method-name">[]</span><span class="method-args">(*selectors)</span>
494
- </a>
495
- </div>
496
-
497
- <div class="method-description">
498
- <p>
499
- Grande subscript operator.
500
- </p>
501
- <p>
502
- For files this returns all or part of a file as an array.
503
- </p>
504
- <p>
505
- For directories this returns all or some of the entries in a directory
506
- </p>
507
- <h3>Files</h3>
508
- <p>
509
- This combines the record selection offered by <a
510
- href="GrandeStream.html#M000057">records</a> with the conversion to an
511
- array provided by <a href="Grande.html#M000088">to_a</a>. The following two
512
- are equivelant:
513
- </p>
514
- <pre>
515
- ario[*args]
516
- ario.records(*args).to_a
517
- </pre>
518
- <p>
519
- What constitutes an array element is determined by <a
520
- href="GrandeStream.html#M000055">lines</a>, <a
521
- href="GrandeStream.html#M000056">bytes</a>, or by an extension such as <a
522
- href="CSV.html#M000116">csv</a>. <a
523
- href="GrandeStream.html#M000055">lines</a> is the default.
524
- </p>
525
- <p>
526
- Arguments may consist of zero or more integers, ranges, regular
527
- expressions, symbols, procs, and arrays An empty argument list selects all
528
- records
529
- </p>
530
- <p>
531
- Records are selected as follows.
532
- </p>
533
- <table>
534
- <tr><td valign="top">range:</td><td>specifies a range of records to be selected (zero based)
535
-
536
- </td></tr>
537
- <tr><td valign="top">regexp:</td><td>matching records will be selected.
538
-
539
- </td></tr>
540
- <tr><td valign="top">integer:</td><td>treated like a one element range
541
-
542
- </td></tr>
543
- <tr><td valign="top">symbol:</td><td>the symbol is sent to each record. Record is selected unless false is
544
- returned
545
-
546
- </td></tr>
547
- <tr><td valign="top">proc:</td><td>the proc is called with the record as an argument. Record is selected
548
- unless false is returned
549
-
550
- </td></tr>
551
- <tr><td valign="top">array:</td><td>the array may contain any of the other selector types. Record is selected
552
- unless any of the selectors returns false. (a logical and)
553
-
554
- </td></tr>
555
- </table>
556
- <p>
557
- A record matching <b>any</b> of the selectors will be included in the
558
- array. (acts like an <em>or</em>)
559
- </p>
560
- <p>
561
- Because this is implemented in terms of the <a
562
- href="Grande.html#M000090">each</a>, When only record ranges are used to
563
- select records, iteration will stop when the recno exceeds the maximum of
564
- any range. That is to say
565
- </p>
566
- <p>
567
- This reads one record from a file and returns it
568
- </p>
569
- <pre>
570
- rio('bigfile.mp3').bytes(1024)[0]
571
- </pre>
572
- <p>
573
- While this reads <b>all</b> records from a file and returns the first one
574
- </p>
575
- <pre>
576
- rio('bigfile.mp3').bytes(1024).to_a[0]
577
- </pre>
578
- <h3>Directories</h3>
579
- <p>
580
- This combines the entry selection offered by <a
581
- href="GrandeEntry.html#M000108">entries</a> with the conversion to an array
582
- provided by <a href="Grande.html#M000088">to_a</a>. The following two are
583
- equivelant:
584
- </p>
585
- <pre>
586
- ario[*args]
587
- ario.entries(*args).to_a
588
- </pre>
589
- <p>
590
- Arguments may consist of strings (treated as globs) or regular expressions.
591
- An empty argument list selects all entries See ::Dir#glob and
592
- ::File::fnmatch? for more in information on <em>globs</em>. Be warned that
593
- using the &#8217;**&#8217; glob recurses into directories independently of
594
- <a href="GrandeEntry.html#M000113">all</a> and using both is unsupported.
595
- </p>
596
- <pre>
597
- ario = rio('adir')
598
- ario[] # returns an array containg all entries in _adir_
599
- ario[/^zippy/] # all entries starting with 'zippy'
600
- ario['zippy*'] # same thing
601
- </pre>
602
- <p>
603
- As with <a href="Grande.html#M000090">each</a>:
604
- </p>
605
- <ul>
606
- <li>Files and directories are returned as Rios
607
-
608
- </li>
609
- <li>The types of entries is also affected by <a
610
- href="GrandeEntry.html#M000110">files</a> and <a
611
- href="GrandeEntry.html#M000106">dirs</a>.
612
-
613
- <pre>
614
- rio('adir').files['*.txt'] # array of all .txt files
615
- rio('adir').dirs(/^\./) # array of all dot directories
616
- </pre>
617
- </li>
618
- <li>Recursion is enabled using <a href="GrandeEntry.html#M000113">all</a>
619
-
620
- <pre>
621
- rio('adir').all.files['*.[ch]'] # array of c source files in adir and its subdirecories
622
- rio('adir').all.dirs[/^\.svn/] # array of subversion directories in adir and subdirectories
623
- </pre>
624
- </li>
625
- <li><a href="GrandeEntry.html#M000110">files</a> and <a
626
- href="GrandeEntry.html#M000106">dirs</a> act independetly of each other.
627
- Specifying both will cause both to be returned. The argument list to <a
628
- href="Grande.html#M000089">[]</a> will be applied to the closest.
629
-
630
- <pre>
631
- rio('adir').files('*.rb').dirs['ruby*'] # array of .rb files and
632
- # directories starting with 'ruby'
633
- rio('adir').dirs('ruby*').files['*.rb'] # same thing
634
- </pre>
635
- </li>
636
- </ul>
637
- <h3>Lines</h3>
638
- <p>
639
- This section applies similarly to <a
640
- href="GrandeStream.html#M000055">lines</a>, <a
641
- href="GrandeStream.html#M000056">bytes</a>, <a
642
- href="GrandeStream.html#M000057">records</a>, and <a
643
- href="GrandeStream.html#M000060">rows</a>
644
- </p>
645
- <p>
646
- Using <a href="GrandeStream.html#M000055">lines</a> and related methods
647
- with a Rio referencing a directory imples <a
648
- href="GrandeEntry.html#M000110">files</a> and will cause an array of the
649
- lines or bytes in the files to be returned. As above, the arguments to the
650
- subscript operator will be applied to the closest.
651
- </p>
652
- <pre>
653
- rio('adir').lines[] # array of all lines in the files in 'adir'
654
- rio('adir').files.lines[] # same thing
655
- rio('adir').lines(0..9).files['*.txt'] # array of the first ten lines of all .txt files
656
- rio('adir').files('*.txt').lines[0..9] # same thing
657
- rio('adir').all.files('*.rb').lines[/^\s*require/] # array of 'require' lines in .rb files in
658
- # 'adir and its subdirectories
659
- </pre>
660
- <p>
661
- Note the difference between the following similar usages
662
- </p>
663
- <pre>
664
- it1 = rio('adir').files('*.rb') # returns a Rio, prepared for selecting ruby files
665
- it2 = rio('adir').files['*.rb'] # returns an array of the ruby files
666
- </pre>
667
- <p>
668
- The second example above could have been written
669
- </p>
670
- <pre>
671
- it2 = it1.to_a
672
- </pre>
673
- <p>
674
- Examples:
675
- </p>
676
- <pre>
677
- rio('afile.txt').lines[1..2] # array containing the 2nd and 3rd line
678
-
679
- rio('afile.txt')[1,3..5] # array containing lines 1,3,4 and 5
680
-
681
- rio('afile.txt')[/Zippy/] # array of all lines containing 'Zippy'
682
-
683
- rio('afile.txt')[1,3..5,/Zippy/] # array with lines 1,3,4 and 5 and all lines containing 'Zippy'
684
-
685
- rio('afile.dat').bytes(50)[] # array containing the contents of afile.dat broken up into 50 byte chunks
686
-
687
- rio('afile.dat').bytes(50)[0,2] # array containing the first and third such chunk
688
-
689
- rio('afile.dat').bytes(50).records[0,2] # same thing
690
-
691
- rio('afile.dat').bytes(50).records(0,2).to_a # once again
692
-
693
- rio('afile.csv').csv[0..9] # array of the first 10 records of afile.csv parsed by the ::CSV module
694
-
695
- rio('afile.csv').csv.records[0..9] # same thing
696
-
697
- rio('afile.csv').csv(';').records[0..9] # same thing using semi-colon as the value separator
698
-
699
- rio('afile.csv').csv.records[0,/Zippy/] # record 0 and all records containing 'Zippy'
700
- # the regexp is matched against the line before parsing by ::CSV
701
-
702
- rio('adir')[] # array of entries in 'adir'
703
-
704
- rio('adir')['*.txt'] # array of all .txt entries
705
-
706
- rio('adir').all['*.txt'] # array of all .txt entries in 'adir and its subdirectories
707
-
708
- rio('adir').files['*.txt'] # array of all .txt files
709
-
710
- rio('adir').dirs['CSV'] # array of all CSV directories
711
- rio('adir').skipdirs['CSV'] # array of all non-CSV directories
712
- </pre>
713
- </div>
714
- </div>
715
-
716
- <div id="method-M000099" class="method-detail">
717
- <a name="M000099"></a>
718
-
719
- <div class="method-heading">
720
- <a href="Grande.src/M000099.html" target="Code" class="method-signature"
721
- onclick="popupCode('Grande.src/M000099.html');return false;">
722
- <span class="method-name">append_from</span><span class="method-args">(source)</span>
723
- </a>
724
- </div>
725
-
726
- <div class="method-description">
727
- <p>
728
- Alias for <a href="Grande.html#M000098"><<</a> (append-from grande
729
- operator)
730
- </p>
731
- </div>
732
- </div>
733
-
734
- <div id="method-M000097" class="method-detail">
735
- <a name="M000097"></a>
736
-
737
- <div class="method-heading">
738
- <a href="Grande.src/M000097.html" target="Code" class="method-signature"
739
- onclick="popupCode('Grande.src/M000097.html');return false;">
740
- <span class="method-name">append_to</span><span class="method-args">(destination)</span>
741
- </a>
742
- </div>
743
-
744
- <div class="method-description">
745
- <p>
746
- Alias for <a href="Grande.html#M000096">>></a> (append-to grande operator)
747
- </p>
748
- </div>
749
- </div>
750
-
751
- <div id="method-M000101" class="method-detail">
752
- <a name="M000101"></a>
753
-
754
- <div class="method-heading">
755
- <a href="Grande.src/M000101.html" target="Code" class="method-signature"
756
- onclick="popupCode('Grande.src/M000101.html');return false;">
757
- <span class="method-name">copy_from</span><span class="method-args">(source)</span>
758
- </a>
759
- </div>
760
-
761
- <div class="method-description">
762
- <p>
763
- Alias for <a href="Grande.html#M000100"><</a> (copy-from grande operator)
764
- </p>
765
- </div>
766
- </div>
767
-
768
- <div id="method-M000094" class="method-detail">
769
- <a name="M000094"></a>
770
-
771
- <div class="method-heading">
772
- <a href="Grande.src/M000094.html" target="Code" class="method-signature"
773
- onclick="popupCode('Grande.src/M000094.html');return false;">
774
- <span class="method-name">copy_to</span><span class="method-args">(destination)</span>
775
- </a>
776
- </div>
777
-
778
- <div class="method-description">
779
- <p>
780
- Alias for <a href="Grande.html#M000093">></a> (copy-to grande operator)
781
- </p>
782
- </div>
783
- </div>
784
-
785
- <div id="method-M000091" class="method-detail">
786
- <a name="M000091"></a>
787
-
788
- <div class="method-heading">
789
- <a href="Grande.src/M000091.html" target="Code" class="method-signature"
790
- onclick="popupCode('Grande.src/M000091.html');return false;">
791
- <span class="method-name">delete</span><span class="method-args">()</span>
792
- </a>
793
- </div>
794
-
795
- <div class="method-description">
796
- <p>
797
- For a file Rio <tt>delete</tt> calls FileUtils#rm. For a directory Rio
798
- <tt>delete</tt> calls FileUtils#rmdir Returns the Rio. If the Rio does not
799
- exist, simply return the Rio.
800
- </p>
801
- <pre>
802
- rio('afile,txt').delete # delete 'afile.txt'
803
- rio('adir').delete # delete adir
804
- rio('something').delete # delete something
805
- </pre>
806
- </div>
807
- </div>
808
-
809
- <div id="method-M000092" class="method-detail">
810
- <a name="M000092"></a>
811
-
812
- <div class="method-heading">
813
- <a href="Grande.src/M000092.html" target="Code" class="method-signature"
814
- onclick="popupCode('Grande.src/M000092.html');return false;">
815
- <span class="method-name">delete!</span><span class="method-args">()</span>
816
- </a>
817
- </div>
818
-
819
- <div class="method-description">
820
- <p>
821
- For a file <a href="Grande.html#M000092">delete!</a> calls FileUtils#rm.
822
- For a directory <a href="Grande.html#M000092">delete!</a> calls
823
- FileUtils#rmtree Returns the Rio. If the rio does not exist, simply return
824
- itself.
825
- </p>
826
- <pre>
827
- rio('afile,txt').delete! # delete f.txt
828
- rio('adir').delete! # delete adir
829
-
830
- # create a directory, after deleting anything that previously had its name
831
- rio('adir/asubdir').delete!.mkpath
832
- </pre>
833
- <h4>Deleting Summary</h4>
834
- <ul>
835
- <li>To delete something only if it is not a directory use <a
836
- href="File.html#M000212">rm</a>
837
-
838
- </li>
839
- <li>To delete an empty directory use <a href="Dir.html#M000048">rmdir</a>
840
-
841
- </li>
842
- <li>To delete an entire directory tree use <a
843
- href="Dir.html#M000049">rmtree</a>
844
-
845
- </li>
846
- <li>To delete anything except a populated directory use <a
847
- href="Grande.html#M000091">delete</a>
848
-
849
- </li>
850
- <li>To delete anything use <a href="Grande.html#M000092">delete!</a>
851
-
852
- </li>
853
- </ul>
854
- <p>
855
- In all cases, deleting something that does not exist is considered
856
- successful
857
- </p>
858
- </div>
859
- </div>
860
-
861
- <div id="method-M000090" class="method-detail">
862
- <a name="M000090"></a>
863
-
864
- <div class="method-heading">
865
- <a href="Grande.src/M000090.html" target="Code" class="method-signature"
866
- onclick="popupCode('Grande.src/M000090.html');return false;">
867
- <span class="method-name">each</span><span class="method-args">(*args,&amp;block)</span>
868
- </a>
869
- </div>
870
-
871
- <div class="method-description">
872
- <p>
873
- Iterate through a rio. Executes the block for each item selected for the
874
- Rio. See <a href="GrandeStream.html#M000055">lines</a>, <a
875
- href="GrandeStream.html#M000057">records</a>, <a
876
- href="GrandeStream.html#M000056">bytes</a>, <a
877
- href="GrandeEntry.html#M000110">files</a>, <a
878
- href="GrandeEntry.html#M000106">dirs</a>, <a
879
- href="Grande.html#M000089">[]</a> and <a
880
- href="Grande.html#M000088">to_a</a> for more information on how records are
881
- selected and what kind of record is passed to the block.
882
- </p>
883
- <p>
884
- <a href="Grande.html#M000090">each</a> is the fundemental method for all
885
- the Rio grande operators. <a href="Grande.html#M000088">to_a</a> and the
886
- Rio copy operators <a href="Grande.html#M000100"><</a>, <a
887
- href="Grande.html#M000098"><<</a>, <a href="Grande.html#M000096">>></a>,
888
- and <a href="Grande.html#M000093">></a> are all implemented in terms of <a
889
- href="Grande.html#M000090">each</a>.
890
- </p>
891
- <p>
892
- While <a href="Grande.html#M000090">each</a> is fundamental to a Rio, it
893
- rarely needs actually be called because all the grande configuration
894
- methods will also take a block and call <a
895
- href="Grande.html#M000090">each</a> if one is given. So the existance of a
896
- block after many methods is taken as an implied <a
897
- href="Grande.html#M000090">each</a>
898
- </p>
899
- <p>
900
- For Rios that refer to files, the item passed to the block is a String
901
- containing the line or block as selected by <a
902
- href="GrandeStream.html#M000055">lines</a>, or <a
903
- href="GrandeStream.html#M000056">bytes</a>. <tt>lines</tt> is the default.
904
- </p>
905
- <pre>
906
- rio('afile').lines.each { |line| ...}
907
- </pre>
908
- <p>
909
- The block passed to <tt>each</tt> will also accept an optional second
910
- parameter which will contain the result of the matching function. What this
911
- variable contains depends on the argument to <tt>lines</tt> that resulted
912
- in the match as follows:
913
- </p>
914
- <table>
915
- <tr><td valign="top">Regexp:</td><td>The MatchData that resulted from the match.
916
-
917
- </td></tr>
918
- <tr><td valign="top">Range:</td><td>The record number of the matching record.
919
-
920
- </td></tr>
921
- <tr><td valign="top">Fixnum:</td><td>The record number of the matching record.
922
-
923
- </td></tr>
924
- <tr><td valign="top">Proc:</td><td>The value returned by the proc.
925
-
926
- </td></tr>
927
- <tr><td valign="top">Symbol:</td><td>The value resulting from sending the symbol to the String.
928
-
929
- </td></tr>
930
- </table>
931
- <p>
932
- If no selection arguments were used, this variable will simply contain
933
- <tt>true</tt>.
934
- </p>
935
- <pre>
936
- rio(??).puts(%w[0:zero 1:one]).rewind.lines(/(\d+):([a-z]+)/) do |line,match|
937
- puts(&quot;#{match[1]} is spelled '#{match[2]}'&quot;)
938
- end
939
- </pre>
940
- <p>
941
- Produces:
942
- </p>
943
- <pre>
944
- 0 is spelled 'zero'
945
- 1 is spelled 'one'
946
- </pre>
947
- <p>
948
- For Rios that refer to directories, the item passed to the block is a Rio
949
- refering to the directory entry.
950
- </p>
951
- <pre>
952
- rio('adir').files.each do |file|
953
- file.kind_of?(RIO::Rio) # true
954
- end
955
- </pre>
956
- <p>
957
- In addition, the Rio passed to the block inherits certain attributes from
958
- the directory Rio.
959
- </p>
960
- <pre>
961
- rio('adir').files.chomp.each do |file| # chomp is ignored for directories,
962
- file.each do |line| # chomp attribute is inherited by the file rio
963
- # .. line is chomped
964
- end
965
- end
966
- </pre>
967
- <p>
968
- <a href="Grande.html#M000090">each</a> returns the Rio which called it.
969
- </p>
970
- <p>
971
- Here are a few illustrative examples
972
- </p>
973
- <ul>
974
- <li>Processing lines in a file
975
-
976
- <pre>
977
- rio('f.txt').each { |line| ... } # execute block for every line in the file
978
- rio('f.txt').lines.each { |line| ... } # same thing
979
- rio('f.txt').lines { |line| ... } # same thing
980
-
981
- rio('f.txt').chomp.each { |line| ... } # same as above with lines chomped
982
- rio('f.txt').chomp { |line| ... } # ditto
983
- rio('f.txt').lines.chomp { |line| ... } # ditto
984
- rio('f.txt').chomp.lines { |line| ... } # ditto
985
-
986
- rio('f.txt.gz').gzip.each { |line| ... } # execute block for every line in a gzipped file
987
- rio('f.txt.gz').gzip { |line| ... } # same thing
988
- rio('f.txt.gz').lines.gzip { |line| ... } # same thing
989
-
990
- rio('f.txt.gz').gzip.chomp { |line| ... } # chomp lines from a gzipped file
991
- rio('f.txt.gz').gzip.chomp.each { |line| ... } # ditto
992
- rio('f.txt.gz').chomp.lines.gzip { |line| ... } # ditto
993
-
994
- rio('f.txt').lines(0..9) { |line| ... } # execute block for the first 10 lines in the file
995
- rio('f.txt').lines(0..9).each { |line| ... } # same thing
996
-
997
- rio('f.txt').lines(/^\s*#/) { |line| ... } # execute block for comment-only lines
998
- rio('f.txt').lines(/^\s*#/).each { |line| ... } # same thing
999
-
1000
- rio('f.txt').lines(0,/Rio/) { |line| ... } # execute block for the first line and
1001
- # all lines containing 'Rio'
1002
-
1003
- rio('f.txt.gz').gzip.chomp.lines(0..1) { |line| ... } # first 2 lines chomped from a gzip file
1004
- </pre>
1005
- </li>
1006
- <li>Processing a file a block at a time
1007
-
1008
- <pre>
1009
- rio('f.dat').bytes(10).each { |data| ... } # process the file 10 bytes at a time
1010
- rio('f.dat').bytes(10) { |data| ... } # same thing
1011
- rio('f.dat').bytes(10).records(2,4) { |data| ... } # only 3rd and 5th ten-byte data-block
1012
- rio('f.dat.gz').gzip.records(2,4).bytes(10) { |data| ... } # same from a gzipped file
1013
- </pre>
1014
- </li>
1015
- <li>Iterating over directories
1016
-
1017
- <pre>
1018
- rio('adir').each { |ent| ... } # execute the block for each entry in the directory 'adir'
1019
- rio('adir').files.each { |file| ...} # only files
1020
- rio('adir').files { |file| ...} # ditto
1021
- rio('adir').all.files { |file| ...} # files, recurse into subdirectories
1022
- rio('adir').dirs { |dir| ...} # only directories
1023
- rio('adir').files('*.rb') { |file| ...} # only .rb files using a glob
1024
- rio('adir').files(/\.rb$/) { |file| ...} # only .rb files using a regular expression
1025
- rio('adir').all.files('*.rb') { |file| ...} # .rb files, recursing into subdirectories
1026
- rio('adir').dirs(/^\./) { |dir| ... } # only dot directories
1027
- rio('adir').dirs('/home/*') { |dir| ... } # home directories
1028
- </pre>
1029
- </li>
1030
- </ul>
1031
- <p>
1032
- See <a href="../Doc/HOWTO.html">RIO::Doc::HOWTO</a> and <a
1033
- href="../Doc/SYNOPSIS.html">RIO::Doc::SYNOPSIS</a> for more examples, and
1034
- <a href="../Doc/INTRO.html">RIO::Doc::INTRO</a> for further explanation.
1035
- </p>
1036
- </div>
1037
- </div>
1038
-
1039
- <div id="method-M000104" class="method-detail">
1040
- <a name="M000104"></a>
1041
-
1042
- <div class="method-heading">
1043
- <a href="Grande.src/M000104.html" target="Code" class="method-signature"
1044
- onclick="popupCode('Grande.src/M000104.html');return false;">
1045
- <span class="method-name">empty?</span><span class="method-args">()</span>
1046
- </a>
1047
- </div>
1048
-
1049
- <div class="method-description">
1050
- <p>
1051
- Returns true if the referenced file or directory is empty after honoring
1052
- the grande selection methods.
1053
- </p>
1054
- <pre>
1055
- rio('f0').delete!.touch.empty? #=&gt; true
1056
- rio('f1').puts!(&quot;Not Empty\n&quot;).empty? #=&gt; false
1057
- rio('d0').delete!.mkdir.empty? #=&gt; true
1058
- </pre>
1059
- </div>
1060
- </div>
1061
-
1062
- <div id="method-M000102" class="method-detail">
1063
- <a name="M000102"></a>
1064
-
1065
- <div class="method-heading">
1066
- <a href="Grande.src/M000102.html" target="Code" class="method-signature"
1067
- onclick="popupCode('Grande.src/M000102.html');return false;">
1068
- <span class="method-name">get</span><span class="method-args">()</span>
1069
- </a>
1070
- </div>
1071
-
1072
- <div class="method-description">
1073
- <p>
1074
- Reads and returns the next record or entry from a Rio, honoring the grande
1075
- selection methods.
1076
- </p>
1077
- <p>
1078
- Returns nil on end of file.
1079
- </p>
1080
- <p>
1081
- See also <a href="GrandeStream.html#M000057">records</a>, <a
1082
- href="GrandeStream.html#M000055">lines</a>, <a
1083
- href="Grande.html#M000090">each</a>, <a href="Grande.html#M000089">[]</a>
1084
- </p>
1085
- <pre>
1086
- ario = rio('afile').lines(10..12)
1087
- line10 = ario.get
1088
- line11 = ario.get
1089
- line12 = ario.get
1090
- a_nil = ario.get
1091
-
1092
- ario = rio('adir').entries('*.txt')
1093
- ent1 = ario.get
1094
- ent2 = ario.get
1095
- </pre>
1096
- </div>
1097
- </div>
1098
-
1099
- <div id="method-M000103" class="method-detail">
1100
- <a name="M000103"></a>
1101
-
1102
- <div class="method-heading">
1103
- <a href="Grande.src/M000103.html" target="Code" class="method-signature"
1104
- onclick="popupCode('Grande.src/M000103.html');return false;">
1105
- <span class="method-name">skip</span><span class="method-args">(*args,&amp;block)</span>
1106
- </a>
1107
- </div>
1108
-
1109
- <div class="method-description">
1110
- <p>
1111
- Grande Exclude method
1112
- </p>
1113
- <p>
1114
- <tt>skip</tt> can be used in two ways.
1115
- </p>
1116
- <p>
1117
- If called with no arguments it reverses the polarity of the next non-skip
1118
- grande selection method that is called. That is, it turns <tt>lines</tt>,
1119
- <tt>records</tt>, <tt>rows</tt>, <tt>files</tt>, <tt>dirs</tt> and
1120
- <tt>entries</tt> into <tt>skiplines</tt>, <tt>skiprecords</tt>,
1121
- <tt>skiprows</tt>, <tt>skipfiles</tt>, <tt>skipdirs</tt>, and
1122
- <tt>skipentries</tt>, respectively.
1123
- </p>
1124
- <pre>
1125
- rio('afile').skip.lines(0..5) # same as rio('afile').skiplines(0..5)
1126
- rio('adir').skip.files('*~') # same as rio('adir').skipfiles('*~')
1127
- </pre>
1128
- <p>
1129
- Note that it only affects the next selection method seen &#8212; and may be
1130
- used more than once. If no grande selection method is seen, <tt>skip</tt>
1131
- is ignored.
1132
- </p>
1133
- <p>
1134
- When called with arguments it acts like <a
1135
- href="GrandeEntry.html#M000109">skipentries</a> for directory Rios and like
1136
- <a href="GrandeStream.html#M000058">skiprecords</a> for stream Rios.
1137
- </p>
1138
- <pre>
1139
- rio('afile').lines(/Rio/).skip[0..4] # lines containg 'Rio' excluding the
1140
- # first five lines
1141
-
1142
- rio('adir').files('*.rb').skip[:symlink?] # .rb files, but not symlinks to
1143
- # .rb files
1144
- </pre>
1145
- <p>
1146
- If a block is given, behaves as if <tt>skip(*args).each(&amp;block)</tt>
1147
- had been called.
1148
- </p>
1149
- <p>
1150
- Returns the Rio.
1151
- </p>
1152
- <p>
1153
- See <a href="GrandeStream.html#M000059">skiplines</a>, <a
1154
- href="GrandeStream.html#M000058">skiprecords</a>, <a
1155
- href="GrandeStream.html#M000061">skiprows</a>, <a
1156
- href="GrandeEntry.html#M000111">skipfiles</a>, <a
1157
- href="GrandeEntry.html#M000107">skipdirs</a>, and <a
1158
- href="GrandeEntry.html#M000109">skipentries</a>.
1159
- </p>
1160
- </div>
1161
- </div>
1162
-
1163
- <div id="method-M000105" class="method-detail">
1164
- <a name="M000105"></a>
1165
-
1166
- <div class="method-heading">
1167
- <a href="Grande.src/M000105.html" target="Code" class="method-signature"
1168
- onclick="popupCode('Grande.src/M000105.html');return false;">
1169
- <span class="method-name">split</span><span class="method-args">(*args,&amp;block)</span>
1170
- </a>
1171
- </div>
1172
-
1173
- <div class="method-description">
1174
- <p>
1175
- <a href="Grande.html#M000105">split</a> has two distinct behaviors
1176
- depending on whether or not it is called with an argument.
1177
- </p>
1178
- <h4>split-with-no-aruments:</h4>
1179
- <p>
1180
- Returns an array of Rios, one for each path element. (Note that this
1181
- behavior differs from File#split.)
1182
- </p>
1183
- <pre>
1184
- rio('a/b/c').split #=&gt; [rio('a'),rio('b'),rio('c')]
1185
- </pre>
1186
- <p>
1187
- The array returned is extended with a <tt>to_rio</tt> method, which will
1188
- put the parts back together again.
1189
- </p>
1190
- <pre>
1191
- ary = rio('a/b/c').split #=&gt; [rio('a'),rio('b'),rio('c')]
1192
- ary.to_rio #=&gt; rio('a/b/c')
1193
-
1194
- ary = rio('a/b/c').split #=&gt; [rio('a'),rio('b'),rio('c')]
1195
- ary[1] = rio('d')
1196
- ary.to_rio #=&gt; rio('a/d/c')
1197
- </pre>
1198
- <p>
1199
- See also <a href="Path.html#M000200">join</a>, <a
1200
- href="Path.html#M000202">/</a>, <a href="Path.html#M000201">splitpath</a>
1201
- </p>
1202
- <h4>split-with-an-argument:</h4>
1203
- <p>
1204
- This causes String#split(arg) to be called on every line before it is
1205
- returned. An array of the split lines is returned when iterating
1206
- </p>
1207
- <pre>
1208
- rio('/etc/passwd').split(':').columns(0,2) { |ary|
1209
- username,uid = ary
1210
- }
1211
-
1212
- rio('/etc/passwd').split(':').columns(0,2).to_a #=&gt; [[user1,uid1],[user2,uid2]]
1213
- </pre>
1214
- </div>
1215
- </div>
1216
-
1217
- <div id="method-M000088" class="method-detail">
1218
- <a name="M000088"></a>
1219
-
1220
- <div class="method-heading">
1221
- <a href="Grande.src/M000088.html" target="Code" class="method-signature"
1222
- onclick="popupCode('Grande.src/M000088.html');return false;">
1223
- <span class="method-name">to_a</span><span class="method-args">()</span>
1224
- </a>
1225
- </div>
1226
-
1227
- <div class="method-description">
1228
- <p>
1229
- Returns the contents of the rio as an array. (See ::Enumerable#to_a)
1230
- </p>
1231
- <p>
1232
- <a href="Grande.html#M000088">to_a</a> is implemented in terms of <a
1233
- href="Grande.html#M000090">each</a> so the the following are roughly
1234
- equivelent
1235
- </p>
1236
- <pre>
1237
- ary = ario.to_a
1238
-
1239
- ary = []
1240
- ario.each do |rec|
1241
- ary &lt;&lt; ary
1242
- end
1243
- </pre>
1244
- <p>
1245
- What constitutes an array element is determined by <a
1246
- href="GrandeStream.html#M000055">lines</a>, <a
1247
- href="GrandeStream.html#M000056">bytes</a>, <a
1248
- href="GrandeStream.html#M000057">records</a>, <a
1249
- href="GrandeStream.html#M000060">rows</a> or by an extension such as <a
1250
- href="CSV.html#M000116">csv</a>. <a
1251
- href="GrandeStream.html#M000055">lines</a> is the default.
1252
- </p>
1253
- <pre>
1254
- rio('afile.txt').to_a # returns an array of the lines in afile.txt
1255
-
1256
- rio('afile.txt').lines(1...3).to_a # an array containing lines 1 and 2 of afile.txt
1257
-
1258
- rio('afile.dat').bytes(50).to_a # an array containing the contents of afile.dat broken
1259
- # up into 50 byte chunks
1260
- </pre>
1261
- <p>
1262
- See also <a href="Grande.html#M000089">[]</a> (subscript operator)
1263
- </p>
1264
- </div>
1265
- </div>
1266
-
1267
- <div id="method-M000095" class="method-detail">
1268
- <a name="M000095"></a>
1269
-
1270
- <div class="method-heading">
1271
- <a href="Grande.src/M000095.html" target="Code" class="method-signature"
1272
- onclick="popupCode('Grande.src/M000095.html');return false;">
1273
- <span class="method-name">|</span><span class="method-args">(destination)</span>
1274
- </a>
1275
- </div>
1276
-
1277
- <div class="method-description">
1278
- <p>
1279
- Grande Pipe Operator
1280
- </p>
1281
- <p>
1282
- The Rio pipe operator is actually an alternative syntax for calling the
1283
- copy-to operator, designed to allow several copy operation to be performed
1284
- in one line of code, with behaviour that mimics the pipe operator commonly
1285
- available in shells.
1286
- </p>
1287
- <p>
1288
- If <tt>destination</tt> is a <tt>cmdio</tt>, a <tt>cmdpipe</tt> Rio is
1289
- returned, and none of the commands are run.
1290
- </p>
1291
- <p>
1292
- Otherwise the <tt>cmdpipe</tt> Rio is run with the output of the pipe being
1293
- copied to the destination. In this case a Rio representing the
1294
- <tt>destination</tt> is returned.
1295
- </p>
1296
- <p>
1297
- If destination is not a Rio it is passed to the Rio constructor as is done
1298
- with the copy-to operator except that if <tt>destination</tt> is a String
1299
- it is assumed to be a command instead of a path.
1300
- </p>
1301
- <pre>
1302
- rio('afile') | rio(?-,'grep i') | rio(?-) # returns rio(?-)
1303
- # equivelent to rio(?-, 'grep i') &lt; rio('afile') &gt; rio(?-)
1304
-
1305
- rio('infile') | rio(?-, 'acmd') | rio(?-, 'acmd2') | rio('outfile')
1306
- # same as
1307
- # acmd = rio(?-,'acmd')
1308
- # acmd2 = rio(?-,'acmd2')
1309
- # out = rio('outfile')
1310
- # acmd &lt; rio('infile')
1311
- # acmd2 &lt; acmd
1312
- # out &lt; acmd2
1313
-
1314
- rio('afile') | 'acmd' | 'acmd2' | rio('outfile') # same thing
1315
-
1316
- acmdpipe = rio(?-,'acmd') | 'acmd2'
1317
- rio('afile') | acmdpipe | rio('outfile') # same thing
1318
-
1319
- acmdpipe1 = rio(?|,'acmd','acmd2')
1320
- rio('afile') | acmdpipe1 | rio('outfile') # same thing
1321
-
1322
- acmdpipe2 = rio('afile') | 'acmd' | 'acmd2'
1323
- acmdpipe2 | rio('outfile') # same thing
1324
- </pre>
1325
- <p>
1326
- The grande pipe operator can not be used to create a <tt>cmdpipe</tt> Rio
1327
- that includes a destination. This must be done using a Rio constructor
1328
- </p>
1329
- <pre>
1330
- cmd_with_output = rio(?|,'acmd',rio('outfile'))
1331
- rio('afile') | cmd_with_output # same as above
1332
- </pre>
1333
- </div>
1334
- </div>
1335
-
1336
-
1337
- </div>
1338
- </div>
1339
-
1340
-
1341
- </div>
1342
-
1343
-
1344
- <div id="validator-badges">
1345
- <p><small>Copyright &copy; 2005,2006,2007 Christopher Kleckner. <a href="http://www.gnu.org/licenses/gpl.html">All rights reserved</a>.</small></p>
1346
- </div>
1347
-
1348
- </body>
1349
- </html>