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
@@ -79,7 +79,7 @@ module RIO
79
79
  wduri.to_s
80
80
  end
81
81
  def remote_path(url)
82
- self.remote_root+URI(url).path
82
+ self.remote_root+RIO::RL.url2fs(URI(url).path)
83
83
  end
84
84
  def chdir(url,&block)
85
85
  if block_given?
@@ -119,6 +119,7 @@ module RIO
119
119
 
120
120
  def get_ftype(url)
121
121
  pth = remote_path(url)
122
+ #p url,pth
122
123
  ftype = nil
123
124
  begin
124
125
  conn.mdtm(pth)
@@ -1,20 +1,20 @@
1
-
2
- require 'tempfile'
3
- require 'delegate'
4
- module RIO
5
- module FTP
6
- class FTPFile < DelegateClass( ::Tempfile )
7
- def initialize(remote_path, netftp)
8
- @remote_path = remote_path
9
- @netftp = netftp
10
- @ftpfile = ::Tempfile.new('ftpfile')
11
- super(@ftpfile)
12
- end
13
- def close()
14
- super
15
- @netftp.put(path(),@remote_path)
16
- end
17
-
18
- end
19
- end
20
- end
1
+
2
+ require 'tempfile'
3
+ require 'delegate'
4
+ module RIO
5
+ module FTP
6
+ class FTPFile < DelegateClass( ::Tempfile )
7
+ def initialize(remote_path, netftp)
8
+ @remote_path = remote_path
9
+ @netftp = netftp
10
+ @ftpfile = ::Tempfile.new('ftpfile')
11
+ super(@ftpfile)
12
+ end
13
+ def close()
14
+ super
15
+ @netftp.put(path(),@remote_path)
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -115,7 +115,8 @@ module RIO
115
115
  #
116
116
  # Arguments may consist of strings (treated as globs) or regular expressions.
117
117
  # An empty argument list selects all entries
118
- # See ::Dir#glob and ::File::fnmatch? for more in information on _globs_. Be warned that using the '**' glob
118
+ # See ::Dir#glob and ::File::fnmatch? for more in information on _globs_.
119
+ # Be warned that using the '**' glob
119
120
  # recurses into directories independently of IF::GrandeEntry#all and using both is unsupported.
120
121
  #
121
122
  # ario = rio('adir')
@@ -143,7 +144,8 @@ module RIO
143
144
  # IF::GrandeStream#records, and IF::GrandeStream#rows
144
145
  #
145
146
  # Using IF::GrandeStream#lines and related methods with a Rio referencing a directory
146
- # imples IF::GrandeEntry#files and will cause an array of the lines or bytes in the files to be returned. As above,
147
+ # imples IF::GrandeEntry#files and will cause an array of the lines or bytes in the
148
+ # files to be returned. As above,
147
149
  # the arguments to the subscript operator will be applied to the closest.
148
150
  # rio('adir').lines[] # array of all lines in the files in 'adir'
149
151
  # rio('adir').files.lines[] # same thing
@@ -219,7 +221,8 @@ module RIO
219
221
  # IF::Grande#each
220
222
  #
221
223
  # For Rios that refer to files, the item passed to the block is a String containing
222
- # the line or block as selected by IF::GrandeStream#lines, or IF::GrandeStream#bytes. +lines+ is the default.
224
+ # the line or block as selected by IF::GrandeStream#lines, or IF::GrandeStream#bytes.
225
+ # +lines+ is the default.
223
226
  # rio('afile').lines.each { |line| ...}
224
227
  #
225
228
  # The block passed to +each+ will also accept an optional second parameter which will contain
@@ -380,7 +383,7 @@ module RIO
380
383
  # rio('src.txt.gz').gzip > rio('dst.txt')
381
384
  #
382
385
  # Copying to an array
383
- # rio('afile') > ary # each line of the file becomes and element of the ary
386
+ # rio('afile') > ary # each line of the file becomes an element of the ary
384
387
  # rio('afile').chomp > ary # same thing with lines chomped
385
388
  # rio('afile.gz').gzip.chomp > ary # same thing from a gzipped file
