rio 0.3.4 → 0.3.6

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 (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
@@ -41,7 +41,7 @@ require 'rio/context/methods'
41
41
  require 'rio/ext'
42
42
  require 'rio/symantics'
43
43
  require 'rio/filter'
44
- $trace_states = false
44
+
45
45
  module RIO
46
46
 
47
47
 
@@ -55,7 +55,7 @@ module RIO
55
55
  # * and some basic error handling stubs
56
56
  class Base
57
57
  KIOSYMS = [:gets,:open,:readline,:readlines,:chop,:to_a,:putc,:puts,:print,:printf,:split,
58
- :=~,:===,:==,:eql?,:sub,:sub!,:gsub,:gsub!]
58
+ :=~,:===,:==,:eql?,:sub,:sub!,:gsub,:gsub!,:load]
59
59
  @@kernel_cleaned ||= KIOSYMS.each { |sym| undef_method(sym) }
60
60
  end
61
61
 
@@ -79,7 +79,7 @@ module RIO
79
79
  end
80
80
 
81
81
  def initialize_copy(*args)
82
- #p callstr('enter state initialize_copy',*args)
82
+ #p callstr('initialize_copy',args[0].inspect)
83
83
  super
84
84
  @rl = @rl.clone unless @rl.nil?
85
85
  @cx = @cx.clone unless @cx.nil?
@@ -89,7 +89,12 @@ module RIO
89
89
  def self.new_r(riorl)
90
90
  new.init(riorl,Cx::Vars.new( { 'closeoneof' => true, 'closeoncopy' => true } ))
91
91
  end
92
-
92
+ def clone_rio()
93
+ cp = Rio.new(self.rl)
94
+ cp.cx = self.cx
95
+ cp.ioh = self.ioh.clone unless self.ioh.nil?
96
+ cp
97
+ end
93
98
  def init(riorl,cntx,iohandle=nil)
94
99
  @rl = riorl
95
100
  @cx = cntx
@@ -106,6 +111,11 @@ module RIO
106
111
  init(other.rl,other.cx,other.ioh)
107
112
  end
108
113
 
114
+ alias :ior :ioh
115
+ alias :iow :ioh
116
+
117
+
118
+
109
119
  # Section: State Switching
110
120
 
111
121
  # the method for changing states
@@ -170,7 +180,7 @@ module RIO
170
180
 
171
181
 
172
182
  extend Forwardable
173
- def_instance_delegators(:rl,:path,:to_s,:fspath,:length)
183
+ def_instance_delegators(:rl,:path,:to_s,:fspath,:urlpath,:length)
174
184
 
175
185
  def ==(other) @rl == other end
176
186
  def ===(other) self == other end
@@ -200,6 +210,14 @@ module RIO
200
210
  return arg0 if arg0.kind_of?(::RIO::Rio)
201
211
  new_rio(arg0)
202
212
  end
213
+ def ensure_cmd_rio(arg)
214
+ case arg
215
+ when ::String then new_rio(:cmdio,arg)
216
+ when ::Fixnum then new_rio(arg)
217
+ when Rio then arg.clone
218
+ else ensure_rio(arg)
219
+ end
220
+ end
203
221
 
204
222
  include Symantics
205
223
 
@@ -43,6 +43,7 @@ require 'rio/ops/stream/output'
43
43
  require 'rio/ext'
44
44
 
45
45
  require 'rio/filter/gzip'
46
+ #require 'rio/filter/yaml'
46
47
  #require 'rio/filter/chomp'
47
48
  #require 'rio/filter/strip'
48
49
  require 'rio/filter/closeoneof'
@@ -116,10 +117,12 @@ module RIO
116
117
  end
117
118
 
118
119
  def add_extensions()
120
+ #p callstr('add_extensions')
119
121
  Ext::Input.add_extensions(self)
120
122
  end
121
123
  def add_filters
122
124
  add_filter(Filter::GZipRead) if gzip?
125
+ #add_filter(Filter::YAML) if yaml?
123
126
  add_line_filters()
