rio 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (395) hide show
  1. data/COPYING +340 -0
  2. data/ChangeLog +755 -0
  3. data/README +65 -0
  4. data/RUNME.1st.rb +75 -0
  5. data/Rakefile +312 -0
  6. data/VERSION +1 -0
  7. data/doc/README_MSWIN32.txt +39 -0
  8. data/doc/RELEASE_NOTES +130 -0
  9. data/doc/generators/template/html/rio.rb +895 -0
  10. data/doc/rdoc/classes/Kernel.html +181 -0
  11. data/doc/rdoc/classes/Kernel.src/M000183.html +18 -0
  12. data/doc/rdoc/classes/RIO.html +508 -0
  13. data/doc/rdoc/classes/RIO.src/M000001.html +18 -0
  14. data/doc/rdoc/classes/RIO.src/M000002.html +18 -0
  15. data/doc/rdoc/classes/RIO.src/M000003.html +18 -0
  16. data/doc/rdoc/classes/RIO/Doc.html +138 -0
  17. data/doc/rdoc/classes/RIO/Doc/HOWTO.html +1031 -0
  18. data/doc/rdoc/classes/RIO/Doc/INTRO.html +1116 -0
  19. data/doc/rdoc/classes/RIO/Doc/MISC.html +443 -0
  20. data/doc/rdoc/classes/RIO/Doc/SYNOPSIS.html +325 -0
  21. data/doc/rdoc/classes/RIO/Rio.html +6333 -0
  22. data/doc/rdoc/classes/RIO/Rio.src/M000004.html +18 -0
  23. data/doc/rdoc/classes/RIO/Rio.src/M000005.html +20 -0
  24. data/doc/rdoc/classes/RIO/Rio.src/M000006.html +27 -0
  25. data/doc/rdoc/classes/RIO/Rio.src/M000007.html +27 -0
  26. data/doc/rdoc/classes/RIO/Rio.src/M000008.html +16 -0
  27. data/doc/rdoc/classes/RIO/Rio.src/M000009.html +18 -0
  28. data/doc/rdoc/classes/RIO/Rio.src/M000010.html +20 -0
  29. data/doc/rdoc/classes/RIO/Rio.src/M000011.html +16 -0
  30. data/doc/rdoc/classes/RIO/Rio.src/M000012.html +16 -0
  31. data/doc/rdoc/classes/RIO/Rio.src/M000013.html +16 -0
  32. data/doc/rdoc/classes/RIO/Rio.src/M000014.html +16 -0
  33. data/doc/rdoc/classes/RIO/Rio.src/M000015.html +16 -0
  34. data/doc/rdoc/classes/RIO/Rio.src/M000016.html +16 -0
  35. data/doc/rdoc/classes/RIO/Rio.src/M000017.html +16 -0
  36. data/doc/rdoc/classes/RIO/Rio.src/M000018.html +16 -0
  37. data/doc/rdoc/classes/RIO/Rio.src/M000019.html +16 -0
  38. data/doc/rdoc/classes/RIO/Rio.src/M000020.html +16 -0
  39. data/doc/rdoc/classes/RIO/Rio.src/M000021.html +16 -0
  40. data/doc/rdoc/classes/RIO/Rio.src/M000022.html +16 -0
  41. data/doc/rdoc/classes/RIO/Rio.src/M000023.html +16 -0
  42. data/doc/rdoc/classes/RIO/Rio.src/M000024.html +16 -0
  43. data/doc/rdoc/classes/RIO/Rio.src/M000025.html +16 -0
  44. data/doc/rdoc/classes/RIO/Rio.src/M000026.html +16 -0
  45. data/doc/rdoc/classes/RIO/Rio.src/M000027.html +16 -0
  46. data/doc/rdoc/classes/RIO/Rio.src/M000028.html +16 -0
  47. data/doc/rdoc/classes/RIO/Rio.src/M000029.html +16 -0
  48. data/doc/rdoc/classes/RIO/Rio.src/M000030.html +16 -0
  49. data/doc/rdoc/classes/RIO/Rio.src/M000031.html +16 -0
  50. data/doc/rdoc/classes/RIO/Rio.src/M000032.html +16 -0
  51. data/doc/rdoc/classes/RIO/Rio.src/M000033.html +16 -0
  52. data/doc/rdoc/classes/RIO/Rio.src/M000034.html +16 -0
  53. data/doc/rdoc/classes/RIO/Rio.src/M000035.html +16 -0
  54. data/doc/rdoc/classes/RIO/Rio.src/M000036.html +16 -0
  55. data/doc/rdoc/classes/RIO/Rio.src/M000037.html +16 -0
  56. data/doc/rdoc/classes/RIO/Rio.src/M000038.html +16 -0
  57. data/doc/rdoc/classes/RIO/Rio.src/M000039.html +16 -0
  58. data/doc/rdoc/classes/RIO/Rio.src/M000040.html +16 -0
  59. data/doc/rdoc/classes/RIO/Rio.src/M000041.html +16 -0
  60. data/doc/rdoc/classes/RIO/Rio.src/M000042.html +16 -0
  61. data/doc/rdoc/classes/RIO/Rio.src/M000043.html +16 -0
  62. data/doc/rdoc/classes/RIO/Rio.src/M000044.html +16 -0
  63. data/doc/rdoc/classes/RIO/Rio.src/M000045.html +16 -0
  64. data/doc/rdoc/classes/RIO/Rio.src/M000046.html +16 -0
  65. data/doc/rdoc/classes/RIO/Rio.src/M000047.html +16 -0
  66. data/doc/rdoc/classes/RIO/Rio.src/M000048.html +16 -0
  67. data/doc/rdoc/classes/RIO/Rio.src/M000049.html +16 -0
  68. data/doc/rdoc/classes/RIO/Rio.src/M000050.html +16 -0
  69. data/doc/rdoc/classes/RIO/Rio.src/M000051.html +16 -0
  70. data/doc/rdoc/classes/RIO/Rio.src/M000052.html +16 -0
  71. data/doc/rdoc/classes/RIO/Rio.src/M000053.html +16 -0
  72. data/doc/rdoc/classes/RIO/Rio.src/M000054.html +16 -0
  73. data/doc/rdoc/classes/RIO/Rio.src/M000055.html +16 -0
  74. data/doc/rdoc/classes/RIO/Rio.src/M000056.html +16 -0
  75. data/doc/rdoc/classes/RIO/Rio.src/M000057.html +16 -0
  76. data/doc/rdoc/classes/RIO/Rio.src/M000058.html +16 -0
  77. data/doc/rdoc/classes/RIO/Rio.src/M000059.html +16 -0
  78. data/doc/rdoc/classes/RIO/Rio.src/M000060.html +16 -0
  79. data/doc/rdoc/classes/RIO/Rio.src/M000061.html +16 -0
  80. data/doc/rdoc/classes/RIO/Rio.src/M000062.html +16 -0
  81. data/doc/rdoc/classes/RIO/Rio.src/M000063.html +16 -0
  82. data/doc/rdoc/classes/RIO/Rio.src/M000064.html +16 -0
  83. data/doc/rdoc/classes/RIO/Rio.src/M000065.html +16 -0
  84. data/doc/rdoc/classes/RIO/Rio.src/M000066.html +16 -0
  85. data/doc/rdoc/classes/RIO/Rio.src/M000067.html +16 -0
  86. data/doc/rdoc/classes/RIO/Rio.src/M000068.html +16 -0
  87. data/doc/rdoc/classes/RIO/Rio.src/M000069.html +16 -0
  88. data/doc/rdoc/classes/RIO/Rio.src/M000070.html +16 -0
  89. data/doc/rdoc/classes/RIO/Rio.src/M000071.html +16 -0
  90. data/doc/rdoc/classes/RIO/Rio.src/M000072.html +16 -0
  91. data/doc/rdoc/classes/RIO/Rio.src/M000073.html +16 -0
  92. data/doc/rdoc/classes/RIO/Rio.src/M000074.html +16 -0
  93. data/doc/rdoc/classes/RIO/Rio.src/M000075.html +16 -0
  94. data/doc/rdoc/classes/RIO/Rio.src/M000076.html +16 -0
  95. data/doc/rdoc/classes/RIO/Rio.src/M000077.html +16 -0
  96. data/doc/rdoc/classes/RIO/Rio.src/M000078.html +16 -0
  97. data/doc/rdoc/classes/RIO/Rio.src/M000079.html +16 -0
  98. data/doc/rdoc/classes/RIO/Rio.src/M000080.html +16 -0
  99. data/doc/rdoc/classes/RIO/Rio.src/M000081.html +16 -0
  100. data/doc/rdoc/classes/RIO/Rio.src/M000082.html +16 -0
  101. data/doc/rdoc/classes/RIO/Rio.src/M000083.html +16 -0
  102. data/doc/rdoc/classes/RIO/Rio.src/M000084.html +16 -0
  103. data/doc/rdoc/classes/RIO/Rio.src/M000085.html +16 -0
  104. data/doc/rdoc/classes/RIO/Rio.src/M000086.html +16 -0
  105. data/doc/rdoc/classes/RIO/Rio.src/M000087.html +16 -0
  106. data/doc/rdoc/classes/RIO/Rio.src/M000088.html +16 -0
  107. data/doc/rdoc/classes/RIO/Rio.src/M000089.html +16 -0
  108. data/doc/rdoc/classes/RIO/Rio.src/M000090.html +16 -0
  109. data/doc/rdoc/classes/RIO/Rio.src/M000091.html +16 -0
  110. data/doc/rdoc/classes/RIO/Rio.src/M000092.html +16 -0
  111. data/doc/rdoc/classes/RIO/Rio.src/M000093.html +16 -0
  112. data/doc/rdoc/classes/RIO/Rio.src/M000094.html +16 -0
  113. data/doc/rdoc/classes/RIO/Rio.src/M000095.html +16 -0
  114. data/doc/rdoc/classes/RIO/Rio.src/M000096.html +16 -0
  115. data/doc/rdoc/classes/RIO/Rio.src/M000097.html +16 -0
  116. data/doc/rdoc/classes/RIO/Rio.src/M000098.html +16 -0
  117. data/doc/rdoc/classes/RIO/Rio.src/M000099.html +16 -0
  118. data/doc/rdoc/classes/RIO/Rio.src/M000100.html +16 -0
  119. data/doc/rdoc/classes/RIO/Rio.src/M000101.html +16 -0
  120. data/doc/rdoc/classes/RIO/Rio.src/M000102.html +16 -0
  121. data/doc/rdoc/classes/RIO/Rio.src/M000103.html +16 -0
  122. data/doc/rdoc/classes/RIO/Rio.src/M000104.html +16 -0
  123. data/doc/rdoc/classes/RIO/Rio.src/M000105.html +16 -0
  124. data/doc/rdoc/classes/RIO/Rio.src/M000106.html +16 -0
  125. data/doc/rdoc/classes/RIO/Rio.src/M000107.html +16 -0
  126. data/doc/rdoc/classes/RIO/Rio.src/M000108.html +16 -0
  127. data/doc/rdoc/classes/RIO/Rio.src/M000109.html +16 -0
  128. data/doc/rdoc/classes/RIO/Rio.src/M000110.html +16 -0
  129. data/doc/rdoc/classes/RIO/Rio.src/M000111.html +16 -0
  130. data/doc/rdoc/classes/RIO/Rio.src/M000112.html +16 -0
  131. data/doc/rdoc/classes/RIO/Rio.src/M000113.html +16 -0
  132. data/doc/rdoc/classes/RIO/Rio.src/M000114.html +16 -0
  133. data/doc/rdoc/classes/RIO/Rio.src/M000115.html +16 -0
  134. data/doc/rdoc/classes/RIO/Rio.src/M000116.html +16 -0
  135. data/doc/rdoc/classes/RIO/Rio.src/M000117.html +16 -0
  136. data/doc/rdoc/classes/RIO/Rio.src/M000118.html +16 -0
  137. data/doc/rdoc/classes/RIO/Rio.src/M000119.html +16 -0
  138. data/doc/rdoc/classes/RIO/Rio.src/M000120.html +16 -0
  139. data/doc/rdoc/classes/RIO/Rio.src/M000121.html +16 -0
  140. data/doc/rdoc/classes/RIO/Rio.src/M000122.html +16 -0
  141. data/doc/rdoc/classes/RIO/Rio.src/M000123.html +16 -0
  142. data/doc/rdoc/classes/RIO/Rio.src/M000124.html +16 -0
  143. data/doc/rdoc/classes/RIO/Rio.src/M000125.html +16 -0
  144. data/doc/rdoc/classes/RIO/Rio.src/M000126.html +16 -0
  145. data/doc/rdoc/classes/RIO/Rio.src/M000127.html +16 -0
  146. data/doc/rdoc/classes/RIO/Rio.src/M000128.html +16 -0
  147. data/doc/rdoc/classes/RIO/Rio.src/M000129.html +16 -0
  148. data/doc/rdoc/classes/RIO/Rio.src/M000130.html +16 -0
  149. data/doc/rdoc/classes/RIO/Rio.src/M000131.html +16 -0
  150. data/doc/rdoc/classes/RIO/Rio.src/M000132.html +16 -0
  151. data/doc/rdoc/classes/RIO/Rio.src/M000133.html +16 -0
  152. data/doc/rdoc/classes/RIO/Rio.src/M000134.html +16 -0
  153. data/doc/rdoc/classes/RIO/Rio.src/M000135.html +16 -0
  154. data/doc/rdoc/classes/RIO/Rio.src/M000136.html +16 -0
  155. data/doc/rdoc/classes/RIO/Rio.src/M000137.html +16 -0
  156. data/doc/rdoc/classes/RIO/Rio.src/M000138.html +16 -0
  157. data/doc/rdoc/classes/RIO/Rio.src/M000139.html +16 -0
  158. data/doc/rdoc/classes/RIO/Rio.src/M000140.html +16 -0
  159. data/doc/rdoc/classes/RIO/Rio.src/M000141.html +16 -0
  160. data/doc/rdoc/classes/RIO/Rio.src/M000142.html +16 -0
  161. data/doc/rdoc/classes/RIO/Rio.src/M000143.html +16 -0
  162. data/doc/rdoc/classes/RIO/Rio.src/M000144.html +16 -0
  163. data/doc/rdoc/classes/RIO/Rio.src/M000145.html +16 -0
  164. data/doc/rdoc/classes/RIO/Rio.src/M000146.html +16 -0
  165. data/doc/rdoc/classes/RIO/Rio.src/M000147.html +16 -0
  166. data/doc/rdoc/classes/RIO/Rio.src/M000148.html +16 -0
  167. data/doc/rdoc/classes/RIO/Rio.src/M000149.html +16 -0
  168. data/doc/rdoc/classes/RIO/Rio.src/M000150.html +16 -0
  169. data/doc/rdoc/classes/RIO/Rio.src/M000151.html +16 -0
  170. data/doc/rdoc/classes/RIO/Rio.src/M000152.html +16 -0
  171. data/doc/rdoc/classes/RIO/Rio.src/M000153.html +16 -0
  172. data/doc/rdoc/classes/RIO/Rio.src/M000154.html +16 -0
  173. data/doc/rdoc/classes/RIO/Rio.src/M000155.html +16 -0
  174. data/doc/rdoc/classes/RIO/Rio.src/M000156.html +16 -0
  175. data/doc/rdoc/classes/RIO/Rio.src/M000157.html +16 -0
  176. data/doc/rdoc/classes/RIO/Rio.src/M000158.html +16 -0
  177. data/doc/rdoc/classes/RIO/Rio.src/M000159.html +16 -0
  178. data/doc/rdoc/classes/RIO/Rio.src/M000160.html +16 -0
  179. data/doc/rdoc/classes/RIO/Rio.src/M000161.html +16 -0
  180. data/doc/rdoc/classes/RIO/Rio.src/M000162.html +16 -0
  181. data/doc/rdoc/classes/RIO/Rio.src/M000163.html +16 -0
  182. data/doc/rdoc/classes/RIO/Rio.src/M000164.html +16 -0
  183. data/doc/rdoc/classes/RIO/Rio.src/M000165.html +16 -0
  184. data/doc/rdoc/classes/RIO/Rio.src/M000166.html +16 -0
  185. data/doc/rdoc/classes/RIO/Rio.src/M000167.html +16 -0
  186. data/doc/rdoc/classes/RIO/Rio.src/M000168.html +16 -0
  187. data/doc/rdoc/classes/RIO/Rio.src/M000169.html +16 -0
  188. data/doc/rdoc/classes/RIO/Rio.src/M000170.html +16 -0
  189. data/doc/rdoc/classes/RIO/Rio.src/M000171.html +16 -0
  190. data/doc/rdoc/classes/RIO/Rio.src/M000172.html +16 -0
  191. data/doc/rdoc/classes/RIO/Rio.src/M000173.html +16 -0
  192. data/doc/rdoc/classes/RIO/Rio.src/M000174.html +16 -0
  193. data/doc/rdoc/classes/RIO/Rio.src/M000175.html +16 -0
  194. data/doc/rdoc/classes/RIO/Rio.src/M000176.html +16 -0
  195. data/doc/rdoc/classes/RIO/Rio.src/M000177.html +16 -0
  196. data/doc/rdoc/classes/RIO/Rio.src/M000178.html +16 -0
  197. data/doc/rdoc/classes/RIO/Rio.src/M000179.html +16 -0
  198. data/doc/rdoc/classes/RIO/Rio.src/M000180.html +16 -0
  199. data/doc/rdoc/classes/RIO/Rio.src/M000181.html +16 -0
  200. data/doc/rdoc/classes/RIO/Rio.src/M000182.html +16 -0
  201. data/doc/rdoc/created.rid +1 -0
  202. data/doc/rdoc/files/README.html +215 -0
  203. data/doc/rdoc/files/lib/rio/constructor_rb.html +142 -0
  204. data/doc/rdoc/files/lib/rio/doc/HOWTO_rb.html +135 -0
  205. data/doc/rdoc/files/lib/rio/doc/INTRO_rb.html +135 -0
  206. data/doc/rdoc/files/lib/rio/doc/MISC_rb.html +135 -0
  207. data/doc/rdoc/files/lib/rio/doc/SYNOPSIS_rb.html +135 -0
  208. data/doc/rdoc/files/lib/rio/if/basic_rb.html +135 -0
  209. data/doc/rdoc/files/lib/rio/if/dir_rb.html +135 -0
  210. data/doc/rdoc/files/lib/rio/if/file_rb.html +135 -0
  211. data/doc/rdoc/files/lib/rio/if/fileordir_rb.html +135 -0
  212. data/doc/rdoc/files/lib/rio/if/grande_rb.html +135 -0
  213. data/doc/rdoc/files/lib/rio/if/internal_rb.html +135 -0
  214. data/doc/rdoc/files/lib/rio/if/methods_rb.html +135 -0
  215. data/doc/rdoc/files/lib/rio/if/path_rb.html +135 -0
  216. data/doc/rdoc/files/lib/rio/if/stream_rb.html +135 -0
  217. data/doc/rdoc/files/lib/rio/if/test_rb.html +135 -0
  218. data/doc/rdoc/files/lib/rio/kernel_rb.html +142 -0
  219. data/doc/rdoc/files/lib/rio_rb.html +153 -0
  220. data/doc/rdoc/fr_class_index.html +34 -0
  221. data/doc/rdoc/fr_file_index.html +44 -0
  222. data/doc/rdoc/fr_method_index.html +210 -0
  223. data/doc/rdoc/index.html +24 -0
  224. data/doc/rdoc/rdoc-style.css +384 -0
  225. data/doc/rfc1738.txt +1403 -0
  226. data/doc/rfc959.txt +3933 -0
  227. data/ex/colx.rb +6 -0
  228. data/ex/findinruby +19 -0
  229. data/ex/findruby +11 -0
  230. data/ex/prompt.rb +25 -0
  231. data/ex/rgb.txt.gz +0 -0
  232. data/ex/riocat +35 -0
  233. data/ex/riogunzip +31 -0
  234. data/ex/riogzip +24 -0
  235. data/ex/tolf +11 -0
  236. data/lib/rio.rb +163 -0
  237. data/lib/rio/abstract_method.rb +57 -0
  238. data/lib/rio/argv.rb +57 -0
  239. data/lib/rio/arrayio.rb +199 -0
  240. data/lib/rio/arycopy.rb +44 -0
  241. data/lib/rio/assert.rb +115 -0
  242. data/lib/rio/base.rb +59 -0
  243. data/lib/rio/constructor.rb +183 -0
  244. data/lib/rio/context.rb +117 -0
  245. data/lib/rio/context/chomp.rb +53 -0
  246. data/lib/rio/context/closeoneof.rb +50 -0
  247. data/lib/rio/context/cxx.rb +67 -0
  248. data/lib/rio/context/dir.rb +92 -0
  249. data/lib/rio/context/gzip.rb +51 -0
  250. data/lib/rio/context/methods.rb +196 -0
  251. data/lib/rio/context/stream.rb +170 -0
  252. data/lib/rio/cp.rb +305 -0
  253. data/lib/rio/cxdir.rb +79 -0
  254. data/lib/rio/dir.rb +145 -0
  255. data/lib/rio/doc.rb +45 -0
  256. data/lib/rio/doc/HOWTO.rb +691 -0
  257. data/lib/rio/doc/INTRO.rb +579 -0
  258. data/lib/rio/doc/MISC.rb +257 -0
  259. data/lib/rio/doc/SYNOPSIS.rb +170 -0
  260. data/lib/rio/entrysel.rb +162 -0
  261. data/lib/rio/exception.rb +42 -0
  262. data/lib/rio/exception/copy.rb +98 -0
  263. data/lib/rio/exception/open.rb +62 -0
  264. data/lib/rio/exception/state.rb +74 -0
  265. data/lib/rio/ext.rb +62 -0
  266. data/lib/rio/ext/csv.rb +261 -0
  267. data/lib/rio/factory.rb +236 -0
  268. data/lib/rio/file.rb +77 -0
  269. data/lib/rio/filter/chomp.rb +61 -0
  270. data/lib/rio/filter/closeoneof.rb +103 -0
  271. data/lib/rio/filter/gzip.rb +58 -0
  272. data/lib/rio/ftp.rb +275 -0
  273. data/lib/rio/ftp/conn.rb +167 -0
  274. data/lib/rio/ftp/ioh.rb +88 -0
  275. data/lib/rio/grande.rb +126 -0
  276. data/lib/rio/handle.rb +101 -0
  277. data/lib/rio/if.rb +53 -0
  278. data/lib/rio/if/basic.rb +64 -0
  279. data/lib/rio/if/dir.rb +362 -0
  280. data/lib/rio/if/file.rb +57 -0
  281. data/lib/rio/if/fileordir.rb +247 -0
  282. data/lib/rio/if/grande.rb +510 -0
  283. data/lib/rio/if/internal.rb +53 -0
  284. data/lib/rio/if/methods.rb +612 -0
  285. data/lib/rio/if/path.rb +413 -0
  286. data/lib/rio/if/stream.rb +599 -0
  287. data/lib/rio/if/test.rb +219 -0
  288. data/lib/rio/impl/path.rb +82 -0
  289. data/lib/rio/ioh.rb +137 -0
  290. data/lib/rio/iomode.rb +96 -0
  291. data/lib/rio/kernel.rb +47 -0
  292. data/lib/rio/local.rb +63 -0
  293. data/lib/rio/match.rb +51 -0
  294. data/lib/rio/matchrecord.rb +254 -0
  295. data/lib/rio/open3.rb +69 -0
  296. data/lib/rio/ops/create.rb +78 -0
  297. data/lib/rio/ops/dir.rb +302 -0
  298. data/lib/rio/ops/either.rb +117 -0
  299. data/lib/rio/ops/file.rb +94 -0
  300. data/lib/rio/ops/path.rb +292 -0
  301. data/lib/rio/ops/stream.rb +84 -0
  302. data/lib/rio/ops/stream/input.rb +237 -0
  303. data/lib/rio/ops/stream/output.rb +96 -0
  304. data/lib/rio/ops/stream/read.rb +84 -0
  305. data/lib/rio/ops/stream/write.rb +58 -0
  306. data/lib/rio/ops/symlink.rb +70 -0
  307. data/lib/rio/path.rb +117 -0
  308. data/lib/rio/path/reset.rb +70 -0
  309. data/lib/rio/record.rb +59 -0
  310. data/lib/rio/rectype.rb +86 -0
  311. data/lib/rio/rl/base.rb +147 -0
  312. data/lib/rio/rl/builder.rb +166 -0
  313. data/lib/rio/rl/ioi.rb +66 -0
  314. data/lib/rio/rl/path.rb +141 -0
  315. data/lib/rio/rl/uri.rb +118 -0
  316. data/lib/rio/scheme/aryio.rb +89 -0
  317. data/lib/rio/scheme/cmdio.rb +74 -0
  318. data/lib/rio/scheme/fd.rb +65 -0
  319. data/lib/rio/scheme/ftp.rb +73 -0
  320. data/lib/rio/scheme/http.rb +81 -0
  321. data/lib/rio/scheme/path.rb +100 -0
  322. data/lib/rio/scheme/stderr.rb +56 -0
  323. data/lib/rio/scheme/stdio.rb +71 -0
  324. data/lib/rio/scheme/strio.rb +82 -0
  325. data/lib/rio/scheme/sysio.rb +61 -0
  326. data/lib/rio/scheme/tcp.rb +74 -0
  327. data/lib/rio/scheme/tempfile.rb +104 -0
  328. data/lib/rio/state.rb +209 -0
  329. data/lib/rio/state/error.rb +73 -0
  330. data/lib/rio/stream.rb +181 -0
  331. data/lib/rio/stream/base.rb +50 -0
  332. data/lib/rio/stream/duplex.rb +76 -0
  333. data/lib/rio/stream/open.rb +203 -0
  334. data/lib/rio/symantics.rb +46 -0
  335. data/lib/rio/to_rio.rb +57 -0
  336. data/lib/rio/uri/file.rb +145 -0
  337. data/lib/rio/version.rb +52 -0
  338. data/setup.rb +1331 -0
  339. data/test/1.rb +14 -0
  340. data/test/mswin32.rb +28 -0
  341. data/test/once.rb +7 -0
  342. data/test/runtests.rb +12 -0
  343. data/test/runtests_gem.rb +15 -0
  344. data/test/tc/abs.rb +349 -0
  345. data/test/tc/all.rb +42 -0
  346. data/test/tc/cd1.rb +116 -0
  347. data/test/tc/clearsel.rb +69 -0
  348. data/test/tc/closeoncopy.rb +91 -0
  349. data/test/tc/closeoneof.rb +194 -0
  350. data/test/tc/copy-from.rb +183 -0
  351. data/test/tc/copy-to.rb +94 -0
  352. data/test/tc/copy.rb +72 -0
  353. data/test/tc/copyarray.rb +191 -0
  354. data/test/tc/copydest.rb +50 -0
  355. data/test/tc/copydir.rb +192 -0
  356. data/test/tc/copydirlines.rb +124 -0
  357. data/test/tc/copylines.rb +40 -0
  358. data/test/tc/copynonex.rb +121 -0
  359. data/test/tc/create.rb +104 -0
  360. data/test/tc/csv.rb +229 -0
  361. data/test/tc/dir.rb +79 -0
  362. data/test/tc/dirautoclose.rb +70 -0
  363. data/test/tc/dirent.rb +180 -0
  364. data/test/tc/dirss.rb +84 -0
  365. data/test/tc/each.rb +111 -0
  366. data/test/tc/each_break.rb +241 -0
  367. data/test/tc/edf.rb +82 -0
  368. data/test/tc/entary.rb +230 -0
  369. data/test/tc/eq.rb +101 -0
  370. data/test/tc/expand_path.rb +94 -0
  371. data/test/tc/ext.rb +115 -0
  372. data/test/tc/fileno.rb +95 -0
  373. data/test/tc/getrec.rb +140 -0
  374. data/test/tc/lineno.rb +197 -0
  375. data/test/tc/lines.rb +66 -0
  376. data/test/tc/methods.rb +185 -0
  377. data/test/tc/misc.rb +473 -0
  378. data/test/tc/nolines.rb +205 -0
  379. data/test/tc/noqae.rb +873 -0
  380. data/test/tc/once.rb +6 -0
  381. data/test/tc/overload.rb +137 -0
  382. data/test/tc/pa.rb +159 -0
  383. data/test/tc/pathop.rb +63 -0
  384. data/test/tc/paths.rb +147 -0
  385. data/test/tc/qae.rb +494 -0
  386. data/test/tc/qae_riovar.rb +500 -0
  387. data/test/tc/records.rb +69 -0
  388. data/test/tc/rename.rb +224 -0
  389. data/test/tc/rename_assign.rb +48 -0
  390. data/test/tc/sub.rb +49 -0
  391. data/test/tc/symlink.rb +177 -0
  392. data/test/tc/symlink0.rb +298 -0
  393. data/test/tc/symlink1.rb +115 -0
  394. data/test/tc/testcase.rb +152 -0
  395. metadata +461 -0
