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/ops/file.rb
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
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/cp'
|
|
39
|
+
module RIO
|
|
40
|
+
module Impl
|
|
41
|
+
module U
|
|
42
|
+
def self.copy(s,d)
|
|
43
|
+
require 'fileutils'
|
|
44
|
+
::FileUtils.cp(s.to_s,d.to_s)
|
|
45
|
+
end
|
|
46
|
+
def self.rm(s)
|
|
47
|
+
require 'fileutils'
|
|
48
|
+
::FileUtils.rm(s.to_s)
|
|
49
|
+
end
|
|
50
|
+
def self.touch(s)
|
|
51
|
+
require 'fileutils'
|
|
52
|
+
::FileUtils.touch(s.to_s)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
module RIO
|
|
58
|
+
module Ops
|
|
59
|
+
module File
|
|
60
|
+
module ExistOrNot
|
|
61
|
+
require 'rio/ops/either'
|
|
62
|
+
include FileOrDir::ExistOrNot
|
|
63
|
+
end
|
|
64
|
+
module Existing
|
|
65
|
+
include ExistOrNot
|
|
66
|
+
include FileOrDir::Existing
|
|
67
|
+
include Cp::File::Output
|
|
68
|
+
include Cp::File::Input
|
|
69
|
+
|
|
70
|
+
def selective?
|
|
71
|
+
%w[stream_sel stream_nosel].any? { |k| cx.has_key?(k) }
|
|
72
|
+
end
|
|
73
|
+
def rm(*args)
|
|
74
|
+
rtn_reset {
|
|
75
|
+
Impl::U.rm(self,*args)
|
|
76
|
+
}
|
|
77
|
+
end
|
|
78
|
+
alias :delete :rm
|
|
79
|
+
alias :delete! :rm
|
|
80
|
+
|
|
81
|
+
def touch(*args) rtn_self { Impl::U.touch(self,*args) } end
|
|
82
|
+
end
|
|
83
|
+
module NonExisting
|
|
84
|
+
include ExistOrNot
|
|
85
|
+
include FileOrDir::NonExisting
|
|
86
|
+
|
|
87
|
+
def rm(*args) rtn_self { ; } end
|
|
88
|
+
alias delete rm
|
|
89
|
+
alias delete! rm
|
|
90
|
+
def touch(*args) rtn_reset { Impl::U.touch(self,*args) } end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
data/lib/rio/ops/path.rb
ADDED
|
@@ -0,0 +1,292 @@
|
|
|
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/impl/path'
|
|
39
|
+
module RIO
|
|
40
|
+
module Ops #:nodoc: all
|
|
41
|
+
module Path
|
|
42
|
+
module Test
|
|
43
|
+
def blockdev?(*args) Impl::U.blockdev?(self.to_s,*args) end
|
|
44
|
+
def chardev?(*args) Impl::U.chardev?(self.to_s,*args) end
|
|
45
|
+
def directory?(*args) Impl::U.directory?(self.to_s,*args) end
|
|
46
|
+
def exist?(*args) Impl::U.exist?(self.to_s,*args) end
|
|
47
|
+
def file?(*args) Impl::U.file?(self.to_s,*args) end
|
|
48
|
+
def pipe?(*args) Impl::U.pipe?(self.to_s,*args) end
|
|
49
|
+
def socket?(*args) Impl::U.socket?(self.to_s,*args) end
|
|
50
|
+
def symlink?(*args) Impl::U.symlink?(self.to_s,*args) end
|
|
51
|
+
alias :dir? :directory?
|
|
52
|
+
def open?() not self.closed? end
|
|
53
|
+
def closed?() self.ioh.nil? end
|
|
54
|
+
end
|
|
55
|
+
module Status
|
|
56
|
+
include Test
|
|
57
|
+
def fnmatch(*args) Impl::U.fnmatch(self.to_s,*args) end
|
|
58
|
+
def fnmatch?(*args) Impl::U.fnmatch?(self.to_s,*args) end
|
|
59
|
+
def ftype(*args) Impl::U.ftype(self.to_s,*args) end
|
|
60
|
+
def stat(*args) Impl::U.stat(self.to_s,*args) end
|
|
61
|
+
def atime(*args) Impl::U.atime(self.to_s,*args) end
|
|
62
|
+
def ctime(*args) Impl::U.ctime(self.to_s,*args) end
|
|
63
|
+
def mtime(*args) Impl::U.mtime(self.to_s,*args) end
|
|
64
|
+
def executable?(*args) Impl::U.executable?(self.to_s,*args) end
|
|
65
|
+
def executable_real?(*args) Impl::U.executable_real?(self.to_s,*args) end
|
|
66
|
+
def readable?(*args) Impl::U.readable?(self.to_s,*args) end
|
|
67
|
+
def readable_real?(*args) Impl::U.readable_real?(self.to_s,*args) end
|
|
68
|
+
def writable?(*args) Impl::U.writable?(self.to_s,*args) end
|
|
69
|
+
def writable_real?(*args) Impl::U.writable_real?(self.to_s,*args) end
|
|
70
|
+
def sticky?(*args) Impl::U.sticky?(self.to_s,*args) end
|
|
71
|
+
def owned?(*args) Impl::U.owned?(self.to_s,*args) end
|
|
72
|
+
def grpowned?(*args) Impl::U.grpowned?(self.to_s,*args) end
|
|
73
|
+
def setgid?(*args) Impl::U.setgid?(self.to_s,*args) end
|
|
74
|
+
def setuid?(*args) Impl::U.setuid?(self.to_s,*args) end
|
|
75
|
+
def size(*args) Impl::U.size(self.to_s,*args) end
|
|
76
|
+
def size?(*args) Impl::U.size?(self.to_s,*args) end
|
|
77
|
+
def zero?(*args) Impl::U.zero?(self.to_s,*args) end
|
|
78
|
+
|
|
79
|
+
end
|
|
80
|
+
module URI
|
|
81
|
+
def abs(base=nil)
|
|
82
|
+
if base.nil?
|
|
83
|
+
new_rio(rl.abs)
|
|
84
|
+
else
|
|
85
|
+
new_rio(rl,ensure_rio(base).abs.to_uri).abs
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
def abs?
|
|
89
|
+
rl.abs?
|
|
90
|
+
end
|
|
91
|
+
alias :absolute? :abs?
|
|
92
|
+
def route_from(other)
|
|
93
|
+
new_rio(rl.abs.route_from(ensure_rio(other).rl.abs))
|
|
94
|
+
end
|
|
95
|
+
def rel(other)
|
|
96
|
+
route_from(other)
|
|
97
|
+
end
|
|
98
|
+
# def rel(other=nil)
|
|
99
|
+
# if other.nil?
|
|
100
|
+
# route_from(other)
|
|
101
|
+
# else
|
|
102
|
+
# route_from(base.to_url + '/')
|
|
103
|
+
# end
|
|
104
|
+
# end
|
|
105
|
+
def route_to(other)
|
|
106
|
+
new_rio(rl.abs.route_to(ensure_rio(other).rl.abs))
|
|
107
|
+
end
|
|
108
|
+
def merge(other)
|
|
109
|
+
new_rio(rl.merge(ensure_rio(other).rl))
|
|
110
|
+
end
|
|
111
|
+
def base(b=nil)
|
|
112
|
+
new_rio(rl.base)
|
|
113
|
+
end
|
|
114
|
+
extend Forwardable
|
|
115
|
+
def_instance_delegators(:rl,:scheme,:host,:opaque)
|
|
116
|
+
|
|
117
|
+
end
|
|
118
|
+
module Query
|
|
119
|
+
def expand_path(*args)
|
|
120
|
+
args[0] = args[0].to_s unless args.empty?
|
|
121
|
+
new_rio(RL.fs2url(Impl::U.expand_path(self.to_s,*args)))
|
|
122
|
+
end
|
|
123
|
+
def extname(*args)
|
|
124
|
+
en = Impl::U.extname(rl.path_no_slash,*args)
|
|
125
|
+
(en.empty? ? nil : en)
|
|
126
|
+
end
|
|
127
|
+
def basename(*args)
|
|
128
|
+
unless args.empty?
|
|
129
|
+
ex = args[0] || self.extname
|
|
130
|
+
self.ext(ex)
|
|
131
|
+
end
|
|
132
|
+
#p self.ext?.inspect
|
|
133
|
+
new_rio(Impl::U.basename(rl.path_no_slash,self.ext?))
|
|
134
|
+
end
|
|
135
|
+
def split()
|
|
136
|
+
require 'rio/to_rio'
|
|
137
|
+
pth = rl.path_no_slash
|
|
138
|
+
parts = pth.split(RIO::Local::SEPARATOR)
|
|
139
|
+
if abs?
|
|
140
|
+
rooturi = rl.uri.clone
|
|
141
|
+
rooturi.path = '/'
|
|
142
|
+
parts[0] = rooturi
|
|
143
|
+
end
|
|
144
|
+
# give each rio the correct base
|
|
145
|
+
parts.inject([rio(parts.shift)]) { |ary,d| ary << rio(d,ary[-1].abs.to_url+'/') }.extend(ToRio::Array)
|
|
146
|
+
end
|
|
147
|
+
def filename()
|
|
148
|
+
new_rio(Impl::U.basename(rl.path_no_slash))
|
|
149
|
+
end
|
|
150
|
+
def dirname(*args)
|
|
151
|
+
new_rio(Impl::U.dirname(rl.path_no_slash,*args))
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def sub(re,arg)
|
|
155
|
+
new_rio(softreset.to_s.sub(re,arg.to_s))
|
|
156
|
+
end
|
|
157
|
+
def gsub(re,arg)
|
|
158
|
+
new_rio(softreset.to_s.gsub(re,arg.to_s))
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
def +(arg)
|
|
162
|
+
new_rio(softreset.to_s + ensure_rio(arg).to_s)
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
private
|
|
166
|
+
|
|
167
|
+
def _path_with_basename(arg)
|
|
168
|
+
old = rl.path_no_slash
|
|
169
|
+
old[0,old.length-basename.length-ext?.length]+arg.to_s+ext?
|
|
170
|
+
end
|
|
171
|
+
def _path_with_filename(arg)
|
|
172
|
+
old = rl.path_no_slash
|
|
173
|
+
old[0,old.length-filename.length]+arg.to_s
|
|
174
|
+
end
|
|
175
|
+
def _path_with_ext(ex)
|
|
176
|
+
old = rl.path_no_slash
|
|
177
|
+
old[0,old.length-ext?.length]+ex
|
|
178
|
+
end
|
|
179
|
+
def _path_with_dirname(arg)
|
|
180
|
+
old = rl.path_no_slash
|
|
181
|
+
arg.to_s + old[-(old.length-dirname.length),old.length]
|
|
182
|
+
end
|
|
183
|
+
end
|
|
184
|
+
module Change
|
|
185
|
+
def sub!(*args)
|
|
186
|
+
rl.path = rl.path.sub(*args)
|
|
187
|
+
softreset
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
def rename(*args,&block)
|
|
191
|
+
if args.empty?
|
|
192
|
+
cxx('rename',true,&block)
|
|
193
|
+
else
|
|
194
|
+
rtn = must_exist.rename(*args)
|
|
195
|
+
return rtn.each(&block) if block_given?
|
|
196
|
+
rtn
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
def rename?() cxx?('rename') end
|
|
200
|
+
def norename(arg=false,&block) nocxx('rename',&block) end
|
|
201
|
+
|
|
202
|
+
def filename=(arg)
|
|
203
|
+
if cx['rename']
|
|
204
|
+
must_exist.filename = arg
|
|
205
|
+
else
|
|
206
|
+
rl.path = _path_with_filename(arg)
|
|
207
|
+
softreset
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
def basename=(arg)
|
|
212
|
+
if cx['rename']
|
|
213
|
+
must_exist.basename = arg
|
|
214
|
+
else
|
|
215
|
+
rl.path = _path_with_basename(arg)
|
|
216
|
+
softreset
|
|
217
|
+
end
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
def extname=(arg)
|
|
221
|
+
#p callstr('extname=',arg)
|
|
222
|
+
|
|
223
|
+
if cx['rename']
|
|
224
|
+
must_exist.extname = arg
|
|
225
|
+
else
|
|
226
|
+
rl.path = _path_with_ext(arg)
|
|
227
|
+
softreset
|
|
228
|
+
end
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
def dirname=(arg)
|
|
232
|
+
if cx['rename']
|
|
233
|
+
must_exist.dirname = arg
|
|
234
|
+
else
|
|
235
|
+
rl.path = _path_with_dirname(arg)
|
|
236
|
+
softreset
|
|
237
|
+
end
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
end
|
|
241
|
+
end
|
|
242
|
+
end
|
|
243
|
+
end
|
|
244
|
+
require 'rio/ops/create'
|
|
245
|
+
module RIO
|
|
246
|
+
module Ops
|
|
247
|
+
module Path
|
|
248
|
+
module Empty
|
|
249
|
+
include Ops::Path::Create
|
|
250
|
+
include Ops::Path::URI
|
|
251
|
+
end
|
|
252
|
+
module ExistOrNot
|
|
253
|
+
def symlink(d)
|
|
254
|
+
rtn_self {
|
|
255
|
+
dst = self.ensure_rio(d)
|
|
256
|
+
dst /= self.filename if dst.directory?
|
|
257
|
+
if self.abs?
|
|
258
|
+
Impl::U.symlink(self,dst)
|
|
259
|
+
else
|
|
260
|
+
#p "symlink(#{dst.route_to(self)},#{dst})"
|
|
261
|
+
Impl::U.symlink(dst.route_to(self),dst.to_s)
|
|
262
|
+
end
|
|
263
|
+
dst.reset
|
|
264
|
+
}
|
|
265
|
+
end
|
|
266
|
+
end
|
|
267
|
+
module NonExisting
|
|
268
|
+
include Test
|
|
269
|
+
include Create
|
|
270
|
+
include ExistOrNot
|
|
271
|
+
# Rio does not consider an attempt to remove something that does not exist an error.
|
|
272
|
+
# Rio says "You called this method because you didn't want the thing to exist on the
|
|
273
|
+
# file system. After the call it doesn't exist. You're welcome"
|
|
274
|
+
#
|
|
275
|
+
def delete!() softreset end
|
|
276
|
+
def delete() softreset end
|
|
277
|
+
def rmdir() softreset end
|
|
278
|
+
def rmtree() softreset end
|
|
279
|
+
def rm() softreset end
|
|
280
|
+
|
|
281
|
+
end
|
|
282
|
+
module Str
|
|
283
|
+
include Status
|
|
284
|
+
include Query
|
|
285
|
+
include Create
|
|
286
|
+
include URI
|
|
287
|
+
include ExistOrNot
|
|
288
|
+
end
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
end
|
|
292
|
+
end # FS
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# ===============================================================================
|
|
3
|
+
# Copyright (c) 2005, Christopher Kleckner
|
|
4
|
+
# All rights reserved
|
|
5
|
+
#
|
|
6
|
+
# This file is part of the Rio library for ruby.
|
|
7
|
+
#
|
|
8
|
+
# Rio is free software; you can redistribute it and/or modify
|
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
11
|
+
# (at your option) any later version.
|
|
12
|
+
#
|
|
13
|
+
# Rio is distributed in the hope that it will be useful,
|
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
# GNU General Public License for more details.
|
|
17
|
+
#
|
|
18
|
+
# You should have received a copy of the GNU General Public License
|
|
19
|
+
# along with Rio; if not, write to the Free Software
|
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
+
# ===============================================================================
|
|
22
|
+
#++
|
|
23
|
+
#
|
|
24
|
+
# To create the documentation for Rio run the command
|
|
25
|
+
# rake rdoc
|
|
26
|
+
# from the distribution directory. Then point your browser at the 'doc/rdoc' directory.
|
|
27
|
+
#
|
|
28
|
+
# Suggested Reading
|
|
29
|
+
# * RIO::Doc::SYNOPSIS
|
|
30
|
+
# * RIO::Doc::INTRO
|
|
31
|
+
# * RIO::Doc::HOWTO
|
|
32
|
+
# * RIO::Rio
|
|
33
|
+
#
|
|
34
|
+
# <b>Rio is pre-alpha software.
|
|
35
|
+
# The documented interface and behavior is subject to change without notice.</b>
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
module RIO
|
|
39
|
+
module Impl
|
|
40
|
+
module U
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
module Ops
|
|
44
|
+
module Stream
|
|
45
|
+
module Status
|
|
46
|
+
def open?()
|
|
47
|
+
not self.closed?
|
|
48
|
+
end
|
|
49
|
+
def closed?() self.ioh.nil? end
|
|
50
|
+
def eof?() closed? or ioh.eof? end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
module Stream
|
|
55
|
+
module Manip
|
|
56
|
+
def binmode() rtn_self { self.ioh.binmode } end
|
|
57
|
+
def flush() rtn_self { self.ioh.flush } end
|
|
58
|
+
def fsync() rtn_self { self.ioh.fsync } end
|
|
59
|
+
def seek(amount,whence=IO::SEEK_SET) rtn_self { self.ioh.seek(amount,whence) } end
|
|
60
|
+
|
|
61
|
+
extend Forwardable
|
|
62
|
+
def_instance_delegators(:ioh,:pos,:pos=,:fileno,:to_i,
|
|
63
|
+
:fcntl,:ioctl)
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
module Stream
|
|
67
|
+
module Open
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
module Stream
|
|
71
|
+
module Copy
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
module Stream
|
|
75
|
+
module Close
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
module Stream
|
|
79
|
+
module Reset
|
|
80
|
+
include Status
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|