124
127
  if closeoneof?
125
128
  add_filter(Filter::CloseOnEOF)
@@ -143,6 +146,7 @@ module RIO
143
146
  end
144
147
  def add_filters
145
148
  add_filter(Filter::GZipWrite) if gzip?
149
+ #add_filter(Filter::YAML) if yaml?
146
150
  self
147
151
  end
148
152
 
@@ -50,6 +50,7 @@ module RIO
50
50
  module Ops
51
51
  module Output
52
52
  def wclose()
53
+ #p "wclose #{self}"
53
54
  ioh.close_write
54
55
  return self.close.softreset if ioh.closed?
55
56
  self
@@ -40,6 +40,7 @@ require 'rio/stream/base'
40
40
  require 'rio/ops/stream'
41
41
  require 'rio/ops/path'
42
42
  require 'rio/cp'
43
+ require 'rio/piper/cp'
43
44
 
44
45
  module RIO
45
46
  module Stream
@@ -50,6 +51,7 @@ module RIO
50
51
  #include Ops::Path::Query
51
52
  include Cp::Open::Output
52
53
  include Cp::Open::Input
54
+ include Piper::Cp::Input
53
55
 
54
56
  def check?() true end
55
57
 
@@ -73,6 +75,7 @@ module RIO
73
75
  end
74
76
 
75
77
  protected :open_
78
+
76
79
  end
77
80
  end
78
81
  end
@@ -87,7 +90,7 @@ module RIO
87
90
  end
88
91
  OUTPUT_SYMS = [:print,:printf,:puts,:putc,:write,
89
92
  :print!,:printf!,:puts!,:putc!,:write!,
90
- :put_,:putrec,:<,:<<
93
+ :put_,:putrec,:putrec!,:<,:<<
91
94
  ].build_hash { |sym| [sym.to_s,1] }
92
95
  def sym_state(sym,im,om)
93
96
  if OUTPUT_SYMS[sym.to_s] or RIO::Ext::OUTPUT_SYMS[sym.to_s]
@@ -140,11 +143,14 @@ module RIO
140
143
  # TEMP
141
144
  def dir?() false end
142
145
  def stream_state(cl)
146
+ #p callstr('stream_state',cl)
143
147
  #p "LOOP: retry:#{cx['retrystate']} => #{cl}"
144
148
  return nil if cx['retrystate'] == cl
145
149
  cx['retrystate'] = cl
146
150
 
147
- become(cl).add_rec_methods.add_filters.add_extensions.setup
151
+ become(cl).add_rec_methods.add_extensions.add_filters.setup
152
+ #become(cl).add_rec_methods.add_filters.add_extensions.setup
153
+ #become(cl).add_extensions.add_rec_methods.add_filters.setup
148
154
  #next_state.extend(Ops::Symlink::Existing) if symlink?
149
155
  #next_state
150
156
  end
@@ -39,7 +39,7 @@
39
39
  module RIO
40
40
  # :stopdoc:
41
41
  module Version #:nodoc: all
42
- VERSION = '0.3.4'
42
+ VERSION = '0.3.6'
43
43
 
44
44
  N = VERSION.split('.').freeze
45
45
  MAJOR = N[0].freeze
@@ -0,0 +1,12 @@
1
+ #!/usr/local/bin/ruby
2
+
3
+ require 'rio'
4
+ rio('/a/b/c').path
5
+ rio('b/c').path
6
+ rio('C:/b/c').path
7
+ rio('//ahost/a/b').path
8
+ rio('file://ahost/a/b').path
9
+ rio('file:///a/b').path
10
+ rio('file://localhost/a/b').path
11
+ rio('http://ahost/index.html').path
12
+ rio('stdin:').path
@@ -3,6 +3,8 @@ Dir.chdir File.dirname(__FILE__)
3
3
  $devlib=File.expand_path('../lib/')
4
4
  $:.unshift $devlib unless $:[0] == $devlib
5
5
 
6
+ $mswin32 = (RUBY_PLATFORM =~ /mswin32/)
7
+
6
8
  require 'rio'
