rio 0.3.6 → 0.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. data/ChangeLog +171 -0
  2. data/README +3 -16
  3. data/RUNME.1st.rb +1 -3
  4. data/Rakefile +10 -7
  5. data/VERSION +1 -1
  6. data/doc/ANNOUNCE +1 -1
  7. data/doc/RELEASE_NOTES +3 -4
  8. data/ex/colx.rb +8 -0
  9. data/ex/findinruby +16 -0
  10. data/ex/findruby +15 -0
  11. data/ex/passwd_report.rb +8 -0
  12. data/ex/prompt.rb +25 -0
  13. data/ex/rgb.txt.gz +0 -0
  14. data/ex/riocat +35 -0
  15. data/ex/riogunzip +31 -0
  16. data/ex/riogzip +24 -0
  17. data/ex/rioprompt.rb +6 -0
  18. data/ex/targz2zip +17 -0
  19. data/ex/tolf +11 -0
  20. data/lib/rio.rb +0 -3
  21. data/lib/rio/construct.rb +14 -20
  22. data/lib/rio/dir.rb +2 -2
  23. data/lib/rio/doc/INTRO.rb +12 -16
  24. data/lib/rio/ext.rb +2 -1
  25. data/lib/rio/ext/csv.rb +5 -1
  26. data/lib/rio/ext/yaml.rb +11 -12
  27. data/lib/rio/filter.rb +1 -1
  28. data/lib/rio/ftp.rb +1 -1
  29. data/lib/rio/if/dir.rb +2 -2
  30. data/lib/rio/if/grande.rb +7 -1
  31. data/lib/rio/if/yaml.rb +1 -1
  32. data/lib/rio/ioh.rb +11 -1
  33. data/lib/rio/ops/construct.rb +11 -10
  34. data/lib/rio/ops/dir.rb +38 -19
  35. data/lib/rio/rl/ioi.rb +2 -2
  36. data/lib/rio/scheme/temp.rb +2 -2
  37. data/lib/rio/state.rb +1 -1
  38. data/lib/rio/stream/open.rb +9 -6
  39. data/lib/rio/util.rb +49 -0
  40. data/lib/rio/version.rb +1 -1
  41. data/test/tc/all.rb +3 -1
  42. data/test/tc/cd1.rb +0 -3
  43. data/test/tc/clearsel.rb +1 -2
  44. data/test/tc/copy-from.rb +0 -3
  45. data/test/tc/copy-to.rb +0 -3
  46. data/test/tc/copyarray.rb +1 -4
  47. data/test/tc/copydir.rb +0 -3
  48. data/test/tc/copydirlines.rb +0 -3
  49. data/test/tc/copynonex.rb +0 -3
  50. data/test/tc/csv.rb +0 -3
  51. data/test/tc/dir.rb +0 -3
  52. data/test/tc/dir_iter.rb +384 -0
  53. data/test/tc/dirautoclose.rb +4 -7
  54. data/test/tc/dirent.rb +3 -5
  55. data/test/tc/dirss.rb +2 -5
  56. data/test/tc/each.rb +3 -3
  57. data/test/tc/each_break.rb +17 -28
  58. data/test/tc/edf.rb +1 -2
  59. data/test/tc/entary.rb +1 -4
  60. data/test/tc/expand_path.rb +1 -2
  61. data/test/tc/ext.rb +0 -3
  62. data/test/tc/fileno.rb +1 -2
  63. data/test/tc/get.rb +151 -0
  64. data/test/tc/lineno.rb +1 -2
  65. data/test/tc/methods.rb +1 -1
  66. data/test/tc/misc.rb +1 -5
  67. data/test/tc/nolines.rb +3 -4
  68. data/test/tc/noqae.rb +1 -4
  69. data/test/tc/pa.rb +1 -2
  70. data/test/tc/pathop.rb +0 -3
  71. data/test/tc/paths.rb +1 -3
  72. data/test/tc/qae.rb +1 -2
  73. data/test/tc/qae_riovar.rb +1 -2
  74. data/test/tc/records.rb +1 -2
  75. data/test/tc/rename.rb +1 -3
  76. data/test/tc/rename_assign.rb +0 -3
  77. data/test/tc/riorl.rb +82 -52
  78. data/test/tc/selnosel.rb +0 -3
  79. data/test/tc/sub.rb +0 -3
  80. data/test/tc/symlink.rb +1 -2
  81. data/test/tc/symlink0.rb +1 -2
  82. data/test/tc/symlink1.rb +1 -2
  83. data/test/tc/temp.rb +0 -3
  84. data/test/tc/tempdir.rb +0 -3
  85. data/test/tc/tempfile.rb +0 -3
  86. data/test/tc/testcase.rb +9 -4
  87. data/test/tc/yaml.rb +11 -1
  88. metadata +141 -386
  89. data/doc/rdoc/classes/Kernel.html +0 -181
  90. data/doc/rdoc/classes/Kernel.src/M000214.html +0 -18
  91. data/doc/rdoc/classes/RIO.html +0 -621
  92. data/doc/rdoc/classes/RIO.src/M000001.html +0 -18
  93. data/doc/rdoc/classes/RIO.src/M000002.html +0 -18
  94. data/doc/rdoc/classes/RIO.src/M000003.html +0 -18
  95. data/doc/rdoc/classes/RIO/Doc.html +0 -138
  96. data/doc/rdoc/classes/RIO/Doc/HOWTO.html +0 -1040
  97. data/doc/rdoc/classes/RIO/Doc/INTRO.html +0 -1613
  98. data/doc/rdoc/classes/RIO/Doc/MISC.html +0 -443
  99. data/doc/rdoc/classes/RIO/Doc/SYNOPSIS.html +0 -338
  100. data/doc/rdoc/classes/RIO/IF.html +0 -114
  101. data/doc/rdoc/classes/RIO/IF/CSV.html +0 -202
  102. data/doc/rdoc/classes/RIO/IF/CSV.src/M000004.html +0 -19
  103. data/doc/rdoc/classes/RIO/IF/CSV.src/M000005.html +0 -16
  104. data/doc/rdoc/classes/RIO/IF/CSV.src/M000006.html +0 -16
  105. data/doc/rdoc/classes/RIO/IF/YAML.html +0 -499
  106. data/doc/rdoc/classes/RIO/IF/YAML.src/M000007.html +0 -19
  107. data/doc/rdoc/classes/RIO/IF/YAML.src/M000008.html +0 -16
  108. data/doc/rdoc/classes/RIO/IF/YAML.src/M000009.html +0 -16
  109. data/doc/rdoc/classes/RIO/IF/YAML.src/M000010.html +0 -16
  110. data/doc/rdoc/classes/RIO/IF/YAML.src/M000011.html +0 -16
  111. data/doc/rdoc/classes/RIO/IF/YAML.src/M000012.html +0 -16
  112. data/doc/rdoc/classes/RIO/IF/YAML.src/M000013.html +0 -16
  113. data/doc/rdoc/classes/RIO/IF/YAML.src/M000014.html +0 -16
  114. data/doc/rdoc/classes/RIO/IF/YAML.src/M000015.html +0 -16
  115. data/doc/rdoc/classes/RIO/IF/YAML.src/M000016.html +0 -16
  116. data/doc/rdoc/classes/RIO/IF/YAML.src/M000017.html +0 -16
  117. data/doc/rdoc/classes/RIO/Rio.html +0 -7121
  118. data/doc/rdoc/classes/RIO/Rio.src/M000018.html +0 -18
  119. data/doc/rdoc/classes/RIO/Rio.src/M000019.html +0 -20
  120. data/doc/rdoc/classes/RIO/Rio.src/M000020.html +0 -27
  121. data/doc/rdoc/classes/RIO/Rio.src/M000021.html +0 -16
  122. data/doc/rdoc/classes/RIO/Rio.src/M000023.html +0 -19
  123. data/doc/rdoc/classes/RIO/Rio.src/M000024.html +0 -20
  124. data/doc/rdoc/classes/RIO/Rio.src/M000025.html +0 -16
  125. data/doc/rdoc/classes/RIO/Rio.src/M000026.html +0 -16
  126. data/doc/rdoc/classes/RIO/Rio.src/M000027.html +0 -16
  127. data/doc/rdoc/classes/RIO/Rio.src/M000028.html +0 -16
  128. data/doc/rdoc/classes/RIO/Rio.src/M000029.html +0 -16
  129. data/doc/rdoc/classes/RIO/Rio.src/M000030.html +0 -16
  130. data/doc/rdoc/classes/RIO/Rio.src/M000031.html +0 -16
  131. data/doc/rdoc/classes/RIO/Rio.src/M000032.html +0 -16
  132. data/doc/rdoc/classes/RIO/Rio.src/M000033.html +0 -16
  133. data/doc/rdoc/classes/RIO/Rio.src/M000034.html +0 -16
  134. data/doc/rdoc/classes/RIO/Rio.src/M000035.html +0 -16
  135. data/doc/rdoc/classes/RIO/Rio.src/M000036.html +0 -16
  136. data/doc/rdoc/classes/RIO/Rio.src/M000037.html +0 -16
  137. data/doc/rdoc/classes/RIO/Rio.src/M000038.html +0 -16
  138. data/doc/rdoc/classes/RIO/Rio.src/M000039.html +0 -16
  139. data/doc/rdoc/classes/RIO/Rio.src/M000040.html +0 -16
  140. data/doc/rdoc/classes/RIO/Rio.src/M000041.html +0 -16
  141. data/doc/rdoc/classes/RIO/Rio.src/M000042.html +0 -16
  142. data/doc/rdoc/classes/RIO/Rio.src/M000043.html +0 -16
  143. data/doc/rdoc/classes/RIO/Rio.src/M000044.html +0 -16
  144. data/doc/rdoc/classes/RIO/Rio.src/M000045.html +0 -16
  145. data/doc/rdoc/classes/RIO/Rio.src/M000046.html +0 -16
  146. data/doc/rdoc/classes/RIO/Rio.src/M000047.html +0 -16
  147. data/doc/rdoc/classes/RIO/Rio.src/M000048.html +0 -16
  148. data/doc/rdoc/classes/RIO/Rio.src/M000049.html +0 -16
  149. data/doc/rdoc/classes/RIO/Rio.src/M000050.html +0 -16
  150. data/doc/rdoc/classes/RIO/Rio.src/M000051.html +0 -16
  151. data/doc/rdoc/classes/RIO/Rio.src/M000052.html +0 -16
  152. data/doc/rdoc/classes/RIO/Rio.src/M000053.html +0 -16
  153. data/doc/rdoc/classes/RIO/Rio.src/M000054.html +0 -16
  154. data/doc/rdoc/classes/RIO/Rio.src/M000055.html +0 -16
  155. data/doc/rdoc/classes/RIO/Rio.src/M000056.html +0 -16
  156. data/doc/rdoc/classes/RIO/Rio.src/M000057.html +0 -16
  157. data/doc/rdoc/classes/RIO/Rio.src/M000058.html +0 -16
  158. data/doc/rdoc/classes/RIO/Rio.src/M000059.html +0 -16
  159. data/doc/rdoc/classes/RIO/Rio.src/M000060.html +0 -16
  160. data/doc/rdoc/classes/RIO/Rio.src/M000061.html +0 -16
  161. data/doc/rdoc/classes/RIO/Rio.src/M000062.html +0 -16
  162. data/doc/rdoc/classes/RIO/Rio.src/M000063.html +0 -16
  163. data/doc/rdoc/classes/RIO/Rio.src/M000064.html +0 -16
  164. data/doc/rdoc/classes/RIO/Rio.src/M000065.html +0 -16
  165. data/doc/rdoc/classes/RIO/Rio.src/M000066.html +0 -16
  166. data/doc/rdoc/classes/RIO/Rio.src/M000067.html +0 -16
  167. data/doc/rdoc/classes/RIO/Rio.src/M000068.html +0 -16
  168. data/doc/rdoc/classes/RIO/Rio.src/M000069.html +0 -16
  169. data/doc/rdoc/classes/RIO/Rio.src/M000070.html +0 -16
  170. data/doc/rdoc/classes/RIO/Rio.src/M000071.html +0 -16
  171. data/doc/rdoc/classes/RIO/Rio.src/M000072.html +0 -16
  172. data/doc/rdoc/classes/RIO/Rio.src/M000073.html +0 -16
  173. data/doc/rdoc/classes/RIO/Rio.src/M000074.html +0 -16
  174. data/doc/rdoc/classes/RIO/Rio.src/M000075.html +0 -16
  175. data/doc/rdoc/classes/RIO/Rio.src/M000076.html +0 -16
  176. data/doc/rdoc/classes/RIO/Rio.src/M000077.html +0 -16
  177. data/doc/rdoc/classes/RIO/Rio.src/M000078.html +0 -16
  178. data/doc/rdoc/classes/RIO/Rio.src/M000079.html +0 -16
  179. data/doc/rdoc/classes/RIO/Rio.src/M000080.html +0 -16
  180. data/doc/rdoc/classes/RIO/Rio.src/M000081.html +0 -16
  181. data/doc/rdoc/classes/RIO/Rio.src/M000082.html +0 -16
  182. data/doc/rdoc/classes/RIO/Rio.src/M000083.html +0 -16
  183. data/doc/rdoc/classes/RIO/Rio.src/M000084.html +0 -16
  184. data/doc/rdoc/classes/RIO/Rio.src/M000085.html +0 -16
  185. data/doc/rdoc/classes/RIO/Rio.src/M000086.html +0 -16
  186. data/doc/rdoc/classes/RIO/Rio.src/M000087.html +0 -16
  187. data/doc/rdoc/classes/RIO/Rio.src/M000088.html +0 -16
  188. data/doc/rdoc/classes/RIO/Rio.src/M000089.html +0 -16
  189. data/doc/rdoc/classes/RIO/Rio.src/M000090.html +0 -16
  190. data/doc/rdoc/classes/RIO/Rio.src/M000091.html +0 -16
  191. data/doc/rdoc/classes/RIO/Rio.src/M000092.html +0 -16
  192. data/doc/rdoc/classes/RIO/Rio.src/M000093.html +0 -16
  193. data/doc/rdoc/classes/RIO/Rio.src/M000094.html +0 -16
  194. data/doc/rdoc/classes/RIO/Rio.src/M000095.html +0 -16
  195. data/doc/rdoc/classes/RIO/Rio.src/M000096.html +0 -16
  196. data/doc/rdoc/classes/RIO/Rio.src/M000097.html +0 -16
  197. data/doc/rdoc/classes/RIO/Rio.src/M000098.html +0 -16
  198. data/doc/rdoc/classes/RIO/Rio.src/M000099.html +0 -16
  199. data/doc/rdoc/classes/RIO/Rio.src/M000100.html +0 -16
  200. data/doc/rdoc/classes/RIO/Rio.src/M000101.html +0 -16
  201. data/doc/rdoc/classes/RIO/Rio.src/M000102.html +0 -16
  202. data/doc/rdoc/classes/RIO/Rio.src/M000103.html +0 -16
  203. data/doc/rdoc/classes/RIO/Rio.src/M000104.html +0 -16
  204. data/doc/rdoc/classes/RIO/Rio.src/M000105.html +0 -16
  205. data/doc/rdoc/classes/RIO/Rio.src/M000106.html +0 -16
  206. data/doc/rdoc/classes/RIO/Rio.src/M000107.html +0 -16
  207. data/doc/rdoc/classes/RIO/Rio.src/M000108.html +0 -16
  208. data/doc/rdoc/classes/RIO/Rio.src/M000109.html +0 -16
  209. data/doc/rdoc/classes/RIO/Rio.src/M000110.html +0 -16
  210. data/doc/rdoc/classes/RIO/Rio.src/M000111.html +0 -16
  211. data/doc/rdoc/classes/RIO/Rio.src/M000112.html +0 -16
  212. data/doc/rdoc/classes/RIO/Rio.src/M000113.html +0 -16
  213. data/doc/rdoc/classes/RIO/Rio.src/M000114.html +0 -16
  214. data/doc/rdoc/classes/RIO/Rio.src/M000115.html +0 -16
  215. data/doc/rdoc/classes/RIO/Rio.src/M000116.html +0 -16
  216. data/doc/rdoc/classes/RIO/Rio.src/M000117.html +0 -16
  217. data/doc/rdoc/classes/RIO/Rio.src/M000118.html +0 -16
  218. data/doc/rdoc/classes/RIO/Rio.src/M000119.html +0 -16
  219. data/doc/rdoc/classes/RIO/Rio.src/M000120.html +0 -16
  220. data/doc/rdoc/classes/RIO/Rio.src/M000121.html +0 -16
  221. data/doc/rdoc/classes/RIO/Rio.src/M000122.html +0 -16
  222. data/doc/rdoc/classes/RIO/Rio.src/M000123.html +0 -16
  223. data/doc/rdoc/classes/RIO/Rio.src/M000124.html +0 -16
  224. data/doc/rdoc/classes/RIO/Rio.src/M000125.html +0 -16
  225. data/doc/rdoc/classes/RIO/Rio.src/M000126.html +0 -16
  226. data/doc/rdoc/classes/RIO/Rio.src/M000127.html +0 -16
  227. data/doc/rdoc/classes/RIO/Rio.src/M000128.html +0 -16
  228. data/doc/rdoc/classes/RIO/Rio.src/M000129.html +0 -16
  229. data/doc/rdoc/classes/RIO/Rio.src/M000130.html +0 -16
  230. data/doc/rdoc/classes/RIO/Rio.src/M000131.html +0 -16
  231. data/doc/rdoc/classes/RIO/Rio.src/M000132.html +0 -16
  232. data/doc/rdoc/classes/RIO/Rio.src/M000133.html +0 -16
  233. data/doc/rdoc/classes/RIO/Rio.src/M000134.html +0 -16
  234. data/doc/rdoc/classes/RIO/Rio.src/M000135.html +0 -16
  235. data/doc/rdoc/classes/RIO/Rio.src/M000136.html +0 -16
  236. data/doc/rdoc/classes/RIO/Rio.src/M000137.html +0 -16
  237. data/doc/rdoc/classes/RIO/Rio.src/M000138.html +0 -16
  238. data/doc/rdoc/classes/RIO/Rio.src/M000139.html +0 -16
  239. data/doc/rdoc/classes/RIO/Rio.src/M000140.html +0 -16
  240. data/doc/rdoc/classes/RIO/Rio.src/M000141.html +0 -16
  241. data/doc/rdoc/classes/RIO/Rio.src/M000142.html +0 -16
  242. data/doc/rdoc/classes/RIO/Rio.src/M000143.html +0 -16
  243. data/doc/rdoc/classes/RIO/Rio.src/M000144.html +0 -16
  244. data/doc/rdoc/classes/RIO/Rio.src/M000145.html +0 -16
  245. data/doc/rdoc/classes/RIO/Rio.src/M000146.html +0 -16
  246. data/doc/rdoc/classes/RIO/Rio.src/M000147.html +0 -16
  247. data/doc/rdoc/classes/RIO/Rio.src/M000148.html +0 -16
  248. data/doc/rdoc/classes/RIO/Rio.src/M000149.html +0 -16
  249. data/doc/rdoc/classes/RIO/Rio.src/M000150.html +0 -16
  250. data/doc/rdoc/classes/RIO/Rio.src/M000151.html +0 -16
  251. data/doc/rdoc/classes/RIO/Rio.src/M000152.html +0 -16
  252. data/doc/rdoc/classes/RIO/Rio.src/M000153.html +0 -16
  253. data/doc/rdoc/classes/RIO/Rio.src/M000154.html +0 -16
  254. data/doc/rdoc/classes/RIO/Rio.src/M000155.html +0 -16
  255. data/doc/rdoc/classes/RIO/Rio.src/M000156.html +0 -16
  256. data/doc/rdoc/classes/RIO/Rio.src/M000157.html +0 -16
  257. data/doc/rdoc/classes/RIO/Rio.src/M000158.html +0 -16
  258. data/doc/rdoc/classes/RIO/Rio.src/M000159.html +0 -16
  259. data/doc/rdoc/classes/RIO/Rio.src/M000160.html +0 -16
  260. data/doc/rdoc/classes/RIO/Rio.src/M000161.html +0 -16
  261. data/doc/rdoc/classes/RIO/Rio.src/M000162.html +0 -16
  262. data/doc/rdoc/classes/RIO/Rio.src/M000163.html +0 -16
  263. data/doc/rdoc/classes/RIO/Rio.src/M000164.html +0 -16
  264. data/doc/rdoc/classes/RIO/Rio.src/M000165.html +0 -16
  265. data/doc/rdoc/classes/RIO/Rio.src/M000166.html +0 -16
  266. data/doc/rdoc/classes/RIO/Rio.src/M000167.html +0 -16
  267. data/doc/rdoc/classes/RIO/Rio.src/M000168.html +0 -16
  268. data/doc/rdoc/classes/RIO/Rio.src/M000169.html +0 -16
  269. data/doc/rdoc/classes/RIO/Rio.src/M000170.html +0 -16
  270. data/doc/rdoc/classes/RIO/Rio.src/M000171.html +0 -16
  271. data/doc/rdoc/classes/RIO/Rio.src/M000172.html +0 -16
  272. data/doc/rdoc/classes/RIO/Rio.src/M000173.html +0 -16
  273. data/doc/rdoc/classes/RIO/Rio.src/M000174.html +0 -16
  274. data/doc/rdoc/classes/RIO/Rio.src/M000175.html +0 -16
  275. data/doc/rdoc/classes/RIO/Rio.src/M000176.html +0 -16
  276. data/doc/rdoc/classes/RIO/Rio.src/M000177.html +0 -16
  277. data/doc/rdoc/classes/RIO/Rio.src/M000178.html +0 -16
  278. data/doc/rdoc/classes/RIO/Rio.src/M000179.html +0 -16
  279. data/doc/rdoc/classes/RIO/Rio.src/M000180.html +0 -16
  280. data/doc/rdoc/classes/RIO/Rio.src/M000181.html +0 -16
  281. data/doc/rdoc/classes/RIO/Rio.src/M000182.html +0 -16
  282. data/doc/rdoc/classes/RIO/Rio.src/M000183.html +0 -16
  283. data/doc/rdoc/classes/RIO/Rio.src/M000184.html +0 -16
  284. data/doc/rdoc/classes/RIO/Rio.src/M000185.html +0 -16
  285. data/doc/rdoc/classes/RIO/Rio.src/M000186.html +0 -16
  286. data/doc/rdoc/classes/RIO/Rio.src/M000187.html +0 -16
  287. data/doc/rdoc/classes/RIO/Rio.src/M000188.html +0 -16
  288. data/doc/rdoc/classes/RIO/Rio.src/M000189.html +0 -16
  289. data/doc/rdoc/classes/RIO/Rio.src/M000190.html +0 -16
  290. data/doc/rdoc/classes/RIO/Rio.src/M000191.html +0 -16
  291. data/doc/rdoc/classes/RIO/Rio.src/M000192.html +0 -16
  292. data/doc/rdoc/classes/RIO/Rio.src/M000193.html +0 -16
  293. data/doc/rdoc/classes/RIO/Rio.src/M000194.html +0 -16
  294. data/doc/rdoc/classes/RIO/Rio.src/M000195.html +0 -16
  295. data/doc/rdoc/classes/RIO/Rio.src/M000196.html +0 -16
  296. data/doc/rdoc/classes/RIO/Rio.src/M000197.html +0 -16
  297. data/doc/rdoc/classes/RIO/Rio.src/M000198.html +0 -16
  298. data/doc/rdoc/classes/RIO/Rio.src/M000199.html +0 -16
  299. data/doc/rdoc/classes/RIO/Rio.src/M000200.html +0 -16
  300. data/doc/rdoc/classes/RIO/Rio.src/M000201.html +0 -16
  301. data/doc/rdoc/classes/RIO/Rio.src/M000202.html +0 -16
  302. data/doc/rdoc/classes/RIO/Rio.src/M000203.html +0 -16
  303. data/doc/rdoc/classes/RIO/Rio.src/M000204.html +0 -16
  304. data/doc/rdoc/classes/RIO/Rio.src/M000205.html +0 -16
  305. data/doc/rdoc/classes/RIO/Rio.src/M000206.html +0 -16
  306. data/doc/rdoc/classes/RIO/Rio.src/M000207.html +0 -16
  307. data/doc/rdoc/classes/RIO/Rio.src/M000208.html +0 -16
  308. data/doc/rdoc/classes/RIO/Rio.src/M000209.html +0 -16
  309. data/doc/rdoc/classes/RIO/Rio.src/M000210.html +0 -16
  310. data/doc/rdoc/classes/RIO/Rio.src/M000211.html +0 -16
  311. data/doc/rdoc/classes/RIO/Rio.src/M000212.html +0 -16
  312. data/doc/rdoc/classes/RIO/Rio.src/M000213.html +0 -16
  313. data/doc/rdoc/created.rid +0 -1
  314. data/doc/rdoc/files/README.html +0 -243
  315. data/doc/rdoc/files/lib/rio/constructor_rb.html +0 -142
  316. data/doc/rdoc/files/lib/rio/doc/HOWTO_rb.html +0 -135
  317. data/doc/rdoc/files/lib/rio/doc/INTRO_rb.html +0 -135
  318. data/doc/rdoc/files/lib/rio/doc/MISC_rb.html +0 -135
  319. data/doc/rdoc/files/lib/rio/doc/SYNOPSIS_rb.html +0 -135
  320. data/doc/rdoc/files/lib/rio/if/basic_rb.html +0 -135
  321. data/doc/rdoc/files/lib/rio/if/csv_rb.html +0 -135
  322. data/doc/rdoc/files/lib/rio/if/dir_rb.html +0 -135
  323. data/doc/rdoc/files/lib/rio/if/file_rb.html +0 -135
  324. data/doc/rdoc/files/lib/rio/if/fileordir_rb.html +0 -135
  325. data/doc/rdoc/files/lib/rio/if/grande_entry_rb.html +0 -135
  326. data/doc/rdoc/files/lib/rio/if/grande_rb.html +0 -135
  327. data/doc/rdoc/files/lib/rio/if/grande_stream_rb.html +0 -135
  328. data/doc/rdoc/files/lib/rio/if/internal_rb.html +0 -135
  329. data/doc/rdoc/files/lib/rio/if/path_rb.html +0 -135
  330. data/doc/rdoc/files/lib/rio/if/stream_rb.html +0 -135
  331. data/doc/rdoc/files/lib/rio/if/string_rb.html +0 -135
  332. data/doc/rdoc/files/lib/rio/if/temp_rb.html +0 -135
  333. data/doc/rdoc/files/lib/rio/if/test_rb.html +0 -135
  334. data/doc/rdoc/files/lib/rio/if/yaml_rb.html +0 -135
  335. data/doc/rdoc/files/lib/rio/kernel_rb.html +0 -142
  336. data/doc/rdoc/files/lib/rio_rb.html +0 -154
  337. data/doc/rdoc/fr_class_index.html +0 -37
  338. data/doc/rdoc/fr_file_index.html +0 -49
  339. data/doc/rdoc/fr_method_index.html +0 -241
  340. data/doc/rdoc/index.html +0 -24
  341. data/doc/rdoc/rdoc-style.css +0 -384
  342. data/test/methods/path.rb +0 -12
