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
@@ -47,7 +47,7 @@ module RIO
47
47
  not self.closed?
48
48
  end
49
49
  def closed?() self.ioh.nil? end
50
- def eof?() closed? or ioh.eof? end
50
+ def eof?() closed? or ior.eof? end
51
51
  end
52
52
  end
53
53
 
@@ -45,6 +45,7 @@ require 'rio/context/stream'
45
45
  require 'stringio'
46
46
  require 'rio/record'
47
47
  require 'rio/cp'
48
+ require 'rio/piper/cp'
48
49
 
49
50
 
50
51
  module RIO
@@ -56,16 +57,17 @@ module RIO
56
57
  include Enumerable
57
58
  include Grande
58
59
  include Cp::Stream::Input
60
+ include Piper::Cp::Input
59
61
  end
60
62
  end
61
63
  end
62
64
  end
65
+ require 'rio/piper'
63
66
  module RIO
64
67
  module Ops
65
68
  module Stream
66
69
  module Input
67
70
  public
68
-
69
71
  def each(*args,&block)
70
72
  #p callstr('each',*args)
71
73
  each_(*args,&block)
@@ -84,12 +86,31 @@ module RIO
84
86
  self
85
87
  end
86
88
 
87
- def getrec()
89
+ def get()
88
90
  until self.eof?
89
91
  raw_rec = self._get_rec
90
92
  return to_rec_(raw_rec) if @get_selrej.match?(raw_rec,@recno)
91
93
  end
92
94
  end
95
+ def get_type(itertype,&block)
96
+ old_itertype = cx['stream_itertype']
97
+ _set_itertype(itertype)
98
+ begin
99
+ ans = yield
100
+ ensure
101
+ _set_itertype(old_itertype)
102
+ end
103
+ ans
104
+ end
105
+ def getline()
106
+ get_type('lines') { get() }
107
+ end
108
+ def getrow()
109
+ get_type('rows') { get() }
110
+ end
111
+ def getrec()
112
+ get_type('records') { get() }
113
+ end
93
114
  private
94
115
 
95
116
  def _ss_like_array(selrej)
@@ -102,6 +123,7 @@ module RIO
102
123
  # implemented in terms of an underlying iterator like each_line (see RIO::RecType::*)
103
124
  def each_(*args,&block)
104
125
  #p callstr('each_',*args)
126
+
105
127
  selrej,rangetops = create_selrej()
106
128
  want_ma = block.arity > 1
107
129
  catch(:stop_iter) do
@@ -118,7 +140,7 @@ module RIO
118
140
  end
119
141
  return self
120
142
  end
121
- closeoneof? ? ioh.close_on_eof_(self) : self
143
+ closeoneof? ? ior.close_on_eof_(self) : self
122
144
  end
123
145
 
124
146
  # iterate over the records, yielding only with matching records
@@ -130,14 +152,14 @@ module RIO
130
152
  get_arg = self.get_arg_
131
153
  self.each_record_init_(*args)
132
154
  catch(:stop_iter) {
133
- until ioh.eof?
155
+ until ior.eof?
134
156
  break unless raw_rec = self._get_rec(get_arg)
135
157
  rangetops = check_passed_ranges(selrej,@recno) if rangetops and @recno > rangetops[0]
136
158
  yield to_rec_(raw_rec) if selrej.match?(raw_rec,@recno)
137
159
  end
138
160
  return self
139
161
  }
140
- closeoneof? ? ioh.close_on_eof_(self) : self
162
+ closeoneof? ? ior.close_on_eof_(self) : self
141
163
  end
142
164
  alias :each_row_ :each_
143
165
  def clear_selection()
@@ -183,7 +205,7 @@ module RIO
183
205
  end
184
206
 
185
207
  def on_closeoneof
186
- #p "on_closeoneof #{self.object_id} #{self.ioh.object_id}"
208
+ #p "on_closeoneof #{self.object_id} #{self.ior.object_id}"
187
209
  self.close
188
210
  end
189
211
 
@@ -199,21 +221,21 @@ module RIO
199
221
  public
200
222
 
201
223
  def rewind(&block)
202
- self.ioh.rewind
224
+ self.ior.rewind
203
225
  @recno = -1
204
226
  each(&block) if block_given?
205
227
  self
206
228
  end
207
229
 
208
230
  def close_read(&block)
209
- self.ioh.close_read
231
+ self.ior.close_read
210
232
  each(&block) if block_given?
211
233
  self
212
234
  end
213
235
 
214
236
  def copy_stream(dst)
215
237
  #p callstr('copy_stream',dst)
216
- ioh.copy_stream(dst)
238
+ ior.copy_stream(dst)
217
239
  self
218
240
  end
219
241
 
@@ -57,10 +57,15 @@ module RIO
57
57
  include Cp::Stream::Output
