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
@@ -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__