data/lib/rio/ops/dir.rb CHANGED
@@ -35,7 +35,6 @@
35
35
  # The documented interface and behavior is subject to change without notice.</b>
36
36
 
37
37
 
38
- require 'extensions/object'
39
38
  require 'rio/grande'
40
39
  require 'rio/cp'
41
40
  require 'rio/ops/either'
@@ -191,6 +190,13 @@ module RIO
191
190
  read_()
192
191
  end
193
192
 
193
+ def get()
194
+ self.each_ent_ { |d|
195
+ return d
196
+ }
197
+ return nil
198
+ end
199
+
194
200
  def rewind() ioh.rewind(); self end
195
201
  def seek(integer) ioh.seek(integer); self end
196
202
 
@@ -224,30 +230,43 @@ module RIO
224
230
  args = cx['skip_args'] || []
225
231
  self.skipentries(*args)
226
232
  end
233
+ def handle_ent_(estr,selfstr,sel,&block)
234
+ begin
235
+ erio = new_rio_cx(selfstr ? Impl::U.join(selfstr,estr) : estr )
236
+
237
+ if stream_iter?
238
+ _add_stream_iter_cx(erio).each(&block) if erio.file? and sel.match?(erio)
239
+ else
240
+ yield _add_iter_cx(erio) if sel.match?(erio)
241
+ end
242
+
243
+ if cx.has_key?('all') and erio.directory?
244
+ rsel = Match::Entry::SelectorClassic.new(cx['r_sel'],cx['r_nosel'])
245
+ _add_recurse_iter_cx(erio).each(&block) if rsel.match?(erio)
246
+ end
247
+
248
+ rescue ::Errno::ENOENT, ::URI::InvalidURIError => ex
249
+ $stderr.puts(ex.message+". Skipping.")
250
+ end
251
+ end
227
252
  def each_(*args,&block)