7
9
  require 'test/unit'
8
10
 
@@ -3,10 +3,6 @@ if $0 == __FILE__
3
3
  Dir.chdir File.dirname(__FILE__)+'/../'
4
4
  $:.unshift File.expand_path('../lib/')
5
5
  end
6
- if $0 == __FILE__
7
- Dir.chdir File.dirname(__FILE__)+'/../'
8
- $:.unshift File.expand_path('../lib/')
9
- end
10
6
  require 'rio'
11
7
  require 'test/unit'
12
8
  require 'test/unit/testsuite'
@@ -22,7 +18,7 @@ class TC_RIO_abs < Test::Unit::TestCase
22
18
  hduri = ::URI.parse(hdurl)
23
19
  hd = rio(hduri)
24
20
  assert_equal('/',hd.path)
25
- assert_equal('/',hd.fspath)
21
+ assert_nil(hd.fspath)
26
22
  assert_equal('http',hd.scheme)
27
23
  assert_equal('localhost',hd.host)
28
24
  assert_equal(true,hd.abs?)
@@ -32,7 +28,7 @@ class TC_RIO_abs < Test::Unit::TestCase
32
28
  hdurl = 'http://localhost/'
33
29
  hd = rio(hdurl)
34
30
  assert_equal('/',hd.path)
35
- assert_equal('/',hd.fspath)
31
+ assert_nil(hd.fspath)
36
32
  assert_equal('http',hd.scheme)
37
33
  assert_equal('localhost',hd.host)
38
34
  assert_equal(true,hd.abs?)
@@ -43,7 +39,7 @@ class TC_RIO_abs < Test::Unit::TestCase
43
39
  hduri = ::URI.parse(hdurl)
44
40
  hd = rio(hduri)
45
41
  assert_equal('/',hd.path)
46
- assert_equal('/',hd.fspath)
42
+ assert_nil(hd.fspath)
47
43
  assert_equal('http',hd.scheme)
48
44
  assert_equal('localhost',hd.host)
49
45
  assert_equal(true,hd.abs?)
@@ -53,7 +49,7 @@ class TC_RIO_abs < Test::Unit::TestCase
53
49
  hdurl = 'http://localhost'
54
50
  hd = rio(hdurl)
55
51
  assert_equal('/',hd.path)
56
- assert_equal('/',hd.fspath)
52
+ assert_nil(hd.fspath)
57
53
  assert_equal('http',hd.scheme)
58
54
  assert_equal('localhost',hd.host)
59
55
  assert_equal(true,hd.abs?)
@@ -63,7 +59,7 @@ class TC_RIO_abs < Test::Unit::TestCase
63
59
  hdurl = 'http://localhost/rio/hw.html'
64
60
  hd = rio(hdurl)
65
61
  assert_equal('/rio/hw.html',hd.path)
66
- assert_equal('/rio/hw.html',hd.fspath)
62
+ assert_nil(hd.fspath)
67
63
  assert_equal('http',hd.scheme)
68
64
  assert_equal('localhost',hd.host)
69
65
  assert_equal(true,hd.abs?)
@@ -169,12 +165,12 @@ class TC_RIO_abs < Test::Unit::TestCase
169
165
  hdurl = '/tmp/'
170
166
  hd = rio(hdurl)
171
167
  assert_equal('/tmp/',hd.path)
172
- assert_equal('/tmp',hd.fspath)
168
+ assert_equal('/tmp/',hd.fspath)
173
169
  assert_equal('file',hd.scheme)
174
170
  assert_equal('',hd.host)
175
171
  assert_equal(true,hd.abs?)
176
172
  assert_equal(true,hd.absolute?)
177
- assert_equal(hdurl.chop,hd.abs.to_s)
173
+ assert_equal(hdurl,hd.abs.to_s)
178
174
  assert_equal('file:///tmp/',hd.to_url)
179
175
  assert_equal('file:///tmp/',hd.abs.to_url)
180
176
 