386
389
  #
@@ -406,7 +409,7 @@ module RIO
406
409
  #
407
410
  # Copy the first and 8th through 10th columns of the first ten rows of a gzipped csv
408
411
  # file on a web site into a local gzipped csv file that uses semi-colons as separators
409
- # rio('http://domain/file.csv.gz').columns(0,7..9).gzip.csv[0..9] > rio('localfile.csv.gz').csv(';').gzip
412
+ # rio('http://host/file.csv.gz').columns(0,7..9).gzip.csv[0..9] > rio('localfile.csv.gz').csv(';').gzip
410
413
  #
411
414
  # See also IF::Grande#>>, IF::Grande#|
412
415
  #
@@ -521,10 +524,13 @@ module RIO
521
524
  # That is to say, it iterates through its argument, calling the copy-from operator
522
525
  # again for each element. While it is not implemented like this, and the above code would
523
526
  # not give the same results, This generalized description is convenient.
527
+ #
524
528
  # For example the code:
525
- # dst < src
526
- # # is like
527
- # src.each { |line| dst << line }
529
+ #
530
+ # destination < source
531
+ # # is like
532
+ # source.each { |element| destination << element }
533
+ #
528
534
  # for any of the following definitions of src and dst
529
535
  # * copying files
530
536
  # src = rio('afile')
@@ -679,11 +685,11 @@ module RIO
679
685
  # which will put the parts back together again.
680
686
  #
681
687
  # ary = rio('a/b/c').split #=> [rio('a'),rio('b'),rio('c')]
682
- # ary.to_rio #=> rio('a/b/c')
688
+ # ary.to_rio #=> rio('a/b/c')
683
689
  #
684
690
  # ary = rio('a/b/c').split #=> [rio('a'),rio('b'),rio('c')]
685
691
  # ary[1] = rio('d')
686
- # ary.to_rio #=> rio('a/d/c')
692
+ # ary.to_rio #=> rio('a/d/c')
687
693
  #
688
694
  # See also IF::Path#join, IF::Path#/, IF::Path#splitpath
689
695
  #
@@ -236,7 +236,7 @@ module RIO
236
236
  def zero?(*args) target.zero?(*args) end
237
237
 
238
238
 
239
- # Returns true if the rio represents and absolute path or URI. Alias for IF::Test#absolute?
239
+ # Returns true if the rio represents an absolute path or URI. Alias for IF::Test#absolute?
240
240
  #
241
241
  # rio('/tmp').abs? # >> true
242
242
  # rio('.ssh').abs? # >> false
@@ -35,18 +35,19 @@
35
35
 
36
36
  module RIO
37
37
  CONSTRUCTOR_SYMS = [
38
- :strio,
39
- :stdio,
40
- :stderr,
41
- :temp,
42
- :tempfile,
43
- :tempdir,
44
- :tcp,
45
- :cmdio,
46
- :cmdpipe,
47
- :sysio,
48
- :fd,
49
- ]
38
+ :strio,
39
+ :stdio,
40
+ :stderr,
41
+ :temp,
42
+ :tempfile,
43
+ :tempdir,
44
+ :tcp,
45
+ :cmdio,
46
+ :cmdpipe,
47
+ :sysio,
48
+ :fd,
49
+ :ftp,
50
+ ]
50
51
  end
51
52
 
52
53
  module RIO
@@ -230,7 +230,7 @@ module RIO
230
230
  self.skipentries(*args)
231
231
  end
232
232
  def ent_to_rio_(ent,indir)
233
- #p "ent_to_rio: #{ent.inspect},#{ent.fs.class} indir=#{indir}"
233
+ #p "ent_to_rio: ent=#{ent.inspect} indir=#{indir}"
234
234
  if ent.kind_of?(RIO::Rio)
235
235
  oldpath = ent.to_s
236
236
  ent.rl.urlpath = indir.to_s
@@ -238,6 +238,7 @@ module RIO
238
238
  ent.cx = self.cx.bequeath(ent.cx)
239
239
  ent
240
240
  else