228
253
  #p "#{callstr('each_',*args)} sel=#{cx['sel'].inspect} nosel=#{cx['nosel'].inspect}"
229
254
  handle_skipped()
230
255
  sel = Match::Entry::Selector.new(cx['entry_sel'])
231
256
  selfstr = (self.to_s == '.' ? nil : self.to_s)
232
257
  self.ioh.each do |estr|
233
- next if estr =~ /^\.(\.)?$/
234
- begin
235
- erio = new_rio_cx(selfstr ? Impl::U.join(selfstr,estr) : estr )
236
-
237
- if stream_iter?
238
- _add_stream_iter_cx(erio).each(&block) if erio.file? and sel.match?(erio)
239
- else
240
- yield _add_iter_cx(erio) if sel.match?(erio)
241
- end
242
-
243
- if cx.has_key?('all') and erio.directory?
244
- rsel = Match::Entry::SelectorClassic.new(cx['r_sel'],cx['r_nosel'])
245
- _add_recurse_iter_cx(erio).each(&block) if rsel.match?(erio)
246
- end
247
-
248
- rescue ::Errno::ENOENT, ::URI::InvalidURIError => ex
249
- $stderr.puts(ex.message+". Skipping.")
250
- end
258
+ next if
259
+ handle_ent_(estr,selfstr,sel,&block) unless estr =~ /^\.(\.)?$/
260
+ end
261
+ closeoneof? ? self.close : self
262
+ end
263
+ def each_ent_(*args,&block)
264
+ #p "#{callstr('each_',*args)} sel=#{cx['sel'].inspect} nosel=#{cx['nosel'].inspect}"
265
+ handle_skipped()
266
+ sel = Match::Entry::Selector.new(cx['entry_sel'])
267
+ selfstr = (self.to_s == '.' ? nil : self.to_s)
268
+ while estr = self.ioh.read
269
+ handle_ent_(estr,selfstr,sel,&block) unless estr =~ /^\.(\.)?$/
251
270
  end