@@ -0,0 +1,205 @@
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 'test/unit'
9
+ require 'test/unit/testsuite'
10
+
11
+ class TC_RIO_nolines < Test::Unit::TestCase
12
+ def tdir() rio(%w/qp nolines/) end
13
+ def assert!(a,msg="negative assertion")
14
+ assert((!(a)),msg)
15
+ end
16
+ require 'extensions/symbol'
17
+ def smap(a) a.map( &:to_s ) end
18
+ def mkafile(*args)
19
+ file = rio(*args)
20
+ file < (0..1).map { |i| "L#{i}:#{file.to_s}\n" }
21
+ file
22
+ end
23
+ def mkalinesfile(n_lines,*args)
24
+ file = rio(*args)
25
+ file < (0...n_lines).map { |i| "L#{i}:#{file.to_s}\n" }
26
+ file
27
+ end
28
+ def setup
29
+ #$trace_states = true
30
+ @cwd = ::Dir.getwd
31
+ tdir.mkpath.chdir
32
+ end
33
+ def teardown
34
+ ::Dir.chdir @cwd
35
+ end
36
+
37
+ def test_symbol
38
+ rio('a').delete!.mkpath.chdir
39
+
40
+ file,lines = file_lines()
41
+
42
+ lines[1] = "\n"
43
+ lines[6] = "\n"
44
+ file < lines
45
+
46
+ exp = lines[0..0] + lines[2..5] + lines[7...8]
47
+ ans = file.chomp.nolines[:empty?]
48
+ assert_equal(exp.map(&:chomp),ans)
49
+
50
+ ans = file.nolines(:empty?).chomp.to_a
51
+ assert_equal(exp.map(&:chomp),ans)
52
+
53
+ file.close
54
+ rio('..').chdir
55
+ end
56
+ def file_lines(n_lines=8)
57
+ file = mkalinesfile(n_lines,'f1')
58
+ lines = file[]
59
+ (2..4).each do |n|
60
+ lines[n] = '#' + lines[n]
61
+ end
62
+ (0..3).each do |n|
63
+ lines[n].sub!(/f1/,'f2')
64
+ end
65
+ file < lines
66
+ [file,lines]
67
+ end
68
+ def test_basic
69
+ rio('a').delete!.mkpath.chdir
70
+ file,lines = file_lines()
71
+ exp = lines[1..1] + lines[5...8]
72
+
73
+ # iterate over the first line and comment lines
74
+ begin
75
+ f0 = file.dup
76
+ ans = f0.nolines[0,/^\s*#/]
77
+ assert_equal(exp,ans)
78
+ end
79
+
80
+ begin
81
+ f0 = file.dup
82
+ ans = f0.nolines[proc { |rec,rnum,rio| rnum == 0 || rec =~ /^\s*#/ }]
83
+ assert_equal(exp,ans)
84
+ end
85
+ begin
86
+ f0 = file.dup
87
+
88
+ #$trace_states = true
89
+ exp0 = lines[0..1] + lines[5...8]
90
+ ans = f0.nolines[/^\s*#/]
91
+ #p f0.cx
92
+ #$trace_states = false
93
+ assert_equal(exp0,ans)
94
+ end
95
+ end
96
+ def test_proc
97
+ file,lines = file_lines()
98
+ #p lines
99
+ exp1 = lines[4...8]
100
+ ans = file.lines[proc { |rec,rnum,ario| rec =~ /#{ario.filename}/ }]
101
+ assert_equal(exp1,ans)
102
+
103
+ exp2 = lines[2..4]
104
+ exp = exp1 - exp2
105
+ ans = file.lines(proc { |rec,rnum,ario| rec =~ /#{ario.filename}/ }).nolines[/^\s*#/]
106
+ assert_equal(exp,ans)
107
+
108
+ ans = file.nolines(/^\s*#/).lines[proc { |rec,rnum,ario| rec =~ /#{ario.filename}/ }]
109
+ assert_equal(exp,ans)
110
+ end
111
+
112
+ def test_ranges_ss
113
+ # $trace_states = true
114
+ lfile,lines = file_lines()
115
+
116
+ ans = rio('f1').nolines(2..4).lines[0..2]
117
+ exp = lines[6..6]
118
+
119
+ ans = rio('f1').norecords(0).records(0..2).norecords(2..4).records[6]
120
+ assert_equal(exp,ans)
121
+
122
+ ans = rio('f1').lines(0..2).nolines(0,2..4).lines[6]
123
+ assert_equal(exp,ans)
124
+ ans = rio('f1').nolines(0,2..4).lines[0..2,6]
125
+
126
+ assert_equal(lines[1..1]+lines[6..6],ans)
127
+
128
+
129
+ ans = rio('f1').nolines(0).lines(0..2).nolines(2..4).lines[6]
130
+ assert_equal(exp,ans)
131
+ ans = rio('f1').nolines(0).lines(0..2).nolines(2..4).lines[6]
132
+ assert_equal(exp,ans)
133
+ ans = rio('f1').records(0..2).norecords(0,2..4).records[6]
134
+ assert_equal(exp,ans)
135
+ ans = rio('f1').norecords(0,2..4).records[0..2,6]
136
+ assert_equal(lines[1..1]+lines[6..6],ans)
137
+
138
+ exp = lines[1..1] + lines[5..7]
139
+ ans = rio('f1').nolines(0,2..4).lines[0..2,6,/f1/]
140
+ assert_equal(exp,ans)
141
+
142
+
143
+ lfile.close
144
+ rio('..').chdir
145
+ end
146
+ def iter_tests(file,exp)
147
+ ans = file.clone.to_a
148
+ assert_equal(exp,ans)
149
+
150
+
151
+ ans = []
152
+ file.clone.each { |rec| ans << rec }
153
+ assert_equal(exp,ans)
154
+
155
+ ans = []
156
+ file.clone.each_record { |rec| ans << rec }
157
+ assert_equal(exp,ans)
158
+
159
+ ans = []
160
+ f = file.clone
161
+ while rec = f.getrec
162
+ ans << rec
163
+ end
164
+ assert_equal(exp,ans)
165
+
166
+
167
+ end
168
+ def test_ranges
169
+ # $trace_states = true
170
+ lfile,lines = file_lines()
171
+
172
+ file = lfile.dup.nolines(2..4).lines(0..2)
173
+ exp = lines[0..1]
174
+ #p "HEE"
175
+ # breakpoint
176
+ iter_tests(file,exp)
177
+
178
+ file = lfile.dup.norecords(0).records(0..2).norecords(2..4).records(6)
179
+ exp = lines[6..6]
180
+ iter_tests(file,exp)
181
+
182
+ file = lfile.dup.lines(0..2).nolines(0,2..4).lines(6)
183
+ iter_tests(file,exp)
184
+
185
+ file = lfile.dup.nolines(0,2..4).lines(0..2,6)
186
+ iter_tests(file,lines[1..1]+lines[6..6])
187
+
188
+ file = lfile.dup.nolines(0).lines(0..2).nolines(2..4).lines(6)
189
+ iter_tests(file,exp)
190
+
191
+ file = lfile.dup.records(0..2).norecords(0,2..4).records(6)
192
+ iter_tests(file,exp)
193
+
194
+ file = lfile.dup.norecords(0,2..4).records(0..2,6)
195
+ iter_tests(file,lines[1..1]+lines[6..6])
196
+
197
+ exp = lines[1..1] + lines[5..7]
198
+ file = lfile.dup.nolines(0,2..4).lines(0..2,6,/f1/)
199
+ iter_tests(file,exp)
200
+
201
+
202
+ lfile.close
203
+ rio('..').chdir
204
+ end
205
+ end
@@ -0,0 +1,873 @@
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 'test/unit'
9
+ require 'test/unit/testsuite'
10
+ require 'extensions/symbol'
11
+ require 'tc/testcase'
12
+ class TC_RIO_noqae < Test::Unit::TestCase
13
+ @@tdir = rio(%w/qp noqae/)
14
+ @@once = false
15
+ def initialize(*args)
16
+ super
17
+ end
18
+
19
+ def assert!(a,msg="negative assertion")
20
+ assert((!(a)),msg)
21
+ end
22
+ def smap(a) a.map( &:to_s ) end
23
+ def setup
24
+ s_dir = ''
25
+ #$trace_states = true
26
+ unless @@once
27
+ @@once = true
28
+
29
+ @@tdir.rmtree.mkpath.chdir do
30
+ rio('d0').mkpath.chdir {
31
+ rio('d2').mkpath
32
+ rio('d1').mkpath.chdir {
33
+ rio('d2').mkpath.chdir {
34
+ rio('d1').mkpath.chdir {
35
+ rio('f1') < (0..1).map { |i| "L#{i}:d0/d1/d2/d1/f1\n" }
36
+ rio('f2') < (0..1).map { |i| "L#{i}:d0/d1/d2/d1/f2\n" }
37
+ }
38
+ rio('f1') < (0..1).map { |i| "L#{i}:d0/d1/d2/f1\n" }
39
+ }
40
+ }
41
+ rio('f1') < (0..1).map { |i| "L#{i}:d0/f1\n" }
42
+ rio('f2') < (0..1).map { |i| "L#{i}:d0/f2\n" }
43
+ rio('x1').symlink('n1')
44
+ rio('x2').symlink('n2')
45
+ rio('f1').symlink('l1')
46
+ rio('f2').symlink('l2')
47
+ rio('d1').symlink('c1')
48
+ rio('d2').symlink('c2')
49
+ }
50
+
51
+ rio('d1').mkpath.chdir {
52
+ rio('d1').mkpath.chdir {
53
+ rio('f1') < (0..1).map { |i| "L#{i}:d1/d1/f1\n" }
54
+ rio('f2') < (0..1).map { |i| "L#{i}:d1/d1/f2\n" }
55
+ }
56
+ rio('d2').mkpath.chdir {
57
+ rio('d1').mkpath.chdir {
58
+ rio('f1') < (0..1).map { |i| "L#{i}:d1/d2/d1/f1\n" }
59
+ rio('f2') < (0..1).map { |i| "L#{i}:d1/d2/d1/f2\n" }
60
+ }
61
+ rio('d2').mkpath
62
+ }
63
+ rio('d3').mkpath.chdir {
64
+ rio('d1').mkpath.chdir {
65
+ rio('f1') < (0..1).map { |i| "L#{i}:d1/d3/d1/f1\n" }
66
+ rio('d1').mkpath
67
+ }
68
+ rio('f1') < (0..1).map { |i| "L#{i}:d1/d3/f1\n" }
69
+ }
70
+ }
71
+
72
+ end
73
+ end
74
+ end
75
+
76
+ def test_noqae_fs
77
+ return unless $supports_symlink
78
+ all = ['d0/d1','d0/d2','d0/c1','d0/c2','d0/f1','d0/f2','d0/n1','d0/n2','d0/l1','d0/l2']
79
+ rio('qp/noqae').chdir do
80
+ begin
81
+
82
+ begin
83
+ ans = []
84
+ rio('d0').each { |el| ans << el }
85
+ exp = all.dup
86
+ assert_equal(exp.sort,smap(ans).sort)
87
+ ans = rio('d0').to_a
88
+ assert_equal(exp.sort,smap(ans).sort)
89
+ ans = rio('d0').entries[]
90
+ assert_equal(exp.sort,smap(ans).sort)
91
+ end
92
+
93
+ end
94
+
95
+ begin
96
+ begin
97
+ ans = []
98
+ rio('d0').nodirs.each { |el| ans << el }
99
+ exp = all.reject { |el| el =~ /[cd]\d$/ }
100
+ assert_equal(exp.sort,smap(ans).sort)
101
+ ans = rio('d0').nodirs[]
102
+ assert_equal(exp.sort,smap(ans).sort)
103
+ end
104
+
105
+ begin
106
+ ans = []
107
+ rio('d0').nofiles.each { |el| ans << el }
108
+ exp = all.reject { |el| el =~ /[fl]\d$/ }
109
+ assert_equal(exp.sort,smap(ans).sort)
110
+ ans = rio('d0').nofiles[]
111
+ assert_equal(exp.sort,smap(ans).sort)
112
+ end
113
+
114
+ begin
115
+ ans = []
116
+ rio('d0').noentries.each { |el| ans << el }
117
+ exp = []
118
+ assert_equal(exp.sort,smap(ans).sort)
119
+ ans = rio('d0').noentries[]
120
+ assert_equal(exp.sort,smap(ans).sort)
121
+ end
122
+ end
123
+
124
+ begin
125
+ begin
126
+ ans = []
127
+ rio('d0').nodirs.nofiles.each { |el| ans << el }
128
+ exp = all.reject { |el| el =~ /[cdfl]\d$/ }
129
+ assert_equal(exp.sort,smap(ans).sort)
130
+ ans = rio('d0').nofiles.nodirs[]
131
+ assert_equal(exp.sort,smap(ans).sort)
132
+ ans = rio('d0').nodirs.nofiles[]
133
+ assert_equal(exp.sort,smap(ans).sort)
134
+ end
135
+
136
+ begin
137
+ ans = []
138
+ rio('d0').nodirs.files.each { |el| ans << el }
139
+ exp = all.select { |el| el =~ /[fl]\d$/ }
140
+ assert_equal(exp.sort,smap(ans).sort)
141
+ ans = rio('d0').nodirs.files[]
142
+ assert_equal(exp.sort,smap(ans).sort)
143
+ ans = rio('d0').files.nodirs[]
144
+ assert_equal(exp.sort,smap(ans).sort)
145
+ end
146
+
147
+ begin
148
+ exp = all.select { |el| el =~ /[n]\d$/ }
149
+ ans = []
150
+ rio('d0').entries.nofiles.nodirs.each { |el| ans << el }
151
+ assert_equal(exp.sort,smap(ans).sort)
152
+
153
+ ans = rio('d0').entries.nofiles.nodirs[]
154
+ assert_equal(exp.sort,smap(ans).sort)
155
+ ans = rio('d0').entries.nodirs.nofiles[]
156
+ assert_equal(exp.sort,smap(ans).sort)
157
+ ans = rio('d0').nofiles.nodirs.entries[]
158
+ assert_equal(exp.sort,smap(ans).sort)
159
+ ans = rio('d0').nofiles.nodirs[]
160
+ assert_equal(exp.sort,smap(ans).sort)
161
+ end
162
+
163
+ begin
164
+ exp = []
165
+ ans = []
166
+ rio('d0').noentries.dirs.each { |el| ans << el }
167
+ assert_equal(exp.sort,smap(ans).sort)
168
+ rio('d0').noentries.files.each { |el| ans << el }
169
+ assert_equal(exp.sort,smap(ans).sort)
170
+
171
+ ans = rio('d0').noentries.files[]
172
+ assert_equal(exp.sort,smap(ans).sort)
173
+ ans = rio('d0').noentries.dirs[]
174
+ assert_equal(exp.sort,smap(ans).sort)
175
+ end
176
+
177
+ begin
178
+ exp = []
179
+ ans = []
180
+ rio('d0').noentries.each { |el| ans << el }
181
+ assert_equal(exp.sort,smap(ans).sort)
182
+ ans = rio('d0').noentries[]
183
+ assert_equal(exp.sort,smap(ans).sort)
184
+ end
185
+ end
186
+ end
187
+ end
188
+
189
+ def test_noqae_fs_de
190
+ return unless $supports_symlink
191
+ all = ['d0/d1','d0/d2','d0/c1','d0/c2','d0/f1','d0/f2','d0/n1','d0/n2','d0/l1','d0/l2']
192
+ wd = ::Dir.getwd
193
+ rio('qp/noqae').chdir
194
+ begin
195
+ begin
196
+ ans = []
197
+ rio('d0').dirs.each { |el|
198
+ assert(el.directory?)
199
+ }
200
+ rio('d0').nodirs.each { |el|
201
+ assert!(el.directory?)
202
+ }
203
+ rio('d0').nodirs('*').each { |el|
204
+ assert(el.directory?)
205
+ }
206
+ rio('d0').files.each { |el|
207
+ assert(el.file?)
208
+ }
209
+ rio('d0').nofiles.each { |el|
210
+ assert!(el.file?)
211
+ }
212
+ rio('d0').nofiles('*').each { |el|
213
+ assert(el.file?)
214
+ }
215
+ begin
216
+ exp = all.select { |el| el =~ /[lnc]\d\Z/ }
217
+ ans = []
218
+ rio('d0').entries(:symlink?).each { |el|
219
+ assert(el.symlink?)
220
+ ans << el
221
+ }
222
+ assert_equal(exp.sort,smap(ans).sort)
223
+ end
224
+ begin
225
+ exp = all.select { |el| el =~ /[l]\d\Z/ }
226
+ ans = []
227
+ rio('d0').files(:symlink?).each { |el|
228
+ assert(el.file?)
229
+ assert(el.symlink?)
230
+ ans << el
231
+ }
232
+ assert_equal(exp.sort,smap(ans).sort)
233
+ end
234
+ begin
235
+ exp = all.select { |el| el =~ /[c]\d\Z/ }
236
+ ans = []
237
+ rio('d0').dirs(:symlink?).each { |el|
238
+ assert(el.directory?)
239
+ assert(el.symlink?)
240
+ ans << el
241
+ }
242
+ assert_equal(exp.sort,smap(ans).sort)
243
+ end
244
+ begin
245
+ exp = all.select { |el| el =~ /[df]\d\Z/ }
246
+ ans = []
247
+ rio('d0').noentries(:symlink?).each { |el|
248
+ assert!(el.symlink?)
249
+ ans << el
250
+ }
251
+ assert_equal(exp.sort,smap(ans).sort)
252
+ end
253
+ begin
254
+ exp = all.select { |el| el =~ /[d]\d\Z/ }
255
+ ans = []
256
+ rio('d0').nodirs(:symlink?).each { |el|
257
+ assert(el.directory?)
258
+ assert!(el.symlink?)
259
+ ans << el
260
+ }
261
+ assert_equal(exp.sort,smap(ans).sort)
262
+ end
263
+ begin
264
+ exp = all.select { |el| el =~ /[f]\d\Z/ }
265
+ ans = []
266
+ rio('d0').nofiles(:symlink?).each { |el|
267
+ assert(el.file?)
268
+ assert!(el.symlink?)
269
+ ans << el
270
+ }
271
+ assert_equal(exp.sort,smap(ans).sort)
272
+ end
273
+ end
274
+ end
275
+ rio(wd).chdir
276
+ end
277
+ def test_noqae_fs_re
278
+ return unless $supports_symlink
279
+ all = ['d0/d1','d0/d2','d0/c1','d0/c2','d0/f1','d0/f2','d0/n1','d0/n2','d0/l1','d0/l2']
280
+ rio('qp/noqae').chdir do
281
+ begin
282
+
283
+ begin
284
+ ere = /1/
285
+ exp = all.reject { |el| el =~ ere }
286
+ ans = []
287
+ rio('d0').noentries(ere).each { |el| ans << el }
288
+ assert_equal(exp.sort,smap(ans).sort)
289
+ ans = rio('d0').noentries(ere).to_a
290
+ assert_equal(exp.sort,smap(ans).sort)
291
+ ans = rio('d0').noentries[ere]
292
+ assert_equal(exp.sort,smap(ans).sort)
293
+ end
294
+
295
+ end
296
+
297
+ begin
298
+ begin
299
+ dre = /1/
300
+ exp = all.select { |el| el =~ /[cd]2$/ }
301
+ ans = []
302
+ rio('d0').nodirs(dre).each { |el| ans << el }
303
+ assert_equal(exp.sort,smap(ans).sort)
304
+ ans = rio('d0').nodirs[dre]
305
+ assert_equal(exp.sort,smap(ans).sort)
306
+ end
307
+
308
+ begin
309
+ dre = /1/
310
+ exp = all.select { |el| el =~ /[d]2$/ }
311
+ ans = []
312
+ rio('d0').nodirs(dre,:symlink?).each { |el| ans << el }
313
+ assert_equal(exp.sort,smap(ans).sort)
314
+ ans = rio('d0').nodirs[dre,:symlink?]
315
+ assert_equal(exp.sort,smap(ans).sort)
316
+ end
317
+
318
+ begin
319
+ fre = /2/
320
+ exp = all.select { |el| el =~ /[fl]1$/ }
321
+ ans = []
322
+ rio('d0').nofiles(fre).each { |el| ans << el }
323
+ assert_equal(exp.sort,smap(ans).sort)
324
+ ans = rio('d0').nofiles[fre]
325
+ assert_equal(exp.sort,smap(ans).sort)
326
+ end
327
+
328
+ begin
329
+ ere = /1/
330
+ exp = all.select { |el| el =~ /2$/ }
331
+ ans = []
332
+ rio('d0').noentries(ere).each { |el| ans << el }
333
+ assert_equal(exp.sort,smap(ans).sort)
334
+ ans = rio('d0').noentries[ere]
335
+ assert_equal(exp.sort,smap(ans).sort)
336
+ end
337
+ end
338
+
339
+ begin
340
+ dre = /1/
341
+ fre = /2/
342
+ begin
343
+ exp = all.select { |el| el =~ /([cd]2|[fl]1)$/ }
344
+ ans = []
345
+ rio('d0').nodirs(dre).nofiles(fre).each { |el| ans << el }
346
+ assert_equal(exp.sort,smap(ans).sort)
347
+ ans = rio('d0').nofiles(fre).nodirs[dre]
348
+ assert_equal(exp.sort,smap(ans).sort)
349
+ ans = rio('d0').nodirs(dre).nofiles[fre]
350
+ assert_equal(exp.sort,smap(ans).sort)
351
+ end
352
+
353
+ begin
354
+ exp = all.select { |el| el =~ /([cd]2|[fl]2)$/ }
355
+ ans = []
356
+ rio('d0').nodirs(dre).files(fre).each { |el| ans << el }
357
+ assert_equal(exp.sort,smap(ans).sort)
358
+ ans = rio('d0').nodirs(dre).files[fre]
359
+ assert_equal(exp.sort,smap(ans).sort)
360
+ ans = rio('d0').files(fre).nodirs[dre]
361
+ assert_equal(exp.sort,smap(ans).sort)
362
+ end
363
+
364
+ begin
365
+ exp = all.select { |el| el =~ /([cd]2|[fl]1|n[12])$/ }
366
+ ans = []
367
+ rio('d0').entries.nofiles(fre).nodirs(dre).each { |el| ans << el }
368
+ assert_equal(exp.sort,smap(ans).sort)
369
+
370
+ ans = rio('d0').entries.nofiles(fre).nodirs[dre]
371
+ assert_equal(exp.sort,smap(ans).sort)
372
+ ans = rio('d0').entries.nodirs(dre).nofiles[fre]
373
+ assert_equal(exp.sort,smap(ans).sort)
374
+ ans = rio('d0').nofiles(fre).nodirs(dre).entries[]
375
+ assert_equal(exp.sort,smap(ans).sort)
376
+ end
377
+
378
+ begin
379
+ ere = /1/
380
+ exp = all.select { |el| el =~ /([cd]2|[fl]1|n1)$/ }
381
+ ans = []
382
+ rio('d0').entries(ere).nofiles(fre).nodirs(dre).each { |el| ans << el }
383
+ assert_equal(exp.sort,smap(ans).sort)
384
+
385
+ ans = rio('d0').entries(ere).nofiles(fre).nodirs[dre]
386
+ assert_equal(exp.sort,smap(ans).sort)
387
+ ans = rio('d0').entries(ere).nodirs(dre).nofiles[fre]
388
+ assert_equal(exp.sort,smap(ans).sort)
389
+ ans = rio('d0').nofiles(fre).nodirs(dre).entries[ere]
390
+ assert_equal(exp.sort,smap(ans).sort)
391
+ end
392
+
393
+ begin
394
+ ere = /1/
395
+ dre = /c/
396
+ fre = /f/
397
+ exp = all.select { |el| el =~ /(d2|l2)$/ }
398
+ ans = []
399
+ rio('d0').noentries(ere).nofiles(fre).nodirs(dre).each { |el| ans << el }
400
+ assert_equal(exp.sort,smap(ans).sort)
401
+
402
+ ans = rio('d0').noentries(ere).nofiles(fre).nodirs[dre]
403
+ assert_equal(exp.sort,smap(ans).sort)
404
+ ans = rio('d0').noentries(ere).nodirs(dre).nofiles[fre]
405
+ assert_equal(exp.sort,smap(ans).sort)
406
+ ans = rio('d0').nofiles(fre).nodirs(dre).noentries[ere]
407
+ assert_equal(exp.sort,smap(ans).sort)
408
+ end
409
+
410
+ begin
411
+ exp = []
412
+ ans = []
413
+ rio('d0').noentries.dirs.each { |el| ans << el }
414
+ assert_equal(exp.sort,smap(ans).sort)
415
+ rio('d0').noentries.files.each { |el| ans << el }
416
+ assert_equal(exp.sort,smap(ans).sort)
417
+
418
+ ans = rio('d0').noentries.files[]
419
+ assert_equal(exp.sort,smap(ans).sort)
420
+ ans = rio('d0').noentries.dirs[]
421
+ assert_equal(exp.sort,smap(ans).sort)
422
+ end
423
+
424
+ begin
425
+ ere = /1/
426
+ exp = all.select { |el| el =~ /2$/ }
427
+ ans = []
428
+ rio('d0').noentries(ere).each { |el| ans << el }
429
+ assert_equal(exp.sort,smap(ans).sort)
430
+ ans = rio('d0').noentries[ere]
431
+ assert_equal(exp.sort,smap(ans).sort)
432
+ end
433
+ end
434
+ end
435
+ end
436
+
437
+ def ztest_noqae_fs_re
438
+ all = ['d0/d1','d0/d2','d0/c1','d0/c2','d0/f1','d0/f2','d0/n1','d0/n2','d0/l1','d0/l2']
439
+ rio('qp/noqae').chdir do
440
+ begin
441
+ begin
442
+ ans = []
443
+ rio('d0').nofiles(/2/).each { |el| ans << el }
444
+ exp = all.reject { |el| el =~ /[fl]\d$/ }
445
+ assert_equal(exp.sort,smap(ans).sort)
446
+ end
447
+
448
+ begin
449
+ ans = []
450
+ rio('d0').nofiles('*2').each { |el| ans << el }
451
+ exp = ['d0/f1']
452
+ assert_equal(exp.sort,smap(ans).sort)
453
+ end
454
+
455
+ end
456
+
457
+ begin
458
+ begin
459
+ ans = []
460
+ rio('d0').nofiles.each { |el| ans << el }
461
+ exp = ['d0/d1','d0/d2']
462
+ assert_equal(exp.sort,smap(ans).sort)
463
+ end
464
+
465
+ begin
466
+ ans = []
467
+ rio('d0').nodirs(/2/).each { |el| ans << el }
468
+ exp = ['d0/d1']
469
+ assert_equal(exp.sort,smap(ans).sort)
470
+ end
471
+
472
+ begin
473
+ ans = []
474
+ rio('d0').nodirs('*2').each { |el| ans << el }
475
+ exp = ['d0/d1']
476
+ assert_equal(exp.sort,smap(ans).sort)
477
+ end
478
+ end
479
+ begin
480
+ begin
481
+ ans = []
482
+ rio('d0').nofiles.dirs.each { |el| ans << el }
483
+ exp = ['d0/d1','d0/d2','d0/f1','d0/f2']
484
+ assert_equal(exp.sort,smap(ans).sort)
485
+ end
486
+ begin
487
+ ans = []
488
+ rio('d0').nofiles.dirs.each { |el| ans << el }
489
+ exp = ['d0/d1','d0/d2','d0/f1','d0/f2']
490
+ assert_equal(exp.sort,smap(ans).sort)
491
+ end
492
+ begin
493
+ ans = []
494
+ rio('d0').nofiles.dirs.each { |el| ans << el }
495
+ exp = ['d0/d1','d0/d2','d0/f1','d0/f2']
496
+ assert_equal(exp.sort,smap(ans).sort)
497
+ end
498
+ begin
499
+ ans = []
500
+ rio('d0').nofiles.dirs.each { |el| ans << el }
501
+ exp = ['d0/d1','d0/d2','d0/f1','d0/f2']
502
+ assert_equal(exp.sort,smap(ans).sort)
503
+ end
504
+ end
505
+
506
+
507
+ begin
508
+ begin
509
+ ans = []
510
+ rio('d0').files(/1/).dirs.each { |el| ans << el }
511
+ exp = ['d0/d1','d0/d2','d0/f1']
512
+ assert_equal(exp.sort,smap(ans).sort)
513
+ end
514
+
515
+ begin
516
+ ans = []
517
+ rio('d0').files.dirs(/1/).each { |el| ans << el }
518
+ exp = ['d0/d1','d0/f1','d0/f2']
519
+ assert_equal(exp.sort,smap(ans).sort)
520
+ end
521
+
522
+ begin
523
+ ans = []
524
+ rio('d0').files(/1/).dirs(/1/).each { |el| ans << el }
525
+ exp = ['d0/d1','d0/f1']
526
+ assert_equal(exp.sort,smap(ans).sort)
527
+ end
528
+
529
+ end
530
+ end
531
+ end
532
+ def ztest_noqae_fs_lines
533
+ rio('qp/noqae').chdir do
534
+ begin
535
+ begin
536
+ ans = []
537
+ rio('d0').files.each { |f|
538
+ f.each { |el|
539
+ ans << el
540
+ }
541
+ }
542
+ exp = ["L0:d0/f1\n","L1:d0/f1\n","L0:d0/f2\n","L1:d0/f2\n"]
543
+ assert_equal(exp.sort,smap(ans).sort)
544
+ end
545
+
546
+ begin
547
+ ans = []
548
+ rio('d0').files.lines.each { |el| ans << el }
549
+ exp = ["L0:d0/f1\n","L1:d0/f1\n","L0:d0/f2\n","L1:d0/f2\n"]
550
+ assert_equal(exp.sort,smap(ans).sort)
551
+ end
552
+
553
+ begin
554
+ ans = []
555
+ rio('d0').lines.files.each { |el| ans << el }
556
+ exp = ["L0:d0/f1\n","L1:d0/f1\n","L0:d0/f2\n","L1:d0/f2\n"]
557
+ assert_equal(exp.sort,smap(ans).sort)
558
+ end
559
+
560
+ begin
561
+ ans = []
562
+ rio('d0').files.lines(/L1/).each { |el| ans << el }
563
+ exp = ["L1:d0/f1\n","L1:d0/f2\n"]
564
+ assert_equal(exp.sort,smap(ans).sort)
565
+ end
566
+
567
+ begin
568
+ ans = []
569
+ rio('d0').lines(/L1/).files.each { |el| ans << el }
570
+ exp = ["L1:d0/f1\n","L1:d0/f2\n"]
571
+ assert_equal(exp.sort,smap(ans).sort)
572
+ end
573
+
574
+ begin
575
+ ans = []
576
+ rio('d0').lines.each { |el| ans << el }
577
+ exp = ["L0:d0/f1\n","L1:d0/f1\n","L0:d0/f2\n","L1:d0/f2\n"]
578
+ assert_equal(exp.sort,smap(ans).sort)
579
+ end
580
+
581
+ begin
582
+ ans = []
583
+ rio('d0').lines(/L1/).each { |el| ans << el }
584
+ exp = ["L1:d0/f1\n","L1:d0/f2\n"]
585
+ assert_equal(exp.sort,smap(ans).sort)
586
+ end
587
+
588
+ end
589
+ end
590
+ end
591
+
592
+ def ztest_noqae_fs_lines_ss
593
+ rio('qp/noqae').chdir do
594
+ begin
595
+ begin
596
+ ans = []
597
+ rio('d0').files.each { |f|
598
+ f.each { |el|
599
+ ans << el
600
+ }
601
+ }
602
+ exp = ["L0:d0/f1\n","L1:d0/f1\n","L0:d0/f2\n","L1:d0/f2\n"]
603
+ assert_equal(exp.sort,smap(ans).sort)
604
+ end
605
+
606
+ begin
607
+ ans = rio('d0').files.lines[]
608
+ exp = ["L0:d0/f1\n","L1:d0/f1\n","L0:d0/f2\n","L1:d0/f2\n"]
609
+ assert_equal(exp.sort,smap(ans).sort)
610
+ end
611
+
612
+ begin
613
+ ans = rio('d0').lines.files[]
614
+ exp = ["L0:d0/f1\n","L1:d0/f1\n","L0:d0/f2\n","L1:d0/f2\n"]
615
+ assert_equal(exp.sort,smap(ans).sort)
616
+ end
617
+
618
+ begin
619
+ ans = rio('d0').files.lines[/L1/]
620
+ exp = ["L1:d0/f1\n","L1:d0/f2\n"]
621
+ assert_equal(exp.sort,smap(ans).sort)
622
+ end
623
+
624
+ begin
625
+ ans = rio('d0').lines(/L1/).files[]
626
+ exp = ["L1:d0/f1\n","L1:d0/f2\n"]
627
+ assert_equal(exp.sort,smap(ans).sort)
628
+ end
629
+
630
+ begin
631
+ ans = rio('d0').lines[]
632
+ exp = ["L0:d0/f1\n","L1:d0/f1\n","L0:d0/f2\n","L1:d0/f2\n"]
633
+ assert_equal(exp.sort,smap(ans).sort)
634
+ end
635
+
636
+ begin
637
+ ans = rio('d0').lines[/L1/]
638
+ exp = ["L1:d0/f1\n","L1:d0/f2\n"]
639
+ assert_equal(exp.sort,smap(ans).sort)
640
+ end
641
+
642
+ end
643
+ end
644
+ end
645
+
646
+ def ztest_noqae_chomp
647
+ rio('qp/noqae').chdir do
648
+ begin
649
+ begin
650
+ ans = []
651
+ rio('d0/f1').each { |el|
652
+ ans << el
653
+ }
654
+ exp = ["L0:d0/f1\n","L1:d0/f1\n"]
655
+ assert_equal(exp,ans)
656
+ end
657
+
658
+ begin
659
+ ans = []
660
+ rio('d0/f1').chomp.each { |el|
661
+ ans << el
662
+ }
663
+ exp = ["L0:d0/f1","L1:d0/f1"]
664
+ assert_equal(exp,ans)
665
+ end
666
+
667
+ end
668
+ end
669
+ end
670
+
671
+ def ztest_noqae_fs_nest
672
+ ds = ['d1/d1','d1/d2','d1/d1/f1','d1/d1/f2','d1/d2/d1','d1/d2/d1/f1','d1/d2/d1/f2','d1/d2/d2',
673
+ 'd1/d3','d1/d3/d1','d1/d3/f1','d1/d3/d1/f1','d1/d3/d1/d1']
674
+ rio('qp/noqae').chdir do
675
+ begin
676
+ begin
677
+ ans = []
678
+ rio('d1').dirs.each { |dir|
679
+ dir.each { |ent|
680
+ ans << ent
681
+ }
682
+ }
683
+ exp = ds.select { |el| el =~ %r|^d1/d\d/.\d$| }
684
+ assert_equal(smap(exp).sort,smap(ans).sort)
685
+ end
686
+
687
+ begin
688
+ ans = []
689
+ rio('d1').dirs.each { |dir|
690
+ dir.dirs.each { |ent|
691
+ ans << ent
692
+ }
693
+ }
694
+ exp = ds.select { |el| el =~ %r|^d1/d\d/d\d$| }
695
+ assert_equal(smap(exp).sort,smap(ans).sort)
696
+ end
697
+
698
+ begin
699
+ ans = []
700
+ rio('d1').dirs.each { |dir|
701
+ dir.dirs(/1/).each { |ent|
702
+ ans << ent
703
+ }
704
+ }
705
+ exp = ds.select { |el| el =~ %r|^d1/d\d/d1$| }
706
+ assert_equal(smap(exp).sort,smap(ans).sort)
707
+ end
708
+
709
+ begin
710
+ ans = []
711
+ rio('d1').dirs.each { |dir|
712
+ dir.all.dirs.each { |ent|
713
+ ans << ent
714
+ }
715
+ }
716
+ exp = ds.select { |el| el =~ %r|^d1/d\d/| && el =~ %r|d\d$|}
717
+ assert_equal(smap(exp).sort,smap(ans).sort)
718
+ end
719
+
720
+ begin
721
+ ans = []
722
+ rio('d1').dirs.each { |dir|
723
+ dir.all.dirs(/1/).each { |ent|
724
+ ans << ent
725
+ }
726
+ }
727
+ exp = ds.select { |el| el =~ %r|^d1/d\d/| && el =~ %r|d1$|}
728
+ assert_equal(smap(exp).sort,smap(ans).sort)
729
+ end
730
+
731
+
732
+ begin
733
+ ans = []
734
+ rio('d1').dirs.each { |dir|
735
+ dir.files.each { |ent|
736
+ ans << ent
737
+ }
738
+ }
739
+ exp = ds.select { |el| el =~ %r|^d1/d\d/q\d$| }
740
+ assert_equal(smap(exp).sort,smap(ans).sort)
741
+ end
742
+
743
+ begin
744
+ ans = []
745
+ rio('d1').dirs.each { |dir|
746
+ dir.files(/1/).each { |ent|
747
+ ans << ent
748
+ }
749
+ }
750
+ exp = ds.select { |el| el =~ %r|^d1/d\d/f1$| }
751
+ assert_equal(smap(exp).sort,smap(ans).sort)
752
+ end
753
+
754
+ begin
755
+ ans = []
756
+ rio('d1').dirs.each { |dir|
757
+ dir.all.files.each { |ent|
758
+ ans << ent
759
+ }
760
+ }
761
+ exp = ds.select { |el| el =~ %r|^d1/d\d/| && el =~ %r|q\d$|}
762
+ assert_equal(smap(exp).sort,smap(ans).sort)
763
+ end
764
+
765
+ begin
766
+ ans = []
767
+ rio('d1').dirs.each { |dir|
768
+ dir.all.files(/1/).each { |ent|
769
+ ans << ent
770
+ }
771
+ }
772
+ exp = ds.select { |el| el =~ %r|^d1/d\d/| && el =~ %r|f1$|}
773
+ assert_equal(smap(exp).sort,smap(ans).sort)
774
+ end
775
+
776
+ end
777
+ end
778
+ end
779
+
780
+ def ztest_noqae_fs_all
781
+ ds = ['d0/d1','d0/d2','d0/f1','d0/f2','d0/d1/d2','d0/d1/d2/d1','d0/d1/d2/f1','d0/d1/d2/d1/f1','d0/d1/d2/d1/f2']
782
+ rio('qp/noqae').chdir do
783
+ begin
784
+ begin
785
+ ans = []
786
+ rio('d0').all.each { |el| ans << el }
787
+ exp = ds.dup
788
+ assert_equal(exp.sort,smap(ans).sort)
789
+ end
790
+
791
+ end
792
+
793
+ begin
794
+ begin
795
+ ans = []
796
+ rio('d0').all.files.dirs.each { |el| ans << el }
797
+ exp = ds.select { |el| el =~ /[qd]\d$/ }
798
+ assert_equal(exp.sort,smap(ans).sort)
799
+ end
800
+
801
+ begin
802
+ ans = []
803
+ rio('d0').all.files(/1/).dirs.each { |el| ans << el }
804
+ exp = ds.select { |el| el =~ /(d\d|f1)$/ }
805
+ assert_equal(exp.sort,smap(ans).sort)
806
+ end
807
+
808
+ begin
809
+ ans = []
810
+ rio('d0').all.files.dirs(/1/).each { |el| ans << el }
811
+ exp = ds.select { |el| el =~ /(q\d|d1)$/ }
812
+ assert_equal(exp.sort,smap(ans).sort)
813
+ end
814
+
815
+ begin
816
+ ans = []
817
+ rio('d0').all.files(/1/).dirs(/1/).each { |el| ans << el }
818
+ exp = ds.select { |el| el =~ /[qd]1$/ }
819
+ assert_equal(exp.sort,smap(ans).sort)
820
+ end
821
+
822
+ end
823
+
824
+ begin
825
+ begin
826
+ ans = []
827
+ rio('d0').all.files.each { |el| ans << el }
828
+ exp = ds.select { |el| el =~ /q\d$/ }
829
+ assert_equal(exp.sort,smap(ans).sort)
830
+ end
831
+
832
+ begin
833
+ ans = []
834
+ rio('d0').all.files(/1/).each { |el| ans << el }
835
+ exp = ds.select { |el| el =~ /f1$/ }
836
+ assert_equal(exp.sort,smap(ans).sort)
837
+ end
838
+
839
+ begin
840
+ ans = []
841
+ rio('d0').all.files('*1').each { |el| ans << el }
842
+ exp = ds.select { |el| el =~ /f1$/ }
843
+ assert_equal(exp.sort,smap(ans).sort)
844
+ end
845
+
846
+ end
847
+
848
+ begin
849
+ begin
850
+ ans = []
851
+ rio('d0').all.dirs.each { |el| ans << el }
852
+ exp = ds.reject { |el| el =~ /q\d$/ }
853
+ assert_equal(exp.sort,smap(ans).sort)
854
+ end
855
+
856
+ begin
857
+ ans = []
858
+ rio('d0').all.dirs(/1/).each { |el| ans << el }
859
+ exp = ds.select { |el| el =~ /d1$/ }
860
+ assert_equal(exp.sort,smap(ans).sort)
861
+ end
862
+
863
+ begin
864
+ ans = []
865
+ rio('d0').all.dirs('*1').each { |el| ans << el }
866
+ exp = ds.select { |el| el =~ /d1$/ }
867
+ assert_equal(exp.sort,smap(ans).sort)
868
+ end
869
+
870
+ end
871
+ end
872
+ end
873
+ end