241
+ # KIT: should this be RL.fs2url(ent) ???
241
242
  if indir
242
243
  new_rio_cx(indir.rl,ent)
243
244
  else
@@ -52,9 +52,9 @@ module RIO
52
52
  def fs2urls(*args)
53
53
  args.map{ |pth| fs2url(pth) }
54
54
  end
55
- def fs2url(pth)
55
+ def fs2url(pth, esc=ESCAPE)
56
56
  #pth.sub!(/^[a-zA-Z]:/,'')
57
- pth = URI.escape(pth,ESCAPE)
57
+ pth = URI.escape(pth,esc)
58
58
  pth = '/' + pth if pth =~ /^[a-zA-Z]:/
59
59
  pth
60
60
  # (Local::SEPARATOR == '/' ? pth : pth.gsub(Local::SEPARATOR,%r|/|))
@@ -55,6 +55,7 @@ module RIO
55
55
  else
56
56
  raise(ArgumentError,"'#{arg0}'[#{arg0.class}] can not be used to create a Rio")
57
57
  end
58
+ #puts "path.rb arg0_info_: vuri=#{vuri}"
58
59
  [vuri,vbase,vfs]
59
60
  end
60
61
  def build_arg0_(path_str)
@@ -75,14 +75,18 @@ module RIO
75
75
  else
76
76
  raise(ArgumentError,"'#{arg0}'[#{arg0.class}] can not be used to create a Rio")
77
77
  end
78
+ #puts "uri.rb arg0_info_: vuri=#{vuri}"
78
79
  [vuri,vbase,vfs]
79
80
  end
80
81
  def init_from_args_(arg0,*args)
81
82
  #p "init_from_args_(#{arg0.inspect})"
82
83
  #p callstr('init_from_args_',arg0.inspect,args)
83
84
  vuri,vbase,vfs = self.arg0_info_(arg0,*args)
85
+ #p vuri,vbase
84
86
  #p vuri
85
87
  @uri = vuri
88
+ #p 'HERE'
89
+ #p vuri
86
90
  #p args unless args.nil? || args.empty?
87
91
  self.join(*args)
88
92
  @base = vbase unless @base or vbase.nil?
@@ -278,6 +278,7 @@ module RIO
278
278
  def _build(*args) RIO::RL::Builder.build(*args) end
279
279
 
280
280
  def uri_from_string_(str)
281
+ #p "uri_from_string(#{str})"
281
282
  case str
282
283
  when %r%^file://(#{HOST})?(/.*)?$% then ::URI.parse(str)
283
284
  when %r/^[a-zA-Z]:/ then
@@ -49,13 +49,56 @@ module RIO
49
49
  require 'rio/rl/uri'
50
50
 
51
51
  class RL < RIO::RL::URIBase
52
- def initialize(*args)
53
- super
52
+ def initialize(arg0,*args)
53
+ #p callstr('initialize',arg0,*args)
54
+ super(*_sup_args(arg0,*args))
54
55
  @ftype = nil
55
56
  @names = nil
56
57
  end
57
- def self.splitrl(s)
58
+ def _sup_args(arg0,*args)
59
+ if arg0 == 'ftp:'
60
+ hn = args.shift || 'localhost'
61
+ us = args.shift
62
+ pw = args.shift
63
+ pt = args.shift || ''
64
+ ph = args.shift || '/'
65
+ tc = args.shift || ''
66
+ u = URI::FTP.new2(us,pw,hn,pt,ph,tc)
67
+ return [u]
68
+ else
69
+ return [arg0] + args
70
+ end
71
+ end
72
+ # def arg0_info_(arg0,*args)
73
+ # #p "arg0_info_(#{arg0.inspect},#{args.inspect})"
74
+ # vuri,vbase,vfs = nil,nil,nil
75
+ # case arg0
76
+ # when RIO::Rio
77
+ # return _init_from_arg(arg0.rl)
78
+ # when RIO::RL::URIBase,RIO::FTP::RL
79
+ # vuri,vbase,vfs = arg0.uri,arg0.base,arg0.fs
80
+ # when ::URI
81
+ # vuri = arg0
82
+ # when ::String
83
+ # vuri = uri_from_string_(arg0) || ::URI.parse(arg0)
84
+ # else
85
+ # raise(ArgumentError,"'#{arg0}'[#{arg0.class}] can not be used to create a Rio")
86
+ # end
87
+ # [vuri,vbase,vfs]
88
+ # end
89
+ # def build_arg0_(path_str)
90
+ # path_str
91
+ # end
92
+ def join(*args)
93
+ return self if args.empty?
94
+ join_(args.map{ |arg| RIO::RL.fs2url(arg.to_s)})
95
+ end
96
+
97
+
98
+ def self.splitrl(s)
99
+ #p "splitrl(#{s})"
58
100
  sub,opq,whole = split_riorl(s)