@@ -188,23 +184,24 @@ class TC_RIO_abs < Test::Unit::TestCase
188
184
  assert_nil(hd.host)
189
185
  assert_equal(false,hd.abs?)
190
186
  assert_equal(false,hd.absolute?)
191
- cwd = RIO::RL.fs2url(::Dir.getwd)
187
+ cwd = ::Dir.getwd
192
188
  assert_equal(cwd+'/'+hdurl,hd.abs.to_s)
193
189
  assert_equal('path:qp',hd.to_url)
194
- assert_equal('file://'+cwd+'/'+hdurl,hd.abs.to_url)
190
+
191
+ assert_equal('file://'+RIO::RL.fs2url(cwd)+'/'+hdurl,hd.abs.to_url)
195
192
 
196
193
  hdurl = 'qp/'
197
194
  hd = rio(hdurl)
198
195
  assert_equal('qp/',hd.path)
199
- assert_equal('qp',hd.fspath)
196
+ assert_equal('qp/',hd.fspath)
200
197
  assert_equal('path',hd.scheme)
201
198
  assert_nil(hd.host)
202
199
  assert_equal(false,hd.abs?)
203
200
  assert_equal(false,hd.absolute?)
204
- cwd = RIO::RL.fs2url(::Dir.getwd)
205
- assert_equal(cwd+'/'+hdurl.chop,hd.abs.to_s)
201
+ cwd = ::Dir.getwd
202
+ assert_equal(cwd+'/'+hdurl,hd.abs.to_s)
206
203
  assert_equal('path:qp/',hd.to_url)
207
- assert_equal('file://'+cwd+'/'+hdurl,hd.abs.to_url)
204
+ assert_equal('file://'+RIO::RL.fs2url(cwd)+'/'+hdurl,hd.abs.to_url)
208
205
 
209
206
  # case qp dir exists
210
207
  rio('qp').mkdir
@@ -217,23 +214,23 @@ class TC_RIO_abs < Test::Unit::TestCase
217
214
  assert_nil(hd.host)
218
215
  assert_equal(false,hd.abs?)
219
216
  assert_equal(false,hd.absolute?)
220
- cwd = RIO::RL.fs2url(::Dir.getwd)
217
+ cwd = ::Dir.getwd
221
218
  assert_equal(cwd+'/'+hdurl,hd.abs.to_s)
222
- # assert_equal('path:qp/',hd.to_url)
223
- # assert_equal('file://'+cwd+'/'+hdurl+'/',hd.abs.to_url)
219
+ assert_equal('path:qp',hd.to_url)
220
+ assert_equal('file://'+RIO::RL.fs2url(cwd)+'/'+hdurl,hd.abs.to_url)
224
221
 
225
222
  hdurl = 'qp/'
226
223
  hd = rio(hdurl)
227
224
  assert_equal('qp/',hd.path)
228
- assert_equal('qp',hd.fspath)
225
+ assert_equal('qp/',hd.fspath)
229
226
  assert_equal('path',hd.scheme)
230
227
  assert_nil(hd.host)
231
228
  assert_equal(false,hd.abs?)
232
229
  assert_equal(false,hd.absolute?)
233
- cwd = RIO::RL.fs2url(::Dir.getwd)
234
- assert_equal(cwd+'/'+hdurl.chop,hd.abs.to_s)
230
+ cwd = ::Dir.getwd
231
+ assert_equal(cwd+'/'+hdurl,hd.abs.to_s)
235
232
  assert_equal('path:qp/',hd.to_url)
236
- assert_equal('file://'+cwd+'/'+hdurl,hd.abs.to_url)
233
+ assert_equal('file://'+RIO::RL.fs2url(cwd)+'/'+hdurl,hd.abs.to_url)
237
234
 
238
235
  # case qp file exists
239
236
  rio('qp').rmtree.touch
@@ -246,10 +243,10 @@ class TC_RIO_abs < Test::Unit::TestCase
246
243
  assert_nil(hd.host)
247
244
  assert_equal(false,hd.abs?)
248
245
  assert_equal(false,hd.absolute?)