58
58
  def putrec(rec,*args)
59
59
  self.put_(rec,*args)
60
+ self
61
+ end
62
+
63
+ def putrec!(rec,*args)
64
+ rtn_close { self.put_(rec,*args) }
60
65
  end
61
66
 
62
67
  def close_write(&block)
63
- self.ioh.close_write
68
+ self.iow.close_write
64
69
  each(&block) if block_given?
65
70
  self
66
71
  end
@@ -81,7 +86,7 @@ module RIO
81
86
  end
82
87
 
83
88
  def copyclose()
84
- #p "#{callstr('copyclose')} closeoncopy=#{cx['closeoncopy']} ioh=#{ioh}"
89
+ #p "#{callstr('copyclose')} closeoncopy=#{cx['closeoncopy']} iow=#{iow}"
85
90
  #raise RuntimeError,"copclose"
86
91
  if cx['closeoncopy']
87
92
  wclose
@@ -41,41 +41,41 @@ module RIO
41
41
  module Stream
42
42
  module Read
43
43
  def contents()
44
- auto { ioh.gets(nil) }
44
+ auto { ior.gets(nil) }
45
45
  end
46
46
  def readlines(*args)
47
- auto { ioh.readlines(*args) }
47
+ auto { ior.readlines(*args) }
48
48
  end
49
49
  def read(*args)
50
- auto { ioh.read(*args) }
50
+ auto { ior.read(*args) }
51
51
  end
52
52
  def ungetc(*args)
53
- ioh.ungetc(*args)
53
+ ior.ungetc(*args)
54
54
  self
55
55
  end
56
56
  def each_line(*args,&block)