101
+ #p sub,opq,whole
59
102
  [whole]
60
103
  end
61
104
  def openfs_
@@ -87,14 +87,24 @@ RFC 1738 Uniform Resource Locators (URL) December 1994
87
87
  module REGEXP
88
88
  module PATTERN
89
89
  DRIVE_SPEC = "[A-Za-z]:"
90
- ABS_FILE_PATH = "(?:/#{DRIVE_SPEC})?/#{PATH_SEGMENTS}"
90
+ FILE_ESCAPED = ESCAPED
91
+ FILE_UNRESERVED = "-_.!~*'()#{ALNUM}"
92
+ FILE_PCHAR = "(?:[#{FILE_UNRESERVED}:@?&=+$,]|#{FILE_ESCAPED})"
93
+ FILE_SEGMENT = "#{FILE_PCHAR}*(?:;#{PARAM})*"
94
+ FILE_PATH_SEGMENTS = "#{FILE_SEGMENT}(?:/#{FILE_SEGMENT})*"
95
+ FILE_ABS_PATH = "(?:/#{DRIVE_SPEC})?/#{FILE_PATH_SEGMENTS}"
96
+
97
+ FILE_REL_SEGMENT = "(?:[#{FILE_UNRESERVED};@?&=+$,]|#{FILE_ESCAPED})+"
98
+ FILE_REL_PATH = "#{FILE_REL_SEGMENT}(?:#{FILE_ABS_PATH})?"
99
+
100
+ #FILE_ABS_PATH = "(?:/#{DRIVE_SPEC})?/#{FILE_PATH_SEGMENTS}(?:\\?#{QUERY})?"
91
101
  end
92
102
  EMPTYHOST = Regexp.new("^$", false, 'N').freeze #"
93
- ABS_FILE_PATH = Regexp.new("^#{PATTERN::ABS_FILE_PATH}$", false, 'N').freeze
103
+ FILE_ABS_PATH = Regexp.new("^#{PATTERN::FILE_ABS_PATH}$", false, 'N').freeze
94
104
  end # module REGEXP
95
105
 
96
106
  class FILE < Generic