249
- cwd = RIO::RL.fs2url(::Dir.getwd)
246
+ cwd = ::Dir.getwd
250
247
  assert_equal(cwd+'/'+hdurl,hd.abs.to_s)
251
248
  assert_equal('path:qp',hd.to_url)
252
- assert_equal('file://'+cwd+'/'+hdurl,hd.abs.to_url)
249
+ assert_equal('file://'+RIO::RL.fs2url(cwd)+'/'+hdurl,hd.abs.to_url)
253
250
 
254
251
  io = RIO.root
255
252
  assert_kind_of(RIO::Rio,io)
@@ -263,7 +260,12 @@ class TC_RIO_abs < Test::Unit::TestCase
263
260
 
264
261
  io = RIO.cwd
265
262
  assert_kind_of(RIO::Rio,io)
266
- cwd = RIO::RL.fs2url(::Dir.getwd)
263
+ cwd = ::Dir.getwd
264
+ assert_equal(cwd,io.path)
265
+
266
+ io = RIO.cwd
267
+ assert_kind_of(RIO::Rio,io)
268
+ cwd = ::Dir.getwd
267
269
  assert_equal(cwd,io.to_s)
268
270
 
269
271
  io = RIO.root/'tmp'
@@ -1,6 +1,12 @@
1
1
  require 'test/unit'
2
2
  require 'tc/testcase'
3
3
 
4
+ #require 'tc/yaml'
5
+ require 'tc/piper'
6
+ require 'tc/cmdpipe'
7
+ require 'tc/base'
8
+ require 'tc/split'
9
+ require 'tc/route'
4
10
  require 'tc/skip'
5
11
  require 'tc/skiplines'
6
12
  require 'tc/selnosel'
@@ -45,8 +51,8 @@ require 'tc/qae'
45
51
  require 'tc/qae_riovar'
46
52
  require 'tc/records'
47
53
  require 'tc/rename'
48
- require 'tc/symlink'
49
- require 'tc/symlink0'
50
- require 'tc/symlink1'
54
+ require 'tc/symlink' unless $mswin32
55
+ require 'tc/symlink0' unless $mswin32
56
+ require 'tc/symlink1' unless $mswin32
51
57
 
52
58
 