252
271
  closeoneof? ? self.close : self
253
272
  end
data/lib/rio/rl/ioi.rb CHANGED
@@ -56,8 +56,8 @@ module RIO
56
56
  def initialize(ios=nil)
57
57
  @ios = ios
58
58
  end
59
- def initialize_copy(*args)
60
- @ios = @ios.clone unless @ios.nil?
59
+ def initialize_copy(cp)
60
+ @ios = cp.ios.clone unless cp.ios.nil?
61
61
  end
62
62
  def open(*args)
63
63
  @ios
@@ -36,7 +36,7 @@
36
36
  #
37
37
  require 'tmpdir'
38
38
  module RIO
39
- module Temp
39
+ module Temp #:nodoc: all
40
40
  RESET_STATE = 'Temp::Reset'
41
41
 
42
42
  require 'rio/rl/base'
@@ -55,7 +55,7 @@ module RIO
55
55
  def scheme() self.class.const_get(:RIOSCHEME) end
56
56
  def opaque()
57
57
  td = self.escape(@tmpdir.to_s)
58
- td += '/' unless td.nil? or td.empty? or (td.ends_with?('/') and td != '/')
58
+ td += '/' unless td.nil? or td.empty? or (td != '/' and td[-1] == ?/)
59
59
  td + self.escape(@prefix)
