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
|
@@ -0,0 +1,58 @@
|
|
|
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 'zlib'
|
|
39
|
+
|
|
40
|
+
module RIO
|
|
41
|
+
module Filter
|
|
42
|
+
module GZipRead
|
|
43
|
+
def self.extend_object(ioh_stream)
|
|
44
|
+
super
|
|
45
|
+
gz = Zlib::GzipReader.new(ioh_stream.ios)
|
|
46
|
+
ioh_stream.iostack.push(gz)
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
module GZipWrite
|
|
50
|
+
def self.extend_object(ioh_stream)
|
|
51
|
+
super
|
|
52
|
+
gz = Zlib::GzipWriter.new(ioh_stream.ios)
|
|
53
|
+
ioh_stream.iostack.push(gz)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
__END__
|
data/lib/rio/ftp.rb
ADDED
|
@@ -0,0 +1,275 @@
|
|
|
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 'net/ftp'
|
|
39
|
+
require 'rio/state'
|
|
40
|
+
require 'rio/ops/path'
|
|
41
|
+
require 'rio/ftp/ioh'
|
|
42
|
+
require 'rio/grande'
|
|
43
|
+
require 'rio/cp'
|
|
44
|
+
|
|
45
|
+
module RIO
|
|
46
|
+
|
|
47
|
+
module FTP #:nodoc: all
|
|
48
|
+
module State
|
|
49
|
+
class Base < RIO::State::Base
|
|
50
|
+
include Ops::Path::URI
|
|
51
|
+
include Ops::Path::Query
|
|
52
|
+
include Ops::Path::Create
|
|
53
|
+
def closed?() ioh.nil? || ioh.closed? end
|
|
54
|
+
def open?() not closed? end
|
|
55
|
+
end
|
|
56
|
+
class Reset < Base
|
|
57
|
+
def check?() true end
|
|
58
|
+
def when_missing(sym,*args)
|
|
59
|
+
become('FTP::State::Open')
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
class Open < Base
|
|
63
|
+
def check?() true end
|
|
64
|
+
def open_(*args)
|
|
65
|
+
unless open?
|
|
66
|
+
ios = self.rl.open(*args)
|
|
67
|
+
self.ioh = FTP::IOH.new(ios)
|
|
68
|
+
#self.ioh = self.rl.open(*args)
|
|
69
|
+
end
|
|
70
|
+
self
|
|
71
|
+
end
|
|
72
|
+
def open(*args)
|
|
73
|
+
open_(*args)
|
|
74
|
+
end
|
|
75
|
+
def es()
|
|
76
|
+
begin
|
|
77
|
+
ioh.chdir(rl.path)
|
|
78
|
+
become('FTP::State::Dir')
|
|
79
|
+
rescue ::Net::FTPPermError
|
|
80
|
+
ioh.chdir(dirname.path.to_s)
|
|
81
|
+
become('FTP::State::File')
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
def when_missing(sym,*args)
|
|
85
|
+
open_.es()
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
end
|
|
89
|
+
class Common < Base
|
|
90
|
+
def pwd() ioh.pwd end
|
|
91
|
+
def cwd()
|
|
92
|
+
nr = self.dup
|
|
93
|
+
nr.rl.path = ioh.pwd
|
|
94
|
+
new_rio(nr)
|
|
95
|
+
end
|
|
96
|
+
def help(*args) ioh.help(*args) end
|
|
97
|
+
def status() ioh.status(self.path.to_s) end
|
|
98
|
+
def system(*args) ioh.system(*args) end
|
|
99
|
+
def quit()
|
|
100
|
+
ioh.quit unless closed?
|
|
101
|
+
self
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def softreset()
|
|
105
|
+
close unless closed?
|
|
106
|
+
super
|
|
107
|
+
end
|
|
108
|
+
def close()
|
|
109
|
+
ioh.close unless closed?
|
|
110
|
+
softreset
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
class File < Common
|
|
114
|
+
#include Cp::File::Input
|
|
115
|
+
def check?() true end
|
|
116
|
+
def when_missing(sym,*args)
|
|
117
|
+
fstream()
|
|
118
|
+
end
|
|
119
|
+
def fstream()
|
|
120
|
+
self.rl = RIO::FTP::Stream::RL.new(rl.uri)
|
|
121
|
+
@ioh = nil
|
|
122
|
+
become('FTP::Stream::Open')
|
|
123
|
+
end
|
|
124
|
+
def mkdir()
|
|
125
|
+
#ioh.chdir(dirname.path.to_s) {
|
|
126
|
+
ioh.mkdir(self.path.to_s)
|
|
127
|
+
softreset
|
|
128
|
+
end
|
|
129
|
+
def put(src)
|
|
130
|
+
#p callstr('put',src)
|
|
131
|
+
ioh.chdir(dirname.path.to_s)
|
|
132
|
+
ioh.put(src.to_s,filename.to_s)
|
|
133
|
+
self
|
|
134
|
+
end
|
|
135
|
+
def cpto_err(sym,*args)
|
|
136
|
+
cs = "#{sym}("+args.map(&:to_s).join(',')+")"
|
|
137
|
+
msg = "Go Figure! rio('#{self.to_s}').#{cs} Failed"
|
|
138
|
+
|
|
139
|
+
raise ArgumentError,"#{msg}\nArgument to '#{sym}' must be a Rio was a '#{args[0].class}'\n"
|
|
140
|
+
end
|
|
141
|
+
def <(src)
|
|
142
|
+
cpto_err(:<,src) unless src.kind_of?(Rio)
|
|
143
|
+
put(src)
|
|
144
|
+
end
|
|
145
|
+
def <<(src)
|
|
146
|
+
cpto_err(:<<,src) unless src.kind_of?(Rio)
|
|
147
|
+
put(src)
|
|
148
|
+
end
|
|
149
|
+
def mdtm() ioh.mdtm(rl.path) end
|
|
150
|
+
def rename(dst)
|
|
151
|
+
ioh.rename(rl.path,dst.to_s)
|
|
152
|
+
softreset
|
|
153
|
+
end
|
|
154
|
+
def delete()
|
|
155
|
+
ioh.delete(rl.path) if exist?
|
|
156
|
+
softreset
|
|
157
|
+
end
|
|
158
|
+
def exist?()
|
|
159
|
+
begin
|
|
160
|
+
mdtm()
|
|
161
|
+
rescue ::Net::FTPPermError
|
|
162
|
+
return false
|
|
163
|
+
end
|
|
164
|
+
true
|
|
165
|
+
end
|
|
166
|
+
def file?() exist? end
|
|
167
|
+
def dir?() false end
|
|
168
|
+
end
|
|
169
|
+
class Dir < Common
|
|
170
|
+
include Enumerable
|
|
171
|
+
include Grande
|
|
172
|
+
include Grande::Dir
|
|
173
|
+
include Cp::Dir::Input
|
|
174
|
+
include Cp::Dir::Output
|
|
175
|
+
def check?() true end
|
|
176
|
+
def when_missing(sym,*args)
|
|
177
|
+
gofigure(sym,*args)
|
|
178
|
+
end
|
|
179
|
+
def mkdir()
|
|
180
|
+
self
|
|
181
|
+
end
|
|
182
|
+
def rmdir()
|
|
183
|
+
# ioh.chdir(dirname.to_s)
|
|
184
|
+
# ioh.rmdir(filename.to_s)
|
|
185
|
+
ioh.rmdir(rl.path)
|
|
186
|
+
softreset
|
|
187
|
+
end
|
|
188
|
+
def getents(ents=[])
|
|
189
|
+
each do |el|
|
|
190
|
+
el.getents(ents) if el.dir?
|
|
191
|
+
ents << el
|
|
192
|
+
end
|
|
193
|
+
ents
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
def rmtree()
|
|
197
|
+
ents = getents()
|
|
198
|
+
ents.each do |ent|
|
|
199
|
+
ent.delete
|
|
200
|
+
end
|
|
201
|
+
self.delete
|
|
202
|
+
end
|
|
203
|
+
alias :delete :rmdir
|
|
204
|
+
def nlst() ioh.nlst() end
|
|
205
|
+
def chdir(*args,&block)
|
|
206
|
+
if block_given?
|
|
207
|
+
wd = ioh.pwd
|
|
208
|
+
ioh.chdir(rl.path)
|
|
209
|
+
rtn = yield
|
|
210
|
+
ioh.chdir(wd)
|
|
211
|
+
rtn
|
|
212
|
+
else
|
|
213
|
+
ioh.chdir(rl.path)
|
|
214
|
+
end
|
|
215
|
+
self
|
|
216
|
+
end
|
|
217
|
+
def list()
|
|
218
|
+
ioh.list
|
|
219
|
+
end
|
|
220
|
+
def exist?() true end
|
|
221
|
+
def dir?() true end
|
|
222
|
+
def file?() false end
|
|
223
|
+
def put(srio)
|
|
224
|
+
ioh.chdir(rl.path)
|
|
225
|
+
ioh.put(srio.to_s,srio.filename.to_s)
|
|
226
|
+
self
|
|
227
|
+
end
|
|
228
|
+
def each(&block)
|
|
229
|
+
ioh.chdir(rl.path)
|
|
230
|
+
each_(&block)
|
|
231
|
+
self
|
|
232
|
+
end
|
|
233
|
+
end
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
end
|
|
237
|
+
module RIO
|
|
238
|
+
module FTP
|
|
239
|
+
module Stream
|
|
240
|
+
|
|
241
|
+
require 'rio/stream/open'
|
|
242
|
+
require 'rio/ops/path'
|
|
243
|
+
class Open < RIO::Stream::Open
|
|
244
|
+
include Ops::Path::Status
|
|
245
|
+
include Ops::Path::URI
|
|
246
|
+
include Ops::Path::Query
|
|
247
|
+
def input()
|
|
248
|
+
self.rl.base = self.ioh.base_uri
|
|
249
|
+
stream_state('FTP::Stream::Input')
|
|
250
|
+
end
|
|
251
|
+
def base_state() 'FTP::Stream::Close' end
|
|
252
|
+
end
|
|
253
|
+
class Close < RIO::Stream::Close
|
|
254
|
+
def base_state() 'FTP::Stream::Reset' end
|
|
255
|
+
end
|
|
256
|
+
require 'rio/stream'
|
|
257
|
+
class Reset < RIO::Stream::Reset
|
|
258
|
+
def when_missing(sym,*args)
|
|
259
|
+
self.rl = FTP::RL.new(rl.uri)
|
|
260
|
+
super
|
|
261
|
+
end
|
|
262
|
+
end
|
|
263
|
+
require 'rio/stream'
|
|
264
|
+
class Input < RIO::Stream::Input
|
|
265
|
+
include Ops::Path::Status
|
|
266
|
+
include Ops::Path::URI
|
|
267
|
+
include Ops::Path::Query
|
|
268
|
+
def base_state() 'FTP::Stream::Close' end
|
|
269
|
+
extend Forwardable
|
|
270
|
+
def_instance_delegators(:ioh,:meta,:status,:charset,:content_encoding,:content_type,:last_modified,:base_uri)
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
end
|
|
274
|
+
end
|
|
275
|
+
end # module RIO
|
data/lib/rio/ftp/conn.rb
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
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 'net/ftp'
|
|
39
|
+
require 'uri'
|
|
40
|
+
require 'singleton'
|
|
41
|
+
|
|
42
|
+
module RIO
|
|
43
|
+
module FTP
|
|
44
|
+
module RootDir
|
|
45
|
+
attr_reader :root_dir
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
module RIO
|
|
50
|
+
module FTP
|
|
51
|
+
class ConnCache
|
|
52
|
+
include Singleton
|
|
53
|
+
def initialize()
|
|
54
|
+
@co = {}
|
|
55
|
+
@ca = {}
|
|
56
|
+
end
|
|
57
|
+
def kuris(uri)
|
|
58
|
+
curi = uri.clone
|
|
59
|
+
curi.path = ''
|
|
60
|
+
kuri = curi.to_s
|
|
61
|
+
[kuri,curi]
|
|
62
|
+
end
|
|
63
|
+
def connect(uri)
|
|
64
|
+
kuri,curi = kuris(uri)
|
|
65
|
+
unless @co.has_key?(kuri)
|
|
66
|
+
@co[kuri] = ::Net::FTP.new()
|
|
67
|
+
@ca[kuri] = 0
|
|
68
|
+
end
|
|
69
|
+
c = @co[kuri]
|
|
70
|
+
if c.closed?
|
|
71
|
+
c.connect(curi.host,curi.port)
|
|
72
|
+
if curi.user
|
|
73
|
+
c.login(curi.user,curi.password)
|
|
74
|
+
else
|
|
75
|
+
c.login
|
|
76
|
+
end
|
|
77
|
+
wd = c.pwd
|
|
78
|
+
c.instance_eval {
|
|
79
|
+
@root_dir = wd
|
|
80
|
+
}
|
|
81
|
+
c.extend(RootDir)
|
|
82
|
+
end
|
|
83
|
+
@ca[kuri] += 1
|
|
84
|
+
#@ca.each { |k,v| puts " FTPCC.connect: #{k}: #{v}" }
|
|
85
|
+
c
|
|
86
|
+
end
|
|
87
|
+
def close(uri)
|
|
88
|
+
kuri,curi = kuris(uri)
|
|
89
|
+
|
|
90
|
+
if @ca.has_key?(kuri)
|
|
91
|
+
@ca[kuri] -= 1
|
|
92
|
+
end
|
|
93
|
+
#@ca.each { |k,v| puts " FTPCC.close: #{k}: #{v}" }
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
module RIO
|
|
99
|
+
module FTP
|
|
100
|
+
class Conn
|
|
101
|
+
attr_accessor :uri
|
|
102
|
+
def initialize(uri=nil)
|
|
103
|
+
@uri = uri.clone || URI::FTP.new('ftp',nil,nil,nil,nil,nil,nil,nil,nil)
|
|
104
|
+
end
|
|
105
|
+
def connect(host, port = ::Net::FTP::FTP_PORT)
|
|
106
|
+
@uri.host = host
|
|
107
|
+
@uri.port = port
|
|
108
|
+
end
|
|
109
|
+
def login(user = 'anonymous',password = nil)
|
|
110
|
+
unless user == 'anonymous' && password.nil?
|
|
111
|
+
@uri.user = user
|
|
112
|
+
@uri.password = password
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
def chdir(dirname)
|
|
116
|
+
@uri.path = dirname
|
|
117
|
+
co = FTP::ConnCache.instance.connect(@uri)
|
|
118
|
+
rd = co.root_dir
|
|
119
|
+
rd = '' if rd == '/'
|
|
120
|
+
co.chdir(rd + @uri.path)
|
|
121
|
+
end
|
|
122
|
+
def pwd()
|
|
123
|
+
co = FTP::ConnCache.instance.connect(@uri)
|
|
124
|
+
co.pwd
|
|
125
|
+
end
|
|
126
|
+
def root_dir()
|
|
127
|
+
co = FTP::ConnCache.instance.connect(@uri)
|
|
128
|
+
co.root_dir
|
|
129
|
+
end
|
|
130
|
+
def mdtm(filename)
|
|
131
|
+
co = FTP::ConnCache.instance.connect(@uri)
|
|
132
|
+
co.mdtm(filename)
|
|
133
|
+
end
|
|
134
|
+
def conndir()
|
|
135
|
+
co = FTP::ConnCache.instance.connect(@uri)
|
|
136
|
+
rd = co.root_dir
|
|
137
|
+
rd = '' if rd == '/'
|
|
138
|
+
co.chdir(rd + @uri.path)
|
|
139
|
+
co
|
|
140
|
+
end
|
|
141
|
+
def put(src,dstname)
|
|
142
|
+
conndir.put(src,dstname)
|
|
143
|
+
end
|
|
144
|
+
def rename(src,dstname)
|
|
145
|
+
conndir.rename(src,dstname)
|
|
146
|
+
end
|
|
147
|
+
def delete(pth)
|
|
148
|
+
conndir.delete(pth)
|
|
149
|
+
end
|
|
150
|
+
def rmdir(pth)
|
|
151
|
+
conndir.rmdir(pth)
|
|
152
|
+
end
|
|
153
|
+
def list()
|
|
154
|
+
conndir.list
|
|
155
|
+
end
|
|
156
|
+
def mkdir(dirname)
|
|
157
|
+
conndir.mkdir(dirname)
|
|
158
|
+
end
|
|
159
|
+
def nlst()
|
|
160
|
+
conndir.nlst
|
|
161
|
+
end
|
|
162
|
+
def close()
|
|
163
|
+
FTP::ConnCache.instance.close(@uri)
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
end
|