@@ -0,0 +1,31 @@
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
+
10
+ class TC_base < Test::RIO::TestCase
11
+ @@once = false
12
+ def self.once
13
+ @@once = true
14
+ end
15
+ def setup
16
+ super
17
+ self.class.once unless @@once
18
+ end
19
+ def test_basic
20
+ r = rio('zippy',{:base => '/'})
21
+ assert_equal('/zippy',r.abs.path)
22
+ end
23
+ def test_2args
24
+ r = rio('tmp','zippy',{:base => '/'})
25
+ assert_equal('/tmp/zippy',r.abs.path)
26
+ end
27
+ def test_longer_base
28
+ r = rio('zippy',{:base => '/tmp'})
29
+ assert_equal('/tmp/zippy',r.abs.path)
30
+ end
31
+ end
@@ -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
+
10
+ class TC_cmdpipe < Test::RIO::TestCase
11
+ @@once = false
12
+ @@dname = 'd'
13
+ @@fnames = ['f0','f1','f2','g0','g1']
14
+
15
+ def self.once
16
+ @@once = true
17
+ rio(@@dname).rmtree.mkpath.chdir {
18
+ @@fnames.each { |fn|
19
+ make_lines_file(20,fn)
20
+ }
21
+ }
22
+ end
23
+ def setup
24
+ super
25
+ self.class.once unless @@once
26
+ end
27
+
28
+ def test_cmd_out
29
+ ls = rio(?-,'ls d')
30
+ out = rio(?").chomp
31
+ exp = @@fnames
32
+ rtn = ls | out
33
+ assert_equal(exp,out[])
34
+ assert_equal(rtn,out)
35
+ end
36
+
37
+ def test_cmd_cmd_out
38
+ ls = rio(?-,'ls d')
39
+ grep = rio(?-,'grep f')
40
+ out = rio(?").chomp
41
+ exp = @@fnames.select { |fn| fn =~ /f/ }
42
+ rtn = ls | grep | out
43
+ assert_equal(exp,out[])
44
+ assert_equal(rtn,out)
45
+ end
46
+
47
+ def test_cmd_cmd_cmd_out
48
+ ls = rio(?-,'ls d')
49
+ cmd = rio(?-,'grep f')
50
+ cmd2 = rio(?-,'grep 1')
51
+ out = rio(?").chomp
52
+ exp = @@fnames.select { |fn| fn =~ /f1/ }
53
+ rtn = ls | cmd | cmd2 | out
54
+ assert_equal(exp,out[])
55
+ assert_equal(rtn,out)
56
+ end
57
+
58
+ def test_file_out
59
+ inp = rio('d/f2')
60
+ out = rio(?")
61
+ rtn = inp | out
62
+ exp = inp[]
63
+ assert_equal(exp,out[])
64
+ assert_equal(rtn,out)
65
+ end
66
+
67
+ def test_file_cmd_out
68
+ inp = rio('d/f2')
69
+ cmd = rio(?-,'grep 1')
70
+ out = rio(?")
71
+ rtn = inp | cmd | out
72
+ exp = inp[/1/]
73
+ assert_equal(exp,out[])
74
+ assert_equal(rtn,out)
75
+ end
76
+
77
+ def test_file_cmd_cmd_out
78
+ inp = rio('d/f2')
79
+ cmd = rio(?-,'grep 1')
80
+ cmd2 = rio(?-,'grep 0')
81
+ out = rio(?")
82
+ rtn = inp | cmd | cmd2 | out
83
+ exp = inp[/10/]
84
+ assert_equal(exp,out[])
85
+ assert_equal(rtn,out)
86
+ end
87
+
88
+ def test_file_cmdpipe_out2
89
+ inp = rio('d/f2')
90
+ cmd = rio(?-,'grep 1')
91
+ cmd2 = rio(?-,'grep 0')
92
+
93
+ cmdpipe = inp | cmd | cmd2
94
+ assert_equal('cmdpipe',cmdpipe.scheme)
95
+
96
+ out = rio(?")
97
+ rtn = cmdpipe | out
98
+ exp = inp[/10/]
99
+ assert_equal(exp,out[])
100
+ assert_equal(rtn,out)
101
+
102
+ out = rio(?")
103
+ rtn = cmdpipe | out
104
+ exp = inp[/10/]
105
+ assert_equal(exp,out[])
106
+ assert_equal(rtn,out)
107
+ end
108
+
109
+ def test_file_cmdpipe_out
110
+ inp = rio('d/f2')
111
+ cmd = rio(?-,'grep 1')
112
+ cmd2 = rio(?-,'grep 0')
113
+ out = rio(?")
114
+
115
+ cmdpipe = cmd | cmd2
116
+ assert_equal('cmdpipe',cmdpipe.scheme)
117
+
118
+ rtn = inp | cmdpipe | out
119
+ exp = inp[/10/]
120
+ assert_equal(exp,out[])
121
+ assert_equal(rtn,out)
122
+ end
123
+
124
+ def test_cmdpipe_without
125
+ cmd = rio(?-,'grep 1')
126
+ cmd2 = rio(?-,'grep 0')
127
+ out = rio(?")
128
+
129
+ cmdpipe = rio(?|,cmd,cmd2,out)
130
+ assert_equal('cmdpipe',cmdpipe.scheme)
131
+
132
+ inp = rio('d/f2')
133
+ rtn = inp | cmdpipe
134
+ exp = inp[/10/]
135
+ assert_equal(exp,out[])
136
+ assert_equal(rtn,out)
137
+
138
+ inp = rio('d/f1')
139
+ rtn = inp | cmdpipe
140
+ exp = inp[[/1/,/0/]]
141
+ assert_equal(exp,out[])
142
+ assert_equal(rtn,out)
143
+
144
+ end
145
+
146
+ end