97
- #ABS_FILE_PATH = REGEXP::ABS_FILE_PATH
107
+ #FILE_ABS_PATH = REGEXP::FILE_ABS_PATH
98
108
  COMPONENT = [
99
109
  :scheme,
100
110
  :host,
@@ -111,18 +121,19 @@ RFC 1738 Uniform Resource Locators (URL) December 1994
111
121
  # raise if both hier and opaque are not nil, because:
112
122
  # absoluteURI = scheme ":" ( hier_part | opaque_part )
113
123
  # hier_part = ( net_path | abs_path ) [ "?" query ]
124
+ #p "URI::FILE self=#{self} v=#{v}"
114
125
  if v && @opaque
115
126
  raise InvalidURIError,
116
127
  "path conflicts with opaque"
117
128
  end
118
129
 
119
130
  if @scheme
120
- if v && v != '' && ABS_FILE_PATH !~ v
131
+ if v && v != '' && FILE_ABS_PATH !~ v
121
132
  raise InvalidComponentError,
122
133
  "bad component(expected absolute path component): #{v}"
123
134
  end
124
135
  else
125
- if v && v != '' && ABS_FILE_PATH !~ v && REL_PATH !~ v
136
+ if v && v != '' && FILE_ABS_PATH !~ v && FILE_REL_PATH !~ v
126
137
  raise InvalidComponentError,
127
138
  "bad component(expected relative path component): #{v}"
128
139
  end
@@ -133,7 +144,6 @@ RFC 1738 Uniform Resource Locators (URL) December 1994
133
144
  private :check_path
134
145
 
135
146
  def path=(v)
136
- #p "self=#{self} v=#{v}"
137
147
  check_path(v)
138
148
  set_path(v)
139
149
  v
@@ -38,7 +38,7 @@
38
38
  module RIO
39
39
  # :stopdoc:
40
40
  module Version #:nodoc: all
41
- VERSION = '0.4.0'
41
+ VERSION = '0.4.1'
42
42
 
43
43
  N = VERSION.split('.').freeze
44
44
  MAJOR = N[0].freeze
@@ -0,0 +1,36 @@
1
+ #!/usr/local/bin/ruby
2
+ if $0 == __FILE__
3
+ Dir.chdir File.dirname(__FILE__)+'/../'
4
+ $:.unshift File.expand_path('../lib/')
5
+ end
6
+
7
+ require 'rio'
8
+ require 'tc/testcase'
9
+ require 'open-uri'
10
+ require 'ftp/testdef'
11
+
12
+ class TC_ftp_copy_data < Test::RIO::TestCase
13
+ @@once = false
14
+ include Test::RIO::FTP::Const
15
+
16
+ def self.once
17
+ @@once = true
18
+ end
19
+ def setup
20
+ super
21
+ self.class.once unless @@once
22
+ FS_RWROOT.entries { |ent| ent.delete! }
23
+ end
24
+
25
+ def test_copy_string
26
+ exp = "a string\n"
27
+ ario = rio(FTP_RWROOT,'file0') < exp
28
+ assert_equal(exp,ario.contents)
29
+ end
30
+ def test_copy_array
31
+ exp = (0..1).map{|n| "Line #{n}\n"}
32
+ ario = rio(FTP_RWROOT,'file0') < exp
33
+ assert_equal(exp,ario[])
34
+ end
35
+ end
36
+
@@ -6,10 +6,11 @@ module Test
6
6
  module Const
7
7
  FTPUSER = 'ftp'
8
8
 
9
- #DRV = $mswin32 ? 'x:' : ''
10
- #FSROOT = rio("#{DRV}/srv/ftp")
11
- FSROOT = rio("../../srv/ftp")
12
- FTPHOST = '192.168.1.101'
9
+ DRV = $mswin32 ? 'x:' : ''
10
+ FSROOT = rio("#{DRV}/srv/ftp")
11
+ #FSROOT = rio("../../srv/ftp")
12
+ #FTPHOST = '192.168.1.101'
13
+ FTPHOST = 'riotest.hopto.org'
13
14
  #FTPHOST = 'localhost'
14
15
  FTPROOT = rio("ftp://#{FTPHOST}/")
15
16
 
@@ -1,3 +1,4 @@
1
1
  require 'tc/testcase'
2
2
 
3
3
  require 'http/copy-from-http'
4
+ require 'http/uri-meta'
@@ -46,9 +46,9 @@ class TC_copy_from_http < Test::RIO::TestCase
46
46
  ario = rio('out.txt').delete! < rio(GZURL).gzip
47
47
  ans = rio(ario).contents
48
48
  exp = rio(GZFILE).gzip.contents
49
-
50
49
  assert_equal(exp,ans)
51
50
  end
51
+
52
52
  def test_uri_rio_to_file
53
53
  ario = rio('outf').delete!.touch
54
54
  url = HWURL
@@ -58,6 +58,7 @@ class TC_copy_from_http < Test::RIO::TestCase
58
58
  assert_equal(exp,ario.contents)
59
59
  assert_equal(rio(HWFILE).contents,rio('outf').contents)
60
60
  end
61
+
61
62
  def test_uri_rio_to_file2
62
63
  ario = rio('outf2').delete!.touch
63
64
  url = HWURL