60
60
  end
61
61
 
data/lib/rio/state.rb CHANGED
@@ -166,7 +166,7 @@ module RIO
166
166
 
167
167
  # Section: Error Handling
168
168
  def gofigure(sym,*args)
169
- cs = "#{sym}("+args.map(&:to_s).join(',')+")"
169
+ cs = "#{sym}("+args.map{|el| el.to_s}.join(',')+")"
170
170
  msg = "Go Figure! rio('#{self.to_s}').#{cs} Failed"
171
171
  error(msg,sym,*args)
172
172
  end
@@ -81,17 +81,17 @@ module RIO
81
81
  end
82
82
 
83
83
 
84
-
84
+ require 'rio/util'
85
85
  module RIO
86
86
  module Stream
87
87
  class Open < Base
88
88
  def size()
89
89
  self.contents.size
90
90
  end
91
- OUTPUT_SYMS = [:print,:printf,:puts,:putc,:write,
92
- :print!,:printf!,:puts!,:putc!,:write!,
93
- :put_,:putrec,:putrec!,:<,:<<
94
- ].build_hash { |sym| [sym.to_s,1] }
91
+ OUTPUT_SYMS = Util::build_sym_hash([:print,:printf,:puts,:putc,:write,
92
+ :print!,:printf!,:puts!,:putc!,:write!,
93
+ :put_,:putrec,:putrec!,:<,:<< ])
94
+
95
95
  def sym_state(sym,im,om)
