rio 0.3.4 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (349) hide show
  1. data/ChangeLog +287 -0
  2. data/Rakefile +7 -9
  3. data/VERSION +1 -1
  4. data/doc/ANNOUNCE +20 -1
  5. data/doc/RELEASE_NOTES +41 -0
  6. data/doc/rdoc/classes/Kernel.html +181 -0
  7. data/doc/rdoc/classes/Kernel.src/M000214.html +18 -0
  8. data/doc/rdoc/classes/RIO.html +621 -0
  9. data/doc/rdoc/classes/RIO.src/M000001.html +18 -0
  10. data/doc/rdoc/classes/RIO.src/M000002.html +18 -0
  11. data/doc/rdoc/classes/RIO.src/M000003.html +18 -0
  12. data/doc/rdoc/classes/RIO/Doc.html +138 -0
  13. data/doc/rdoc/classes/RIO/Doc/HOWTO.html +1040 -0
  14. data/doc/rdoc/classes/RIO/Doc/INTRO.html +1613 -0
  15. data/doc/rdoc/classes/RIO/Doc/MISC.html +443 -0
  16. data/doc/rdoc/classes/RIO/Doc/SYNOPSIS.html +338 -0
  17. data/doc/rdoc/classes/RIO/IF.html +114 -0
  18. data/doc/rdoc/classes/RIO/IF/CSV.html +202 -0
  19. data/doc/rdoc/classes/RIO/IF/CSV.src/M000004.html +19 -0
  20. data/doc/rdoc/classes/RIO/IF/CSV.src/M000005.html +16 -0
  21. data/doc/rdoc/classes/RIO/IF/CSV.src/M000006.html +16 -0
  22. data/doc/rdoc/classes/RIO/IF/YAML.html +499 -0
  23. data/doc/rdoc/classes/RIO/IF/YAML.src/M000007.html +19 -0
  24. data/doc/rdoc/classes/RIO/IF/YAML.src/M000008.html +16 -0
  25. data/doc/rdoc/classes/RIO/IF/YAML.src/M000009.html +16 -0
  26. data/doc/rdoc/classes/RIO/IF/YAML.src/M000010.html +16 -0
  27. data/doc/rdoc/classes/RIO/IF/YAML.src/M000011.html +16 -0
  28. data/doc/rdoc/classes/RIO/IF/YAML.src/M000012.html +16 -0
  29. data/doc/rdoc/classes/RIO/IF/YAML.src/M000013.html +16 -0
  30. data/doc/rdoc/classes/RIO/IF/YAML.src/M000014.html +16 -0
  31. data/doc/rdoc/classes/RIO/IF/YAML.src/M000015.html +16 -0
  32. data/doc/rdoc/classes/RIO/IF/YAML.src/M000016.html +16 -0
  33. data/doc/rdoc/classes/RIO/IF/YAML.src/M000017.html +16 -0
  34. data/doc/rdoc/classes/RIO/Rio.html +7121 -0
  35. data/doc/rdoc/classes/RIO/Rio.src/M000018.html +18 -0
  36. data/doc/rdoc/classes/RIO/Rio.src/M000019.html +20 -0
  37. data/doc/rdoc/classes/RIO/Rio.src/M000020.html +27 -0
  38. data/doc/rdoc/classes/RIO/Rio.src/M000021.html +16 -0
  39. data/doc/rdoc/classes/RIO/Rio.src/M000023.html +19 -0
  40. data/doc/rdoc/classes/RIO/Rio.src/M000024.html +20 -0
  41. data/doc/rdoc/classes/RIO/Rio.src/M000025.html +16 -0
  42. data/doc/rdoc/classes/RIO/Rio.src/M000026.html +16 -0
  43. data/doc/rdoc/classes/RIO/Rio.src/M000027.html +16 -0
  44. data/doc/rdoc/classes/RIO/Rio.src/M000028.html +16 -0
  45. data/doc/rdoc/classes/RIO/Rio.src/M000029.html +16 -0
  46. data/doc/rdoc/classes/RIO/Rio.src/M000030.html +16 -0
  47. data/doc/rdoc/classes/RIO/Rio.src/M000031.html +16 -0
  48. data/doc/rdoc/classes/RIO/Rio.src/M000032.html +16 -0
  49. data/doc/rdoc/classes/RIO/Rio.src/M000033.html +16 -0
  50. data/doc/rdoc/classes/RIO/Rio.src/M000034.html +16 -0
  51. data/doc/rdoc/classes/RIO/Rio.src/M000035.html +16 -0
  52. data/doc/rdoc/classes/RIO/Rio.src/M000036.html +16 -0
  53. data/doc/rdoc/classes/RIO/Rio.src/M000037.html +16 -0
  54. data/doc/rdoc/classes/RIO/Rio.src/M000038.html +16 -0
  55. data/doc/rdoc/classes/RIO/Rio.src/M000039.html +16 -0
  56. data/doc/rdoc/classes/RIO/Rio.src/M000040.html +16 -0
  57. data/doc/rdoc/classes/RIO/Rio.src/M000041.html +16 -0
  58. data/doc/rdoc/classes/RIO/Rio.src/M000042.html +16 -0
  59. data/doc/rdoc/classes/RIO/Rio.src/M000043.html +16 -0
  60. data/doc/rdoc/classes/RIO/Rio.src/M000044.html +16 -0
  61. data/doc/rdoc/classes/RIO/Rio.src/M000045.html +16 -0
  62. data/doc/rdoc/classes/RIO/Rio.src/M000046.html +16 -0
  63. data/doc/rdoc/classes/RIO/Rio.src/M000047.html +16 -0
  64. data/doc/rdoc/classes/RIO/Rio.src/M000048.html +16 -0
  65. data/doc/rdoc/classes/RIO/Rio.src/M000049.html +16 -0
  66. data/doc/rdoc/classes/RIO/Rio.src/M000050.html +16 -0
  67. data/doc/rdoc/classes/RIO/Rio.src/M000051.html +16 -0
  68. data/doc/rdoc/classes/RIO/Rio.src/M000052.html +16 -0
  69. data/doc/rdoc/classes/RIO/Rio.src/M000053.html +16 -0
  70. data/doc/rdoc/classes/RIO/Rio.src/M000054.html +16 -0
  71. data/doc/rdoc/classes/RIO/Rio.src/M000055.html +16 -0
  72. data/doc/rdoc/classes/RIO/Rio.src/M000056.html +16 -0
  73. data/doc/rdoc/classes/RIO/Rio.src/M000057.html +16 -0
  74. data/doc/rdoc/classes/RIO/Rio.src/M000058.html +16 -0
  75. data/doc/rdoc/classes/RIO/Rio.src/M000059.html +16 -0
  76. data/doc/rdoc/classes/RIO/Rio.src/M000060.html +16 -0
  77. data/doc/rdoc/classes/RIO/Rio.src/M000061.html +16 -0
  78. data/doc/rdoc/classes/RIO/Rio.src/M000062.html +16 -0
  79. data/doc/rdoc/classes/RIO/Rio.src/M000063.html +16 -0
  80. data/doc/rdoc/classes/RIO/Rio.src/M000064.html +16 -0
  81. data/doc/rdoc/classes/RIO/Rio.src/M000065.html +16 -0
  82. data/doc/rdoc/classes/RIO/Rio.src/M000066.html +16 -0
  83. data/doc/rdoc/classes/RIO/Rio.src/M000067.html +16 -0
  84. data/doc/rdoc/classes/RIO/Rio.src/M000068.html +16 -0
  85. data/doc/rdoc/classes/RIO/Rio.src/M000069.html +16 -0
  86. data/doc/rdoc/classes/RIO/Rio.src/M000070.html +16 -0
  87. data/doc/rdoc/classes/RIO/Rio.src/M000071.html +16 -0
  88. data/doc/rdoc/classes/RIO/Rio.src/M000072.html +16 -0
  89. data/doc/rdoc/classes/RIO/Rio.src/M000073.html +16 -0
  90. data/doc/rdoc/classes/RIO/Rio.src/M000074.html +16 -0
  91. data/doc/rdoc/classes/RIO/Rio.src/M000075.html +16 -0
  92. data/doc/rdoc/classes/RIO/Rio.src/M000076.html +16 -0
  93. data/doc/rdoc/classes/RIO/Rio.src/M000077.html +16 -0
  94. data/doc/rdoc/classes/RIO/Rio.src/M000078.html +16 -0
  95. data/doc/rdoc/classes/RIO/Rio.src/M000079.html +16 -0
  96. data/doc/rdoc/classes/RIO/Rio.src/M000080.html +16 -0
  97. data/doc/rdoc/classes/RIO/Rio.src/M000081.html +16 -0
  98. data/doc/rdoc/classes/RIO/Rio.src/M000082.html +16 -0
  99. data/doc/rdoc/classes/RIO/Rio.src/M000083.html +16 -0
  100. data/doc/rdoc/classes/RIO/Rio.src/M000084.html +16 -0
  101. data/doc/rdoc/classes/RIO/Rio.src/M000085.html +16 -0
  102. data/doc/rdoc/classes/RIO/Rio.src/M000086.html +16 -0
  103. data/doc/rdoc/classes/RIO/Rio.src/M000087.html +16 -0
  104. data/doc/rdoc/classes/RIO/Rio.src/M000088.html +16 -0
  105. data/doc/rdoc/classes/RIO/Rio.src/M000089.html +16 -0
  106. data/doc/rdoc/classes/RIO/Rio.src/M000090.html +16 -0
  107. data/doc/rdoc/classes/RIO/Rio.src/M000091.html +16 -0
  108. data/doc/rdoc/classes/RIO/Rio.src/M000092.html +16 -0
  109. data/doc/rdoc/classes/RIO/Rio.src/M000093.html +16 -0
  110. data/doc/rdoc/classes/RIO/Rio.src/M000094.html +16 -0
  111. data/doc/rdoc/classes/RIO/Rio.src/M000095.html +16 -0
  112. data/doc/rdoc/classes/RIO/Rio.src/M000096.html +16 -0
  113. data/doc/rdoc/classes/RIO/Rio.src/M000097.html +16 -0
  114. data/doc/rdoc/classes/RIO/Rio.src/M000098.html +16 -0
  115. data/doc/rdoc/classes/RIO/Rio.src/M000099.html +16 -0
  116. data/doc/rdoc/classes/RIO/Rio.src/M000100.html +16 -0
  117. data/doc/rdoc/classes/RIO/Rio.src/M000101.html +16 -0
  118. data/doc/rdoc/classes/RIO/Rio.src/M000102.html +16 -0
  119. data/doc/rdoc/classes/RIO/Rio.src/M000103.html +16 -0
  120. data/doc/rdoc/classes/RIO/Rio.src/M000104.html +16 -0
  121. data/doc/rdoc/classes/RIO/Rio.src/M000105.html +16 -0
  122. data/doc/rdoc/classes/RIO/Rio.src/M000106.html +16 -0
  123. data/doc/rdoc/classes/RIO/Rio.src/M000107.html +16 -0
  124. data/doc/rdoc/classes/RIO/Rio.src/M000108.html +16 -0
  125. data/doc/rdoc/classes/RIO/Rio.src/M000109.html +16 -0
  126. data/doc/rdoc/classes/RIO/Rio.src/M000110.html +16 -0
  127. data/doc/rdoc/classes/RIO/Rio.src/M000111.html +16 -0
  128. data/doc/rdoc/classes/RIO/Rio.src/M000112.html +16 -0
  129. data/doc/rdoc/classes/RIO/Rio.src/M000113.html +16 -0
  130. data/doc/rdoc/classes/RIO/Rio.src/M000114.html +16 -0
  131. data/doc/rdoc/classes/RIO/Rio.src/M000115.html +16 -0
  132. data/doc/rdoc/classes/RIO/Rio.src/M000116.html +16 -0
  133. data/doc/rdoc/classes/RIO/Rio.src/M000117.html +16 -0
  134. data/doc/rdoc/classes/RIO/Rio.src/M000118.html +16 -0
  135. data/doc/rdoc/classes/RIO/Rio.src/M000119.html +16 -0
  136. data/doc/rdoc/classes/RIO/Rio.src/M000120.html +16 -0
  137. data/doc/rdoc/classes/RIO/Rio.src/M000121.html +16 -0
  138. data/doc/rdoc/classes/RIO/Rio.src/M000122.html +16 -0
  139. data/doc/rdoc/classes/RIO/Rio.src/M000123.html +16 -0
  140. data/doc/rdoc/classes/RIO/Rio.src/M000124.html +16 -0
  141. data/doc/rdoc/classes/RIO/Rio.src/M000125.html +16 -0
  142. data/doc/rdoc/classes/RIO/Rio.src/M000126.html +16 -0
  143. data/doc/rdoc/classes/RIO/Rio.src/M000127.html +16 -0
  144. data/doc/rdoc/classes/RIO/Rio.src/M000128.html +16 -0
  145. data/doc/rdoc/classes/RIO/Rio.src/M000129.html +16 -0
  146. data/doc/rdoc/classes/RIO/Rio.src/M000130.html +16 -0
  147. data/doc/rdoc/classes/RIO/Rio.src/M000131.html +16 -0
  148. data/doc/rdoc/classes/RIO/Rio.src/M000132.html +16 -0
  149. data/doc/rdoc/classes/RIO/Rio.src/M000133.html +16 -0
  150. data/doc/rdoc/classes/RIO/Rio.src/M000134.html +16 -0
  151. data/doc/rdoc/classes/RIO/Rio.src/M000135.html +16 -0
  152. data/doc/rdoc/classes/RIO/Rio.src/M000136.html +16 -0
  153. data/doc/rdoc/classes/RIO/Rio.src/M000137.html +16 -0
  154. data/doc/rdoc/classes/RIO/Rio.src/M000138.html +16 -0
  155. data/doc/rdoc/classes/RIO/Rio.src/M000139.html +16 -0
  156. data/doc/rdoc/classes/RIO/Rio.src/M000140.html +16 -0
  157. data/doc/rdoc/classes/RIO/Rio.src/M000141.html +16 -0
  158. data/doc/rdoc/classes/RIO/Rio.src/M000142.html +16 -0
  159. data/doc/rdoc/classes/RIO/Rio.src/M000143.html +16 -0
  160. data/doc/rdoc/classes/RIO/Rio.src/M000144.html +16 -0
  161. data/doc/rdoc/classes/RIO/Rio.src/M000145.html +16 -0
  162. data/doc/rdoc/classes/RIO/Rio.src/M000146.html +16 -0
  163. data/doc/rdoc/classes/RIO/Rio.src/M000147.html +16 -0
  164. data/doc/rdoc/classes/RIO/Rio.src/M000148.html +16 -0
  165. data/doc/rdoc/classes/RIO/Rio.src/M000149.html +16 -0
  166. data/doc/rdoc/classes/RIO/Rio.src/M000150.html +16 -0
  167. data/doc/rdoc/classes/RIO/Rio.src/M000151.html +16 -0
  168. data/doc/rdoc/classes/RIO/Rio.src/M000152.html +16 -0
  169. data/doc/rdoc/classes/RIO/Rio.src/M000153.html +16 -0
  170. data/doc/rdoc/classes/RIO/Rio.src/M000154.html +16 -0
  171. data/doc/rdoc/classes/RIO/Rio.src/M000155.html +16 -0
  172. data/doc/rdoc/classes/RIO/Rio.src/M000156.html +16 -0
  173. data/doc/rdoc/classes/RIO/Rio.src/M000157.html +16 -0
  174. data/doc/rdoc/classes/RIO/Rio.src/M000158.html +16 -0
  175. data/doc/rdoc/classes/RIO/Rio.src/M000159.html +16 -0
  176. data/doc/rdoc/classes/RIO/Rio.src/M000160.html +16 -0
  177. data/doc/rdoc/classes/RIO/Rio.src/M000161.html +16 -0
  178. data/doc/rdoc/classes/RIO/Rio.src/M000162.html +16 -0
  179. data/doc/rdoc/classes/RIO/Rio.src/M000163.html +16 -0
  180. data/doc/rdoc/classes/RIO/Rio.src/M000164.html +16 -0
  181. data/doc/rdoc/classes/RIO/Rio.src/M000165.html +16 -0
  182. data/doc/rdoc/classes/RIO/Rio.src/M000166.html +16 -0
  183. data/doc/rdoc/classes/RIO/Rio.src/M000167.html +16 -0
  184. data/doc/rdoc/classes/RIO/Rio.src/M000168.html +16 -0
  185. data/doc/rdoc/classes/RIO/Rio.src/M000169.html +16 -0
  186. data/doc/rdoc/classes/RIO/Rio.src/M000170.html +16 -0
  187. data/doc/rdoc/classes/RIO/Rio.src/M000171.html +16 -0
  188. data/doc/rdoc/classes/RIO/Rio.src/M000172.html +16 -0
  189. data/doc/rdoc/classes/RIO/Rio.src/M000173.html +16 -0
  190. data/doc/rdoc/classes/RIO/Rio.src/M000174.html +16 -0
  191. data/doc/rdoc/classes/RIO/Rio.src/M000175.html +16 -0
  192. data/doc/rdoc/classes/RIO/Rio.src/M000176.html +16 -0
  193. data/doc/rdoc/classes/RIO/Rio.src/M000177.html +16 -0
  194. data/doc/rdoc/classes/RIO/Rio.src/M000178.html +16 -0
  195. data/doc/rdoc/classes/RIO/Rio.src/M000179.html +16 -0
  196. data/doc/rdoc/classes/RIO/Rio.src/M000180.html +16 -0
  197. data/doc/rdoc/classes/RIO/Rio.src/M000181.html +16 -0
  198. data/doc/rdoc/classes/RIO/Rio.src/M000182.html +16 -0
  199. data/doc/rdoc/classes/RIO/Rio.src/M000183.html +16 -0
  200. data/doc/rdoc/classes/RIO/Rio.src/M000184.html +16 -0
  201. data/doc/rdoc/classes/RIO/Rio.src/M000185.html +16 -0
  202. data/doc/rdoc/classes/RIO/Rio.src/M000186.html +16 -0
  203. data/doc/rdoc/classes/RIO/Rio.src/M000187.html +16 -0
  204. data/doc/rdoc/classes/RIO/Rio.src/M000188.html +16 -0
  205. data/doc/rdoc/classes/RIO/Rio.src/M000189.html +16 -0
  206. data/doc/rdoc/classes/RIO/Rio.src/M000190.html +16 -0
  207. data/doc/rdoc/classes/RIO/Rio.src/M000191.html +16 -0
  208. data/doc/rdoc/classes/RIO/Rio.src/M000192.html +16 -0
  209. data/doc/rdoc/classes/RIO/Rio.src/M000193.html +16 -0
  210. data/doc/rdoc/classes/RIO/Rio.src/M000194.html +16 -0
  211. data/doc/rdoc/classes/RIO/Rio.src/M000195.html +16 -0
  212. data/doc/rdoc/classes/RIO/Rio.src/M000196.html +16 -0
  213. data/doc/rdoc/classes/RIO/Rio.src/M000197.html +16 -0
  214. data/doc/rdoc/classes/RIO/Rio.src/M000198.html +16 -0
  215. data/doc/rdoc/classes/RIO/Rio.src/M000199.html +16 -0
  216. data/doc/rdoc/classes/RIO/Rio.src/M000200.html +16 -0
  217. data/doc/rdoc/classes/RIO/Rio.src/M000201.html +16 -0
  218. data/doc/rdoc/classes/RIO/Rio.src/M000202.html +16 -0
  219. data/doc/rdoc/classes/RIO/Rio.src/M000203.html +16 -0
  220. data/doc/rdoc/classes/RIO/Rio.src/M000204.html +16 -0
  221. data/doc/rdoc/classes/RIO/Rio.src/M000205.html +16 -0
  222. data/doc/rdoc/classes/RIO/Rio.src/M000206.html +16 -0
  223. data/doc/rdoc/classes/RIO/Rio.src/M000207.html +16 -0
  224. data/doc/rdoc/classes/RIO/Rio.src/M000208.html +16 -0
  225. data/doc/rdoc/classes/RIO/Rio.src/M000209.html +16 -0
  226. data/doc/rdoc/classes/RIO/Rio.src/M000210.html +16 -0
  227. data/doc/rdoc/classes/RIO/Rio.src/M000211.html +16 -0
  228. data/doc/rdoc/classes/RIO/Rio.src/M000212.html +16 -0
  229. data/doc/rdoc/classes/RIO/Rio.src/M000213.html +16 -0
  230. data/doc/rdoc/created.rid +1 -0
  231. data/doc/rdoc/files/README.html +243 -0
  232. data/doc/rdoc/files/lib/rio/constructor_rb.html +142 -0
  233. data/doc/rdoc/files/lib/rio/doc/HOWTO_rb.html +135 -0
  234. data/doc/rdoc/files/lib/rio/doc/INTRO_rb.html +135 -0
  235. data/doc/rdoc/files/lib/rio/doc/MISC_rb.html +135 -0
  236. data/doc/rdoc/files/lib/rio/doc/SYNOPSIS_rb.html +135 -0
  237. data/doc/rdoc/files/lib/rio/if/basic_rb.html +135 -0
  238. data/doc/rdoc/files/lib/rio/if/csv_rb.html +135 -0
  239. data/doc/rdoc/files/lib/rio/if/dir_rb.html +135 -0
  240. data/doc/rdoc/files/lib/rio/if/file_rb.html +135 -0
  241. data/doc/rdoc/files/lib/rio/if/fileordir_rb.html +135 -0
  242. data/doc/rdoc/files/lib/rio/if/grande_entry_rb.html +135 -0
  243. data/doc/rdoc/files/lib/rio/if/grande_rb.html +135 -0
  244. data/doc/rdoc/files/lib/rio/if/grande_stream_rb.html +135 -0
  245. data/doc/rdoc/files/lib/rio/if/internal_rb.html +135 -0
  246. data/doc/rdoc/files/lib/rio/if/path_rb.html +135 -0
  247. data/doc/rdoc/files/lib/rio/if/stream_rb.html +135 -0
  248. data/doc/rdoc/files/lib/rio/if/string_rb.html +135 -0
  249. data/doc/rdoc/files/lib/rio/if/temp_rb.html +135 -0
  250. data/doc/rdoc/files/lib/rio/if/test_rb.html +135 -0
  251. data/doc/rdoc/files/lib/rio/if/yaml_rb.html +135 -0
  252. data/doc/rdoc/files/lib/rio/kernel_rb.html +142 -0
  253. data/doc/rdoc/files/lib/rio_rb.html +154 -0
  254. data/doc/rdoc/fr_class_index.html +37 -0
  255. data/doc/rdoc/fr_file_index.html +49 -0
  256. data/doc/rdoc/fr_method_index.html +241 -0
  257. data/doc/rdoc/index.html +24 -0
  258. data/doc/rdoc/rdoc-style.css +384 -0
  259. data/lib/rio.rb +21 -5
  260. data/lib/rio/constructor.rb +13 -0
  261. data/lib/rio/context/copying.rb +56 -0
  262. data/lib/rio/context/methods.rb +1 -0
  263. data/lib/rio/cp.rb +53 -34
  264. data/lib/rio/doc/HOWTO.rb +9 -3
  265. data/lib/rio/doc/INTRO.rb +113 -3
  266. data/lib/rio/ext.rb +7 -1
  267. data/lib/rio/ext/csv.rb +17 -8
  268. data/lib/rio/ext/yaml.rb +182 -0
  269. data/lib/rio/factory.rb +11 -14
  270. data/lib/rio/filter/closeoneof.rb +12 -31
  271. data/lib/rio/filter/gzip.rb +7 -0
  272. data/lib/rio/if.rb +4 -1
  273. data/lib/rio/if/csv.rb +36 -35
  274. data/lib/rio/if/grande.rb +74 -5
  275. data/lib/rio/if/grande_stream.rb +11 -3
  276. data/lib/rio/if/path.rb +9 -8
  277. data/lib/rio/if/yaml.rb +218 -0
  278. data/lib/rio/ioh.rb +5 -3
  279. data/lib/rio/matchrecord.rb +9 -2
  280. data/lib/rio/ops/dir.rb +2 -1
  281. data/lib/rio/ops/either.rb +9 -9
  282. data/lib/rio/ops/file.rb +4 -1
  283. data/lib/rio/ops/path.rb +26 -20
  284. data/lib/rio/ops/stream.rb +1 -1
  285. data/lib/rio/ops/stream/input.rb +31 -9
  286. data/lib/rio/ops/stream/output.rb +7 -2
  287. data/lib/rio/ops/stream/read.rb +10 -10
  288. data/lib/rio/ops/stream/write.rb +10 -10
  289. data/lib/rio/path.rb +2 -2
  290. data/lib/rio/path/reset.rb +1 -1
  291. data/lib/rio/piper.rb +123 -0
  292. data/lib/rio/piper/cp.rb +81 -0
  293. data/lib/rio/rectype.rb +2 -2
  294. data/lib/rio/rl/base.rb +40 -17
  295. data/lib/rio/rl/builder.rb +8 -47
  296. data/lib/rio/rl/ioi.rb +3 -2
  297. data/lib/rio/rl/path.rb +101 -78
  298. data/lib/rio/rl/pathmethods.rb +95 -0
  299. data/lib/rio/rl/uri.rb +41 -51
  300. data/lib/rio/scheme/cmdio.rb +7 -1
  301. data/lib/rio/scheme/cmdpipe.rb +150 -0
  302. data/lib/rio/scheme/ftp.rb +0 -4
  303. data/lib/rio/scheme/http.rb +0 -2
  304. data/lib/rio/scheme/strio.rb +16 -0
  305. data/lib/rio/scheme/temp.rb +7 -7
  306. data/lib/rio/state.rb +23 -5
  307. data/lib/rio/stream.rb +4 -0
  308. data/lib/rio/stream/duplex.rb +1 -0
  309. data/lib/rio/stream/open.rb +8 -2
  310. data/lib/rio/version.rb +1 -1
  311. data/test/{runtests_gem.rb → gem_runtests.rb} +0 -0
  312. data/test/methods/path.rb +12 -0
  313. data/test/runtests.rb +2 -0
  314. data/test/tc/abs.rb +29 -27
  315. data/test/tc/all.rb +9 -3
  316. data/test/tc/base.rb +31 -0
  317. data/test/tc/cmdpipe.rb +146 -0
  318. data/test/tc/copydir.rb +2 -1
  319. data/test/tc/create.rb +10 -0
  320. data/test/tc/csv.rb +12 -12
  321. data/test/tc/csv2.rb +2 -2
  322. data/test/tc/csv_columns.rb +3 -3
  323. data/test/tc/each_break.rb +21 -8
  324. data/test/tc/expand_path.rb +21 -27
  325. data/test/tc/misc.rb +0 -1
  326. data/test/tc/noqae.rb +29 -21
  327. data/test/tc/overload.rb +14 -11
  328. data/test/tc/piper.rb +146 -0
  329. data/test/tc/riorl.rb +26 -17
  330. data/test/tc/route.rb +51 -0
  331. data/test/tc/skip.rb +8 -6
  332. data/test/tc/split.rb +70 -0
  333. data/test/tc/temp.rb +5 -5
  334. data/test/tc/testcase.rb +1 -0
  335. data/test/tc/yaml.rb +118 -0
  336. metadata +481 -229
  337. data/doc/README_MSWIN32.txt +0 -39
  338. data/ex/colx.rb +0 -8
  339. data/ex/findinruby +0 -23
  340. data/ex/findruby +0 -15
  341. data/ex/passwd_report.rb +0 -8
  342. data/ex/prompt.rb +0 -25
  343. data/ex/rgb.txt.gz +0 -0
  344. data/ex/riocat +0 -35
  345. data/ex/riogunzip +0 -31
  346. data/ex/riogzip +0 -24
  347. data/ex/rioprompt.rb +0 -6
  348. data/ex/tolf +0 -11
  349. data/test/mswin32.rb +0 -28
