rio 0.3.1
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/COPYING +340 -0
- data/ChangeLog +755 -0
- data/README +65 -0
- data/RUNME.1st.rb +75 -0
- data/Rakefile +312 -0
- data/VERSION +1 -0
- data/doc/README_MSWIN32.txt +39 -0
- data/doc/RELEASE_NOTES +130 -0
- data/doc/generators/template/html/rio.rb +895 -0
- data/doc/rdoc/classes/Kernel.html +181 -0
- data/doc/rdoc/classes/Kernel.src/M000183.html +18 -0
- data/doc/rdoc/classes/RIO.html +508 -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 +1031 -0
- data/doc/rdoc/classes/RIO/Doc/INTRO.html +1116 -0
- data/doc/rdoc/classes/RIO/Doc/MISC.html +443 -0
- data/doc/rdoc/classes/RIO/Doc/SYNOPSIS.html +325 -0
- data/doc/rdoc/classes/RIO/Rio.html +6333 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000004.html +18 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000005.html +20 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000006.html +27 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000007.html +27 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000008.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000009.html +18 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000010.html +20 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000011.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000012.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000013.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000014.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000015.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000016.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000017.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000018.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000019.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000020.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000021.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000022.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000023.html +16 -0
- data/doc/rdoc/classes/RIO/Rio.src/M000024.html +16 -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/created.rid +1 -0
- data/doc/rdoc/files/README.html +215 -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/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_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/internal_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/if/methods_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/test_rb.html +135 -0
- data/doc/rdoc/files/lib/rio/kernel_rb.html +142 -0
- data/doc/rdoc/files/lib/rio_rb.html +153 -0
- data/doc/rdoc/fr_class_index.html +34 -0
- data/doc/rdoc/fr_file_index.html +44 -0
- data/doc/rdoc/fr_method_index.html +210 -0
- data/doc/rdoc/index.html +24 -0
- data/doc/rdoc/rdoc-style.css +384 -0
- data/doc/rfc1738.txt +1403 -0
- data/doc/rfc959.txt +3933 -0
- data/ex/colx.rb +6 -0
- data/ex/findinruby +19 -0
- data/ex/findruby +11 -0
- data/ex/prompt.rb +25 -0
- data/ex/rgb.txt.gz +0 -0
- data/ex/riocat +35 -0
- data/ex/riogunzip +31 -0
- data/ex/riogzip +24 -0
- data/ex/tolf +11 -0
- data/lib/rio.rb +163 -0
- data/lib/rio/abstract_method.rb +57 -0
- data/lib/rio/argv.rb +57 -0
- data/lib/rio/arrayio.rb +199 -0
- data/lib/rio/arycopy.rb +44 -0
- data/lib/rio/assert.rb +115 -0
- data/lib/rio/base.rb +59 -0
- data/lib/rio/constructor.rb +183 -0
- data/lib/rio/context.rb +117 -0
- data/lib/rio/context/chomp.rb +53 -0
- data/lib/rio/context/closeoneof.rb +50 -0
- data/lib/rio/context/cxx.rb +67 -0
- data/lib/rio/context/dir.rb +92 -0
- data/lib/rio/context/gzip.rb +51 -0
- data/lib/rio/context/methods.rb +196 -0
- data/lib/rio/context/stream.rb +170 -0
- data/lib/rio/cp.rb +305 -0
- data/lib/rio/cxdir.rb +79 -0
- data/lib/rio/dir.rb +145 -0
- data/lib/rio/doc.rb +45 -0
- data/lib/rio/doc/HOWTO.rb +691 -0
- data/lib/rio/doc/INTRO.rb +579 -0
- data/lib/rio/doc/MISC.rb +257 -0
- data/lib/rio/doc/SYNOPSIS.rb +170 -0
- data/lib/rio/entrysel.rb +162 -0
- data/lib/rio/exception.rb +42 -0
- data/lib/rio/exception/copy.rb +98 -0
- data/lib/rio/exception/open.rb +62 -0
- data/lib/rio/exception/state.rb +74 -0
- data/lib/rio/ext.rb +62 -0
- data/lib/rio/ext/csv.rb +261 -0
- data/lib/rio/factory.rb +236 -0
- data/lib/rio/file.rb +77 -0
- data/lib/rio/filter/chomp.rb +61 -0
- data/lib/rio/filter/closeoneof.rb +103 -0
- data/lib/rio/filter/gzip.rb +58 -0
- data/lib/rio/ftp.rb +275 -0
- data/lib/rio/ftp/conn.rb +167 -0
- data/lib/rio/ftp/ioh.rb +88 -0
- data/lib/rio/grande.rb +126 -0
- data/lib/rio/handle.rb +101 -0
- data/lib/rio/if.rb +53 -0
- data/lib/rio/if/basic.rb +64 -0
- data/lib/rio/if/dir.rb +362 -0
- data/lib/rio/if/file.rb +57 -0
- data/lib/rio/if/fileordir.rb +247 -0
- data/lib/rio/if/grande.rb +510 -0
- data/lib/rio/if/internal.rb +53 -0
- data/lib/rio/if/methods.rb +612 -0
- data/lib/rio/if/path.rb +413 -0
- data/lib/rio/if/stream.rb +599 -0
- data/lib/rio/if/test.rb +219 -0
- data/lib/rio/impl/path.rb +82 -0
- data/lib/rio/ioh.rb +137 -0
- data/lib/rio/iomode.rb +96 -0
- data/lib/rio/kernel.rb +47 -0
- data/lib/rio/local.rb +63 -0
- data/lib/rio/match.rb +51 -0
- data/lib/rio/matchrecord.rb +254 -0
- data/lib/rio/open3.rb +69 -0
- data/lib/rio/ops/create.rb +78 -0
- data/lib/rio/ops/dir.rb +302 -0
- data/lib/rio/ops/either.rb +117 -0
- data/lib/rio/ops/file.rb +94 -0
- data/lib/rio/ops/path.rb +292 -0
- data/lib/rio/ops/stream.rb +84 -0
- data/lib/rio/ops/stream/input.rb +237 -0
- data/lib/rio/ops/stream/output.rb +96 -0
- data/lib/rio/ops/stream/read.rb +84 -0
- data/lib/rio/ops/stream/write.rb +58 -0
- data/lib/rio/ops/symlink.rb +70 -0
- data/lib/rio/path.rb +117 -0
- data/lib/rio/path/reset.rb +70 -0
- data/lib/rio/record.rb +59 -0
- data/lib/rio/rectype.rb +86 -0
- data/lib/rio/rl/base.rb +147 -0
- data/lib/rio/rl/builder.rb +166 -0
- data/lib/rio/rl/ioi.rb +66 -0
- data/lib/rio/rl/path.rb +141 -0
- data/lib/rio/rl/uri.rb +118 -0
- data/lib/rio/scheme/aryio.rb +89 -0
- data/lib/rio/scheme/cmdio.rb +74 -0
- data/lib/rio/scheme/fd.rb +65 -0
- data/lib/rio/scheme/ftp.rb +73 -0
- data/lib/rio/scheme/http.rb +81 -0
- data/lib/rio/scheme/path.rb +100 -0
- data/lib/rio/scheme/stderr.rb +56 -0
- data/lib/rio/scheme/stdio.rb +71 -0
- data/lib/rio/scheme/strio.rb +82 -0
- data/lib/rio/scheme/sysio.rb +61 -0
- data/lib/rio/scheme/tcp.rb +74 -0
- data/lib/rio/scheme/tempfile.rb +104 -0
- data/lib/rio/state.rb +209 -0
- data/lib/rio/state/error.rb +73 -0
- data/lib/rio/stream.rb +181 -0
- data/lib/rio/stream/base.rb +50 -0
- data/lib/rio/stream/duplex.rb +76 -0
- data/lib/rio/stream/open.rb +203 -0
- data/lib/rio/symantics.rb +46 -0
- data/lib/rio/to_rio.rb +57 -0
- data/lib/rio/uri/file.rb +145 -0
- data/lib/rio/version.rb +52 -0
- data/setup.rb +1331 -0
- data/test/1.rb +14 -0
- data/test/mswin32.rb +28 -0
- data/test/once.rb +7 -0
- data/test/runtests.rb +12 -0
- data/test/runtests_gem.rb +15 -0
- data/test/tc/abs.rb +349 -0
- data/test/tc/all.rb +42 -0
- data/test/tc/cd1.rb +116 -0
- data/test/tc/clearsel.rb +69 -0
- data/test/tc/closeoncopy.rb +91 -0
- data/test/tc/closeoneof.rb +194 -0
- data/test/tc/copy-from.rb +183 -0
- data/test/tc/copy-to.rb +94 -0
- data/test/tc/copy.rb +72 -0
- data/test/tc/copyarray.rb +191 -0
- data/test/tc/copydest.rb +50 -0
- data/test/tc/copydir.rb +192 -0
- data/test/tc/copydirlines.rb +124 -0
- data/test/tc/copylines.rb +40 -0
- data/test/tc/copynonex.rb +121 -0
- data/test/tc/create.rb +104 -0
- data/test/tc/csv.rb +229 -0
- data/test/tc/dir.rb +79 -0
- data/test/tc/dirautoclose.rb +70 -0
- data/test/tc/dirent.rb +180 -0
- data/test/tc/dirss.rb +84 -0
- data/test/tc/each.rb +111 -0
- data/test/tc/each_break.rb +241 -0
- data/test/tc/edf.rb +82 -0
- data/test/tc/entary.rb +230 -0
- data/test/tc/eq.rb +101 -0
- data/test/tc/expand_path.rb +94 -0
- data/test/tc/ext.rb +115 -0
- data/test/tc/fileno.rb +95 -0
- data/test/tc/getrec.rb +140 -0
- data/test/tc/lineno.rb +197 -0
- data/test/tc/lines.rb +66 -0
- data/test/tc/methods.rb +185 -0
- data/test/tc/misc.rb +473 -0
- data/test/tc/nolines.rb +205 -0
- data/test/tc/noqae.rb +873 -0
- data/test/tc/once.rb +6 -0
- data/test/tc/overload.rb +137 -0
- data/test/tc/pa.rb +159 -0
- data/test/tc/pathop.rb +63 -0
- data/test/tc/paths.rb +147 -0
- data/test/tc/qae.rb +494 -0
- data/test/tc/qae_riovar.rb +500 -0
- data/test/tc/records.rb +69 -0
- data/test/tc/rename.rb +224 -0
- data/test/tc/rename_assign.rb +48 -0
- data/test/tc/sub.rb +49 -0
- data/test/tc/symlink.rb +177 -0
- data/test/tc/symlink0.rb +298 -0
- data/test/tc/symlink1.rb +115 -0
- data/test/tc/testcase.rb +152 -0
- metadata +461 -0
data/lib/rio/state.rb
ADDED
|
@@ -0,0 +1,209 @@
|
|
|
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/exception/state'
|
|
39
|
+
require 'rio/context'
|
|
40
|
+
require 'rio/context/methods'
|
|
41
|
+
require 'rio/ext'
|
|
42
|
+
require 'rio/symantics'
|
|
43
|
+
module RIO
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
module State #:nodoc: all
|
|
47
|
+
# = State
|
|
48
|
+
# the abstract state from which all are derived
|
|
49
|
+
# this level handles
|
|
50
|
+
# * some basic house keeping methods
|
|
51
|
+
# * the methods to communicate with the fs object
|
|
52
|
+
# * the state changing mechanism
|
|
53
|
+
# * and some basic error handling stubs
|
|
54
|
+
class Base
|
|
55
|
+
KIOSYMS = [:gets,:open,:readline,:readlines,:chop,:to_a,:putc,:puts,:print,:printf,:split,
|
|
56
|
+
:=~,:===,:==,:eql?,:sub,:sub!,:gsub,:gsub!]
|
|
57
|
+
@@kernel_cleaned ||= KIOSYMS.each { |sym| undef_method(sym) }
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
class Base
|
|
61
|
+
attr_accessor :rl
|
|
62
|
+
attr_accessor :ioh
|
|
63
|
+
attr_accessor :try_state
|
|
64
|
+
attr_accessor :cx
|
|
65
|
+
|
|
66
|
+
attr_accessor :handled_by
|
|
67
|
+
|
|
68
|
+
# Context handling
|
|
69
|
+
include Cx::Methods
|
|
70
|
+
|
|
71
|
+
include RIO::Ext::Cx
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def initialize()
|
|
75
|
+
@rl = @cx = @ioh = nil
|
|
76
|
+
# @handled_by = self.class.to_s
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def initialize_copy(*args)
|
|
80
|
+
#p callstr('enter state initialize_copy',*args)
|
|
81
|
+
super
|
|
82
|
+
@rl = @rl.clone unless @rl.nil?
|
|
83
|
+
@cx = @cx.clone unless @cx.nil?
|
|
84
|
+
@ioh = @ioh.clone unless @ioh.nil?
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def self.new_r(riorl)
|
|
88
|
+
new.init(riorl,Cx::Vars.new( { 'closeoneof' => true, 'closeoncopy' => true } ))
|
|
89
|
+
end
|
|
90
|
+
def init(riorl,cntx,iohandle=nil)
|
|
91
|
+
@rl = riorl
|
|
92
|
+
@cx = cntx
|
|
93
|
+
@ioh = iohandle
|
|
94
|
+
# raise Exception::FailedCheck.new(self) unless check?
|
|
95
|
+
self
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def self.new_other(other)
|
|
99
|
+
new.copy_state(other)
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def copy_state(other)
|
|
103
|
+
init(other.rl,other.cx,other.ioh)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# Section: State Switching
|
|
107
|
+
|
|
108
|
+
# the method for changing states
|
|
109
|
+
# it's job is create an instance of the next state
|
|
110
|
+
# and change the value in the handle that is shared with the fs object
|
|
111
|
+
def become(new_class,*args)
|
|
112
|
+
#p "become : #{self.class.to_s} => #{new_class.to_s} (#{self.mode?})" if $trace_states
|
|
113
|
+
#
|
|
114
|
+
return self if new_class == self.class
|
|
115
|
+
|
|
116
|
+
begin
|
|
117
|
+
try_state[new_class,*args]
|
|
118
|
+
rescue Exception::FailedCheck => ex
|
|
119
|
+
p "not a valid "+new_class.to_s+": "+ex.to_s+" '"+self.to_s+"'"
|
|
120
|
+
raise
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
def method_missing_trace_str(sym,*args)
|
|
124
|
+
"missing: "+self.class.to_s+'['+self.to_url+']'+'.'+sym.to_s+'('+args.join(',')+')'
|
|
125
|
+
end
|
|
126
|
+
def method_missing(sym,*args,&block)
|
|
127
|
+
#p method_missing_trace_str(sym,*args) if $trace_states
|
|
128
|
+
|
|
129
|
+
obj = when_missing(sym,*args)
|
|
130
|
+
raise RuntimeError,"when_missing returns nil" if obj.nil?
|
|
131
|
+
obj.__send__(sym,*args,&block) #unless obj == self
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def when_missing(sym,*args) gofigure(sym,*args) end
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
def base_state() Factory.instance.reset_state(@rl) end
|
|
138
|
+
|
|
139
|
+
def softreset
|
|
140
|
+
#p "softreset(#{self.class}) => #{self.base_state}"
|
|
141
|
+
cx['retrystate'] = nil
|
|
142
|
+
become(self.base_state)
|
|
143
|
+
end
|
|
144
|
+
def retryreset
|
|
145
|
+
#p "retryreset(#{self.class}) => #{self.base_state}"
|
|
146
|
+
become(self.base_state)
|
|
147
|
+
end
|
|
148
|
+
def reset
|
|
149
|
+
softreset()
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# Section: Error Handling
|
|
153
|
+
def gofigure(sym,*args)
|
|
154
|
+
cs = "#{sym}("+args.map(&:to_s).join(',')+")"
|
|
155
|
+
msg = "Go Figure! rio('#{self.to_s}').#{cs} Failed"
|
|
156
|
+
error(msg,sym,*args)
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
def error(emsg,sym,*args)
|
|
160
|
+
require 'rio/state/error'
|
|
161
|
+
Error.error(emsg,self,sym,*args)
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
def to_rl() self.rl.rl end
|
|
165
|
+
|
|
166
|
+
def fspath() @rl.fspath end
|
|
167
|
+
def path() @rl.path() end
|
|
168
|
+
def to_s() @rl.to_s() end
|
|
169
|
+
def ==(other) @rl == other end
|
|
170
|
+
def ===(other) self == other end
|
|
171
|
+
def =~(other) other =~ self.to_s end
|
|
172
|
+
def to_url() @rl.url end
|
|
173
|
+
def to_uri() @rl.uri end
|
|
174
|
+
def length() @rl.length end
|
|
175
|
+
alias to_str to_s
|
|
176
|
+
|
|
177
|
+
def hash() @rl.to_s.hash end
|
|
178
|
+
def eql?(other) @rl.to_s.eql?(other.to_s) end
|
|
179
|
+
|
|
180
|
+
def stream?() false end
|
|
181
|
+
|
|
182
|
+
# Section: Rio Interface
|
|
183
|
+
# gives states the ability to create new rio objects
|
|
184
|
+
# (should this be here???)
|
|
185
|
+
def new_rio(arg0,*args,&block)
|
|
186
|
+
#return arg0 if arg0.nil? # watch out for dir.read! if you remove this line
|
|
187
|
+
Rio.rio(arg0,*args,&block)
|
|
188
|
+
end
|
|
189
|
+
def new_rio_cx(*args)
|
|
190
|
+
n = new_rio(*args)
|
|
191
|
+
n.cx = self.cx.bequeath
|
|
192
|
+
n
|
|
193
|
+
end
|
|
194
|
+
def ensure_rio(arg0)
|
|
195
|
+
return arg0 if arg0.kind_of?(::RIO::Rio)
|
|
196
|
+
new_rio(arg0)
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
include Symantics
|
|
200
|
+
|
|
201
|
+
def callstr(func,*args)
|
|
202
|
+
self.class.to_s+'['+self.to_url+']'+'.'+func.to_s+'('+args.join(',')+')'
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
end # module RIO
|
|
@@ -0,0 +1,73 @@
|
|
|
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/exception/state'
|
|
39
|
+
module RIO
|
|
40
|
+
|
|
41
|
+
module State
|
|
42
|
+
class Error < Base
|
|
43
|
+
attr_accessor :obj,:msg,:sym
|
|
44
|
+
def initialize
|
|
45
|
+
super
|
|
46
|
+
@obj = nil
|
|
47
|
+
@msg = nil
|
|
48
|
+
@sym = nil
|
|
49
|
+
# self.send(sym,*args) #unless obj == self
|
|
50
|
+
end
|
|
51
|
+
def check?() true end
|
|
52
|
+
def when_missing(sym,*args) self end
|
|
53
|
+
def method_missing(sym,*args,&block)
|
|
54
|
+
# emsg = sprintf("Can't Handle %s[%s].%s(%s)",@obj.class.to_s,@obj.to_s,sym.to_s,args.join(','))
|
|
55
|
+
# emsg += "\n "+@msg unless @msg.nil? or @msg.empty?
|
|
56
|
+
emsg = @msg
|
|
57
|
+
raise Exception::CantHandle.new(@obj,sym,*args),emsg
|
|
58
|
+
end
|
|
59
|
+
def self.error(emsg,obj,sym,*args)
|
|
60
|
+
require 'rio/exception'
|
|
61
|
+
state = new
|
|
62
|
+
state.obj = obj
|
|
63
|
+
state.sym = sym
|
|
64
|
+
msg = sprintf("%s[%s].%s(%s)",obj.class.to_s,obj.to_s,sym.to_s,args.join(','))
|
|
65
|
+
msg += "\n "+emsg unless emsg.nil? or emsg.empty?
|
|
66
|
+
state.msg = msg
|
|
67
|
+
state
|
|
68
|
+
# raise CantHandle.new(obj,sym,*args),emsg
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
end # module RIO
|
data/lib/rio/stream.rb
ADDED
|
@@ -0,0 +1,181 @@
|
|
|
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/stream/base'
|
|
39
|
+
require 'rio/ops/path'
|
|
40
|
+
require 'rio/ops/stream'
|
|
41
|
+
require 'rio/ops/stream/input'
|
|
42
|
+
require 'rio/ops/stream/output'
|
|
43
|
+
require 'rio/ext'
|
|
44
|
+
|
|
45
|
+
require 'rio/filter/gzip'
|
|
46
|
+
require 'rio/filter/chomp'
|
|
47
|
+
require 'rio/filter/closeoneof'
|
|
48
|
+
|
|
49
|
+
module RIO
|
|
50
|
+
|
|
51
|
+
module Stream #:nodoc: all
|
|
52
|
+
|
|
53
|
+
class Reset < Base
|
|
54
|
+
# Mixin the appropriate ops
|
|
55
|
+
#include Ops::Path::Str
|
|
56
|
+
include Ops::Stream::Reset
|
|
57
|
+
|
|
58
|
+
def check?() true end
|
|
59
|
+
def when_missing(sym,*args) retryreset() end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
class IOBase < Base
|
|
63
|
+
# Mixin the appropriate ops
|
|
64
|
+
#include Ops::Path::Str
|
|
65
|
+
include Ops::Stream::Status
|
|
66
|
+
include Ops::Stream::Manip
|
|
67
|
+
|
|
68
|
+
# def open(*args)
|
|
69
|
+
# softreset.open(*args)
|
|
70
|
+
# end
|
|
71
|
+
def check?() open? end
|
|
72
|
+
def when_missing(sym,*args)
|
|
73
|
+
#p callstr('when_missing',sym,*args)
|
|
74
|
+
retryreset()
|
|
75
|
+
end
|
|
76
|
+
def base_state() 'Stream::Close' end
|
|
77
|
+
def reset()
|
|
78
|
+
self.close.softreset()
|
|
79
|
+
end
|
|
80
|
+
def setup
|
|
81
|
+
ioh.sync = sync? if cx.has_key?('sync')
|
|
82
|
+
self
|
|
83
|
+
end
|
|
84
|
+
def add_filter(mod)
|
|
85
|
+
unless ioh.kind_of?(mod)
|
|
86
|
+
ioh.extend(mod)
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
def rectype_mod
|
|
90
|
+
case cx['stream_rectype']
|
|
91
|
+
when 'lines' then RIO::RecType::Lines
|
|
92
|
+
when 'bytes' then RIO::RecType::Bytes
|
|
93
|
+
else RIO::RecType::Lines
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
def self.copier(src,dst)
|
|
97
|
+
RIO::Copy::Strategy::Stream.instance.copier(src,dst)
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
module Ini
|
|
101
|
+
def setup
|
|
102
|
+
super
|
|
103
|
+
@recno = -1
|
|
104
|
+
@get_selrej,@get_rangetops = create_selrej()
|
|
105
|
+
self
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
class Input < IOBase
|
|
109
|
+
include Ops::Stream::Input
|
|
110
|
+
include Ini
|
|
111
|
+
def initialize_copy(*args)
|
|
112
|
+
#p callstr('enter Input:initialize_copy',*args)
|
|
113
|
+
super
|
|
114
|
+
self.ioh.oncloseproc = proc { self.on_closeoneof } if closeoneof?
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def add_extensions()
|
|
118
|
+
Ext::Input.add_extensions(self)
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def add_filters
|
|
122
|
+
add_filter(Filter::GZipRead) if gzip?
|
|
123
|
+
add_filter(Filter::Chomp) if chomp?
|
|
124
|
+
if closeoneof?
|
|
125
|
+
add_filter(Filter::CloseOnEOF)
|
|
126
|
+
ioh.oncloseproc = proc { self.on_closeoneof }
|
|
127
|
+
end
|
|
128
|
+
self
|
|
129
|
+
end
|
|
130
|
+
def add_rec_methods()
|
|
131
|
+
self.extend(rectype_mod.module_eval('Input'))
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
class Output < IOBase
|
|
136
|
+
include Ops::Stream::Output
|
|
137
|
+
|
|
138
|
+
def add_rec_methods()
|
|
139
|
+
self.extend(rectype_mod.module_eval('Output'))
|
|
140
|
+
end
|
|
141
|
+
def add_extensions()
|
|
142
|
+
Ext::Output.add_extensions(self)
|
|
143
|
+
end
|
|
144
|
+
def add_filters
|
|
145
|
+
add_filter(Filter::GZipWrite) if gzip?
|
|
146
|
+
self
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
class InOut < IOBase
|
|
152
|
+
include Ops::Stream::Input
|
|
153
|
+
include Ops::Stream::Output
|
|
154
|
+
include Ini
|
|
155
|
+
|
|
156
|
+
def initialize_copy(*args)
|
|
157
|
+
super
|
|
158
|
+
self.ioh.oncloseproc = proc { self.on_closeoneof } if closeoneof?
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
def add_rec_methods()
|
|
162
|
+
self.extend(rectype_mod.module_eval('Input'))
|
|
163
|
+
self.extend(rectype_mod.module_eval('Output'))
|
|
164
|
+
end
|
|
165
|
+
def add_extensions()
|
|
166
|
+
Ext::Input.add_extensions(self)
|
|
167
|
+
Ext::Output.add_extensions(self)
|
|
168
|
+
end
|
|
169
|
+
def add_filters
|
|
170
|
+
add_filter(Filter::Chomp) if chomp?
|
|
171
|
+
if closeoneof?
|
|
172
|
+
add_filter(Filter::CloseOnEOF)
|
|
173
|
+
ioh.oncloseproc = proc { self.on_closeoneof }
|
|
174
|
+
end
|
|
175
|
+
self
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
end
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
end # module RIO
|