96
96
  if OUTPUT_SYMS[sym.to_s] or RIO::Ext::OUTPUT_SYMS[sym.to_s]
97
97
  om ||= (sym.to_s == '<<' ? 'a' : 'w')
@@ -192,10 +192,13 @@ module RIO
192
192
  cx['retrystate'] = nil
193
193
  self
194
194
  end
195
- def getrec()
195
+ def get()
196
196
  self.close_.softreset
197
197
  nil
198
198
  end
199
+ alias :getline :get
200
+ alias :getrow :get
201
+ alias :getrec :get
199
202
 
200
203
  def check?() true end
201
204
  def base_state() 'Stream::Reset' end
data/lib/rio/util.rb ADDED
@@ -0,0 +1,49 @@
1
+ #--
2
+ # ===============================================================================
3
+ # Copyright (c) 2005, Christopher Kleckner
4
+ # All rights reserved
5
+ #
6
+ # This file is part of the Rio library for ruby.
7
+ #
8
+ # Rio is free software; you can redistribute it and/or modify
9
+ # it under the terms of the GNU General Public License as published by
10
+ # the Free Software Foundation; either version 2 of the License, or
11
+ # (at your option) any later version.
12
+ #
13
+ # Rio is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ # GNU General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU General Public License
19
+ # along with Rio; if not, write to the Free Software
20
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
+ # ===============================================================================
22
+ #++
23
+ #
24
+ # To create the documentation for Rio run the command
25
+ # rake rdoc
26
+ # from the distribution directory. Then point your browser at the 'doc/rdoc' directory.
27
+ #
28
+ # Suggested Reading
29
+ # * RIO::Doc::SYNOPSIS
30
+ # * RIO::Doc::INTRO
31
+ # * RIO::Doc::HOWTO
32
+ # * RIO::Rio
33
+ #
34
+ # <b>Rio is pre-alpha software.
35
+ # The documented interface and behavior is subject to change without notice.</b>
36
+
37
+
38
+ module RIO
39
+ module Util #:nodoc: all
40
+ def build_sym_hash(syms)
41
+ result = {}
42
+ syms.each do |sym|
43
+ result[sym.to_s] = 1
44
+ end
45
+ result
46
+ end
47
+ module_function :build_sym_hash
48
+ end
49
+ end
data/lib/rio/version.rb CHANGED
@@ -39,7 +39,7 @@
39
39
  module RIO
40
40
  # :stopdoc:
41
41
  module Version #:nodoc: all
42
- VERSION = '0.3.6'
42
+ VERSION = '0.3.7'
43
43
 
44
44
  N = VERSION.split('.').freeze
45
45
  MAJOR = N[0].freeze
data/test/tc/all.rb CHANGED
@@ -2,7 +2,8 @@ require 'test/unit'
2
2
  require 'tc/testcase'
3
3
 
4
4
  #require 'tc/yaml'
5
- require 'tc/piper'
5
+ require 'tc/dir_iter'
6
+ require 'tc/piper' unless $mswin32
6
7
  require 'tc/cmdpipe'
7
8
  require 'tc/base'
8
9
  require 'tc/split'
@@ -39,6 +40,7 @@ require 'tc/eq'
39
40
  require 'tc/expand_path'
40
41
  require 'tc/ext'
41
42
  require 'tc/getrec'
43
+ require 'tc/get'
42
44
  require 'tc/lines'
43
45
  require 'tc/methods'
44
46
  require 'tc/misc'
data/test/tc/cd1.rb CHANGED
@@ -5,9 +5,6 @@ if $0 == __FILE__
5
5
  end
6
6
 
7
7
  require 'rio'
8
- require 'test/unit'
9
- require 'test/unit/testsuite'
10
- require 'extensions/symbol'
11
8
  require 'tc/testcase'
12
9
 
13
10
  class TC_cd1 < Test::RIO::TestCase
data/test/tc/clearsel.rb CHANGED
@@ -13,8 +13,7 @@ class TC_RIO_clearsel < Test::Unit::TestCase
13
13
  def assert!(a,msg="negative assertion")
14
14
  assert((!(a)),msg)
15
15
  end
16
- require 'extensions/symbol'
17
- def smap(a) a.map( &:to_s ) end
16
+ def smap(a) a.map { |el| el.to_s } end
18
17
  def mkafile(*args)
19
18
  file = rio(*args)
20
19
  file < (0..1).map { |i| "L#{i}:#{file.to_s}\n" }
data/test/tc/copy-from.rb CHANGED
@@ -5,9 +5,6 @@ if $0 == __FILE__
5
5
  end
6
6
 
7
7
  require 'rio'
8
- require 'test/unit'
9
- require 'test/unit/testsuite'
10
- require 'extensions/symbol'
11
8
  require 'tc/testcase'
12
9
 
13
10
  class TC_copyfrom < Test::RIO::TestCase
data/test/tc/copy-to.rb CHANGED
@@ -5,9 +5,6 @@ if $0 == __FILE__
5
5
  end
6
6
 
7
7
  require 'rio'
8
- require 'test/unit'
9
- require 'test/unit/testsuite'
10
- require 'extensions/symbol'
11
8
  require 'tc/testcase'
12
9
 
13
10
  class TC_copy_to < Test::RIO::TestCase
data/test/tc/copyarray.rb CHANGED
@@ -5,9 +5,6 @@ if $0 == __FILE__
5
5
  end
6
6
 
7
7
  require 'rio'
8
- require 'test/unit'
9
- require 'test/unit/testsuite'
10
- require 'extensions/symbol'
11
8
  require 'tc/testcase'
12
9
 
13
10
  class TC_copyarray < Test::Unit::TestCase
