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.
- data/ChangeLog +287 -0
- data/Rakefile +7 -9
- data/VERSION +1 -1
- data/doc/ANNOUNCE +20 -1
- data/doc/RELEASE_NOTES +41 -0
- data/doc/rdoc/classes/Kernel.html +181 -0
- data/doc/rdoc/classes/Kernel.src/M000214.html +18 -0
- data/doc/rdoc/classes/RIO.html +621 -0
- data/doc/rdoc/classes/RIO.src/M000001.html +18 -0
- data/doc/rdoc/classes/RIO.src/M000002.html +18 -0
- data/doc/rdoc/classes/RIO.src/M000003.html +18 -0
- data/doc/rdoc/classes/RIO/Doc.html +138 -0
- data/doc/rdoc/classes/RIO/Doc/HOWTO.html +1040 -0
- data/doc/rdoc/classes/RIO/Doc/INTRO.html +1613 -0
- data/doc/rdoc/classes/RIO/Doc/MISC.html +443 -0
- data/doc/rdoc/classes/RIO/Doc/SYNOPSIS.html +338 -0
- data/doc/rdoc/classes/RIO/IF.html +114 -0
- data/doc/rdoc/classes/RIO/IF/CSV.html +202 -0
- data/doc/rdoc/classes/RIO/IF/CSV.src/M000004.html +19 -0
- data/doc/rdoc/classes/RIO/IF/CSV.src/M000005.html +16 -0
- data/doc/rdoc/classes/RIO/IF/CSV.src/M000006.html +16 -0
- data/doc/rdoc/classes/RIO/IF/YAML.html +499 -0
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000007.html +19 -0
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000008.html +16 -0
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000009.html +16 -0
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000010.html +16 -0
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000011.html +16 -0
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000012.html +16 -0
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000013.html +16 -0
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000014.html +16 -0
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000015.html +16 -0
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000016.html +16 -0
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000017.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.html +7121 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000018.html +18 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000019.html +20 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000020.html +27 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000021.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000023.html +19 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000024.html +20 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000025.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000026.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000027.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000028.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000029.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000030.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000031.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000032.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000033.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000034.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000035.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000036.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000037.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000038.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000039.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000040.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000041.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000042.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000043.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000044.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000045.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000046.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000047.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000048.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000049.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000050.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000051.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000052.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000053.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000054.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000055.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000056.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000057.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000058.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000059.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000060.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000061.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000062.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000063.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000064.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000065.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000066.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000067.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000068.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000069.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000070.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000071.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000072.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000073.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000074.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000075.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000076.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000077.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000078.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000079.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000080.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000081.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000082.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000083.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000084.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000085.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000086.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000087.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000088.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000089.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000090.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000091.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000092.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000093.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000094.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000095.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000096.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000097.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000098.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000099.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000100.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000101.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000102.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000103.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000104.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000105.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000106.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000107.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000108.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000109.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000110.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000111.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000112.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000113.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000114.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000115.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000116.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000117.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000118.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000119.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000120.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000121.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000122.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000123.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000124.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000125.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000126.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000127.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000128.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000129.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000130.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000131.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000132.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000133.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000134.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000135.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000136.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000137.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000138.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000139.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000140.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000141.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000142.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000143.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000144.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000145.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000146.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000147.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000148.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000149.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000150.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000151.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000152.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000153.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000154.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000155.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000156.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000157.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000158.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000159.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000160.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000161.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000162.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000163.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000164.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000165.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000166.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000167.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000168.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000169.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000170.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000171.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000172.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000173.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000174.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000175.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000176.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000177.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000178.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000179.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000180.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000181.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000182.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000183.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000184.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000185.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000186.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000187.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000188.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000189.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000190.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000191.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000192.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000193.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000194.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000195.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000196.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000197.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000198.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000199.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000200.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000201.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000202.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000203.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000204.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000205.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000206.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000207.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000208.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000209.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000210.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000211.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000212.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000213.html +16 -0
- data/doc/rdoc/created.rid +1 -0
- data/doc/rdoc/files/README.html +243 -0
- data/doc/rdoc/files/lib/rio/constructor_rb.html +142 -0
- data/doc/rdoc/files/lib/rio/doc/HOWTO_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/doc/INTRO_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/doc/MISC_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/doc/SYNOPSIS_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/basic_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/csv_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/dir_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/file_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/fileordir_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/grande_entry_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/grande_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/grande_stream_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/internal_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/path_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/stream_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/string_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/temp_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/test_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/yaml_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/kernel_rb.html +142 -0
- data/doc/rdoc/files/lib/rio_rb.html +154 -0
- data/doc/rdoc/fr_class_index.html +37 -0
- data/doc/rdoc/fr_file_index.html +49 -0
- data/doc/rdoc/fr_method_index.html +241 -0
- data/doc/rdoc/index.html +24 -0
- data/doc/rdoc/rdoc-style.css +384 -0
- data/lib/rio.rb +21 -5
- data/lib/rio/constructor.rb +13 -0
- data/lib/rio/context/copying.rb +56 -0
- data/lib/rio/context/methods.rb +1 -0
- data/lib/rio/cp.rb +53 -34
- data/lib/rio/doc/HOWTO.rb +9 -3
- data/lib/rio/doc/INTRO.rb +113 -3
- data/lib/rio/ext.rb +7 -1
- data/lib/rio/ext/csv.rb +17 -8
- data/lib/rio/ext/yaml.rb +182 -0
- data/lib/rio/factory.rb +11 -14
- data/lib/rio/filter/closeoneof.rb +12 -31
- data/lib/rio/filter/gzip.rb +7 -0
- data/lib/rio/if.rb +4 -1
- data/lib/rio/if/csv.rb +36 -35
- data/lib/rio/if/grande.rb +74 -5
- data/lib/rio/if/grande_stream.rb +11 -3
- data/lib/rio/if/path.rb +9 -8
- data/lib/rio/if/yaml.rb +218 -0
- data/lib/rio/ioh.rb +5 -3
- data/lib/rio/matchrecord.rb +9 -2
- data/lib/rio/ops/dir.rb +2 -1
- data/lib/rio/ops/either.rb +9 -9
- data/lib/rio/ops/file.rb +4 -1
- data/lib/rio/ops/path.rb +26 -20
- data/lib/rio/ops/stream.rb +1 -1
- data/lib/rio/ops/stream/input.rb +31 -9
- data/lib/rio/ops/stream/output.rb +7 -2
- data/lib/rio/ops/stream/read.rb +10 -10
- data/lib/rio/ops/stream/write.rb +10 -10
- data/lib/rio/path.rb +2 -2
- data/lib/rio/path/reset.rb +1 -1
- data/lib/rio/piper.rb +123 -0
- data/lib/rio/piper/cp.rb +81 -0
- data/lib/rio/rectype.rb +2 -2
- data/lib/rio/rl/base.rb +40 -17
- data/lib/rio/rl/builder.rb +8 -47
- data/lib/rio/rl/ioi.rb +3 -2
- data/lib/rio/rl/path.rb +101 -78
- data/lib/rio/rl/pathmethods.rb +95 -0
- data/lib/rio/rl/uri.rb +41 -51
- data/lib/rio/scheme/cmdio.rb +7 -1
- data/lib/rio/scheme/cmdpipe.rb +150 -0
- data/lib/rio/scheme/ftp.rb +0 -4
- data/lib/rio/scheme/http.rb +0 -2
- data/lib/rio/scheme/strio.rb +16 -0
- data/lib/rio/scheme/temp.rb +7 -7
- data/lib/rio/state.rb +23 -5
- data/lib/rio/stream.rb +4 -0
- data/lib/rio/stream/duplex.rb +1 -0
- data/lib/rio/stream/open.rb +8 -2
- data/lib/rio/version.rb +1 -1
- data/test/{runtests_gem.rb → gem_runtests.rb} +0 -0
- data/test/methods/path.rb +12 -0
- data/test/runtests.rb +2 -0
- data/test/tc/abs.rb +29 -27
- data/test/tc/all.rb +9 -3
- data/test/tc/base.rb +31 -0
- data/test/tc/cmdpipe.rb +146 -0
- data/test/tc/copydir.rb +2 -1
- data/test/tc/create.rb +10 -0
- data/test/tc/csv.rb +12 -12
- data/test/tc/csv2.rb +2 -2
- data/test/tc/csv_columns.rb +3 -3
- data/test/tc/each_break.rb +21 -8
- data/test/tc/expand_path.rb +21 -27
- data/test/tc/misc.rb +0 -1
- data/test/tc/noqae.rb +29 -21
- data/test/tc/overload.rb +14 -11
- data/test/tc/piper.rb +146 -0
- data/test/tc/riorl.rb +26 -17
- data/test/tc/route.rb +51 -0
- data/test/tc/skip.rb +8 -6
- data/test/tc/split.rb +70 -0
- data/test/tc/temp.rb +5 -5
- data/test/tc/testcase.rb +1 -0
- data/test/tc/yaml.rb +118 -0
- metadata +481 -229
- data/doc/README_MSWIN32.txt +0 -39
- data/ex/colx.rb +0 -8
- data/ex/findinruby +0 -23
- data/ex/findruby +0 -15
- data/ex/passwd_report.rb +0 -8
- data/ex/prompt.rb +0 -25
- data/ex/rgb.txt.gz +0 -0
- data/ex/riocat +0 -35
- data/ex/riogunzip +0 -31
- data/ex/riogzip +0 -24
- data/ex/rioprompt.rb +0 -6
- data/ex/tolf +0 -11
- data/test/mswin32.rb +0 -28
data/lib/rio/constructor.rb
CHANGED
|
@@ -198,6 +198,19 @@ module RIO
|
|
|
198
198
|
#
|
|
199
199
|
# This is Rio's interface to IO#popen
|
|
200
200
|
#
|
|
201
|
+
# ===== Creating a Rio Pipe
|
|
202
|
+
#
|
|
203
|
+
# A Rio Pipe is a sequence of Rios that are run with the output of each being
|
|
204
|
+
# copied to the input of the next.
|
|
205
|
+
#
|
|
206
|
+
# <tt>rio(?|, ario, ...)</tt> (mnemonic: '|' is the Unix pipe operator)
|
|
207
|
+
#
|
|
208
|
+
# <tt>rio(:cmdpipe, ario, ...)</tt>
|
|
209
|
+
#
|
|
210
|
+
#
|
|
211
|
+
# See also Rio#|
|
|
212
|
+
#
|
|
213
|
+
#
|
|
201
214
|
def rio(*args,&block) # :yields: self
|
|
202
215
|
Rio.rio(*args,&block)
|
|
203
216
|
end
|
|
@@ -0,0 +1,56 @@
|
|
|
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
|
+
require 'rio/context/cxx.rb'
|
|
39
|
+
module RIO
|
|
40
|
+
module Cx
|
|
41
|
+
module Methods
|
|
42
|
+
def copying_to() cx['copying_to'] = true; self end
|
|
43
|
+
def copying_to?() cx['copying_to'] end
|
|
44
|
+
def copying_to_done() cx.delete('copying_to'); self end
|
|
45
|
+
|
|
46
|
+
def copying_from() cx['copying_from'] = true; self end
|
|
47
|
+
def copying_from?() cx['copying_from'] end
|
|
48
|
+
def copying_from_done() cx.delete('copying_from'); self end
|
|
49
|
+
|
|
50
|
+
def copying(dest) dest.copying_to; copying_from end
|
|
51
|
+
def copying?() copying_to? or copying_from? end
|
|
52
|
+
def copying_done(dest) dest.copying_to_done; copying_from_done end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
data/lib/rio/context/methods.rb
CHANGED
data/lib/rio/cp.rb
CHANGED
|
@@ -101,35 +101,53 @@ module RIO
|
|
|
101
101
|
include Util::Input
|
|
102
102
|
def >>(arg)
|
|
103
103
|
cpclose(arg) {
|
|
104
|
-
|
|
105
|
-
when ::Array,::String,::IO then cpto_obj_(arg)
|
|
106
|
-
else _cpto_rio(arg,:<<)
|
|
107
|
-
end
|
|
108
|
-
self
|
|
104
|
+
apto_(arg)
|
|
109
105
|
}
|
|
110
106
|
end
|
|
111
107
|
def >(arg)
|
|
112
108
|
cpclose(arg) {
|
|
113
|
-
|
|
114
|
-
when ::Array,::String then cpto_obj_(arg.clear)
|
|
115
|
-
when ::IO then cpto_obj_(arg)
|
|
116
|
-
else _cpto_rio(arg,:<)
|
|
117
|
-
end
|
|
118
|
-
self
|
|
109
|
+
cpto_(arg)
|
|
119
110
|
}
|
|
120
111
|
end
|
|
121
112
|
alias :copy_to :>
|
|
122
113
|
alias :append_to :>>
|
|
123
|
-
private
|
|
124
114
|
|
|
125
|
-
|
|
115
|
+
protected
|
|
116
|
+
def cpto_(arg)
|
|
117
|
+
case arg
|
|
118
|
+
when ::Array then cpto_array_(arg.clear)
|
|
119
|
+
when ::String then cpto_string_(arg.clear)
|
|
120
|
+
when ::IO then cpto_obj_(arg)
|
|
121
|
+
else cpto_rio_(arg,:<)
|
|
122
|
+
end
|
|
123
|
+
self
|
|
124
|
+
end
|
|
125
|
+
def apto_(arg)
|
|
126
|
+
case arg
|
|
127
|
+
when ::Array then cpto_array_(arg)
|
|
128
|
+
when ::String then cpto_string_(arg)
|
|
129
|
+
when ::IO then cpto_obj_(arg)
|
|
130
|
+
else cpto_rio_(arg,:<<)
|
|
131
|
+
end
|
|
132
|
+
self
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def cpto_array_(arg)
|
|
136
|
+
cpto_obj_(arg)
|
|
137
|
+
end
|
|
138
|
+
def cpto_string_(arg)
|
|
139
|
+
cpto_obj_(arg)
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def cpto_rio_(arg,sym)
|
|
126
143
|
ario = ensure_rio(arg)
|
|
127
144
|
ario = ario.join(self.filename) if ario.dir?
|
|
128
145
|
ario.cpclose {
|
|
129
146
|
ario = ario.iostate(sym)
|
|
130
|
-
self.each
|
|
131
|
-
ario
|
|
132
|
-
|
|
147
|
+
self.copying(ario).each { |el|
|
|
148
|
+
ario.putrec(el)
|
|
149
|
+
# ario << el
|
|
150
|
+
}.copying_done(ario)
|
|
133
151
|
ario
|
|
134
152
|
}
|
|
135
153
|
end
|
|
@@ -137,26 +155,27 @@ module RIO
|
|
|
137
155
|
|
|
138
156
|
module Output
|
|
139
157
|
include Util::Output
|
|
140
|
-
def <<(arg) cpclose {
|
|
141
|
-
def <(arg) cpclose {
|
|
158
|
+
def <<(arg) cpclose { cpfrom_(arg) } end
|
|
159
|
+
def <(arg) cpclose { cpfrom_(arg) } end
|
|
142
160
|
alias :copy_from :<
|
|
143
161
|
alias :append_from :<<
|
|
144
162
|
|
|
145
|
-
|
|
163
|
+
protected
|
|
146
164
|
|
|
147
|
-
def
|
|
165
|
+
def cpfrom_(arg)
|
|
148
166
|
case arg
|
|
149
167
|
when ::Array then cpfrom_array_(arg)
|
|
150
168
|
when ::IO then cpfrom_obj_(arg)
|
|
151
169
|
when ::String then self.put_(arg)
|
|
152
|
-
else
|
|
170
|
+
else cpfrom_rio_(arg)
|
|
153
171
|
end
|
|
154
172
|
self
|
|
155
173
|
end
|
|
156
|
-
def
|
|
157
|
-
ensure_rio(arg).each
|
|
158
|
-
self
|
|
159
|
-
|
|
174
|
+
def cpfrom_rio_(arg)
|
|
175
|
+
ensure_rio(arg).copying(self).each { |el|
|
|
176
|
+
self.putrec(el)
|
|
177
|
+
# self << el
|
|
178
|
+
}.copying_done(self)
|
|
160
179
|
end
|
|
161
180
|
end
|
|
162
181
|
end
|
|
@@ -222,21 +241,21 @@ module RIO
|
|
|
222
241
|
module Dir
|
|
223
242
|
module Output
|
|
224
243
|
include Util::Output
|
|
225
|
-
def <<(arg)
|
|
226
|
-
def <(arg)
|
|
244
|
+
def <<(arg) cpfrom_(arg); self end
|
|
245
|
+
def <(arg) cpfrom_(arg); self end
|
|
227
246
|
alias :copy_from :<
|
|
228
247
|
alias :append_from :<<
|
|
229
248
|
|
|
230
249
|
private
|
|
231
250
|
|
|
232
|
-
def
|
|
251
|
+
def cpfrom_(arg)
|
|
233
252
|
case arg
|
|
234
253
|
when ::Array then cpfrom_array_(arg)
|
|
235
|
-
else
|
|
254
|
+
else cpfrom_rio_(ensure_rio(arg))
|
|
236
255
|
end
|
|
237
256
|
end
|
|
238
|
-
def
|
|
239
|
-
#p callstr('
|
|
257
|
+
def cpfrom_rio_(ario)
|
|
258
|
+
#p callstr('cpfrom_rio_',ario)
|
|
240
259
|
dest = self.join(ario.filename)
|
|
241
260
|
case
|
|
242
261
|
when ario.symlink?
|
|
@@ -256,14 +275,14 @@ module RIO
|
|
|
256
275
|
def >>(arg)
|
|
257
276
|
case arg
|
|
258
277
|
when ::Array then cpto_obj_(arg)
|
|
259
|
-
else
|
|
278
|
+
else cpto_rio_(ensure_rio(arg))
|
|
260
279
|
end
|
|
261
280
|
self
|
|
262
281
|
end
|
|
263
282
|
def >(arg)
|
|
264
283
|
case arg
|
|
265
284
|
when ::Array then cpto_obj_(arg.clear)
|
|
266
|
-
else
|
|
285
|
+
else cpto_rio_(ensure_rio(arg))
|
|
267
286
|
end
|
|
268
287
|
self
|
|
269
288
|
end
|
|
@@ -272,7 +291,7 @@ module RIO
|
|
|
272
291
|
|
|
273
292
|
private
|
|
274
293
|
|
|
275
|
-
def
|
|
294
|
+
def cpto_rio_(ario)
|
|
276
295
|
ario = ario.join(self.filename) if ario.exist?
|
|
277
296
|
nostreamenum.cpto_obj_(ario.mkdir)
|
|
278
297
|
end
|
data/lib/rio/doc/HOWTO.rb
CHANGED
|
@@ -562,12 +562,18 @@ IO, File, Dir, Pathname, FileUtils, Tempfile, StringIO, OpenURI, Zlib, and CSV.
|
|
|
562
562
|
the 'ps' command itself
|
|
563
563
|
ps = rio(?-,'ps -a').skiplines[0,/ps$/]
|
|
564
564
|
|
|
565
|
-
* Run an external program, copying its input from one location and its output
|
|
565
|
+
* Run an external program, copying its input from one location and its output to another,
|
|
566
566
|
and make it look very much like a shell command.
|
|
567
|
+
|
|
568
|
+
infile = rio(?","Hello Kitty\n")
|
|
569
|
+
outfile = rio('out.txt')
|
|
570
|
+
|
|
567
571
|
# method 1
|
|
568
|
-
ans = ""
|
|
569
572
|
cat = rio(?-,'cat').w!
|
|
570
|
-
cat <
|
|
573
|
+
cat <infile >outfile
|
|
574
|
+
|
|
575
|
+
# method 2
|
|
576
|
+
infile | 'cat' | outfile
|
|
571
577
|
|
|
572
578
|
---
|
|
573
579
|
|
data/lib/rio/doc/INTRO.rb
CHANGED
|
@@ -918,14 +918,14 @@ using the copy operators.
|
|
|
918
918
|
|
|
919
919
|
Rio provides two methods for selecting fields from CSV records in a
|
|
920
920
|
manner similar to that provided for selecting lines -- Rio#columns and
|
|
921
|
-
Rio#
|
|
921
|
+
Rio#skipcolumns.
|
|
922
922
|
|
|
923
923
|
rio('f.csv').puts!(["h0,h1,h2,h3","f0,f1,f2,f3"])
|
|
924
924
|
|
|
925
925
|
rio('f.csv').csv.columns(0).to_a #==>[["h0"], ["f0"]]
|
|
926
|
-
rio('f.csv').csv.
|
|
926
|
+
rio('f.csv').csv.skipcolumns(0).to_a #==>[["h1", "h2", "h3"], ["f1", "f2", "f3"]]
|
|
927
927
|
rio('f.csv').csv.columns(1..2).to_a #==>[["h1", "h2"], ["f1", "f2"]]
|
|
928
|
-
rio('f.csv').csv.
|
|
928
|
+
rio('f.csv').csv.skipcolumns(1..2).to_a #==>[["h0", "h3"], ["f0", "f3"]]
|
|
929
929
|
|
|
930
930
|
Rio#columns can, of course be used with the +each+ and the copy
|
|
931
931
|
operators:
|
|
@@ -934,6 +934,116 @@ operators:
|
|
|
934
934
|
rio('out').contents #==>"h0,h1\nf0,f1\n"
|
|
935
935
|
|
|
936
936
|
|
|
937
|
+
==== YAML mode
|
|
938
|
+
|
|
939
|
+
Rio uses the YAML class from the Ruby standard library to provide
|
|
940
|
+
support for reading and writing YAML files. Normally
|
|
941
|
+
using <tt>(skip)records</tt> is identical to <tt>(skip)lines</tt> because
|
|
942
|
+
while +records+ only selects and does not specify the record-type,
|
|
943
|
+
+lines+ is the default.
|
|
944
|
+
|
|
945
|
+
The YAML extension distingishes between items selected using
|
|
946
|
+
Rio#records, Rio#rows and Rio#lines. Rio returns objects
|
|
947
|
+
loaded via YAML#load when +records+ is used; returns the YAML text
|
|
948
|
+
as a String when +rows+ is used; and
|
|
949
|
+
returns lines as Strings as normal when +lines+ is used.
|
|
950
|
+
+records+ is the default. In yaml-mode, <tt>(skip)records</tt> can be called
|
|
951
|
+
as <tt>(skip)objects</tt> and <tt>(skip)rows</tt> can be called as
|
|
952
|
+
<tt>(skip)documents</tt>
|
|
953
|
+
|
|
954
|
+
To read a single YAML document, Rio provides #getobj and #load
|
|
955
|
+
For example, consider the following partial 'database.yml' from
|
|
956
|
+
the rails distribution:
|
|
957
|
+
|
|
958
|
+
development:
|
|
959
|
+
adapter: mysql
|
|
960
|
+
database: rails_development
|
|
961
|
+
|
|
962
|
+
test:
|
|
963
|
+
adapter: mysql
|
|
964
|
+
database: rails_test
|
|
965
|
+
|
|
966
|
+
|
|
967
|
+
To get the object represented in the yaml file:
|
|
968
|
+
|
|
969
|
+
rio('database.yml').yaml.load
|
|
970
|
+
==>{"development"=>{"adapter"=>"mysql", "database"=>"rails_development"},
|
|
971
|
+
"test"=>{"adapter"=>"mysql", "database"=>"rails_test"}}
|
|
972
|
+
|
|
973
|
+
Or one could read parts of the file like so:
|
|
974
|
+
|
|
975
|
+
rio('database.yml').yaml.getobj['development']['database']
|
|
976
|
+
==>"rails_development"
|
|
977
|
+
|
|
978
|
+
Single objects can be written using #putobj and #putobj!
|
|
979
|
+
which is aliased to #dump
|
|
980
|
+
|
|
981
|
+
anobject = {
|
|
982
|
+
'production' => {
|
|
983
|
+
'adapter' => 'mysql',
|
|
984
|
+
'database' => 'rails_production',
|
|
985
|
+
}
|
|
986
|
+
}
|
|
987
|
+
rio('afile.yaml').yaml.dump(anobject)
|
|
988
|
+
|
|
989
|
+
The YAML extension changes the way the grande copy operators
|
|
990
|
+
interpret their argument. Rio#< (copy-from) and Rio#<< (append-from)
|
|
991
|
+
treat an array as an array of objects which are converted using their
|
|
992
|
+
#to_yaml method before writing.
|
|
993
|
+
|
|
994
|
+
rio('afile.yaml').yaml < [obj1, obj2, obj3]
|
|
995
|
+
|
|
996
|
+
Because of this, copying an ::Array must be done like this:
|
|
997
|
+
|
|
998
|
+
rio('afile.yaml').yaml < [anarray]
|
|
999
|
+
|
|
1000
|
+
If their argument is a Rio or ::IO it is iterate through as normal,
|
|
1001
|
+
with each record converted using its to_yaml method.
|
|
1002
|
+
|
|
1003
|
+
For all other objects, the result of their +to_yaml+ operator is simply written.
|
|
1004
|
+
|
|
1005
|
+
rio('afile.yaml').yaml < anobject
|
|
1006
|
+
|
|
1007
|
+
Rio#> (copy-to) and Rio#>> (append-to) will fill an array with with all selected
|
|
1008
|
+
YAML documents in the Rio. For non-arrays, the yaml text is copied. (This may change
|
|
1009
|
+
if a useful reasonable alternative can be found)
|
|
1010
|
+
|
|
1011
|
+
rio('afile.yaml').yaml > anarray # load all YAML documents from 'afile.yaml'
|
|
1012
|
+
|
|
1013
|
+
Single objects can be written using Rio#putrec (aliased to Rio#putobj and Rio#dump)
|
|
1014
|
+
|
|
1015
|
+
rio('afile.yaml').yaml.putobj(anobject)
|
|
1016
|
+
|
|
1017
|
+
Single objects can be loaded using Rio#getrec (aliase to Rio#getobj and Rio#load)
|
|
1018
|
+
|
|
1019
|
+
anobject = rio('afile.yaml').yaml.getobj
|
|
1020
|
+
|
|
1021
|
+
Note that other than this redefinition of what a record is and how the copy
|
|
1022
|
+
operators interpret their argument, a Rio in yaml-mode is just like any other
|
|
1023
|
+
Rio. And all the things you can do with any Rio come for free.
|
|
1024
|
+
They can be iterated over using #each and read into an array using #[]
|
|
1025
|
+
just like any other Rio. All the selection criteria are identical also.
|
|
1026
|
+
|
|
1027
|
+
Get the first three objects into an array:
|
|
1028
|
+
|
|
1029
|
+
array_of_objects = rio('afile.yaml').yaml[0..2]
|
|
1030
|
+
|
|
1031
|
+
Iterate over only YAML documents that are a kind_of ::Hash use:
|
|
1032
|
+
|
|
1033
|
+
rio('afile.yaml').yaml(::Hash) {|ahash| ...}
|
|
1034
|
+
|
|
1035
|
+
This takes advantage of the fact that the default for matching records is <tt>===</tt>
|
|
1036
|
+
|
|
1037
|
+
Selecting records using a Proc can be used as normal:
|
|
1038
|
+
|
|
1039
|
+
anarray = rio('afile.yaml').yaml(proc{|anobject| ...}).to_a
|
|
1040
|
+
|
|
1041
|
+
One could even use the copy operator to convert a CSV file to a YAML representation of
|
|
1042
|
+
the same data:
|
|
1043
|
+
|
|
1044
|
+
rio('afile.yaml').yaml < rio('afile.csv').csv
|
|
1045
|
+
|
|
1046
|
+
|
|
937
1047
|
---
|
|
938
1048
|
|
|
939
1049
|
|
data/lib/rio/ext.rb
CHANGED
|
@@ -36,17 +36,22 @@
|
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
require 'rio/ext/csv'
|
|
39
|
+
require 'rio/ext/yaml'
|
|
39
40
|
module RIO
|
|
40
41
|
module Ext #:nodoc: all
|
|
41
|
-
OUTPUT_SYMS = CSV::Output.instance_methods.build_hash { |sym| [sym.to_s,1] }
|
|
42
|
+
OUTPUT_SYMS = (CSV::Output.instance_methods + YAML::Output.instance_methods).build_hash { |sym| [sym.to_s,1] }
|
|
43
|
+
|
|
42
44
|
module Cx
|
|
43
45
|
include CSV::Cx
|
|
46
|
+
include YAML::Cx
|
|
44
47
|
end
|
|
45
48
|
end
|
|
46
49
|
module Ext
|
|
47
50
|
module Input
|
|
48
51
|
def add_extensions(obj)
|
|
52
|
+
#p "add_extensions(#{obj.inspect})"
|
|
49
53
|
obj.extend(CSV::Input) if obj.csv?
|
|
54
|
+
obj.extend(YAML::Input) if obj.yaml?
|
|
50
55
|
obj
|
|
51
56
|
end
|
|
52
57
|
module_function :add_extensions
|
|
@@ -54,6 +59,7 @@ module RIO
|
|
|
54
59
|
module Output
|
|
55
60
|
def add_extensions(obj)
|
|
56
61
|
obj.extend(CSV::Output) if obj.csv?
|
|
62
|
+
obj.extend(YAML::Output) if obj.yaml?
|
|
57
63
|
obj
|
|
58
64
|
end
|
|
59
65
|
module_function :add_extensions
|
data/lib/rio/ext/csv.rb
CHANGED
|
@@ -55,11 +55,16 @@ module RIO
|
|
|
55
55
|
end
|
|
56
56
|
protected :csv_
|
|
57
57
|
def columns(*ranges,&block)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
if skipping?
|
|
59
|
+
cx['skipping'] = false
|
|
60
|
+
skipcolumns(*args,&block)
|
|
61
|
+
else
|
|
62
|
+
@cnames = nil
|
|
63
|
+
cx['col_args'] = ranges.flatten
|
|
64
|
+
cxx('columns',true,&block)
|
|
65
|
+
end
|
|
61
66
|
end
|
|
62
|
-
def
|
|
67
|
+
def skipcolumns(*ranges,&block)
|
|
63
68
|
@cnames = nil
|
|
64
69
|
cx['nocol_args'] = ranges.flatten
|
|
65
70
|
cxx('columns',true,&block)
|
|
@@ -99,8 +104,10 @@ module RIO
|
|
|
99
104
|
#p "#{callstr('to_rec_',raw_rec,@recno)} ; itertype=#{cx['stream_itertype']}"
|
|
100
105
|
case cx['stream_itertype']
|
|
101
106
|
when 'lines'
|
|
102
|
-
|
|
103
|
-
|
|
107
|
+
unless copying_from?
|
|
108
|
+
raw_rec.extend(RIO::Ext::CSV::Str)
|
|
109
|
+
raw_rec.csv_s_to_rec = _s_to_rec_proc(cx['csv_fs'],cx['csv_rs'])
|
|
110
|
+
end
|
|
104
111
|
raw_rec
|
|
105
112
|
when 'records'
|
|
106
113
|
_l2record(raw_rec,cx['csv_fs'],cx['csv_rs'])
|
|
@@ -153,8 +160,10 @@ module RIO
|
|
|
153
160
|
def _l2record(line,fs,rs)
|
|
154
161
|
#p callstr('_l2record',line,fs,rs,cols)
|
|
155
162
|
fields = trim(::CSV.parse_line(line,fs,rs))
|
|
156
|
-
|
|
157
|
-
|
|
163
|
+
unless copying_from?
|
|
164
|
+
fields.extend(RIO::Ext::CSV::Ary)
|
|
165
|
+
fields.csv_rec_to_s = _rec_to_s_proc(fs,rs)
|
|
166
|
+
end
|
|
158
167
|
fields
|
|
159
168
|
end
|
|
160
169
|
def cnames(num)
|