rio 0.3.9 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (315) hide show
  1. data/README +14 -8
  2. data/Rakefile +7 -9
  3. data/doc/ANNOUNCE +61 -46
  4. data/doc/RELEASE_NOTES +12 -3
  5. data/doc/RIOIS +7 -7
  6. data/doc/generators/template/html/rio.rb +7 -8
  7. data/doc/generators/template/html/ugly.rb +4 -2
  8. data/doc/pkg_def.rb +4 -10
  9. data/doc/rdoc/classes/Kernel.html +133 -0
  10. data/doc/rdoc/classes/Kernel.src/M000233.html +18 -0
  11. data/doc/rdoc/classes/RIO.html +625 -0
  12. data/doc/rdoc/classes/RIO.src/M000001.html +18 -0
  13. data/doc/rdoc/classes/RIO.src/M000002.html +18 -0
  14. data/doc/rdoc/classes/RIO.src/M000003.html +18 -0
  15. data/doc/rdoc/classes/RIO/Doc.html +148 -0
  16. data/doc/rdoc/classes/RIO/Doc/EXAMPLES.html +432 -0
  17. data/doc/rdoc/classes/RIO/Doc/HOWTO.html +1075 -0
  18. data/doc/rdoc/classes/RIO/Doc/INDEX.html +368 -0
  19. data/doc/rdoc/classes/RIO/Doc/INTRO.html +1533 -0
  20. data/doc/rdoc/classes/RIO/Doc/OPTIONAL.html +221 -0
  21. data/doc/rdoc/classes/RIO/Doc/SYNOPSIS.html +337 -0
  22. data/doc/rdoc/classes/RIO/IF.html +165 -0
  23. data/doc/rdoc/classes/RIO/IF/CSV.html +203 -0
  24. data/doc/rdoc/classes/RIO/IF/CSV.src/M000116.html +19 -0
  25. data/doc/rdoc/classes/RIO/IF/CSV.src/M000117.html +16 -0
  26. data/doc/rdoc/classes/RIO/IF/CSV.src/M000118.html +16 -0
  27. data/doc/rdoc/classes/RIO/IF/Dir.html +343 -0
  28. data/doc/rdoc/classes/RIO/IF/Dir.src/M000045.html +16 -0
  29. data/doc/rdoc/classes/RIO/IF/Dir.src/M000046.html +16 -0
  30. data/doc/rdoc/classes/RIO/IF/Dir.src/M000047.html +16 -0
  31. data/doc/rdoc/classes/RIO/IF/Dir.src/M000048.html +16 -0
  32. data/doc/rdoc/classes/RIO/IF/Dir.src/M000049.html +16 -0
  33. data/doc/rdoc/classes/RIO/IF/Dir.src/M000050.html +16 -0
  34. data/doc/rdoc/classes/RIO/IF/Dir.src/M000051.html +16 -0
  35. data/doc/rdoc/classes/RIO/IF/File.html +223 -0
  36. data/doc/rdoc/classes/RIO/IF/File.src/M000212.html +16 -0
  37. data/doc/rdoc/classes/RIO/IF/File.src/M000213.html +16 -0
  38. data/doc/rdoc/classes/RIO/IF/File.src/M000214.html +16 -0
  39. data/doc/rdoc/classes/RIO/IF/File.src/M000215.html +16 -0
  40. data/doc/rdoc/classes/RIO/IF/FileOrDir.html +572 -0
  41. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000155.html +16 -0
  42. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000156.html +16 -0
  43. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000157.html +16 -0
  44. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000158.html +16 -0
  45. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000159.html +16 -0
  46. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000160.html +16 -0
  47. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000161.html +16 -0
  48. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000162.html +16 -0
  49. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000163.html +16 -0
  50. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000164.html +16 -0
  51. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000165.html +16 -0
  52. data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000166.html +16 -0
  53. data/doc/rdoc/classes/RIO/IF/Grande.html +1349 -0
  54. data/doc/rdoc/classes/RIO/IF/Grande.src/M000088.html +16 -0
  55. data/doc/rdoc/classes/RIO/IF/Grande.src/M000089.html +16 -0
  56. data/doc/rdoc/classes/RIO/IF/Grande.src/M000090.html +16 -0
  57. data/doc/rdoc/classes/RIO/IF/Grande.src/M000091.html +16 -0
  58. data/doc/rdoc/classes/RIO/IF/Grande.src/M000092.html +16 -0
  59. data/doc/rdoc/classes/RIO/IF/Grande.src/M000093.html +21 -0
  60. data/doc/rdoc/classes/RIO/IF/Grande.src/M000094.html +16 -0
  61. data/doc/rdoc/classes/RIO/IF/Grande.src/M000095.html +16 -0
  62. data/doc/rdoc/classes/RIO/IF/Grande.src/M000096.html +16 -0
  63. data/doc/rdoc/classes/RIO/IF/Grande.src/M000097.html +16 -0
  64. data/doc/rdoc/classes/RIO/IF/Grande.src/M000098.html +16 -0
  65. data/doc/rdoc/classes/RIO/IF/Grande.src/M000099.html +16 -0
  66. data/doc/rdoc/classes/RIO/IF/Grande.src/M000100.html +21 -0
  67. data/doc/rdoc/classes/RIO/IF/Grande.src/M000101.html +16 -0
  68. data/doc/rdoc/classes/RIO/IF/Grande.src/M000102.html +16 -0
  69. data/doc/rdoc/classes/RIO/IF/Grande.src/M000103.html +16 -0
  70. data/doc/rdoc/classes/RIO/IF/Grande.src/M000104.html +16 -0
  71. data/doc/rdoc/classes/RIO/IF/Grande.src/M000105.html +16 -0
  72. data/doc/rdoc/classes/RIO/IF/GrandeEntry.html +810 -0
  73. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000106.html +16 -0
  74. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000107.html +16 -0
  75. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000108.html +16 -0
  76. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000109.html +16 -0
  77. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000110.html +16 -0
  78. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000111.html +16 -0
  79. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000112.html +16 -0
  80. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000113.html +16 -0
  81. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000114.html +16 -0
  82. data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000115.html +16 -0
  83. data/doc/rdoc/classes/RIO/IF/GrandeStream.html +1513 -0
  84. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000052.html +16 -0
  85. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000053.html +16 -0
  86. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000054.html +16 -0
  87. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000055.html +16 -0
  88. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000056.html +16 -0
  89. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000057.html +16 -0
  90. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000058.html +16 -0
  91. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000059.html +16 -0
  92. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000060.html +16 -0
  93. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000061.html +16 -0
  94. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000062.html +16 -0
  95. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000063.html +16 -0
  96. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000064.html +16 -0
  97. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000065.html +16 -0
  98. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000066.html +16 -0
  99. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000067.html +16 -0
  100. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000068.html +19 -0
  101. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000069.html +16 -0
  102. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000070.html +16 -0
  103. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000071.html +16 -0
  104. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000072.html +16 -0
  105. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000073.html +16 -0
  106. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000074.html +16 -0
  107. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000075.html +16 -0
  108. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000076.html +16 -0
  109. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000077.html +16 -0
  110. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000078.html +16 -0
  111. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000079.html +16 -0
  112. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000080.html +16 -0
  113. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000081.html +16 -0
  114. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000082.html +16 -0
  115. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000083.html +16 -0
  116. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000084.html +16 -0
  117. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000085.html +16 -0
  118. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000086.html +16 -0
  119. data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000087.html +16 -0
  120. data/doc/rdoc/classes/RIO/IF/Path.html +999 -0
  121. data/doc/rdoc/classes/RIO/IF/Path.src/M000180.html +16 -0
  122. data/doc/rdoc/classes/RIO/IF/Path.src/M000181.html +16 -0
  123. data/doc/rdoc/classes/RIO/IF/Path.src/M000182.html +16 -0
  124. data/doc/rdoc/classes/RIO/IF/Path.src/M000183.html +16 -0
  125. data/doc/rdoc/classes/RIO/IF/Path.src/M000184.html +16 -0
  126. data/doc/rdoc/classes/RIO/IF/Path.src/M000185.html +16 -0
  127. data/doc/rdoc/classes/RIO/IF/Path.src/M000186.html +16 -0
  128. data/doc/rdoc/classes/RIO/IF/Path.src/M000187.html +16 -0
  129. data/doc/rdoc/classes/RIO/IF/Path.src/M000188.html +16 -0
  130. data/doc/rdoc/classes/RIO/IF/Path.src/M000189.html +16 -0
  131. data/doc/rdoc/classes/RIO/IF/Path.src/M000190.html +16 -0
  132. data/doc/rdoc/classes/RIO/IF/Path.src/M000191.html +16 -0
  133. data/doc/rdoc/classes/RIO/IF/Path.src/M000192.html +16 -0
  134. data/doc/rdoc/classes/RIO/IF/Path.src/M000193.html +16 -0
  135. data/doc/rdoc/classes/RIO/IF/Path.src/M000194.html +16 -0
  136. data/doc/rdoc/classes/RIO/IF/Path.src/M000195.html +16 -0
  137. data/doc/rdoc/classes/RIO/IF/Path.src/M000196.html +16 -0
  138. data/doc/rdoc/classes/RIO/IF/Path.src/M000197.html +16 -0
  139. data/doc/rdoc/classes/RIO/IF/Path.src/M000198.html +16 -0
  140. data/doc/rdoc/classes/RIO/IF/Path.src/M000199.html +16 -0
  141. data/doc/rdoc/classes/RIO/IF/Path.src/M000200.html +16 -0
  142. data/doc/rdoc/classes/RIO/IF/Path.src/M000201.html +16 -0
  143. data/doc/rdoc/classes/RIO/IF/Path.src/M000202.html +18 -0
  144. data/doc/rdoc/classes/RIO/IF/Path.src/M000203.html +16 -0
  145. data/doc/rdoc/classes/RIO/IF/Path.src/M000204.html +16 -0
  146. data/doc/rdoc/classes/RIO/IF/Path.src/M000205.html +16 -0
  147. data/doc/rdoc/classes/RIO/IF/Path.src/M000206.html +16 -0
  148. data/doc/rdoc/classes/RIO/IF/Path.src/M000207.html +16 -0
  149. data/doc/rdoc/classes/RIO/IF/Path.src/M000208.html +16 -0
  150. data/doc/rdoc/classes/RIO/IF/Path.src/M000209.html +16 -0
  151. data/doc/rdoc/classes/RIO/IF/Path.src/M000210.html +16 -0
  152. data/doc/rdoc/classes/RIO/IF/Path.src/M000211.html +16 -0
  153. data/doc/rdoc/classes/RIO/IF/RubyIO.html +1414 -0
  154. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000004.html +16 -0
  155. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000005.html +16 -0
  156. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000006.html +16 -0
  157. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000007.html +16 -0
  158. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000008.html +16 -0
  159. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000009.html +16 -0
  160. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000010.html +16 -0
  161. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000011.html +16 -0
  162. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000012.html +16 -0
  163. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000013.html +16 -0
  164. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000014.html +16 -0
  165. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000015.html +16 -0
  166. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000016.html +16 -0
  167. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000017.html +16 -0
  168. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000018.html +16 -0
  169. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000019.html +16 -0
  170. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000020.html +16 -0
  171. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000021.html +16 -0
  172. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000022.html +16 -0
  173. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000023.html +16 -0
  174. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000024.html +16 -0
  175. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000025.html +16 -0
  176. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000026.html +16 -0
  177. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000027.html +16 -0
  178. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000028.html +16 -0
  179. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000029.html +16 -0
  180. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000030.html +16 -0
  181. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000031.html +16 -0
  182. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000032.html +16 -0
  183. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000033.html +16 -0
  184. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000034.html +16 -0
  185. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000035.html +16 -0
  186. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000036.html +16 -0
  187. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000037.html +16 -0
  188. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000038.html +16 -0
  189. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000039.html +16 -0
  190. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000040.html +16 -0
  191. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000041.html +16 -0
  192. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000042.html +16 -0
  193. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000043.html +16 -0
  194. data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000044.html +16 -0
  195. data/doc/rdoc/classes/RIO/IF/String.html +203 -0
  196. data/doc/rdoc/classes/RIO/IF/String.src/M000216.html +16 -0
  197. data/doc/rdoc/classes/RIO/IF/String.src/M000217.html +16 -0
  198. data/doc/rdoc/classes/RIO/IF/String.src/M000218.html +16 -0
  199. data/doc/rdoc/classes/RIO/IF/Test.html +990 -0
  200. data/doc/rdoc/classes/RIO/IF/Test.src/M000119.html +16 -0
  201. data/doc/rdoc/classes/RIO/IF/Test.src/M000120.html +16 -0
  202. data/doc/rdoc/classes/RIO/IF/Test.src/M000121.html +16 -0
  203. data/doc/rdoc/classes/RIO/IF/Test.src/M000122.html +16 -0
  204. data/doc/rdoc/classes/RIO/IF/Test.src/M000123.html +16 -0
  205. data/doc/rdoc/classes/RIO/IF/Test.src/M000124.html +16 -0
  206. data/doc/rdoc/classes/RIO/IF/Test.src/M000125.html +16 -0
  207. data/doc/rdoc/classes/RIO/IF/Test.src/M000126.html +16 -0
  208. data/doc/rdoc/classes/RIO/IF/Test.src/M000127.html +16 -0
  209. data/doc/rdoc/classes/RIO/IF/Test.src/M000128.html +16 -0
  210. data/doc/rdoc/classes/RIO/IF/Test.src/M000129.html +16 -0
  211. data/doc/rdoc/classes/RIO/IF/Test.src/M000130.html +16 -0
  212. data/doc/rdoc/classes/RIO/IF/Test.src/M000131.html +16 -0
  213. data/doc/rdoc/classes/RIO/IF/Test.src/M000132.html +16 -0
  214. data/doc/rdoc/classes/RIO/IF/Test.src/M000133.html +16 -0
  215. data/doc/rdoc/classes/RIO/IF/Test.src/M000134.html +16 -0
  216. data/doc/rdoc/classes/RIO/IF/Test.src/M000135.html +16 -0
  217. data/doc/rdoc/classes/RIO/IF/Test.src/M000136.html +16 -0
  218. data/doc/rdoc/classes/RIO/IF/Test.src/M000137.html +16 -0
  219. data/doc/rdoc/classes/RIO/IF/Test.src/M000138.html +16 -0
  220. data/doc/rdoc/classes/RIO/IF/Test.src/M000139.html +16 -0
  221. data/doc/rdoc/classes/RIO/IF/Test.src/M000140.html +16 -0
  222. data/doc/rdoc/classes/RIO/IF/Test.src/M000141.html +16 -0
  223. data/doc/rdoc/classes/RIO/IF/Test.src/M000142.html +16 -0
  224. data/doc/rdoc/classes/RIO/IF/Test.src/M000143.html +16 -0
  225. data/doc/rdoc/classes/RIO/IF/Test.src/M000144.html +16 -0
  226. data/doc/rdoc/classes/RIO/IF/Test.src/M000145.html +16 -0
  227. data/doc/rdoc/classes/RIO/IF/Test.src/M000146.html +16 -0
  228. data/doc/rdoc/classes/RIO/IF/Test.src/M000147.html +16 -0
  229. data/doc/rdoc/classes/RIO/IF/Test.src/M000148.html +16 -0
  230. data/doc/rdoc/classes/RIO/IF/Test.src/M000149.html +16 -0
  231. data/doc/rdoc/classes/RIO/IF/Test.src/M000150.html +16 -0
  232. data/doc/rdoc/classes/RIO/IF/Test.src/M000151.html +16 -0
  233. data/doc/rdoc/classes/RIO/IF/Test.src/M000152.html +16 -0
  234. data/doc/rdoc/classes/RIO/IF/Test.src/M000153.html +16 -0
  235. data/doc/rdoc/classes/RIO/IF/Test.src/M000154.html +16 -0
  236. data/doc/rdoc/classes/RIO/IF/YAML.html +517 -0
  237. data/doc/rdoc/classes/RIO/IF/YAML.src/M000167.html +19 -0
  238. data/doc/rdoc/classes/RIO/IF/YAML.src/M000168.html +16 -0
  239. data/doc/rdoc/classes/RIO/IF/YAML.src/M000169.html +16 -0
  240. data/doc/rdoc/classes/RIO/IF/YAML.src/M000170.html +16 -0
  241. data/doc/rdoc/classes/RIO/IF/YAML.src/M000171.html +16 -0
  242. data/doc/rdoc/classes/RIO/IF/YAML.src/M000172.html +16 -0
  243. data/doc/rdoc/classes/RIO/IF/YAML.src/M000173.html +16 -0
  244. data/doc/rdoc/classes/RIO/IF/YAML.src/M000174.html +16 -0
  245. data/doc/rdoc/classes/RIO/IF/YAML.src/M000175.html +16 -0
  246. data/doc/rdoc/classes/RIO/IF/YAML.src/M000176.html +16 -0
  247. data/doc/rdoc/classes/RIO/IF/YAML.src/M000177.html +16 -0
  248. data/doc/rdoc/classes/RIO/IF/YAML.src/M000178.html +16 -0
  249. data/doc/rdoc/classes/RIO/IF/YAML.src/M000179.html +16 -0
  250. data/doc/rdoc/classes/RIO/Rio.html +508 -0
  251. data/doc/rdoc/classes/RIO/Rio.src/M000219.html +18 -0
  252. data/doc/rdoc/classes/RIO/Rio.src/M000220.html +20 -0
  253. data/doc/rdoc/classes/RIO/Rio.src/M000221.html +27 -0
  254. data/doc/rdoc/classes/RIO/Rio.src/M000222.html +16 -0
  255. data/doc/rdoc/classes/RIO/Rio.src/M000224.html +19 -0
  256. data/doc/rdoc/classes/RIO/Rio.src/M000225.html +20 -0
  257. data/doc/rdoc/classes/RIO/Rio.src/M000226.html +16 -0
  258. data/doc/rdoc/classes/RIO/Rio.src/M000227.html +16 -0
  259. data/doc/rdoc/classes/RIO/Rio.src/M000228.html +16 -0
  260. data/doc/rdoc/classes/RIO/Rio.src/M000229.html +16 -0
  261. data/doc/rdoc/classes/RIO/Rio.src/M000230.html +16 -0
  262. data/doc/rdoc/classes/RIO/Rio.src/M000231.html +16 -0
  263. data/doc/rdoc/classes/RIO/Rio.src/M000232.html +16 -0
  264. data/doc/rdoc/created.rid +1 -0
  265. data/doc/rdoc/files/README.html +229 -0
  266. data/doc/rdoc/files/lib/rio/constructor_rb.html +141 -0
  267. data/doc/rdoc/files/lib/rio/doc/EXAMPLES_rb.html +134 -0
  268. data/doc/rdoc/files/lib/rio/doc/HOWTO_rb.html +134 -0
  269. data/doc/rdoc/files/lib/rio/doc/INDEX_rb.html +134 -0
  270. data/doc/rdoc/files/lib/rio/doc/INTRO_rb.html +134 -0
  271. data/doc/rdoc/files/lib/rio/doc/OPTIONAL_rb.html +134 -0
  272. data/doc/rdoc/files/lib/rio/doc/SYNOPSIS_rb.html +134 -0
  273. data/doc/rdoc/files/lib/rio/if/basic_rb.html +134 -0
  274. data/doc/rdoc/files/lib/rio/if/csv_rb.html +134 -0
  275. data/doc/rdoc/files/lib/rio/if/dir_rb.html +134 -0
  276. data/doc/rdoc/files/lib/rio/if/file_rb.html +134 -0
  277. data/doc/rdoc/files/lib/rio/if/fileordir_rb.html +134 -0
  278. data/doc/rdoc/files/lib/rio/if/grande_entry_rb.html +134 -0
  279. data/doc/rdoc/files/lib/rio/if/grande_rb.html +141 -0
  280. data/doc/rdoc/files/lib/rio/if/grande_stream_rb.html +134 -0
  281. data/doc/rdoc/files/lib/rio/if/internal_rb.html +134 -0
  282. data/doc/rdoc/files/lib/rio/if/path_rb.html +134 -0
  283. data/doc/rdoc/files/lib/rio/if/rubyio_rb.html +134 -0
  284. data/doc/rdoc/files/lib/rio/if/string_rb.html +134 -0
  285. data/doc/rdoc/files/lib/rio/if/temp_rb.html +134 -0
  286. data/doc/rdoc/files/lib/rio/if/test_rb.html +134 -0
  287. data/doc/rdoc/files/lib/rio/if/yaml_rb.html +134 -0
  288. data/doc/rdoc/files/lib/rio/kernel_rb.html +142 -0
  289. data/doc/rdoc/files/lib/rio_rb.html +153 -0
  290. data/doc/rdoc/fr_class_index.html +49 -0
  291. data/doc/rdoc/fr_file_index.html +51 -0
  292. data/doc/rdoc/fr_method_index.html +259 -0
  293. data/doc/rdoc/index.html +30 -0
  294. data/doc/rdoc/rdoc-style.css +428 -0
  295. data/lib/rio/cp.rb +9 -8
  296. data/lib/rio/doc/HOWTO.rb +46 -32
  297. data/lib/rio/doc/INDEX.rb +311 -0
  298. data/lib/rio/doc/INTRO.rb +10 -10
  299. data/lib/rio/doc/OPTIONAL.rb +6 -9
  300. data/lib/rio/doc/SYNOPSIS.rb +54 -57
  301. data/lib/rio/ext/csv.rb +5 -1
  302. data/lib/rio/ext/yaml.rb +19 -40
  303. data/lib/rio/if/fileordir.rb +1 -1
  304. data/lib/rio/if/grande.rb +4 -4
  305. data/lib/rio/if/grande_entry.rb +6 -0
  306. data/lib/rio/if/grande_stream.rb +10 -8
  307. data/lib/rio/if/path.rb +1 -1
  308. data/lib/rio/if/rubyio.rb +4 -4
  309. data/lib/rio/if/yaml.rb +27 -13
  310. data/lib/rio/ops/stream/input.rb +0 -1
  311. data/lib/rio/stream.rb +1 -0
  312. data/lib/rio/version.rb +1 -1
  313. data/test/tc/synopsis.rb +75 -0
  314. data/test/tc/yaml.rb +150 -4
  315. metadata +314 -2
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>dirs (RIO::IF::GrandeEntry)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rio/if/grande_entry.rb, line 71</span>
14
+ 71: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dirs</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">dirs</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>skipdirs (RIO::IF::GrandeEntry)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rio/if/grande_entry.rb, line 91</span>
14
+ 91: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">skipdirs</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">skipdirs</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>entries (RIO::IF::GrandeEntry)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rio/if/grande_entry.rb, line 114</span>
14
+ 114: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">entries</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">entries</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>skipentries (RIO::IF::GrandeEntry)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rio/if/grande_entry.rb, line 124</span>
14
+ 124: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">skipentries</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">skipentries</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>files (RIO::IF::GrandeEntry)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rio/if/grande_entry.rb, line 281</span>
14
+ 281: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">files</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">files</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>skipfiles (RIO::IF::GrandeEntry)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rio/if/grande_entry.rb, line 300</span>
14
+ 300: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">skipfiles</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">skipfiles</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>all? (RIO::IF::GrandeEntry)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rio/if/grande_entry.rb, line 313</span>
14
+ 313: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">all?</span>() <span class="ruby-identifier">target</span>.<span class="ruby-identifier">all?</span>() <span class="ruby-keyword kw">end</span></pre>
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>all (RIO::IF::GrandeEntry)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rio/if/grande_entry.rb, line 331</span>
14
+ 331: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">all</span>(<span class="ruby-identifier">arg</span>=<span class="ruby-keyword kw">true</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">all</span>(<span class="ruby-identifier">arg</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>recurse (RIO::IF::GrandeEntry)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rio/if/grande_entry.rb, line 355</span>
14
+ 355: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recurse</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">recurse</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
+ </body>
16
+ </html>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>norecurse (RIO::IF::GrandeEntry)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/rio/if/grande_entry.rb, line 368</span>
14
+ 368: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">norecurse</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-identifier">target</span>.<span class="ruby-identifier">norecurse</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>); <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">end</span></pre>
15
+ </body>
16
+ </html>
@@ -0,0 +1,1513 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: RIO::IF::GrandeStream</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <meta name="revisit-after" content="5 days">
12
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
13
+ <script type="text/javascript">
14
+ // <![CDATA[
15
+
16
+ function popupCode( url ) {
17
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
18
+ }
19
+
20
+ function toggleCode( id ) {
21
+ if ( document.getElementById )
22
+ elem = document.getElementById( id );
23
+ else if ( document.all )
24
+ elem = eval( "document.all." + id );
25
+ else
26
+ return false;
27
+
28
+ elemStyle = elem.style;
29
+
30
+ if ( elemStyle.display != "block" ) {
31
+ elemStyle.display = "block"
32
+ } else {
33
+ elemStyle.display = "none"
34
+ }
35
+
36
+ return true;
37
+ }
38
+
39
+ // Make codeblocks hidden by default
40
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
41
+
42
+ // ]]>
43
+ </script>
44
+
45
+ </head>
46
+ <body>
47
+
48
+
49
+
50
+ <div id="classHeader">
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td class="class-mod"><strong>Module</strong></td>
54
+ <td class="class-name-in-header">RIO::IF::GrandeStream</td>
55
+ <td rowspan="2" class="class-header-space-col"></td>
56
+ <td rowspan="2">
57
+ <a class="in-url" href="../../../files/lib/rio/if/grande_stream_rb.html">
58
+ lib/rio/if/grande_stream.rb
59
+ </a>
60
+ &nbsp;&nbsp;
61
+ </td>
62
+ </tr>
63
+
64
+ </table>
65
+ </div>
66
+ <!-- banner header -->
67
+
68
+ <div id="bodyContent">
69
+
70
+
71
+
72
+ <div id="contextContent">
73
+
74
+
75
+
76
+ </div>
77
+
78
+ <div id="method-list">
79
+ <h3 class="section-bar">Methods</h3>
80
+
81
+ <div class="name-list">
82
+ <a href="#M000068">+@</a>&nbsp;&nbsp;
83
+ <a href="#M000067">a</a>&nbsp;&nbsp;
84
+ <a href="#M000069">a!</a>&nbsp;&nbsp;
85
+ <a href="#M000056">bytes</a>&nbsp;&nbsp;
86
+ <a href="#M000082">chomp</a>&nbsp;&nbsp;
87
+ <a href="#M000081">chomp?</a>&nbsp;&nbsp;
88
+ <a href="#M000077">closeoncopy</a>&nbsp;&nbsp;
89
+ <a href="#M000079">closeoncopy?</a>&nbsp;&nbsp;
90
+ <a href="#M000074">closeoneof</a>&nbsp;&nbsp;
91
+ <a href="#M000076">closeoneof?</a>&nbsp;&nbsp;
92
+ <a href="#M000065">contents</a>&nbsp;&nbsp;
93
+ <a href="#M000064">getline</a>&nbsp;&nbsp;
94
+ <a href="#M000062">getrec</a>&nbsp;&nbsp;
95
+ <a href="#M000063">getrow</a>&nbsp;&nbsp;
96
+ <a href="#M000085">gzip</a>&nbsp;&nbsp;
97
+ <a href="#M000086">gzip?</a>&nbsp;&nbsp;
98
+ <a href="#M000052">line</a>&nbsp;&nbsp;
99
+ <a href="#M000055">lines</a>&nbsp;&nbsp;
100
+ <a href="#M000080">noautoclose</a>&nbsp;&nbsp;
101
+ <a href="#M000078">nocloseoncopy</a>&nbsp;&nbsp;
102
+ <a href="#M000075">nocloseoneof</a>&nbsp;&nbsp;
103
+ <a href="#M000066">putrec</a>&nbsp;&nbsp;
104
+ <a href="#M000070">r</a>&nbsp;&nbsp;
105
+ <a href="#M000071">r!</a>&nbsp;&nbsp;
106
+ <a href="#M000053">record</a>&nbsp;&nbsp;
107
+ <a href="#M000057">records</a>&nbsp;&nbsp;
108
+ <a href="#M000054">row</a>&nbsp;&nbsp;
109
+ <a href="#M000060">rows</a>&nbsp;&nbsp;
110
+ <a href="#M000059">skiplines</a>&nbsp;&nbsp;
111
+ <a href="#M000058">skiprecords</a>&nbsp;&nbsp;
112
+ <a href="#M000061">skiprows</a>&nbsp;&nbsp;
113
+ <a href="#M000087">splitlines</a>&nbsp;&nbsp;
114
+ <a href="#M000084">strip</a>&nbsp;&nbsp;
115
+ <a href="#M000083">strip?</a>&nbsp;&nbsp;
116
+ <a href="#M000072">w</a>&nbsp;&nbsp;
117
+ <a href="#M000073">w!</a>&nbsp;&nbsp;
118
+ </div>
119
+ </div>
120
+
121
+
122
+
123
+ <!-- if includes -->
124
+
125
+ <div id="section">
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+ <!-- if method_list -->
135
+ <div id="methods">
136
+ <h3 class="section-bar">Public Instance methods</h3>
137
+
138
+ <div id="method-M000068" class="method-detail">
139
+ <a name="M000068"></a>
140
+
141
+ <div class="method-heading">
142
+ <a href="GrandeStream.src/M000068.html" target="Code" class="method-signature"
143
+ onclick="popupCode('GrandeStream.src/M000068.html');return false;">
144
+ <span class="method-name">+@</span><span class="method-args">()</span>
145
+ </a>
146
+ </div>
147
+
148
+ <div class="method-description">
149
+ <p>
150
+ Unary Plus. Alternate form of <a href="GrandeStream.html#M000067">a</a>
151
+ </p>
152
+ <pre>
153
+ rio('f1') &gt; rio('f2') # copy f1 to f2
154
+ rio('f1') &gt; rio('f2').a # append f1 to f2
155
+ rio('f1') &gt; +rio('f2') # same thing
156
+ rio('f1') &gt;&gt; rio('f2') # same thing
157
+ </pre>
158
+ </div>
159
+ </div>
160
+
161
+ <div id="method-M000067" class="method-detail">
162
+ <a name="M000067"></a>
163
+
164
+ <div class="method-heading">
165
+ <a href="GrandeStream.src/M000067.html" target="Code" class="method-signature"
166
+ onclick="popupCode('GrandeStream.src/M000067.html');return false;">
167
+ <span class="method-name">a</span><span class="method-args">()</span>
168
+ </a>
169
+ </div>
170
+
171
+ <div class="method-description">
172
+ <p>
173
+ Sets the implicit output mode to &#8216;a&#8217;.
174
+ </p>
175
+ <p>
176
+ This is the mode Rio will use for output when no mode is specified
177
+ </p>
178
+ <p>
179
+ Rios normally don&#8217;t need to be opened or have their open mode
180
+ specified. A Rio determines the mode based on the file system object and on
181
+ the action specified. For instance when a Rio encounters a <tt>read</tt> on
182
+ a file it opens the file for reading using File#open and calls IO#read;
183
+ when it encounters a <tt>read</tt> on a directory it knows to use Dir#open
184
+ and call Dir#read. When it encounters a <a
185
+ href="RubyIO.html#M000021">puts</a>, it knows to perform a File#open, and
186
+ call IO#puts on the returned handle. By default when a method requires a
187
+ file be opened for writing the file is opened with a mode of
188
+ &#8216;w&#8217;. <a href="GrandeStream.html#M000067">a</a> changes this
189
+ implicit output mode to &#8216;a&#8217;.
190
+ </p>
191
+ <p>
192
+ Note that this is not the same as setting the output mode
193
+ <b>explicitly</b>, as in rio(&#8216;afile&#8217;).mode(&#8216;a&#8217;).
194
+ When the mode is set explicitly using <a
195
+ href="RubyIO.html#M000028">mode</a>, the mode specified will be used
196
+ regardless of the operation being performed. The <a
197
+ href="GrandeStream.html#M000067">a</a> method only affects how Rio opens a
198
+ file when it sees an operator that requires writing, and must determine for
199
+ itself how to open it.
200
+ </p>
201
+ <pre>
202
+ rio('afile').puts!('Hello World') # call IO#puts on a file handle opened in 'w' mode
203
+ rio('afile').a.puts!('Hello World') # call IO#puts on a file handle opened in 'a' mode
204
+ </pre>
205
+ <p>
206
+ See also <a href="GrandeStream.html#M000069">a!</a>, <a
207
+ href="GrandeStream.html#M000073">w!</a> for setting the implicit output
208
+ mode &#8216;a+&#8217; and &#8216;w+&#8217; respectively
209
+ </p>
210
+ <p>
211
+ The methods <a href="GrandeStream.html#M000067">a</a>, <a
212
+ href="GrandeStream.html#M000069">a!</a>, <a
213
+ href="GrandeStream.html#M000072">w</a>, <a
214
+ href="GrandeStream.html#M000073">w!</a>, <a
215
+ href="GrandeStream.html#M000070">r</a>, <a
216
+ href="GrandeStream.html#M000071">r!</a> set the <tt>implicit</tt> open mode
217
+ to
218
+ &#8216;a&#8217;,&#8217;a+&#8217;,&#8217;w&#8217;,&#8217;w+&#8217;,&#8217;r&#8217;
219
+ and &#8216;r+&#8217; respectively.
220
+ </p>
221
+ <p>
222
+ See also <a href="GrandeStream.html#M000068">+@</a>
223
+ </p>
224
+ </div>
225
+ </div>
226
+
227
+ <div id="method-M000069" class="method-detail">
228
+ <a name="M000069"></a>
229
+
230
+ <div class="method-heading">
231
+ <a href="GrandeStream.src/M000069.html" target="Code" class="method-signature"
232
+ onclick="popupCode('GrandeStream.src/M000069.html');return false;">
233
+ <span class="method-name">a!</span><span class="method-args">()</span>
234
+ </a>
235
+ </div>
236
+
237
+ <div class="method-description">
238
+ <p>
239
+ Sets the implicit output mode to &#8216;a+&#8217;.
240
+ </p>
241
+ <p>
242
+ The implicit output mode is the mode Rio will use for output when no mode
243
+ is specified.
244
+ </p>
245
+ <p>
246
+ Returns the Rio
247
+ </p>
248
+ <p>
249
+ See the discussion for <a href="GrandeStream.html#M000067">a</a>.
250
+ </p>
251
+ </div>
252
+ </div>
253
+
254
+ <div id="method-M000056" class="method-detail">
255
+ <a name="M000056"></a>
256
+
257
+ <div class="method-heading">
258
+ <a href="GrandeStream.src/M000056.html" target="Code" class="method-signature"
259
+ onclick="popupCode('GrandeStream.src/M000056.html');return false;">
260
+ <span class="method-name">bytes</span><span class="method-args">(n=1,*args,&amp;block)</span>
261
+ </a>
262
+ </div>
263
+
264
+ <div class="method-description">
265
+ <p>
266
+ Sets the rio to read bytes and returns the rio
267
+ </p>
268
+ <p>
269
+ <em>n</em> specifies the number of bytes to be returned on each iteration
270
+ of <a href="Grande.html#M000090">each</a> or by <a
271
+ href="GrandeStream.html#M000062">getrec</a>. If <em>args</em> are provided,
272
+ they are treated as record selectors as if
273
+ <tt>ario.bytes(n).records(*args)</tt> had been called. See also <a
274
+ href="GrandeStream.html#M000057">records</a>, <a
275
+ href="GrandeStream.html#M000055">lines</a>, <a
276
+ href="Grande.html#M000090">each</a>, <a href="Grande.html#M000089">[]</a>
277
+ </p>
278
+ <p>
279
+ If called with a block behaves as if
280
+ <tt>ario.bytes(n,*args).each(&amp;block)</tt> had been called
281
+ </p>
282
+ <pre>
283
+ rio('f.dat').bytes(1024) { |rec| ... } # iterate through f.txt 1024 bytes at a time
284
+ rio('f.dat').bytes(1024).each { |rec| ... } # same as above
285
+
286
+ rio('f.dat').bytes(1024,0..4) { |rec| ... } # iterate through the first five 1024 byte blocks
287
+
288
+ rio('f.dat').bytes(64).to_a # return the contents of f.dat as an array of 64 byte chunks
289
+
290
+ rio('f.dat').bytes(512).records(0,7..9) &gt; rio('dfile.dat') # copy 512-byte blocks 0,7,8 and 9 to dfile.dat
291
+
292
+ rio('f.dat').bytes(2048).records[0...10] # return an array containing the first 10 2K blocks of f.dat
293
+ rio('f.dat').bytes(2048)[0...10] # same thing
294
+
295
+ rio('f.dat').bytes { |bytestr| ... } # iterate over f.dat 1 byte at a time.
296
+ rio('f.dat').bytes[0...100] # returns an array of the first 100 bytes of f.dat
297
+ </pre>
298
+ </div>
299
+ </div>
300
+
301
+ <div id="method-M000082" class="method-detail">
302
+ <a name="M000082"></a>
303
+
304
+ <div class="method-heading">
305
+ <a href="GrandeStream.src/M000082.html" target="Code" class="method-signature"
306
+ onclick="popupCode('GrandeStream.src/M000082.html');return false;">
307
+ <span class="method-name">chomp</span><span class="method-args">(arg=true,&amp;block)</span>
308
+ </a>
309
+ </div>
310
+
311
+ <div class="method-description">
312
+ <p>
313
+ Sets the Rio to chomp lines and returns the Rio
314
+ </p>
315
+ <p>
316
+ When called with a block, behaves as if <tt>chomp.each(&amp;block)</tt> had
317
+ been called
318
+ </p>
319
+ <p>
320
+ chomp causes lines returned by each, to_a, readlines, readline, gets,
321
+ each_line etc. to be chomped before iterated over or assigned
322
+ </p>
323
+ <pre>
324
+ rio('f.txt').chomp.each { |line| ... } # Block is called with lines already chomped
325
+
326
+ rio('f.txt').chomp { |line| ... } # same as above
327
+
328
+ rio('f.txt').chomp.to_a # returns the lines of f.txt chomped
329
+
330
+ rio('f.txt').chomp.lines(1..2).to_a # returns an array containg lines 1 and 2 of the file after being chomped
331
+
332
+ This would have similar results to rio('f.txt').lines(1..2).to_a.map{ |line| line.chomp}
333
+
334
+ rio('f.txt').lines(1..2).chomp.to_a # same as above
335
+
336
+ rio('f.txt').chomp.readlines # returns the lines of f.txt chomped
337
+
338
+ rio('f.txt').chomp.gets # returns the first line of 'f.txt' chomped
339
+
340
+ rio('f.txt').chomp &gt; an_array # copies the chomped lines of f.txt into an_array
341
+
342
+ # fill an array with all the 'require' lines in all the .rb files (recursively) in adir
343
+ # chomping each line
344
+
345
+ an_array = []
346
+ rio('adir').chomp.all.files(&quot;*.rb&quot;) { |file|
347
+ an_array += file.lines[/^\s*require/]
348
+ }
349
+
350
+ or simply
351
+
352
+ an_array = rio('adir').chomp.all.files(&quot;*.rb&quot;).lines[/^\s*require/]
353
+ </pre>
354
+ </div>
355
+ </div>
356
+
357
+ <div id="method-M000081" class="method-detail">
358
+ <a name="M000081"></a>
359
+
360
+ <div class="method-heading">
361
+ <a href="GrandeStream.src/M000081.html" target="Code" class="method-signature"
362
+ onclick="popupCode('GrandeStream.src/M000081.html');return false;">
363
+ <span class="method-name">chomp?</span><span class="method-args">()</span>
364
+ </a>
365
+ </div>
366
+
367
+ <div class="method-description">
368
+ <p>
369
+ Queries the Rio&#8217;s chomp-mode. See <a
370
+ href="GrandeStream.html#M000082">chomp</a>.
371
+ </p>
372
+ </div>
373
+ </div>
374
+
375
+ <div id="method-M000077" class="method-detail">
376
+ <a name="M000077"></a>
377
+
378
+ <div class="method-heading">
379
+ <a href="GrandeStream.src/M000077.html" target="Code" class="method-signature"
380
+ onclick="popupCode('GrandeStream.src/M000077.html');return false;">
381
+ <span class="method-name">closeoncopy</span><span class="method-args">(arg=true,&amp;block)</span>
382
+ </a>
383
+ </div>
384
+
385
+ <div class="method-description">
386
+ <p>
387
+ Set a Rio&#8217;s closeoncopy mode
388
+ </p>
389
+ <pre>
390
+ ario.closeoncopy(&amp;block) =&gt; ario
391
+ </pre>
392
+ <p>
393
+ <a href="GrandeStream.html#M000077">closeoncopy</a> causes the Rio being
394
+ written to to be closed when using a grande copy operator. While <a
395
+ href="GrandeStream.html#M000074">closeoneof</a> causes all Rio&#8217;s to
396
+ be closed when reading to the end of file, it does not affect Rios being
397
+ written to. <a href="GrandeStream.html#M000077">closeoncopy</a> only
398
+ affects the Rio being written to and only when a grande copy operator is
399
+ used. <tt>closeoncopy</tt> is on by default, with one exception.
400
+ </p>
401
+ <pre>
402
+ dest = rio('destfile')
403
+ dest &lt; rio('srcfile')
404
+ dest.closed? #=&gt; true
405
+
406
+ dest = rio('destfile').nocloseoncopy
407
+ dest &lt; rio('srcfile')
408
+ dest.closed? #=&gt; false
409
+ dest.close # must be explicitly closed
410
+
411
+ dest = rio('destfile')
412
+ dest.print(rio('srcfile').contents)
413
+ dest.closed? #=&gt; false (IF::RubyIO#print is not a copy operator)
414
+ dest.close
415
+ </pre>
416
+ <h4>The Exception</h4>
417
+ <p>
418
+ When a block is passed directly to the rio constructor <tt>closeoncopy</tt>
419
+ is turned off.
420
+ </p>
421
+ <pre>
422
+ rio('afile') { |file|
423
+ file.closeoncopy? #=&gt; false
424
+ file &lt; a_string
425
+ file.closed? #=&gt; false
426
+ }
427
+ # The file is now closed. See IF::GrandeStream#rio for more informatioin
428
+ </pre>
429
+ <h4>Why?</h4>
430
+ <p>
431
+ Some of my favorite Rio idioms are its copy one-liners
432
+ </p>
433
+ <pre>
434
+ rio('afile') &lt; a_string # put a string into a file
435
+ rio('afile') &lt; an_array # put an array into a file
436
+ rio('afile') &lt; rio('anotherfile').lines(0..9) # copy the first 10 lines of anotherfile into afile
437
+ rio('afile.gz').gzip &lt; rio('anotherfile').lines(0..9) # same thing into a gzipped file
438
+ </pre>
439
+ <p>
440
+ In each of these cases, &#8216;afile&#8217; would remain open after the
441
+ copy and furthermore since the destination Rio was not saved in a variable,
442
+ There is no way to close file. Without closeoncopy Something like this
443
+ would be required:
444
+ </p>
445
+ <pre>
446
+ ario = rio('afile')
447
+ ario &lt; something_else
448
+ ario.close
449
+ </pre>
450
+ <p>
451
+ Or this&#8230;
452
+ </p>
453
+ <pre>
454
+ ario = rio('afile') &lt; something_else
455
+ ario.close
456
+ </pre>
457
+ <p>
458
+ Or this&#8230;
459
+ </p>
460
+ <pre>
461
+ (rio('afile') &lt; something_else).close
462
+ </pre>
463
+ <p>
464
+ One line, but ugly, and prone to error.
465
+ </p>
466
+ <p>
467
+ What I want is this:
468
+ </p>
469
+ <pre>
470
+ rio('afile') &lt; something_else
471
+ </pre>
472
+ <p>
473
+ Simple. I want to copy this to that, I point the arrow and it works.
474
+ </p>
475
+ <p>
476
+ In perl the rio&#8217;s destructor would be called, because there are no
477
+ remaining references to the Rio However, it my understanding and experience
478
+ that in Ruby the finalizer will not necessarily be called at this point.
479
+ </p>
480
+ </div>
481
+ </div>
482
+
483
+ <div id="method-M000079" class="method-detail">
484
+ <a name="M000079"></a>
485
+
486
+ <div class="method-heading">
487
+ <a href="GrandeStream.src/M000079.html" target="Code" class="method-signature"
488
+ onclick="popupCode('GrandeStream.src/M000079.html');return false;">
489
+ <span class="method-name">closeoncopy?</span><span class="method-args">()</span>
490
+ </a>
491
+ </div>
492
+
493
+ <div class="method-description">
494
+ <p>
495
+ Query a Rio&#8217;s closeoncopy mode
496
+ </p>
497
+ <pre>
498
+ ario.closeoncopy? =&gt; true or false
499
+ </pre>
500
+ <p>
501
+ See <a href="GrandeStream.html#M000077">closeoncopy</a>
502
+ </p>
503
+ </div>
504
+ </div>
505
+
506
+ <div id="method-M000074" class="method-detail">
507
+ <a name="M000074"></a>
508
+
509
+ <div class="method-heading">
510
+ <a href="GrandeStream.src/M000074.html" target="Code" class="method-signature"
511
+ onclick="popupCode('GrandeStream.src/M000074.html');return false;">
512
+ <span class="method-name">closeoneof</span><span class="method-args">(arg=true,&amp;block)</span>
513
+ </a>
514
+ </div>
515
+
516
+ <div class="method-description">
517
+ <p>
518
+ Set the Rio&#8217;s closeoneof mode.
519
+ </p>
520
+ <pre>
521
+ ario.closeoneof(&amp;block) =&gt; ario
522
+ </pre>
523
+ <p>
524
+ <tt>closeoneof</tt> causes a Rio to be closed automatically whenever the
525
+ end of file is reached. This affects# all methods that read from a rio (<a
526
+ href="RubyIO.html#M000012">readlines</a>, #to_a, <a
527
+ href="Grande.html#M000090">each</a> <a href="RubyIO.html#M000004">gets</a>
528
+ etc.) Because <tt>closeoneof</tt> must be on for many of Rio&#8217;s most
529
+ useful idioms, it is on by default. <tt>closeoneof</tt> can be turned off
530
+ using <a href="GrandeStream.html#M000075">nocloseoneof</a>.
531
+ </p>
532
+ <p>
533
+ If a block is given behaves like <tt>ario.closeoneof.each(&amp;block)</tt>
534
+ had been called
535
+ </p>
536
+ <p>
537
+ Returns the Rio
538
+ </p>
539
+ <pre>
540
+ ario = rio('afile')
541
+ lines = ario.readlines
542
+ ario.closed? #=&gt; true
543
+
544
+ ario = rio('afile').nocloseoneof
545
+ lines = ario.readlines
546
+ ario.closed? #=&gt; false
547
+ ario.close # must be explicitly closed
548
+ </pre>
549
+ <p>
550
+ <tt>closeoneof</tt> is ignored by directory Rios, however, setting it on a
551
+ directory Rio causes each file Rio returned while iterating to inherit the
552
+ directory&#8217;s setting
553
+ </p>
554
+ <pre>
555
+ rio('adir').files do |file|
556
+ file.closeoneof? #=&gt; true
557
+ end
558
+
559
+ rio('adir').files.nocloseoneof do |file|
560
+ file.closeoneof? #=&gt; false
561
+ end
562
+
563
+ rio('adir').files.nocloseoneof['*.rb'] # array of .rb file Rios in adir with closeoneof off
564
+
565
+ drio = rio('adir').files
566
+ frio1 = drio.read
567
+ frio1.closeoneof? #=&gt; true
568
+ drio.nocloseoneof
569
+ frio2 = drio.read
570
+ frio2.closeoneof? #=&gt; false
571
+ </pre>
572
+ </div>
573
+ </div>
574
+
575
+ <div id="method-M000076" class="method-detail">
576
+ <a name="M000076"></a>
577
+
578
+ <div class="method-heading">
579
+ <a href="GrandeStream.src/M000076.html" target="Code" class="method-signature"
580
+ onclick="popupCode('GrandeStream.src/M000076.html');return false;">
581
+ <span class="method-name">closeoneof?</span><span class="method-args">()</span>
582
+ </a>
583
+ </div>
584
+
585
+ <div class="method-description">
586
+ <p>
587
+ Query a Rio&#8217;s closeoneof mode
588
+ </p>
589
+ <pre>
590
+ ario.closeoneof? =&gt; true or false
591
+ </pre>
592
+ <p>
593
+ See <a href="GrandeStream.html#M000074">closeoneof</a> and <a
594
+ href="GrandeStream.html#M000075">nocloseoneof</a>
595
+ </p>
596
+ <pre>
597
+ ario = rio('afile')
598
+ ario.closeoneof? #=&gt; true
599
+ lines = ario.to_a
600
+ ario.closed? #=&gt; true
601
+
602
+ ario = rio('afile').nocloseoneof
603
+ ario.closeoneof? #=&gt; false
604
+ lines = ario.to_a
605
+ ario.closed? #=&gt; false
606
+ ario.close # must be explicitly closed
607
+ </pre>
608
+ </div>
609
+ </div>
610
+
611
+ <div id="method-M000065" class="method-detail">
612
+ <a name="M000065"></a>
613
+
614
+ <div class="method-heading">
615
+ <a href="GrandeStream.src/M000065.html" target="Code" class="method-signature"
616
+ onclick="popupCode('GrandeStream.src/M000065.html');return false;">
617
+ <span class="method-name">contents</span><span class="method-args">()</span>
618
+ </a>
619
+ </div>
620
+
621
+ <div class="method-description">
622
+ <p>
623
+ Slurps the contents of the rio into a string.
624
+ </p>
625
+ <pre>
626
+ astring = rio('afile.txt').contents # slurp the entire contents of afile.txt into astring
627
+ </pre>
628
+ </div>
629
+ </div>
630
+
631
+ <div id="method-M000064" class="method-detail">
632
+ <a name="M000064"></a>
633
+
634
+ <div class="method-heading">
635
+ <a href="GrandeStream.src/M000064.html" target="Code" class="method-signature"
636
+ onclick="popupCode('GrandeStream.src/M000064.html');return false;">
637
+ <span class="method-name">getline</span><span class="method-args">()</span>
638
+ </a>
639
+ </div>
640
+
641
+ <div class="method-description">
642
+ <p>
643
+ Temporarily set the Rio to read lines, and call <a
644
+ href="Grande.html#M000102">get</a>
645
+ </p>
646
+ <p>
647
+ See also <a href="GrandeStream.html#M000057">records</a>, <a
648
+ href="GrandeStream.html#M000055">lines</a>, <a
649
+ href="Grande.html#M000090">each</a>, <a href="Grande.html#M000089">[]</a>
650
+ </p>
651
+ </div>
652
+ </div>
653
+
654
+ <div id="method-M000062" class="method-detail">
655
+ <a name="M000062"></a>
656
+
657
+ <div class="method-heading">
658
+ <a href="GrandeStream.src/M000062.html" target="Code" class="method-signature"
659
+ onclick="popupCode('GrandeStream.src/M000062.html');return false;">
660
+ <span class="method-name">getrec</span><span class="method-args">()</span>
661
+ </a>
662
+ </div>
663
+
664
+ <div class="method-description">
665
+ <p>
666
+ Temporarily set the Rio to read records, and call <a
667
+ href="Grande.html#M000102">get</a>
668
+ </p>
669
+ <p>
670
+ See also <a href="GrandeStream.html#M000057">records</a>, <a
671
+ href="GrandeStream.html#M000055">lines</a>, <a
672
+ href="Grande.html#M000090">each</a>, <a href="Grande.html#M000089">[]</a>
673
+ </p>
674
+ </div>
675
+ </div>
676
+
677
+ <div id="method-M000063" class="method-detail">
678
+ <a name="M000063"></a>
679
+
680
+ <div class="method-heading">
681
+ <a href="GrandeStream.src/M000063.html" target="Code" class="method-signature"
682
+ onclick="popupCode('GrandeStream.src/M000063.html');return false;">
683
+ <span class="method-name">getrow</span><span class="method-args">()</span>
684
+ </a>
685
+ </div>
686
+
687
+ <div class="method-description">
688
+ <p>
689
+ Temporarily set the Rio to read rows, and call <a
690
+ href="Grande.html#M000102">get</a>
691
+ </p>
692
+ <p>
693
+ See also <a href="GrandeStream.html#M000060">rows</a>, <a
694
+ href="GrandeStream.html#M000055">lines</a>, <a
695
+ href="Grande.html#M000090">each</a>, <a href="Grande.html#M000089">[]</a>
696
+ </p>
697
+ </div>
698
+ </div>
699
+
700
+ <div id="method-M000085" class="method-detail">
701
+ <a name="M000085"></a>
702
+
703
+ <div class="method-heading">
704
+ <a href="GrandeStream.src/M000085.html" target="Code" class="method-signature"
705
+ onclick="popupCode('GrandeStream.src/M000085.html');return false;">
706
+ <span class="method-name">gzip</span><span class="method-args">(&amp;block)</span>
707
+ </a>
708
+ </div>
709
+
710
+ <div class="method-description">
711
+ <p>
712
+ Sets the Rio to gzip mode.
713
+ </p>
714
+ <pre>
715
+ ario.gzip #=&gt; ario
716
+ </pre>
717
+ <p>
718
+ If applied to a Rio that is being read from Reads through a
719
+ <tt>Zlib::GzipReader</tt>; If applied to a Rio that is being written to
720
+ writes through a <tt>Zlib::GzipWriter</tt>.
721
+ </p>
722
+ <p>
723
+ Returns the Rio
724
+ </p>
725
+ <p>
726
+ If a block is given, acts like <tt>ario.gzip.each(&amp;block)</tt>
727
+ </p>
728
+ <pre>
729
+ rio('afile') &gt; rio('afile.gz').gzip # gzip a file
730
+ rio('afile.gz').gzip &lt; rio('afile') # same thing
731
+
732
+ rio('afile.gz').gzip &gt; rio('afile') # ungzip a file
733
+ rio('afile') &lt; rio('afile.gz').gzip # same thing
734
+
735
+ rio('afile.gz').gzip.chomp { |line| ...} # process each chomped line of a gzipped file
736
+ rio('afile.gz').gzip[0..9] # an array containing the first 10 lines of a gzipped file
737
+ </pre>
738
+ </div>
739
+ </div>
740
+
741
+ <div id="method-M000086" class="method-detail">
742
+ <a name="M000086"></a>
743
+
744
+ <div class="method-heading">
745
+ <a href="GrandeStream.src/M000086.html" target="Code" class="method-signature"
746
+ onclick="popupCode('GrandeStream.src/M000086.html');return false;">
747
+ <span class="method-name">gzip?</span><span class="method-args">()</span>
748
+ </a>
749
+ </div>
750
+
751
+ <div class="method-description">
752
+ <p>
753
+ Queries the Rio&#8217;s gzip-mode
754
+ </p>
755
+ <pre>
756
+ ario.gzip? #=&gt; true or false
757
+ </pre>
758
+ <p>
759
+ See <a href="GrandeStream.html#M000085">gzip</a>
760
+ </p>
761
+ </div>
762
+ </div>
763
+
764
+ <div id="method-M000052" class="method-detail">
765
+ <a name="M000052"></a>
766
+
767
+ <div class="method-heading">
768
+ <a href="GrandeStream.src/M000052.html" target="Code" class="method-signature"
769
+ onclick="popupCode('GrandeStream.src/M000052.html');return false;">
770
+ <span class="method-name">line</span><span class="method-args">(*args,&amp;block)</span>
771
+ </a>
772
+ </div>
773
+
774
+ <div class="method-description">
775
+ <p>
776
+ Calls <a href="GrandeStream.html#M000055">lines</a>(*args) but when used
777
+ with the subscript operator returns the first element of the returned array
778
+ instead of the array.
779
+ </p>
780
+ <p>
781
+ If afile contains [&quot;line 0\n&quot;,&quot;line 1\n&quot;]
782
+ </p>
783
+ <pre>
784
+ rio('afile').line[0] #=&gt; &quot;line 0\n&quot;
785
+ rio('afile').line[1] #=&gt; &quot;line 1\n&quot;
786
+ rio('afile').lines[0] #=&gt; [&quot;line 0\n&quot;]
787
+ rio('afile').lines[1] #=&gt; [&quot;line 1\n&quot;]
788
+ rio('afile').lines[0][0] #=&gt; &quot;line 0\n&quot;
789
+ rio('afile').lines[1][0] #=&gt; &quot;line 1\n&quot;
790
+ </pre>
791
+ </div>
792
+ </div>
793
+
794
+ <div id="method-M000055" class="method-detail">
795
+ <a name="M000055"></a>
796
+
797
+ <div class="method-heading">
798
+ <a href="GrandeStream.src/M000055.html" target="Code" class="method-signature"
799
+ onclick="popupCode('GrandeStream.src/M000055.html');return false;">
800
+ <span class="method-name">lines</span><span class="method-args">(*args,&amp;block)</span>
801
+ </a>
802
+ </div>
803
+
804
+ <div class="method-description">
805
+ <p>
806
+ Sets the rio to read lines and returns the Rio
807
+ </p>
808
+ <p>
809
+ If called with a block behaves as if <tt>lines(*args).each(&amp;block)</tt>
810
+ had been called
811
+ </p>
812
+ <p>
813
+ <tt>lines</tt> returns the Rio which called it. This might seem
814
+ counter-intuitive at first. One might reasonably assume that
815
+ </p>
816
+ <pre>
817
+ rio('adir').lines(0..10)
818
+ </pre>
819
+ <p>
820
+ would return lines. It does not. It configures the rio to return lines and
821
+ returns the Rio. This enables chaining for further configuration so
822
+ constructs like
823
+ </p>
824
+ <pre>
825
+ rio('afile').lines(0..10).skiplines(/::/)
826
+ </pre>
827
+ <p>
828
+ are possible.
829
+ </p>
830
+ <p>
831
+ If args are provided they may be one or more of the following:
832
+ </p>
833
+ <table>
834
+ <tr><td valign="top">Regexp:</td><td>any matching record will be processed
835
+
836
+ </td></tr>
837
+ <tr><td valign="top">Range:</td><td>specifies a range of records (zero-based) to be included
838
+
839
+ </td></tr>
840
+ <tr><td valign="top">Integer:</td><td>interpreted as a one element range of lines to be processed
841
+
842
+ </td></tr>
843
+ <tr><td valign="top">Proc:</td><td>a proc which will be called for each record, records are included unless
844
+ nil or false is returned
845
+
846
+ </td></tr>
847
+ <tr><td valign="top">Symbol:</td><td>a symbol which will <em>sent</em> to each record, records are included
848
+ unless nil or false is returned
849
+
850
+ </td></tr>
851
+ <tr><td valign="top">Array:</td><td>an array of other selectors. records are selected unless any of the matches
852
+ fail.
853
+
854
+ </td></tr>
855
+ </table>
856
+ <pre>
857
+ rio('f.txt').lines(/^\s*#/) { |line| ... } # iterate over comment-only lines
858
+ rio('f.txt').lines(/^\s*#/).each { |line| ... } # same as above
859
+
860
+ rio('f.txt').lines(1,7..9) &gt; rio('anotherfile.txt') # copy lines 1,7,8 and 9 to anotherfile.txt
861
+
862
+ rio('f.txt').lines(1...3).to_a # return an array containing lines 1 and 2 of f.txt
863
+ rio('f.txt').lines[1...3] # same thing
864
+ </pre>
865
+ </div>
866
+ </div>
867
+
868
+ <div id="method-M000080" class="method-detail">
869
+ <a name="M000080"></a>
870
+
871
+ <div class="method-heading">
872
+ <a href="GrandeStream.src/M000080.html" target="Code" class="method-signature"
873
+ onclick="popupCode('GrandeStream.src/M000080.html');return false;">
874
+ <span class="method-name">noautoclose</span><span class="method-args">(arg=false,&amp;block)</span>
875
+ </a>
876
+ </div>
877
+
878
+ <div class="method-description">
879
+ <p>
880
+ Turns off both closeoneof and closeoncopy. Equivelent to:
881
+ </p>
882
+ <pre>
883
+ ario.nocloseoneof.nocloseoncopy
884
+ </pre>
885
+ <p>
886
+ Returns the Rio
887
+ </p>
888
+ <pre>
889
+ ario.noautoclose(&amp;block) =&gt; ario
890
+ </pre>
891
+ <p>
892
+ If a block is given, acts as if
893
+ </p>
894
+ <pre>
895
+ ario.noautoclose.each(&amp;block)
896
+ </pre>
897
+ <p>
898
+ had been called.
899
+ </p>
900
+ <p>
901
+ See <a href="GrandeStream.html#M000075">nocloseoneof</a> and <a
902
+ href="GrandeStream.html#M000078">nocloseoncopy</a>
903
+ </p>
904
+ </div>
905
+ </div>
906
+
907
+ <div id="method-M000078" class="method-detail">
908
+ <a name="M000078"></a>
909
+
910
+ <div class="method-heading">
911
+ <a href="GrandeStream.src/M000078.html" target="Code" class="method-signature"
912
+ onclick="popupCode('GrandeStream.src/M000078.html');return false;">
913
+ <span class="method-name">nocloseoncopy</span><span class="method-args">(arg=false,&amp;block)</span>
914
+ </a>
915
+ </div>
916
+
917
+ <div class="method-description">
918
+ <p>
919
+ Set a Rio&#8217;s closeoncopy mode to false
920
+ </p>
921
+ <pre>
922
+ ario.nocloseoncopy(&amp;block) =&gt; ario
923
+ </pre>
924
+ <p>
925
+ See <a href="GrandeStream.html#M000077">closeoncopy</a>
926
+ </p>
927
+ </div>
928
+ </div>
929
+
930
+ <div id="method-M000075" class="method-detail">
931
+ <a name="M000075"></a>
932
+
933
+ <div class="method-heading">
934
+ <a href="GrandeStream.src/M000075.html" target="Code" class="method-signature"
935
+ onclick="popupCode('GrandeStream.src/M000075.html');return false;">
936
+ <span class="method-name">nocloseoneof</span><span class="method-args">(arg=false,&amp;block)</span>
937
+ </a>
938
+ </div>
939
+
940
+ <div class="method-description">
941
+ <p>
942
+ Set the Rio&#8217;s closeoneof mode to false
943
+ </p>
944
+ <pre>
945
+ ario.nocloseoneof(&amp;block) =&gt; ario
946
+ </pre>
947
+ <p>
948
+ See <a href="GrandeStream.html#M000074">closeoneof</a>
949
+ </p>
950
+ <p>
951
+ If a block is given behaves like
952
+ </p>
953
+ <pre>
954
+ ario.nocloseoneof.each(&amp;block)
955
+ </pre>
956
+ <p>
957
+ Returns the Rio
958
+ </p>
959
+ <pre>
960
+ ario = rio('afile')
961
+ lines = ario.to_a
962
+ ario.closed? #=&gt; true
963
+
964
+ ario = rio('afile').nocloseoneof
965
+ lines = ario.to_a
966
+ ario.closed? #=&gt; false
967
+ ario.close # must be explicitly closed
968
+ </pre>
969
+ </div>
970
+ </div>
971
+
972
+ <div id="method-M000066" class="method-detail">
973
+ <a name="M000066"></a>
974
+
975
+ <div class="method-heading">
976
+ <a href="GrandeStream.src/M000066.html" target="Code" class="method-signature"
977
+ onclick="popupCode('GrandeStream.src/M000066.html');return false;">
978
+ <span class="method-name">putrec</span><span class="method-args">(el)</span>
979
+ </a>
980
+ </div>
981
+
982
+ <div class="method-description">
983
+ <p>
984
+ Writes a single record to a Rio
985
+ </p>
986
+ </div>
987
+ </div>
988
+
989
+ <div id="method-M000070" class="method-detail">
990
+ <a name="M000070"></a>
991
+
992
+ <div class="method-heading">
993
+ <a href="GrandeStream.src/M000070.html" target="Code" class="method-signature"
994
+ onclick="popupCode('GrandeStream.src/M000070.html');return false;">
995
+ <span class="method-name">r</span><span class="method-args">()</span>
996
+ </a>
997
+ </div>
998
+
999
+ <div class="method-description">
1000
+ <p>
1001
+ Sets the implicit input mode to &#8216;r&#8217;.
1002
+ </p>
1003
+ <p>
1004
+ The implicit input mode is the mode Rio will use for input when no mode is
1005
+ specified.
1006
+ </p>
1007
+ <p>
1008
+ Returns the Rio
1009
+ </p>
1010
+ <p>
1011
+ See the discussion for <a href="GrandeStream.html#M000067">a</a>.
1012
+ </p>
1013
+ <p>
1014
+ Since &#8216;r&#8217; is the implicit input mode used by default, this
1015
+ method is probably uneeded.
1016
+ </p>
1017
+ </div>
1018
+ </div>
1019
+
1020
+ <div id="method-M000071" class="method-detail">
1021
+ <a name="M000071"></a>
1022
+
1023
+ <div class="method-heading">
1024
+ <a href="GrandeStream.src/M000071.html" target="Code" class="method-signature"
1025
+ onclick="popupCode('GrandeStream.src/M000071.html');return false;">
1026
+ <span class="method-name">r!</span><span class="method-args">()</span>
1027
+ </a>
1028
+ </div>
1029
+
1030
+ <div class="method-description">
1031
+ <p>
1032
+ Sets the implicit input mode to &#8216;r+&#8217;.
1033
+ </p>
1034
+ <p>
1035
+ The implicit input mode is the mode Rio will use for input when no mode is
1036
+ specified.
1037
+ </p>
1038
+ <p>
1039
+ Returns the Rio
1040
+ </p>
1041
+ <p>
1042
+ See the discussion for <a href="GrandeStream.html#M000067">a</a>.
1043
+ </p>
1044
+ </div>
1045
+ </div>
1046
+
1047
+ <div id="method-M000053" class="method-detail">
1048
+ <a name="M000053"></a>
1049
+
1050
+ <div class="method-heading">
1051
+ <a href="GrandeStream.src/M000053.html" target="Code" class="method-signature"
1052
+ onclick="popupCode('GrandeStream.src/M000053.html');return false;">
1053
+ <span class="method-name">record</span><span class="method-args">(*args,&amp;block)</span>
1054
+ </a>
1055
+ </div>
1056
+
1057
+ <div class="method-description">
1058
+ <p>
1059
+ See <a href="GrandeStream.html#M000052">line</a>.
1060
+ </p>
1061
+ </div>
1062
+ </div>
1063
+
1064
+ <div id="method-M000057" class="method-detail">
1065
+ <a name="M000057"></a>
1066
+
1067
+ <div class="method-heading">
1068
+ <a href="GrandeStream.src/M000057.html" target="Code" class="method-signature"
1069
+ onclick="popupCode('GrandeStream.src/M000057.html');return false;">
1070
+ <span class="method-name">records</span><span class="method-args">(*args,&amp;block)</span>
1071
+ </a>
1072
+ </div>
1073
+
1074
+ <div class="method-description">
1075
+ <p>
1076
+ Specifies which records will be iterated through by <a
1077
+ href="Grande.html#M000090">each</a> or returned by <a
1078
+ href="GrandeStream.html#M000062">getrec</a>
1079
+ </p>
1080
+ <p>
1081
+ If called with a block behaves as if
1082
+ <tt>records(*args).each(&amp;block)</tt> had been called
1083
+ </p>
1084
+ <p>
1085
+ Returns the Rio
1086
+ </p>
1087
+ <p>
1088
+ If no args are provided, all records are selected. What constitutes a
1089
+ record is affected by <a href="GrandeStream.html#M000055">lines</a>,<a
1090
+ href="GrandeStream.html#M000056">bytes</a>, and extensions such as <a
1091
+ href="CSV.html#M000116">csv</a> and <a href="YAML.html#M000167">yaml</a>.
1092
+ </p>
1093
+ <p>
1094
+ If args are provided they may be one or more of the following:
1095
+ </p>
1096
+ <table>
1097
+ <tr><td valign="top">Regexp:</td><td>any matching record will be iterated over by <a
1098
+ href="Grande.html#M000090">each</a> or returned by <a
1099
+ href="GrandeStream.html#M000062">getrec</a>
1100
+
1101
+ </td></tr>
1102
+ <tr><td valign="top">Integer:</td><td>specifies a record-number (zero-based) to be iterated over by <a
1103
+ href="Grande.html#M000090">each</a> or returned by <a
1104
+ href="GrandeStream.html#M000062">getrec</a>
1105
+
1106
+ </td></tr>
1107
+ <tr><td valign="top">Range:</td><td>specifies a range of records (zero-based) to included in the iteration
1108
+
1109
+ </td></tr>
1110
+ <tr><td valign="top">Proc:</td><td>a proc which will be called for each record, records are included unless
1111
+ nil or false is returned
1112
+
1113
+ </td></tr>
1114
+ <tr><td valign="top">Symbol:</td><td>a symbol which will <em>sent</em> to each record, records are included
1115
+ unless nil or false is returned
1116
+
1117
+ </td></tr>
1118
+ <tr><td valign="top">Array:</td><td>an array of any of above. All must match for a line to be included
1119
+
1120
+ </td></tr>
1121
+ </table>
1122
+ <p>
1123
+ Any other argument type is compared with the record using its <tt>===</tt>
1124
+ method.
1125
+ </p>
1126
+ <p>
1127
+ If the argument is a ::Proc it may be called with one, two or three
1128
+ paramaters.
1129
+ </p>
1130
+ <ol>
1131
+ <li>the record
1132
+
1133
+ </li>
1134
+ <li>the recno (optional)
1135
+
1136
+ </li>
1137
+ <li>the rio (optional)
1138
+
1139
+ </li>
1140
+ </ol>
1141
+ <p>
1142
+ Note in the following examples that since <tt>lines</tt> is the default
1143
+ <tt>ario.records(*args)</tt> is effectively the same as
1144
+ <tt>ario.lines(*args)</tt>.
1145
+ </p>
1146
+ <pre>
1147
+ rio('afile').records(0) { |line| ... } # iterate over the first line of 'afile'
1148
+ rio('afile').records(0,5..7)) { |line| ... } # iterate over lines 0,5,6 and 7
1149
+ rio('afile').records(/Zippy/) { |line| ... } # iterate over all lines containing 'Zippy'
1150
+
1151
+ rio('f.csv').puts!([&quot;h0,h1&quot;,&quot;f0,f1&quot;]) # Create f.csv
1152
+
1153
+ rio('f.csv').csv.records[] #==&gt;[[&quot;h0&quot;, &quot;h1&quot;], [&quot;f0&quot;, &quot;f1&quot;]]
1154
+ rio('f.csv').csv.lines[] #==&gt;[&quot;h0,h1\n&quot;, &quot;f0,f1\n&quot;]
1155
+ rio('f.csv').csv.records[0] #==&gt;[[&quot;h0&quot;, &quot;h1&quot;]]
1156
+ </pre>
1157
+ </div>
1158
+ </div>
1159
+
1160
+ <div id="method-M000054" class="method-detail">
1161
+ <a name="M000054"></a>
1162
+
1163
+ <div class="method-heading">
1164
+ <a href="GrandeStream.src/M000054.html" target="Code" class="method-signature"
1165
+ onclick="popupCode('GrandeStream.src/M000054.html');return false;">
1166
+ <span class="method-name">row</span><span class="method-args">(*args,&amp;block)</span>
1167
+ </a>
1168
+ </div>
1169
+
1170
+ <div class="method-description">
1171
+ <p>
1172
+ See <a href="GrandeStream.html#M000052">line</a>.
1173
+ </p>
1174
+ </div>
1175
+ </div>
1176
+
1177
+ <div id="method-M000060" class="method-detail">
1178
+ <a name="M000060"></a>
1179
+
1180
+ <div class="method-heading">
1181
+ <a href="GrandeStream.src/M000060.html" target="Code" class="method-signature"
1182
+ onclick="popupCode('GrandeStream.src/M000060.html');return false;">
1183
+ <span class="method-name">rows</span><span class="method-args">(*args,&amp;block)</span>
1184
+ </a>
1185
+ </div>
1186
+
1187
+ <div class="method-description">
1188
+ <p>
1189
+ Sets the Rio to read rows and specifies rows which should be iterated
1190
+ through by <a href="Grande.html#M000090">each</a> or returned by <a
1191
+ href="GrandeStream.html#M000062">getrec</a>. <a
1192
+ href="GrandeStream.html#M000060">rows</a> is intended for use by
1193
+ extensions, where the concept of a row is reasonable. In the absensence of
1194
+ an extension behaves like <a href="GrandeStream.html#M000057">records</a>.
1195
+ </p>
1196
+ </div>
1197
+ </div>
1198
+
1199
+ <div id="method-M000059" class="method-detail">
1200
+ <a name="M000059"></a>
1201
+
1202
+ <div class="method-heading">
1203
+ <a href="GrandeStream.src/M000059.html" target="Code" class="method-signature"
1204
+ onclick="popupCode('GrandeStream.src/M000059.html');return false;">
1205
+ <span class="method-name">skiplines</span><span class="method-args">(*args,&amp;block)</span>
1206
+ </a>
1207
+ </div>
1208
+
1209
+ <div class="method-description">
1210
+ <p>
1211
+ Sets the Rio to read lines and specifies lines which should <b>not</b> be
1212
+ iterated through by <a href="Grande.html#M000090">each</a> or returned by
1213
+ <a href="GrandeStream.html#M000062">getrec</a>
1214
+ </p>
1215
+ <p>
1216
+ If called with a block behaves as if
1217
+ <tt>skiplines(*args).each(&amp;block)</tt> had been called
1218
+ </p>
1219
+ <p>
1220
+ Returns the Rio
1221
+ </p>
1222
+ <p>
1223
+ See also <a href="GrandeStream.html#M000055">lines</a>, <a
1224
+ href="GrandeStream.html#M000057">records</a>, <a
1225
+ href="Grande.html#M000103">skip</a>
1226
+ </p>
1227
+ <p>
1228
+ If no args are provided, no lines are rejected.
1229
+ </p>
1230
+ <p>
1231
+ If args are provided they may be one or more of the following:
1232
+ </p>
1233
+ <table>
1234
+ <tr><td valign="top">Regexp:</td><td>any matching line will not be processed
1235
+
1236
+ </td></tr>
1237
+ <tr><td valign="top">Integer:</td><td>specifies a line-number (zero-based) to be skipped
1238
+
1239
+ </td></tr>
1240
+ <tr><td valign="top">Range:</td><td>specifies a range of lines (zero-based) to be excluded
1241
+
1242
+ </td></tr>
1243
+ <tr><td valign="top">Proc:</td><td>a proc which will be called for each line, lines are excluded unless nil or
1244
+ false is returned
1245
+
1246
+ </td></tr>
1247
+ <tr><td valign="top">Symbol:</td><td>a symbol which will <em>sent</em> to each line, lines are excluded unless
1248
+ nil or false is returned
1249
+
1250
+ </td></tr>
1251
+ <tr><td valign="top">Array:</td><td>an array of any of above. All must match for a line to be included
1252
+
1253
+ </td></tr>
1254
+ </table>
1255
+ <pre>
1256
+ rio('afile').skiplines(0) { |line| ... } # iterate over all but the first line of 'afile'
1257
+ rio('afile').skiplines(0,5..7)) { |line| ... } # don't iterate over lines 0,5,6 and 7
1258
+ rio('afile').skiplines(/Zippy/) { |line| ... } # skip all lines containing 'Zippy'
1259
+ rio('afile').chomp.skiplines(:empty?) { |line| ... } # skip empty lines
1260
+ </pre>
1261
+ </div>
1262
+ </div>
1263
+
1264
+ <div id="method-M000058" class="method-detail">
1265
+ <a name="M000058"></a>
1266
+
1267
+ <div class="method-heading">
1268
+ <a href="GrandeStream.src/M000058.html" target="Code" class="method-signature"
1269
+ onclick="popupCode('GrandeStream.src/M000058.html');return false;">
1270
+ <span class="method-name">skiprecords</span><span class="method-args">(*args,&amp;block)</span>
1271
+ </a>
1272
+ </div>
1273
+
1274
+ <div class="method-description">
1275
+ <p>
1276
+ Specifies records which should <b>not</b> be iterated through by <a
1277
+ href="Grande.html#M000090">each</a> or returned by <a
1278
+ href="GrandeStream.html#M000062">getrec</a>
1279
+ </p>
1280
+ <p>
1281
+ If called with a block behaves as if
1282
+ <tt>skiprecords(*args).each(&amp;block)</tt> had been called
1283
+ </p>
1284
+ <p>
1285
+ Returns the Rio
1286
+ </p>
1287
+ <p>
1288
+ See also <a href="GrandeStream.html#M000057">records</a>, <a
1289
+ href="GrandeStream.html#M000059">skiplines</a>, <a
1290
+ href="GrandeStream.html#M000055">lines</a>, <a
1291
+ href="Grande.html#M000103">skip</a>
1292
+ </p>
1293
+ <p>
1294
+ If no args are provided, no records are rejected. What constitutes a record
1295
+ is affected by <a href="GrandeStream.html#M000055">lines</a>,<a
1296
+ href="GrandeStream.html#M000056">bytes</a>, and extensions such as <a
1297
+ href="CSV.html#M000116">csv</a> and <a href="YAML.html#M000167">yaml</a>.
1298
+ </p>
1299
+ <p>
1300
+ If args are provided they may be one or more of the following:
1301
+ </p>
1302
+ <table>
1303
+ <tr><td valign="top">Regexp:</td><td>any matching record will not be processed
1304
+
1305
+ </td></tr>
1306
+ <tr><td valign="top">Integer:</td><td>specifies a record-number (zero-based) to be skipped
1307
+
1308
+ </td></tr>
1309
+ <tr><td valign="top">Range:</td><td>specifies a range of records (zero-based) to be excluded
1310
+
1311
+ </td></tr>
1312
+ <tr><td valign="top">Proc:</td><td>a proc which will be called for each record, records are excluded unless
1313
+ nil or false is returned
1314
+
1315
+ </td></tr>
1316
+ <tr><td valign="top">Symbol:</td><td>a symbol which will <em>sent</em> to each record, records are excluded
1317
+ unless nil or false is returned
1318
+
1319
+ </td></tr>
1320
+ <tr><td valign="top">Array:</td><td>an array of any of the above, all of which must match for the array to
1321
+ match.
1322
+
1323
+ </td></tr>
1324
+ </table>
1325
+ <p>
1326
+ Note in the following examples that since <tt>lines</tt> is the default
1327
+ record type <tt>ario.skiprecords(*args)</tt> is effectively the same as
1328
+ <tt>ario.skiplines(*args)</tt>.
1329
+ </p>
1330
+ <pre>
1331
+ rio('afile').skiprecords(0) { |line| ... } # iterate over all but the first line of 'afile'
1332
+ rio('afile').skiprecords(0,5..7)) { |line| ... } # don't iterate over lines 0,5,6 and 7
1333
+ rio('afile').skiprecords(/Zippy/) { |line| ... } # skip all lines containing 'Zippy'
1334
+ rio('afile').chomp.skiplines(:empty?) { |line| ... } # skip empty lines
1335
+ </pre>
1336
+ </div>
1337
+ </div>
1338
+
1339
+ <div id="method-M000061" class="method-detail">
1340
+ <a name="M000061"></a>
1341
+
1342
+ <div class="method-heading">
1343
+ <a href="GrandeStream.src/M000061.html" target="Code" class="method-signature"
1344
+ onclick="popupCode('GrandeStream.src/M000061.html');return false;">
1345
+ <span class="method-name">skiprows</span><span class="method-args">(*args,&amp;block)</span>
1346
+ </a>
1347
+ </div>
1348
+
1349
+ <div class="method-description">
1350
+ <p>
1351
+ Sets the Rio to read rows and specifies lines which should <b>not</b> be
1352
+ iterated through by <a href="Grande.html#M000090">each</a> or returned by
1353
+ <a href="GrandeStream.html#M000062">getrec</a> <a
1354
+ href="GrandeStream.html#M000061">skiprows</a> is intended for use by
1355
+ extensions, where the concept of a row is reasonable. In the absence of an
1356
+ extension behaves like <a href="GrandeStream.html#M000058">skiprecords</a>
1357
+ </p>
1358
+ </div>
1359
+ </div>
1360
+
1361
+ <div id="method-M000087" class="method-detail">
1362
+ <a name="M000087"></a>
1363
+
1364
+ <div class="method-heading">
1365
+ <a href="GrandeStream.src/M000087.html" target="Code" class="method-signature"
1366
+ onclick="popupCode('GrandeStream.src/M000087.html');return false;">
1367
+ <span class="method-name">splitlines</span><span class="method-args">(*args,&amp;block)</span>
1368
+ </a>
1369
+ </div>
1370
+
1371
+ <div class="method-description">
1372
+ <p>
1373
+ This causes String#split(arg) to be called on every line before it is
1374
+ returned. An array of the split lines is returned when iterating
1375
+ </p>
1376
+ <pre>
1377
+ rio('/etc/passwd').split(':').columns(0,2) { |ary|
1378
+ username,uid = ary
1379
+ }
1380
+
1381
+ rio('/etc/passwd').split(':').columns(0,2).to_a #=&gt; [[user1,uid1],[user2,uid2]]
1382
+ </pre>
1383
+ <p>
1384
+ See also <a href="Grande.html#M000105">split</a>
1385
+ </p>
1386
+ </div>
1387
+ </div>
1388
+
1389
+ <div id="method-M000084" class="method-detail">
1390
+ <a name="M000084"></a>
1391
+
1392
+ <div class="method-heading">
1393
+ <a href="GrandeStream.src/M000084.html" target="Code" class="method-signature"
1394
+ onclick="popupCode('GrandeStream.src/M000084.html');return false;">
1395
+ <span class="method-name">strip</span><span class="method-args">(arg=true,&amp;block)</span>
1396
+ </a>
1397
+ </div>
1398
+
1399
+ <div class="method-description">
1400
+ <p>
1401
+ Sets the Rio to strip lines and returns the Rio
1402
+ </p>
1403
+ <p>
1404
+ When called with a block, behaves as if strip.each(&amp;block) had been
1405
+ called
1406
+ </p>
1407
+ <p>
1408
+ <tt>strip</tt> causes lines returned by each, to_a, readlines, readline,
1409
+ gets, each_line etc. to be stripped with String#strip before iterated over
1410
+ or assigned
1411
+ </p>
1412
+ <pre>
1413
+ ans = rio(?-).print(&quot;A Prompt&gt; &quot;).strip.gets # prompt the user
1414
+ </pre>
1415
+ <p>
1416
+ See also <a href="GrandeStream.html#M000082">chomp</a>
1417
+ </p>
1418
+ </div>
1419
+ </div>
1420
+
1421
+ <div id="method-M000083" class="method-detail">
1422
+ <a name="M000083"></a>
1423
+
1424
+ <div class="method-heading">
1425
+ <a href="GrandeStream.src/M000083.html" target="Code" class="method-signature"
1426
+ onclick="popupCode('GrandeStream.src/M000083.html');return false;">
1427
+ <span class="method-name">strip?</span><span class="method-args">()</span>
1428
+ </a>
1429
+ </div>
1430
+
1431
+ <div class="method-description">
1432
+ <p>
1433
+ Queries the Rio&#8217;s strip-mode. See <a
1434
+ href="GrandeStream.html#M000084">strip</a>.
1435
+ </p>
1436
+ </div>
1437
+ </div>
1438
+
1439
+ <div id="method-M000072" class="method-detail">
1440
+ <a name="M000072"></a>
1441
+
1442
+ <div class="method-heading">
1443
+ <a href="GrandeStream.src/M000072.html" target="Code" class="method-signature"
1444
+ onclick="popupCode('GrandeStream.src/M000072.html');return false;">
1445
+ <span class="method-name">w</span><span class="method-args">()</span>
1446
+ </a>
1447
+ </div>
1448
+
1449
+ <div class="method-description">
1450
+ <p>
1451
+ Sets the implicit output mode to &#8216;w&#8217;.
1452
+ </p>
1453
+ <p>
1454
+ The implicit output mode is the mode Rio will use for output when no mode
1455
+ is specified.
1456
+ </p>
1457
+ <p>
1458
+ Returns the Rio
1459
+ </p>
1460
+ <p>
1461
+ See the discussion for <a href="GrandeStream.html#M000067">a</a>.
1462
+ </p>
1463
+ <p>
1464
+ Since &#8216;w&#8217; is the implicit output mode used by default, this
1465
+ method is uneeded, but is provided for completeness..
1466
+ </p>
1467
+ </div>
1468
+ </div>
1469
+
1470
+ <div id="method-M000073" class="method-detail">
1471
+ <a name="M000073"></a>
1472
+
1473
+ <div class="method-heading">
1474
+ <a href="GrandeStream.src/M000073.html" target="Code" class="method-signature"
1475
+ onclick="popupCode('GrandeStream.src/M000073.html');return false;">
1476
+ <span class="method-name">w!</span><span class="method-args">()</span>
1477
+ </a>
1478
+ </div>
1479
+
1480
+ <div class="method-description">
1481
+ <p>
1482
+ Sets the implicit output mode to &#8216;w+&#8217;.
1483
+ </p>
1484
+ <p>
1485
+ The implicit output mode is the mode Rio will use for output when no mode
1486
+ is specified.
1487
+ </p>
1488
+ <p>
1489
+ Returns the Rio
1490
+ </p>
1491
+ <pre>
1492
+ rio(?-,'cat').w!.puts!(&quot;Hello Kitty&quot;).readline #=&gt; &quot;Hello Kitty&quot;
1493
+ </pre>
1494
+ <p>
1495
+ See the discussion for <a href="GrandeStream.html#M000067">a</a>.
1496
+ </p>
1497
+ </div>
1498
+ </div>
1499
+
1500
+
1501
+ </div>
1502
+ </div>
1503
+
1504
+
1505
+ </div>
1506
+
1507
+
1508
+ <div id="validator-badges">
1509
+ <p><small>Copyright &copy; 2005,2006,2007 Christopher Kleckner. <a href="http://www.gnu.org/licenses/gpl.html">All rights reserved</a>.</small></p>
1510
+ </div>
1511
+
1512
+ </body>
1513
+ </html>