@@ -161,7 +161,8 @@ class TC_copydir < Test::RIO::TestCase
161
161
  end
162
162
  def test_tofile
163
163
  dst = rio('dst').delete!.touch
164
- assert_raise(Errno::ENOTDIR) {
164
+ exp = ($mswin32 ? Errno::ENOENT : Errno::ENOTDIR)
165
+ assert_raise(exp) {
165
166
  @d0 > dst
166
167
  }
167
168
  end
@@ -21,6 +21,16 @@ class TC_RIO_create < Test::Unit::TestCase
21
21
  ario = RIO.cwd
22
22
  assert_kind_of(RIO::Rio,ario)
23
23
  cwd = RIO::RL.fs2url(::Dir.getwd)
24
+ assert_equal("#{cwd}",ario.urlpath)
25
+
26
+ ario = RIO.cwd
27
+ assert_kind_of(RIO::Rio,ario)
28
+ cwd = ::Dir.getwd
29
+ assert_equal("#{cwd}",ario.path)
30
+
31
+ ario = RIO.cwd
32
+ assert_kind_of(RIO::Rio,ario)
33
+ cwd = ::Dir.getwd
24
34
  assert_equal(cwd,ario.to_s)
25
35
 
26
36
  ario = RIO.root.join('tmp')
@@ -195,34 +195,34 @@ class TC_csv < Test::Unit::TestCase
195
195
 
196
196
  src_str = @string.dup
197
197
 
198
- rio(?$,src_str) > rio(?$,dst_str='')
198
+ rio(?",src_str) > rio(?",dst_str='')
199
199
  assert_equal(src_str,dst_str)
200
200
 
201
- rio(?$,src_str).csv > rio(?$,dst_str='')
201
+ rio(?",src_str).csv > rio(?",dst_str='')
202
202
  assert_equal(@records.to_s,dst_str)
203
203
 
204
- rio(?$,dst_str='') < rio(?$,src_str).csv
204
+ rio(?",dst_str='') < rio(?",src_str).csv
205
205
  assert_equal(@records.to_s,dst_str)
206
206
 
207
- dst = rio(?$)
208
- rio(?$,src_str) > dst.csv
207
+ dst = rio(?")
208
+ rio(?",src_str) > dst.csv
209
209
  assert_equal(@records,dst[])
210
210
 
211
- dst = rio(?$)
212
- dst.csv < rio(?$,src_str)
211
+ dst = rio(?")
212
+ dst.csv < rio(?",src_str)
213
213
  assert_equal(@records,dst[])
214
214
 
215
- dst = rio(?$)
216
- rio(?$,src_str) > dst.csv
215
+ dst = rio(?")
216
+ rio(?",src_str) > dst.csv
217
217
  assert_equal(@records,dst[])
218
218
 
219
- dst = rio(?$).csv < rio(?$,src_str)
219
+ dst = rio(?").csv < rio(?",src_str)
220
220
  assert_equal(@records,dst[])
221
221
 
222
- dst = rio(?$).csv(';') < rio(?$,src_str).csv
222
+ dst = rio(?").csv(';') < rio(?",src_str).csv
223
223
  assert_equal(src_str.gsub(/,/,';'),dst.contents)
224
224
 
225
- rio(?$,src_str).csv > (dst = rio(?$).csv(';'))
225
+ rio(?",src_str).csv > (dst = rio(?").csv(';'))
226
226
  assert_equal(src_str.gsub(/,/,';'),dst.contents)
227
227
 
228
228
  end
@@ -105,7 +105,7 @@ class TC_csv2 < Test::RIO::TestCase
105
105
  assert_equal(@lines[1],rio('src1.csv').records(1).getrec)
106
106
  assert_equal(@lines[1],rio('src1.csv').rows(1).getrec)
107
107
 
108
- assert_equal(@lines[1],rio('src1.csv').csv.lines(1).getrec)
108
+ assert_equal(@records[1],rio('src1.csv').csv.lines(1).getrec)
109
109
  assert_equal(@records[1],rio('src1.csv').csv.records(1).getrec)
110
110
 
111
111
  assert_equal(@records[8000],rio('src1.csv').csv.records(8000).getrec)
@@ -118,7 +118,7 @@ class TC_csv2 < Test::RIO::TestCase
118
118
  assert_equal(@strings[0],rec_rio.to_s)
119
119
 
120
120
  rec_rio = rio('src1.csv').csv.lines.getrec
121
- assert_kind_of(::String,rec_rio)
121
+ assert_kind_of(::Array,rec_rio)
122
122
  assert_equal(@records[0],rec_rio.to_a)
123
123
 
124
124
  ary = rio('src1.csv').csv[]
@@ -28,9 +28,9 @@ class TC_csv_columns < Test::RIO::TestCase
28
28
  r = @records[0]
29
29
  assert_equal([[r[1],r[2],r[5]]],rio('src1.csv').csv.columns(1,2,5).to_a)
30
30
  assert_equal([r[3...6]],rio('src1.csv').csv.columns(3...6).to_a)
31
- assert_equal([[r[3],r[5]]],rio('src1.csv').csv.columns(3...6).nocolumns(4).to_a)
32
- assert_equal([[r[0],r[7]]],rio('src1.csv').csv.nocolumns(1..6).to_a)
33
- assert_equal([[]],rio('src1.csv').csv.nocolumns.to_a)
31
+ assert_equal([[r[3],r[5]]],rio('src1.csv').csv.columns(3...6).skipcolumns(4).to_a)
32
+ assert_equal([[r[0],r[7]]],rio('src1.csv').csv.skipcolumns(1..6).to_a)
33
+ assert_equal([[]],rio('src1.csv').csv.skipcolumns.to_a)
34
34
  assert_equal([r],rio('src1.csv').csv.to_a)
35
35
 
36
36
  end
@@ -71,7 +71,7 @@ class TC_each_break < Test::Unit::TestCase
71
71
  assert_array_equal(@dirs,ans)
72
72
 
73
73
  end
74
- def test_dir_sel
74
+ def broken_test_dir_sel
75
75
  ans = []
76
76
  @dir.entries.each { |ent| ans << ent; break }
77
77
  assert_array_equal(@ents[0..0],ans)
@@ -131,16 +131,29 @@ class TC_each_break < Test::Unit::TestCase
131
131
  assert_equal(@e2[0..0],ans)
132
132
 
133
133
  end
134
- def test_dir_readmore
135
- ans = []
136
- @d1.each { |ent| ans << ent; break }
134
+ def broken_test_dir_readmore
135
+ ans = []
136
+ ### LOOK INTO THIS
137
+ ### Something changed in ruby 1.8.3
138
+ ### See the file q/dir_readmore.q for a simple example
139
+ @d1.each { |ent|
140
+ p ent
141
+ ans << ent;
142
+ break
143
+ }
137
144
  assert(@d1.open?)
138
145
  assert_equal(@e1[0..0],ans)
139
146
 
140
- ans = []
141
- @d1.each { |ent| ans << ent; break }
142
- assert(@d1.closed?)
143
- assert_equal([],ans)
147
+ # #$trace_states = true
148
+ # ans = []
149
+ # @d1.each { |ent|
150
+ # p ent
151
+ # ans << ent;
152
+ # break
153
+ # }
154
+ # assert(@d1.closed?)
155
+ # assert_equal([],ans)
156
+ # $trace_states = false
144
157
 
145
158
  ans = []
146
159
  @d1.each { |ent| ans << ent; break }
@@ -45,9 +45,11 @@ class TC_RIO_expand_path < Test::Unit::TestCase
45
45
 
46
46
  def test_expand_path_from_base_rio
47
47
  @tdir.chdir do
48
- rel = rio('groovy')
49
- base = rio('/tmp')
50
- exp = rio(base,rel)
48
+ srel = 'groovy'
49
+ sbase = '/tmp'
50
+ rel = rio(srel)
51
+ base = rio(sbase)
52
+ exp = File.expand_path(srel,sbase)
51
53
  ans = rel.expand_path(base)
52
54
  assert_kind_of(RIO::Rio,ans)
53
55
  assert_equal(exp,ans)
@@ -56,39 +58,31 @@ class TC_RIO_expand_path < Test::Unit::TestCase
56
58
 
57
59
  def test_expand_path_from_base_string
58
60
  @tdir.chdir do
59
- rel = rio('groovy')
60
- base = rio('/tmp')
61
- exp = rio(base,rel)
62
- ans = rel.expand_path(base.to_s)
61
+ srel = 'groovy'
62
+ sbase = '/tmp'
63
+ rel = rio(srel)
64
+ base = rio(sbase)
65
+ exp = File.expand_path(srel,sbase)
66
+ ans = rel.expand_path(sbase)
63
67
  assert_kind_of(RIO::Rio,ans)
64
- assert_equal(exp.to_s,ans.to_s)
68
+ assert_equal(exp,ans)
65
69
  end
66
70
  end
67
71
 
68
72
  def test_expand_path_from_tilde
69
- return unless $supports_symlink
70
73
  @tdir.chdir do
71
- file = rio('groovy')
72
- rel = rio('~/' + file.to_s)
73
- home = rio(RIO::RL.fs2url(ENV['HOME'].dup))
74
- exp = rio(home,file)
75
- ans = rel.expand_path
76
- assert_equal(exp.to_s,ans.to_s)
74
+ srel = 'groovy'
75
+ sbase = '~'
76
+ rel = rio(srel)
77
+ base = rio(sbase)
78
+ exp = File.expand_path(srel,sbase)
79
+ ans = rel.expand_path(sbase)
80
+ assert_kind_of(RIO::Rio,ans)
81
+ assert_equal(exp,ans)
77
82
  end
78
83
  end
79
84
 
80
- def test_expand_path_from_tilde_user
81
- return unless $supports_symlink
82
- @tdir.chdir do
83
- home = rio(RIO::RL.fs2url(ENV['HOME'].dup))
84
- user = RIO::RL.fs2url(ENV['USER'].dup)
85
- file = rio('groovy')
86
- rel = rio('~' + user)
87
- exp = rio(home)
88
- ans = rel.expand_path
89
- assert_equal(exp.to_s,ans.to_s)
90
- end
91
- end
85
+
92
86
 
93
87
 
94
88
  end
@@ -310,7 +310,6 @@ class TC_RIO_misc < Test::Unit::TestCase
310
310
 
311
311
  end
312
312
  def test_specialio
313
- return unless $supports_symlink
314
313
  tdir = rio(ttdir,'test_specialio').rmtree.mkpath
315
314
  msg = "Hello File\n"
316
315
  fname = 'f.txt'
@@ -40,12 +40,19 @@ class TC_RIO_noqae < Test::Unit::TestCase
40
40
  }
41
41
  rio('f1') < (0..1).map { |i| "L#{i}:d0/f1\n" }
42
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')
43
+ if $supports_symlink
44
+ rio('x1').symlink('n1')
45
+ rio('x2').symlink('n2')
46
+ rio('f1').symlink('l1')
47
+ rio('f2').symlink('l2')
48
+ rio('d1').symlink('c1')
49
+ rio('d2').symlink('c2')
50
+ else
51
+ rio('f1') > rio('l1')
52
+ rio('f2') > rio('l2')
53
+ rio('d1') > rio('c1')
54
+ rio('d2') > rio('c2')
55
+ end
49
56
  }
50
57
 
51
58
  rio('d1').mkpath.chdir {
@@ -72,10 +79,12 @@ class TC_RIO_noqae < Test::Unit::TestCase
72
79
  end
73
80
  end
74
81
  end
75
-
82
+ def all()
83
+ all = ['d0/d1','d0/d2','d0/c1','d0/c2','d0/f1','d0/f2','d0/l1','d0/l2']
84
+ all += ['d0/n1','d0/n2'] if $supports_symlink
85
+ all
86
+ end
76
87
  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
88
  rio('qp/noqae').chdir do
80
89
  begin
81
90
 
@@ -187,10 +196,7 @@ class TC_RIO_noqae < Test::Unit::TestCase
187
196
  end
188
197
 
189
198
  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
199
+ @@tdir.abs.chdir
194
200
  begin
195
201
  begin
196
202
  ans = []
@@ -212,6 +218,7 @@ class TC_RIO_noqae < Test::Unit::TestCase
212
218
  rio('d0').skipfiles('*').each { |el|
213
219
  assert(el.file?)
214
220
  }
221
+ return unless $supports_symlink
215
222
  begin
216
223
  exp = all.select { |el| el =~ /[lnc]\d\Z/ }
217
224
  ans = []
@@ -272,12 +279,11 @@ class TC_RIO_noqae < Test::Unit::TestCase
272
279
  end
273
280
  end
274
281
  end
275
- rio(wd).chdir
282
+ #rio(wd).chdir
276
283
  end
277
284
  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
285
+
286
+ @@tdir.abs.chdir do
281
287
  begin
282
288
 
283
289
  begin
@@ -309,10 +315,12 @@ class TC_RIO_noqae < Test::Unit::TestCase
309
315
  dre = /1/
310
316
  exp = all.select { |el| el =~ /[d]2$/ }
311
317
  ans = []
312
- rio('d0').skipdirs(dre,:symlink?).each { |el| ans << el }
313
- assert_equal(exp.sort,smap(ans).sort)
314
- ans = rio('d0').skipdirs[dre,:symlink?]
315
- assert_equal(exp.sort,smap(ans).sort)
318
+ if $supports_symlink
319
+ rio('d0').skipdirs(dre,:symlink?).each { |el| ans << el }
320
+ assert_equal(exp.sort,smap(ans).sort)
321
+ ans = rio('d0').skipdirs[dre,:symlink?]
322
+ assert_equal(exp.sort,smap(ans).sort)
323
+ end
316
324
  end
317
325
 
318
326
  begin
@@ -5,6 +5,7 @@ if $0 == __FILE__
5
5
  end
6
6
  require 'rio'
7
7
  require 'test/unit'
8
+ require 'tc/testcase'
8
9
 
9
10
  class TC_RIO_overload < Test::Unit::TestCase
10
11
  def test_overload
@@ -72,19 +73,21 @@ class TC_RIO_overload < Test::Unit::TestCase
72
73
  fh.close
73
74
  assert_equal(line0,rio('dst2').contents)
74
75
 
75
- rio('src.gz').gzip < rio('src')
76
- rio('dst3') < rio('src.gz').gzip
77
- assert_equal(line0,rio('dst3').contents)
76
+ unless $mswin32
77
+ rio('src.gz').gzip < rio('src')
78
+ rio('dst3') < rio('src.gz').gzip
79
+ assert_equal(line0,rio('dst3').contents)
78
80
 
79
- str = 'Hello World'
80
- rio('src.gz').gzip > str
81
- assert_equal(line0,str)
81
+ str = 'Hello World'
82
+ rio('src.gz').gzip > str
83
+ assert_equal(line0,str)
82
84
 
83
- rio('src') > rio('src.gz').gzip
84
- rio('src.gz').gzip > str
85
- assert_equal(line0,str)
86
- rio('src.gz').gzip >> str
87
- assert_equal(line0+line0,str)
85
+ rio('src') > rio('src.gz').gzip
86
+ rio('src.gz').gzip > str
87
+ assert_equal(line0,str)
88
+ rio('src.gz').gzip >> str
89
+ assert_equal(line0+line0,str)
90
+ end
88
91
 
89
92
  }
90
93
 
@@ -0,0 +1,146 @@
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 'rio/piper'
10
+
11
+ class TC_piper < Test::RIO::TestCase
12
+ @@once = false
13
+ @@dname = 'd'
14
+ @@fnames = ['f0','f1','f2','g0','g1']
15
+
16
+ def self.once
17
+ @@once = true
18
+ rio(@@dname).rmtree.mkpath.chdir {
19
+ @@fnames.each { |fn|
20
+ make_lines_file(2,fn)
21
+ }
22
+ }
23
+ end
24
+ def setup
25
+ super
26
+ self.class.once unless @@once
27
+ end
28
+
29
+ def checkit(exp,*args)
30
+ args.push(out = rio(?").chomp)
31
+ rp = RIO::Piper::Base.new(*args)
32
+ rp.run
33
+ assert_equal(exp,out[])
34
+ rp = RIO::Piper::Base.new(*args)
35
+ rp.run
36
+ assert_equal(exp,out[])
37
+ rp.run
38
+ assert_equal(exp,out[])
39
+ end
40
+
41
+ def test_cmd_out
42
+ ls = rio(?-,'ls')
43
+ checkit([@@dname],ls)
44
+ end
45
+
46
+ def test_cmd_out2
47
+ ls = rio(?-,'ls d')
48
+ checkit(@@fnames,ls)
49
+ end
50
+
51
+ def test_cmd_cmd_out
52
+ ls = rio(?-,'ls d')
53
+ grep = rio(?-,'grep 1').w!
54
+ checkit(@@fnames.select { |s| s =~ /1/ },ls,grep)
55
+ end
56
+
57
+ def test_cmd_cmd_cmd_out
58
+ ls = rio(?-,'ls d')
59
+ grep = rio(?-,'grep 1').w!
60
+ grep2 = rio(?-,'grep g').w!
61
+ checkit(@@fnames.select { |s| s =~ /g1/ },ls,grep,grep2)
62
+ end
63
+
64
+ def test_cmd_cmd_cmd_cmd_out
65
+ ls = rio(?-,'ls d')
66
+ grep = rio(?-,'grep 1').w!
67
+ grep2 = rio(?-,'grep g').w!
68
+ wc = rio(?-,'wc -l').w!
69
+
70
+ checkit(["1"],ls,grep,grep2,wc)
71
+ end
72
+ def test_piper_out
73
+ ls = rio(?-,'ls d')
74
+ grep = rio(?-,'grep 1').w!
75
+ rp1 = RIO::Piper::Base.new(ls,grep)
76
+ checkit(@@fnames.select { |s| s =~ /1/ },rp1)
77
+ end
78
+
79
+ def test_piper_cmd_out
80
+ ls = rio(?-,'ls d')
81
+ grep = rio(?-,'grep 1').w!
82
+ rp1 = RIO::Piper::Base.new(ls,grep)
83
+ grep2 = rio(?-,'grep g').w!
84
+ checkit(@@fnames.select { |s| s =~ /g1/ },rp1,grep2)
85
+ end
86
+
87
+ def test_cmd_piper_out
88
+ ls = rio(?-,'ls d')
89
+ grep = rio(?-,'grep 1').w!
90
+ grep2 = rio(?-,'grep g').w!
91
+ rp1 = RIO::Piper::Base.new(grep,grep2)
92
+ checkit(@@fnames.select { |s| s =~ /g1/ },ls,rp1)
93
+ end
94
+
95
+ def test_piper_piper_out
96
+ ls = rio(?-,'ls d')
97
+ grep = rio(?-,'grep 1').w!
98
+ grep2 = rio(?-,'grep g').w!
99
+ wc = rio(?-,'wc -l').w!
100
+ rp1 = RIO::Piper::Base.new(ls,grep)
101
+ rp2 = RIO::Piper::Base.new(grep2,wc)
102
+ checkit(["1"],rp1,rp2)
103
+ end
104
+
105
+ def test_file_out
106
+ f = rio('d/f2')
107
+ checkit(rio('d/f2').chomp[],f)
108
+ end
109
+
110
+ def test_file_cmd_out
111
+ f = rio('d/f2')
112
+ grep = rio(?-,'grep 2').w!
113
+ checkit(rio('d/f2').chomp[/2/],f,grep)
114
+ end
115
+
116
+ def test_file_cmd_cmd_out
117
+ f = rio('d/f2')
118
+ grep = rio(?-,'grep 2').w!
119
+ grep2 = rio(?-,'grep 0').w!
120
+ checkit(rio('d/f2').chomp[/0/],f,grep,grep2)
121
+ end
122
+
123
+ def test_file_cmd_cmd_cmd_out
124
+ f = rio('d/f2')
125
+ grep = rio(?-,'grep 2').w!
126
+ grep2 = rio(?-,'grep 0').w!
127
+ wc = rio(?-,'wc -l').w!
128
+ checkit(["1"],f,grep,grep2,wc)
129
+ end
130
+
131
+ def test_piper_out
132
+ ls = rio(?-,'ls d')
133
+ grep = rio(?-,'grep 1').w!
134
+ rp1 = RIO::Piper::Base.new(ls,grep)
135
+ checkit(@@fnames.select { |s| s =~ /1/ },rp1)
136
+ end
137
+
138
+ def test_file_piper_out
139
+ f = rio('d/f2')
140
+ grep = rio(?-,'grep 2').w!
141
+ grep2 = rio(?-,'grep 0').w!
142
+ rp1 = RIO::Piper::Base.new(grep,grep2)
143
+ checkit(rio('d/f2').chomp[/0/],f,rp1)
144
+ end
145
+
146
+ end