@@ -111,7 +108,7 @@ class TC_copyarray < Test::Unit::TestCase
111
108
  out = rio('out').delete!.mkpath
112
109
  assert(out[].empty?)
113
110
  inputdir = rio(@d[1])
114
- out < inputdir[].map(&:to_s)
111
+ out < inputdir[].map{|el| el.to_s}
115
112
  assert_equal(@l[0],rio(out,@f[0].basename).lines[])
116
113
  assert_equal(@l[1],rio(out,@f[1].basename).lines[])
117
114
  assert_equal(@l[0],rio(out,@f[0]).lines[])
data/test/tc/copydir.rb CHANGED
@@ -5,9 +5,6 @@ if $0 == __FILE__
5
5
  end
6
6
 
7
7
  require 'rio'
8
- require 'test/unit'
9
- require 'test/unit/testsuite'
10
- require 'extensions/symbol'
11
8
  require 'tc/testcase'
12
9
 
13
10
  class TC_copydir < Test::RIO::TestCase
@@ -5,9 +5,6 @@ if $0 == __FILE__
5
5
  end
6
6
 
7
7
  require 'rio'
8
- require 'test/unit'
9
- require 'test/unit/testsuite'
10
- require 'extensions/symbol'
11
8
  require 'tc/testcase'
12
9
 
13
10
  class TC_copydirlines < Test::RIO::TestCase
data/test/tc/copynonex.rb CHANGED
@@ -5,9 +5,6 @@ if $0 == __FILE__
5
5
  end
6
6
 
7
7
  require 'rio'
8
- require 'test/unit'
9
- require 'test/unit/testsuite'
10
- require 'extensions/symbol'
11
8
  require 'tc/testcase'
12
9
 
13
10
  class TC_copynonex < Test::RIO::TestCase
data/test/tc/csv.rb CHANGED
@@ -5,9 +5,6 @@ if $0 == __FILE__
5
5
  end
6
6
 
7
7
  require 'rio'
8
- require 'test/unit'
9
- require 'test/unit/testsuite'
10
- require 'extensions/symbol'
11
8
  require 'tc/testcase'
12
9
  class TC_csv < Test::Unit::TestCase
13
10
  include RIO_TestCase
data/test/tc/dir.rb CHANGED
@@ -5,9 +5,6 @@ if $0 == __FILE__
5
5
  end
6
6
 
7
7
  require 'rio'
8
- require 'test/unit'
9
- require 'test/unit/testsuite'
10
- require 'extensions/symbol'
11
8
  require 'tc/testcase'
12
9
  class TC_dir < Test::Unit::TestCase
13
10
  include RIO_TestCase