57
57
  auto {
58
- # self.ioh.each_line(*args,&block)
59
- self.ioh.each_line { |line|
58
+ # self.ior.each_line(*args,&block)
59
+ self.ior.each_line { |line|
60
60
  yield line
61
61
  } #(*args,&block)
62
62
  }
63
63
  end
64
64
  def each_byte(*args,&block)
65
- auto { ioh.each_byte(*args,&block) }
65
+ auto { ior.each_byte(*args,&block) }
66
66
  end
67
67
  def each_bytes(nb,*args,&block)
68
68
  #p callstr('each_bytes',nb,*args)
69
69
  auto {
70
- until ioh.eof?
71
- break unless s = ioh.read(nb)
70
+ until ior.eof?
71
+ break unless s = ior.read(nb)
72
72
  yield s
73
73
  end
74
74
  }
75
75
  end
76
76
 
77
77
  extend Forwardable
78
- def_instance_delegators(:ioh,:readline,:readchar,:gets,:lineno)
78
+ def_instance_delegators(:ior,:readline,:readchar,:gets,:lineno)
79
79
  end
80
80
  end
81
81
  end
@@ -39,16 +39,16 @@ module RIO
39
39
  module Ops
40
40
  module Stream
41
41
  module Write
42
- def puts(*argv) rtn_self { ioh.puts(*argv) } end
43
- def puts!(*argv) rtn_close { ioh.puts(*argv); } end
44
- def putc(*argv) rtn_self { ioh.putc(*argv) } end
45
- def putc!(*argv) rtn_close { ioh.putc(*argv) } end
46
- def printf(*argv) rtn_self { ioh.printf(*argv) } end
47
- def printf!(*argv) rtn_close { ioh.printf(*argv) } end
48
- def print(*argv) rtn_self { ioh.print(*argv) } end
49
- def print!(*argv) rtn_close { ioh.print(*argv) } end
50
- def write(*argv) ioh.write(*argv) end
51
- def write!(*argv) then_close { ioh.write(*argv) } end
42
+ def puts(*argv) rtn_self { iow.puts(*argv) } end
43
+ def puts!(*argv) rtn_close { iow.puts(*argv); } end
44
+ def putc(*argv) rtn_self { iow.putc(*argv) } end
45
+ def putc!(*argv) rtn_close { iow.putc(*argv) } end
46
+ def printf(*argv) rtn_self { iow.printf(*argv) } end
47
+ def printf!(*argv) rtn_close { iow.printf(*argv) } end
48
+ def print(*argv) rtn_self { iow.print(*argv) } end
49
+ def print!(*argv) rtn_close { iow.print(*argv) } end
50
+ def write(*argv) iow.write(*argv) end
51
+ def write!(*argv) then_close { iow.write(*argv) } end
52
52
  def _!(*argv) self.close.softreset end
53
53
  # extend Forwardable
54
54
  # def_instance_de
@@ -71,7 +71,7 @@ module RIO
71
71
  protected
72
72
 
73
73
  def edir()
74
- rl.path += '/' unless rl.path.empty? or rl.path[-1] == ?/
74
+ #rl.path += '/' unless rl.path.empty? or rl.path[-1] == ?/
75
75
  next_state = become('Dir::Existing')
76
76
  next_state.extend(Ops::Symlink::Existing) if symlink?
77
77
  next_state
@@ -97,7 +97,7 @@ module RIO
97
97
  def check?() not exist? end
98
98
 
99
99
  def ndir()
100
- rl.path += '/' unless rl.path.empty? or rl.path[-1] == ?/
100
+ #rl.path += '/' unless rl.path.empty? or rl.path[-1] == ?/
101
101
  become('Dir::NonExisting')
102
102
  end
103
103
  def nfile() become('File::NonExisting') end
@@ -44,7 +44,7 @@ module RIO
44
44
  # For now this is all states, but that could change
45
45
  class Reset < State::Base
46
46
  def base_state()
47
- # p "RETURNING WIERD BASE STATE"
47
+ #p "RETURNING WIERD BASE STATE"
48
48
  Reset
49
49
  end
50
50
 
@@ -0,0 +1,123 @@
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 Piper #:nodoc: all
40
+ class Base
41
+ attr_reader :rios
42
+ def initialize(r1,r2,*args)
43
+ @rios = []
44
+ add_arg(r1)
45
+ add_arg(r2)
46
+ args.each { |r|
47
+ add_arg(r)
48
+ }
49
+ end
50
+ def add_arg(arg)
51
+ case arg
52
+ when Base
53
+ @rios += arg.rios
54
+ when Rio
55
+ case arg.scheme
56
+ when 'cmdpipe'
57
+ arg_piper = arg.rl.piper
58
+ @rios += arg_piper.rios
59
+ else
60
+ @rios << arg
61
+ end
62
+ else
63
+ raise ArgumentError,"Argument (#{arg}) is a #{arg.class}, should be a Rio or a Piper"
64
+ end
65
+ end
66
+ def initialize_copy(*args)
67
+ super
68
+ @rios = @rios.map{ |r| r.clone }
69
+ end
70
+ def has_output_dest?
71
+ case @rios[-1].scheme
72
+ when 'cmdio' then false
73
+ else true
74
+ end
75
+ end
76
+ def new_with(*args)
77
+ cp = self.clone
78
+ args.each { |r|
79
+ cp.push(r)
80
+ }
81
+ cp
82
+ end
83
+ def push(r)
84
+ @rios << r
85
+ end
86
+ def run_to(r)
87
+ @rios << r
88
+ run
89
+ self
90
+ end
91
+ def rd() @rios[-1] end
92
+ def wr() @rios[0] end
93
+
94
+ def run
95
+ #dups = @rios.map { |r| r.clone }
96
+ dups = @rios
97
+ (1...dups.size-1).each { |i| dups[i].w! }
98
+ (1...dups.size).each { |i|
99
+ #p "#{dups[i-1].cx.inspect} > #{dups[i].cx.inspect}"
100
+ dups[i-1] > dups[i]
101
+ #p dups[i-1].closed?
102
+ }
103
+ dups.each { |r| r.close.softreset }
104
+ dups[-1]
105
+ end
106
+
107
+ def runeth
108
+ dups = @rios.map { |r| r.clone }
109
+
110
+ (1...dups.size-1).each { |i| dups[i].w! }
111
+
112
+ threads = []
113
+ (1...dups.size).each { |i|
114
+ threads << Thread.new(dups[i-1],dups[i]) { |src,dst|
115
+ src > dst
116
+ }
117
+ }
118
+ threads.each { |aThread| aThread.join }
119
+ end
120
+ end
121
+
122
+ end
123
+ end
@@ -0,0 +1,81 @@
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 Piper #:nodoc: all
40
+ module Cp
41
+ module Util
42
+
43
+ protected
44
+
45
+ def process_pipe_arg_(npiper)
46
+ end_rio = npiper.rios[-1]
47
+ case end_rio.scheme
48
+ when 'cmdio'
49
+ new_rio(:cmdpipe,npiper)
50
+ when 'cmdpipe'
51
+ if end_rio.has_output_dest?
52
+ npiper.run
53
+ end_rio
54
+ else
55
+ new_rio(:cmdpipe,npiper)
56
+ end
57
+ else
58
+ npiper.run
59
+ end_rio
60
+ end
61
+ end
62
+
63
+ end
64
+ module Input
65
+ include Util
66
+ def |(arg)
67
+ #p "#{self} | #{arg}"
68
+ ario = ensure_cmd_rio(arg)
69
+ #cp = Rio.new(self.rl)
70
+ #cp.cx = self.cx.clone
71
+ #cp.ioh = self.ioh.clone unless self.ioh.nil?
72
+ cp = clone_rio()
73
+ npiper = Piper::Base.new(cp,ario)
74
+ process_pipe_arg_(npiper)
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
80
+
81
+ __END__