@@ -0,0 +1,384 @@
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
+ if ENV['TEST_RIO'] == 'gem'
8
+ require 'rubygems'
9
+ require_gem 'rio'
10
+ else
11
+ require 'rio'
12
+ end
13
+
14
+ require 'tc/testcase'
15
+
16
+ class TC_dir_iter < Test::RIO::TestCase
17
+ @@once = false
18
+ @@exp = {}
19
+ def self.once
20
+ @@once = true
21
+ (0..3).each { |n_ents|
22
+ d = rio('d'+n_ents.to_s).delete!.mkdir
23
+ @@exp[d.to_s] = []
24
+ d.chdir { |dir|
25
+ (0...n_ents).each { |fnum|
26
+ @@exp[d.to_s] << rio('f'+fnum.to_s).touch
27
+ }
28
+ }
29
+ }
30
+ end
31
+ def setup
32
+ super
33
+ self.class.once unless @@once
34
+ end
35
+ def otest_dir
36
+ (1..1).each do |n_ents|
37
+ get_each_dir(n_ents)
38
+ end
39
+ end
40
+ def doem(&block)
41
+ rio('.').each { |d|
42
+ ma = /d(\d)/.match(d.to_s)
43
+ n_ents = ma[1].to_i
44
+ exp = @@exp[d.to_s]
45
+ d.chdir { |dir|
46
+ yield(dir,n_ents,exp)
47
+ }
48
+ }
49
+ end
50
+ def test_ss
51
+ doem { |d,n,exp|
52
+ ans = d[]
53
+ assert_array_equal(exp,ans)
54
+ }
55
+ end
56
+ def test_each
57
+ doem { |d,n,exp|
58
+ ans = []
59
+ d.each { |e| ans << e }
60
+ assert_array_equal(exp,ans)
61
+ }
62
+ end
63
+ def test_read
64
+ doem { |d,n,exp|
65
+ ans = []
66
+ while e = d.read
67
+ ans << e
68
+ end
69
+ ans.reject! { |el| el =~ /^\.{1,2}$/ }
70
+ assert_array_equal(exp,ans)
71
+ }
72
+ end
73
+ def test_each_get_break
74
+ doem { |d,n,exp|
75
+ ans = []
76
+ d.each { |e|
77
+ ans << e
78
+ break
79
+ }
80
+ assert_array_equal(exp[0..0],ans)
81
+ ent = d.get
82
+ assert_equal(exp[1],ent)
83
+ ent2 = d.get
84
+ if ent.nil?
85
+ assert_equal(exp[0],ent2)
86
+ else
87
+ assert_equal(exp[2],ent2)
88
+ end
89
+ }
90
+ end
91
+ def test_each_get
92
+ doem { |d,n,exp|
93
+ ans = []
94
+ d.each { |e|
95
+ ans << e
96
+ }
97
+ assert_array_equal(exp,ans)
98
+ ent = d.get
99
+ assert_equal(exp[0],ent)
100
+ }
101
+ end
102
+ def test_each_get_nceof
103
+ doem { |d,n,exp|
104
+ ans = []
105
+ d.nocloseoneof.each { |e|
106
+ ans << e
107
+ break
108
+ }
109
+ assert_array_equal(exp[0..0],ans)
110
+ ent = d.get
111
+ assert_equal(exp[1],ent)
112
+ ent2 = d.get
113
+ assert_equal(exp[2],ent2)
114
+ }
115
+ end
116
+ def test_each_get_nac
117
+ doem { |d,n,exp|
118
+ ans = []
119
+ d.noautoclose.each { |e|
120
+ ans << e
121
+ break
122
+ }
123
+ assert_array_equal(exp[0..0],ans)
124
+ ent = d.get
125
+ assert_equal(exp[1],ent)
126
+ ent2 = d.get
127
+ assert_equal(exp[2],ent2)
128
+ }
129
+ end
130
+ def test_get_get
131
+ doem { |d,n,exp|
132
+ ans = []
133
+ while e = d.get
134
+ ans << e
135
+ end
136
+ while e = d.get
137
+ ans << e
138
+ end
139
+ assert_array_equal(exp+exp,ans)
140
+ }
141
+ end
142
+ def test_get_get_nac
143
+ doem { |d,n,exp|
144
+ ans = []
145
+ d.noautoclose
146
+ while e = d.get
147
+ ans << e
148
+ end
149
+ while e = d.get
150
+ ans << e
151
+ end
152
+ assert_array_equal(exp,ans)
153
+ }
154
+ end
155
+ def test_each_each
156
+ doem { |d,n,exp|
157
+ ans = []
158
+ d.each { |e|
159
+ ans << e
160
+ }
161
+ d.each { |e|
162
+ ans << e
163
+ }
164
+ assert_array_equal(exp+exp,ans)
165
+ }
166
+ end
167
+ def test_each_each_nac
168
+ doem { |d,n,exp|
169
+ ans = []
170
+ d.noautoclose.each { |e|
171
+ ans << e
172
+ }
173
+ d.each { |e|
174
+ ans << e
175
+ }
176
+ assert_array_equal(exp,ans)
177
+ }
178
+ end
179
+ def test_get
180
+ doem { |d,n,exp|
181
+ ans = []
182
+ while e = d.get
183
+ ans << e
184
+ end
185
+ assert_array_equal(exp,ans)
186
+ }
187
+ end
188
+ def test_get_select
189
+ doem { |d,n,exp|
190
+ ans = []
191
+ d.entries(/1/)
192
+ while e = d.get
193
+ ans << e
194
+ end
195
+ exp = exp.select { |el| el =~ /1/ }
196
+ assert_array_equal(exp,ans)
197
+ }
198
+ end
199
+ def test_get_skip
200
+ doem { |d,n,exp|
201
+ ans = []
202
+ d.skip(/1/)
203
+ while e = d.get
204
+ ans << e
205
+ end
206
+ exp = exp.reject { |el| el =~ /1/ }
207
+ assert_array_equal(exp,ans)
208
+ }
209
+ end
210
+ def test_get_skip_files
211
+ doem { |d,n,exp|
212
+ ans = []
213
+ d.skip.files(/1/)
214
+ while e = d.get
215
+ ans << e
216
+ end
217
+ exp = exp.reject { |el| el =~ /1/ }
218
+ assert_array_equal(exp,ans)
219
+ }
220
+ end
221
+ def test_get_skipfiles
222
+ doem { |d,n,exp|
223
+ ans = []
224
+ d.skipfiles(/1/)
225
+ while e = d.get
226
+ ans << e
227
+ end
228
+ exp = exp.reject { |el| el =~ /1/ }
229
+ assert_array_equal(exp,ans)
230
+ }
231
+ end
232
+ def get_each_dir(n_ents)
233
+ expa = []
234
+ d = rio('dir').delete!.mkdir
235
+ (0..n_ents-1).each { |n|
236
+ expa << (d/'f'+n.to_s).touch
237
+ }
238
+
239
+ d = rio('dir')
240
+ assert_array_equal(expa,d[])
241
+
242
+ begin
243
+ d = rio('dir')
244
+ ans = []
245
+ d.each { |ent| ans << ent }
246
+ assert_equal(expa,ans)
247
+ end
248
+ begin
249
+ d = rio('dir')
250
+ ans = []
251
+ while ent = d.get
252
+ ans << rec
253
+ end
254
+ assert_equal(expa,ans)
255
+ end
256
+ begin
257
+ while rec = f.get
258
+ ans << rec
259
+ end
260
+ assert_equal(expa,ans)
261
+ end
262
+
263
+ return
264
+ # $trace_states = true
265
+
266
+ # iterate twice using #get (no auto close)
267
+ begin
268
+ f = rio('f.txt').nocloseoneof
269
+ ans = []
270
+ while rec = f.get
271
+ ans << rec
272
+ end
273
+ assert_equal(expa,ans)
274
+ while rec = f.get
275
+ ans << rec
276
+ end
277
+ assert_equal(expa,ans)
278
+ end
279
+
280
+ # iterate using #get then using #each (no auto close)
281
+ begin
282
+ f = rio('f.txt').nocloseoneof
283
+ ans = []
284
+ while rec = f.get
285
+ ans << rec
286
+ end
287
+ assert_equal(expa,ans)
288
+ f.each do |rec|
289
+ ans << rec
290
+ end
291
+ assert_equal(expa,ans)
292
+ end
293
+
294
+ # iterate using #each then using #get (no auto close)
295
+ begin
296
+ f = rio('f.txt').nocloseoneof
297
+ ans = []
298
+ f.each do |rec|
299
+ ans << rec
300
+ end
301
+ assert_equal(expa,ans)
302
+ while rec = f.get
303
+ ans << rec
304
+ end
305
+ assert_equal(expa,ans)
306
+ end
307
+
308
+ # iterate twice using #get (with auto close)
309
+ begin
310
+ f = rio('f.txt')
311
+ ans = []
312
+ while rec = f.get
313
+ ans << rec
314
+ end
315
+ assert_equal(expa,ans)
316
+ while rec = f.get
317
+ ans << rec
318
+ end
319
+ assert_equal(expa+expa,ans)
320
+ end
321
+
322
+ # assure get returns nil once after iteration using #get (with auto close)
323
+ begin
324
+ f = rio('f.txt')
325
+ ans = []
326
+
327
+ f.each do |rec|
328
+ ans << rec
329
+ end
330
+ assert_equal(expa,ans)
331
+
332
+ rec = f.get
333
+ assert_nil(rec)
334
+
335
+ rec = f.get
336
+ assert_equal(expa[0],rec)
337
+ end
338
+
339
+ begin
340
+ f = rio('f.txt')
341
+ ans = []
342
+
343
+ rec = f.get
344
+ assert_equal(expa[0],rec)
345
+ ans << rec unless rec.nil?
346
+ f.each do |rec|
347
+ ans << rec
348
+ end
349
+ rec = f.get
350
+ assert_nil(rec)
351
+ end
352
+
353
+ begin
354
+ f = rio('f.txt')
355
+ ans = []
356
+
357
+ (0...n_lines).each do |n|
358
+ rec = f.get
359
+ assert_equal(expa[n],rec)
360
+ end
361
+ rec = f.get
362
+ assert_nil(rec)
363
+
364
+ f.each do |rec|
365
+ ans << rec
366
+ end
367
+ assert_equal(expa,ans)
368
+ end
369
+
370
+ begin
371
+ f = rio('f.txt')
372
+ ans = []
373
+
374
+ (0...n_lines).each do |n|
375
+ rec = f.get
376
+ assert_equal(expa[n],rec)
377
+ end
378
+ f.each do |rec|
379
+ ans << rec
380
+ end
381
+ assert_equal(expa,ans)
382
+ end
383
+ end
384
+ end