rio 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING +1 -0
- data/README +11 -9
- data/Rakefile +1 -1
- data/doc/#RIOIS# +216 -0
- data/doc/ANNOUNCE +22 -16
- data/doc/RELEASE_NOTES +14 -7
- data/lib/rio/doc/EXAMPLES.rb +2 -2
- data/lib/rio/doc/INTRO.rb +0 -2
- data/lib/rio/doc/OPTIONAL.rb +1 -1
- data/lib/rio/doc/SYNOPSIS.rb +1 -1
- data/lib/rio/factory.rb +1 -0
- data/lib/rio/ftp/fs.rb +2 -1
- data/lib/rio/ftp/ftpfile.rb +20 -20
- data/lib/rio/if/grande.rb +16 -10
- data/lib/rio/if/test.rb +1 -1
- data/lib/rio/ops/construct.rb +13 -12
- data/lib/rio/ops/dir.rb +2 -1
- data/lib/rio/rl/fs2url.rb +2 -2
- data/lib/rio/rl/path.rb +1 -0
- data/lib/rio/rl/uri.rb +4 -0
- data/lib/rio/rl/withpath.rb +1 -0
- data/lib/rio/scheme/ftp.rb +46 -3
- data/lib/rio/uri/file.rb +16 -6
- data/lib/rio/version.rb +1 -1
- data/test/ftp/anon_copy_data.rb +36 -0
- data/test/ftp/testdef.rb +5 -4
- data/test/http/all.rb +1 -0
- data/test/http/copy-from-http.rb +2 -1
- data/test/http/uri-meta.rb +72 -0
- data/test/lib/temp_server.rb +3 -1
- data/test/runalltests.rb +2 -2
- data/test/runftptests.rb +1 -1
- data/test/runhttp.rb +1 -2
- metadata +5 -312
- data/doc/rdoc/classes/Kernel.html +0 -133
- data/doc/rdoc/classes/Kernel.src/M000233.html +0 -18
- data/doc/rdoc/classes/RIO.html +0 -625
- data/doc/rdoc/classes/RIO.src/M000001.html +0 -18
- data/doc/rdoc/classes/RIO.src/M000002.html +0 -18
- data/doc/rdoc/classes/RIO.src/M000003.html +0 -18
- data/doc/rdoc/classes/RIO/Doc.html +0 -148
- data/doc/rdoc/classes/RIO/Doc/EXAMPLES.html +0 -432
- data/doc/rdoc/classes/RIO/Doc/HOWTO.html +0 -1075
- data/doc/rdoc/classes/RIO/Doc/INDEX.html +0 -368
- data/doc/rdoc/classes/RIO/Doc/INTRO.html +0 -1533
- data/doc/rdoc/classes/RIO/Doc/OPTIONAL.html +0 -221
- data/doc/rdoc/classes/RIO/Doc/SYNOPSIS.html +0 -337
- data/doc/rdoc/classes/RIO/IF.html +0 -165
- data/doc/rdoc/classes/RIO/IF/CSV.html +0 -203
- data/doc/rdoc/classes/RIO/IF/CSV.src/M000116.html +0 -19
- data/doc/rdoc/classes/RIO/IF/CSV.src/M000117.html +0 -16
- data/doc/rdoc/classes/RIO/IF/CSV.src/M000118.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Dir.html +0 -343
- data/doc/rdoc/classes/RIO/IF/Dir.src/M000045.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Dir.src/M000046.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Dir.src/M000047.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Dir.src/M000048.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Dir.src/M000049.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Dir.src/M000050.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Dir.src/M000051.html +0 -16
- data/doc/rdoc/classes/RIO/IF/File.html +0 -223
- data/doc/rdoc/classes/RIO/IF/File.src/M000212.html +0 -16
- data/doc/rdoc/classes/RIO/IF/File.src/M000213.html +0 -16
- data/doc/rdoc/classes/RIO/IF/File.src/M000214.html +0 -16
- data/doc/rdoc/classes/RIO/IF/File.src/M000215.html +0 -16
- data/doc/rdoc/classes/RIO/IF/FileOrDir.html +0 -572
- data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000155.html +0 -16
- data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000156.html +0 -16
- data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000157.html +0 -16
- data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000158.html +0 -16
- data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000159.html +0 -16
- data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000160.html +0 -16
- data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000161.html +0 -16
- data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000162.html +0 -16
- data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000163.html +0 -16
- data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000164.html +0 -16
- data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000165.html +0 -16
- data/doc/rdoc/classes/RIO/IF/FileOrDir.src/M000166.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Grande.html +0 -1349
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000088.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000089.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000090.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000091.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000092.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000093.html +0 -21
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000094.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000095.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000096.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000097.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000098.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000099.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000100.html +0 -21
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000101.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000102.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000103.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000104.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Grande.src/M000105.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeEntry.html +0 -810
- data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000106.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000107.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000108.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000109.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000110.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000111.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000112.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000113.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000114.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeEntry.src/M000115.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.html +0 -1513
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000052.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000053.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000054.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000055.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000056.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000057.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000058.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000059.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000060.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000061.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000062.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000063.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000064.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000065.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000066.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000067.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000068.html +0 -19
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000069.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000070.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000071.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000072.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000073.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000074.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000075.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000076.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000077.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000078.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000079.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000080.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000081.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000082.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000083.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000084.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000085.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000086.html +0 -16
- data/doc/rdoc/classes/RIO/IF/GrandeStream.src/M000087.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.html +0 -999
- data/doc/rdoc/classes/RIO/IF/Path.src/M000180.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000181.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000182.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000183.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000184.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000185.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000186.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000187.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000188.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000189.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000190.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000191.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000192.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000193.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000194.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000195.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000196.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000197.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000198.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000199.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000200.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000201.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000202.html +0 -18
- data/doc/rdoc/classes/RIO/IF/Path.src/M000203.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000204.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000205.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000206.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000207.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000208.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000209.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000210.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Path.src/M000211.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.html +0 -1414
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000004.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000005.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000006.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000007.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000008.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000009.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000010.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000011.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000012.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000013.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000014.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000015.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000016.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000017.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000018.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000019.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000020.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000021.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000022.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000023.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000024.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000025.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000026.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000027.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000028.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000029.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000030.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000031.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000032.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000033.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000034.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000035.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000036.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000037.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000038.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000039.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000040.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000041.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000042.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000043.html +0 -16
- data/doc/rdoc/classes/RIO/IF/RubyIO.src/M000044.html +0 -16
- data/doc/rdoc/classes/RIO/IF/String.html +0 -203
- data/doc/rdoc/classes/RIO/IF/String.src/M000216.html +0 -16
- data/doc/rdoc/classes/RIO/IF/String.src/M000217.html +0 -16
- data/doc/rdoc/classes/RIO/IF/String.src/M000218.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.html +0 -990
- data/doc/rdoc/classes/RIO/IF/Test.src/M000119.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000120.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000121.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000122.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000123.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000124.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000125.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000126.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000127.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000128.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000129.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000130.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000131.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000132.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000133.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000134.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000135.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000136.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000137.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000138.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000139.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000140.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000141.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000142.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000143.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000144.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000145.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000146.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000147.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000148.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000149.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000150.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000151.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000152.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000153.html +0 -16
- data/doc/rdoc/classes/RIO/IF/Test.src/M000154.html +0 -16
- data/doc/rdoc/classes/RIO/IF/YAML.html +0 -517
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000167.html +0 -19
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000168.html +0 -16
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000169.html +0 -16
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000170.html +0 -16
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000171.html +0 -16
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000172.html +0 -16
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000173.html +0 -16
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000174.html +0 -16
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000175.html +0 -16
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000176.html +0 -16
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000177.html +0 -16
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000178.html +0 -16
- data/doc/rdoc/classes/RIO/IF/YAML.src/M000179.html +0 -16
- data/doc/rdoc/classes/RIO/Rio.html +0 -508
- data/doc/rdoc/classes/RIO/Rio.src/M000219.html +0 -18
- data/doc/rdoc/classes/RIO/Rio.src/M000220.html +0 -20
- data/doc/rdoc/classes/RIO/Rio.src/M000221.html +0 -27
- data/doc/rdoc/classes/RIO/Rio.src/M000222.html +0 -16
- data/doc/rdoc/classes/RIO/Rio.src/M000224.html +0 -19
- data/doc/rdoc/classes/RIO/Rio.src/M000225.html +0 -20
- data/doc/rdoc/classes/RIO/Rio.src/M000226.html +0 -16
- data/doc/rdoc/classes/RIO/Rio.src/M000227.html +0 -16
- data/doc/rdoc/classes/RIO/Rio.src/M000228.html +0 -16
- data/doc/rdoc/classes/RIO/Rio.src/M000229.html +0 -16
- data/doc/rdoc/classes/RIO/Rio.src/M000230.html +0 -16
- data/doc/rdoc/classes/RIO/Rio.src/M000231.html +0 -16
- data/doc/rdoc/classes/RIO/Rio.src/M000232.html +0 -16
- data/doc/rdoc/created.rid +0 -1
- data/doc/rdoc/files/README.html +0 -229
- data/doc/rdoc/files/lib/rio/constructor_rb.html +0 -141
- data/doc/rdoc/files/lib/rio/doc/EXAMPLES_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/doc/HOWTO_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/doc/INDEX_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/doc/INTRO_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/doc/OPTIONAL_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/doc/SYNOPSIS_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/if/basic_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/if/csv_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/if/dir_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/if/file_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/if/fileordir_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/if/grande_entry_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/if/grande_rb.html +0 -141
- data/doc/rdoc/files/lib/rio/if/grande_stream_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/if/internal_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/if/path_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/if/rubyio_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/if/string_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/if/temp_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/if/test_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/if/yaml_rb.html +0 -134
- data/doc/rdoc/files/lib/rio/kernel_rb.html +0 -142
- data/doc/rdoc/files/lib/rio_rb.html +0 -153
- data/doc/rdoc/fr_class_index.html +0 -49
- data/doc/rdoc/fr_file_index.html +0 -51
- data/doc/rdoc/fr_method_index.html +0 -259
- data/doc/rdoc/index.html +0 -30
- data/doc/rdoc/rdoc-style.css +0 -428
data/lib/rio/ftp/fs.rb
CHANGED
@@ -79,7 +79,7 @@ module RIO
|
|
79
79
|
wduri.to_s
|
80
80
|
end
|
81
81
|
def remote_path(url)
|
82
|
-
self.remote_root+URI(url).path
|
82
|
+
self.remote_root+RIO::RL.url2fs(URI(url).path)
|
83
83
|
end
|
84
84
|
def chdir(url,&block)
|
85
85
|
if block_given?
|
@@ -119,6 +119,7 @@ module RIO
|
|
119
119
|
|
120
120
|
def get_ftype(url)
|
121
121
|
pth = remote_path(url)
|
122
|
+
#p url,pth
|
122
123
|
ftype = nil
|
123
124
|
begin
|
124
125
|
conn.mdtm(pth)
|
data/lib/rio/ftp/ftpfile.rb
CHANGED
@@ -1,20 +1,20 @@
|
|
1
|
-
|
2
|
-
require 'tempfile'
|
3
|
-
require 'delegate'
|
4
|
-
module RIO
|
5
|
-
module FTP
|
6
|
-
class FTPFile < DelegateClass( ::Tempfile )
|
7
|
-
def initialize(remote_path, netftp)
|
8
|
-
@remote_path = remote_path
|
9
|
-
@netftp = netftp
|
10
|
-
@ftpfile = ::Tempfile.new('ftpfile')
|
11
|
-
super(@ftpfile)
|
12
|
-
end
|
13
|
-
def close()
|
14
|
-
super
|
15
|
-
@netftp.put(path(),@remote_path)
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
1
|
+
|
2
|
+
require 'tempfile'
|
3
|
+
require 'delegate'
|
4
|
+
module RIO
|
5
|
+
module FTP
|
6
|
+
class FTPFile < DelegateClass( ::Tempfile )
|
7
|
+
def initialize(remote_path, netftp)
|
8
|
+
@remote_path = remote_path
|
9
|
+
@netftp = netftp
|
10
|
+
@ftpfile = ::Tempfile.new('ftpfile')
|
11
|
+
super(@ftpfile)
|
12
|
+
end
|
13
|
+
def close()
|
14
|
+
super
|
15
|
+
@netftp.put(path(),@remote_path)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/rio/if/grande.rb
CHANGED
@@ -115,7 +115,8 @@ module RIO
|
|
115
115
|
#
|
116
116
|
# Arguments may consist of strings (treated as globs) or regular expressions.
|
117
117
|
# An empty argument list selects all entries
|
118
|
-
# See ::Dir#glob and ::File::fnmatch? for more in information on _globs_.
|
118
|
+
# See ::Dir#glob and ::File::fnmatch? for more in information on _globs_.
|
119
|
+
# Be warned that using the '**' glob
|
119
120
|
# recurses into directories independently of IF::GrandeEntry#all and using both is unsupported.
|
120
121
|
#
|
121
122
|
# ario = rio('adir')
|
@@ -143,7 +144,8 @@ module RIO
|
|
143
144
|
# IF::GrandeStream#records, and IF::GrandeStream#rows
|
144
145
|
#
|
145
146
|
# Using IF::GrandeStream#lines and related methods with a Rio referencing a directory
|
146
|
-
# imples IF::GrandeEntry#files and will cause an array of the lines or bytes in the
|
147
|
+
# imples IF::GrandeEntry#files and will cause an array of the lines or bytes in the
|
148
|
+
# files to be returned. As above,
|
147
149
|
# the arguments to the subscript operator will be applied to the closest.
|
148
150
|
# rio('adir').lines[] # array of all lines in the files in 'adir'
|
149
151
|
# rio('adir').files.lines[] # same thing
|
@@ -219,7 +221,8 @@ module RIO
|
|
219
221
|
# IF::Grande#each
|
220
222
|
#
|
221
223
|
# For Rios that refer to files, the item passed to the block is a String containing
|
222
|
-
# the line or block as selected by IF::GrandeStream#lines, or IF::GrandeStream#bytes.
|
224
|
+
# the line or block as selected by IF::GrandeStream#lines, or IF::GrandeStream#bytes.
|
225
|
+
# +lines+ is the default.
|
223
226
|
# rio('afile').lines.each { |line| ...}
|
224
227
|
#
|
225
228
|
# The block passed to +each+ will also accept an optional second parameter which will contain
|
@@ -380,7 +383,7 @@ module RIO
|
|
380
383
|
# rio('src.txt.gz').gzip > rio('dst.txt')
|
381
384
|
#
|
382
385
|
# Copying to an array
|
383
|
-
# rio('afile') > ary # each line of the file becomes
|
386
|
+
# rio('afile') > ary # each line of the file becomes an element of the ary
|
384
387
|
# rio('afile').chomp > ary # same thing with lines chomped
|
385
388
|
# rio('afile.gz').gzip.chomp > ary # same thing from a gzipped file
|
386
389
|
#
|
@@ -406,7 +409,7 @@ module RIO
|
|
406
409
|
#
|
407
410
|
# Copy the first and 8th through 10th columns of the first ten rows of a gzipped csv
|
408
411
|
# file on a web site into a local gzipped csv file that uses semi-colons as separators
|
409
|
-
# rio('http://
|
412
|
+
# rio('http://host/file.csv.gz').columns(0,7..9).gzip.csv[0..9] > rio('localfile.csv.gz').csv(';').gzip
|
410
413
|
#
|
411
414
|
# See also IF::Grande#>>, IF::Grande#|
|
412
415
|
#
|
@@ -521,10 +524,13 @@ module RIO
|
|
521
524
|
# That is to say, it iterates through its argument, calling the copy-from operator
|
522
525
|
# again for each element. While it is not implemented like this, and the above code would
|
523
526
|
# not give the same results, This generalized description is convenient.
|
527
|
+
#
|
524
528
|
# For example the code:
|
525
|
-
#
|
526
|
-
#
|
527
|
-
#
|
529
|
+
#
|
530
|
+
# destination < source
|
531
|
+
# # is like
|
532
|
+
# source.each { |element| destination << element }
|
533
|
+
#
|
528
534
|
# for any of the following definitions of src and dst
|
529
535
|
# * copying files
|
530
536
|
# src = rio('afile')
|
@@ -679,11 +685,11 @@ module RIO
|
|
679
685
|
# which will put the parts back together again.
|
680
686
|
#
|
681
687
|
# ary = rio('a/b/c').split #=> [rio('a'),rio('b'),rio('c')]
|
682
|
-
# ary.to_rio
|
688
|
+
# ary.to_rio #=> rio('a/b/c')
|
683
689
|
#
|
684
690
|
# ary = rio('a/b/c').split #=> [rio('a'),rio('b'),rio('c')]
|
685
691
|
# ary[1] = rio('d')
|
686
|
-
# ary.to_rio
|
692
|
+
# ary.to_rio #=> rio('a/d/c')
|
687
693
|
#
|
688
694
|
# See also IF::Path#join, IF::Path#/, IF::Path#splitpath
|
689
695
|
#
|
data/lib/rio/if/test.rb
CHANGED
@@ -236,7 +236,7 @@ module RIO
|
|
236
236
|
def zero?(*args) target.zero?(*args) end
|
237
237
|
|
238
238
|
|
239
|
-
# Returns true if the rio represents
|
239
|
+
# Returns true if the rio represents an absolute path or URI. Alias for IF::Test#absolute?
|
240
240
|
#
|
241
241
|
# rio('/tmp').abs? # >> true
|
242
242
|
# rio('.ssh').abs? # >> false
|
data/lib/rio/ops/construct.rb
CHANGED
@@ -35,18 +35,19 @@
|
|
35
35
|
|
36
36
|
module RIO
|
37
37
|
CONSTRUCTOR_SYMS = [
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
38
|
+
:strio,
|
39
|
+
:stdio,
|
40
|
+
:stderr,
|
41
|
+
:temp,
|
42
|
+
:tempfile,
|
43
|
+
:tempdir,
|
44
|
+
:tcp,
|
45
|
+
:cmdio,
|
46
|
+
:cmdpipe,
|
47
|
+
:sysio,
|
48
|
+
:fd,
|
49
|
+
:ftp,
|
50
|
+
]
|
50
51
|
end
|
51
52
|
|
52
53
|
module RIO
|
data/lib/rio/ops/dir.rb
CHANGED
@@ -230,7 +230,7 @@ module RIO
|
|
230
230
|
self.skipentries(*args)
|
231
231
|
end
|
232
232
|
def ent_to_rio_(ent,indir)
|
233
|
-
#p "ent_to_rio:
|
233
|
+
#p "ent_to_rio: ent=#{ent.inspect} indir=#{indir}"
|
234
234
|
if ent.kind_of?(RIO::Rio)
|
235
235
|
oldpath = ent.to_s
|
236
236
|
ent.rl.urlpath = indir.to_s
|
@@ -238,6 +238,7 @@ module RIO
|
|
238
238
|
ent.cx = self.cx.bequeath(ent.cx)
|
239
239
|
ent
|
240
240
|
else
|
241
|
+
# KIT: should this be RL.fs2url(ent) ???
|
241
242
|
if indir
|
242
243
|
new_rio_cx(indir.rl,ent)
|
243
244
|
else
|
data/lib/rio/rl/fs2url.rb
CHANGED
@@ -52,9 +52,9 @@ module RIO
|
|
52
52
|
def fs2urls(*args)
|
53
53
|
args.map{ |pth| fs2url(pth) }
|
54
54
|
end
|
55
|
-
def fs2url(pth)
|
55
|
+
def fs2url(pth, esc=ESCAPE)
|
56
56
|
#pth.sub!(/^[a-zA-Z]:/,'')
|
57
|
-
pth = URI.escape(pth,
|
57
|
+
pth = URI.escape(pth,esc)
|
58
58
|
pth = '/' + pth if pth =~ /^[a-zA-Z]:/
|
59
59
|
pth
|
60
60
|
# (Local::SEPARATOR == '/' ? pth : pth.gsub(Local::SEPARATOR,%r|/|))
|
data/lib/rio/rl/path.rb
CHANGED
data/lib/rio/rl/uri.rb
CHANGED
@@ -75,14 +75,18 @@ module RIO
|
|
75
75
|
else
|
76
76
|
raise(ArgumentError,"'#{arg0}'[#{arg0.class}] can not be used to create a Rio")
|
77
77
|
end
|
78
|
+
#puts "uri.rb arg0_info_: vuri=#{vuri}"
|
78
79
|
[vuri,vbase,vfs]
|
79
80
|
end
|
80
81
|
def init_from_args_(arg0,*args)
|
81
82
|
#p "init_from_args_(#{arg0.inspect})"
|
82
83
|
#p callstr('init_from_args_',arg0.inspect,args)
|
83
84
|
vuri,vbase,vfs = self.arg0_info_(arg0,*args)
|
85
|
+
#p vuri,vbase
|
84
86
|
#p vuri
|
85
87
|
@uri = vuri
|
88
|
+
#p 'HERE'
|
89
|
+
#p vuri
|
86
90
|
#p args unless args.nil? || args.empty?
|
87
91
|
self.join(*args)
|
88
92
|
@base = vbase unless @base or vbase.nil?
|
data/lib/rio/rl/withpath.rb
CHANGED
data/lib/rio/scheme/ftp.rb
CHANGED
@@ -49,13 +49,56 @@ module RIO
|
|
49
49
|
require 'rio/rl/uri'
|
50
50
|
|
51
51
|
class RL < RIO::RL::URIBase
|
52
|
-
def initialize(
|
53
|
-
|
52
|
+
def initialize(arg0,*args)
|
53
|
+
#p callstr('initialize',arg0,*args)
|
54
|
+
super(*_sup_args(arg0,*args))
|
54
55
|
@ftype = nil
|
55
56
|
@names = nil
|
56
57
|
end
|
57
|
-
def
|
58
|
+
def _sup_args(arg0,*args)
|
59
|
+
if arg0 == 'ftp:'
|
60
|
+
hn = args.shift || 'localhost'
|
61
|
+
us = args.shift
|
62
|
+
pw = args.shift
|
63
|
+
pt = args.shift || ''
|
64
|
+
ph = args.shift || '/'
|
65
|
+
tc = args.shift || ''
|
66
|
+
u = URI::FTP.new2(us,pw,hn,pt,ph,tc)
|
67
|
+
return [u]
|
68
|
+
else
|
69
|
+
return [arg0] + args
|
70
|
+
end
|
71
|
+
end
|
72
|
+
# def arg0_info_(arg0,*args)
|
73
|
+
# #p "arg0_info_(#{arg0.inspect},#{args.inspect})"
|
74
|
+
# vuri,vbase,vfs = nil,nil,nil
|
75
|
+
# case arg0
|
76
|
+
# when RIO::Rio
|
77
|
+
# return _init_from_arg(arg0.rl)
|
78
|
+
# when RIO::RL::URIBase,RIO::FTP::RL
|
79
|
+
# vuri,vbase,vfs = arg0.uri,arg0.base,arg0.fs
|
80
|
+
# when ::URI
|
81
|
+
# vuri = arg0
|
82
|
+
# when ::String
|
83
|
+
# vuri = uri_from_string_(arg0) || ::URI.parse(arg0)
|
84
|
+
# else
|
85
|
+
# raise(ArgumentError,"'#{arg0}'[#{arg0.class}] can not be used to create a Rio")
|
86
|
+
# end
|
87
|
+
# [vuri,vbase,vfs]
|
88
|
+
# end
|
89
|
+
# def build_arg0_(path_str)
|
90
|
+
# path_str
|
91
|
+
# end
|
92
|
+
def join(*args)
|
93
|
+
return self if args.empty?
|
94
|
+
join_(args.map{ |arg| RIO::RL.fs2url(arg.to_s)})
|
95
|
+
end
|
96
|
+
|
97
|
+
|
98
|
+
def self.splitrl(s)
|
99
|
+
#p "splitrl(#{s})"
|
58
100
|
sub,opq,whole = split_riorl(s)
|
101
|
+
#p sub,opq,whole
|
59
102
|
[whole]
|
60
103
|
end
|
61
104
|
def openfs_
|
data/lib/rio/uri/file.rb
CHANGED
@@ -87,14 +87,24 @@ RFC 1738 Uniform Resource Locators (URL) December 1994
|
|
87
87
|
module REGEXP
|
88
88
|
module PATTERN
|
89
89
|
DRIVE_SPEC = "[A-Za-z]:"
|
90
|
-
|
90
|
+
FILE_ESCAPED = ESCAPED
|
91
|
+
FILE_UNRESERVED = "-_.!~*'()#{ALNUM}"
|
92
|
+
FILE_PCHAR = "(?:[#{FILE_UNRESERVED}:@?&=+$,]|#{FILE_ESCAPED})"
|
93
|
+
FILE_SEGMENT = "#{FILE_PCHAR}*(?:;#{PARAM})*"
|
94
|
+
FILE_PATH_SEGMENTS = "#{FILE_SEGMENT}(?:/#{FILE_SEGMENT})*"
|
95
|
+
FILE_ABS_PATH = "(?:/#{DRIVE_SPEC})?/#{FILE_PATH_SEGMENTS}"
|
96
|
+
|
97
|
+
FILE_REL_SEGMENT = "(?:[#{FILE_UNRESERVED};@?&=+$,]|#{FILE_ESCAPED})+"
|
98
|
+
FILE_REL_PATH = "#{FILE_REL_SEGMENT}(?:#{FILE_ABS_PATH})?"
|
99
|
+
|
100
|
+
#FILE_ABS_PATH = "(?:/#{DRIVE_SPEC})?/#{FILE_PATH_SEGMENTS}(?:\\?#{QUERY})?"
|
91
101
|
end
|
92
102
|
EMPTYHOST = Regexp.new("^$", false, 'N').freeze #"
|
93
|
-
|
103
|
+
FILE_ABS_PATH = Regexp.new("^#{PATTERN::FILE_ABS_PATH}$", false, 'N').freeze
|
94
104
|
end # module REGEXP
|
95
105
|
|
96
106
|
class FILE < Generic
|
97
|
-
#
|
107
|
+
#FILE_ABS_PATH = REGEXP::FILE_ABS_PATH
|
98
108
|
COMPONENT = [
|
99
109
|
:scheme,
|
100
110
|
:host,
|
@@ -111,18 +121,19 @@ RFC 1738 Uniform Resource Locators (URL) December 1994
|
|
111
121
|
# raise if both hier and opaque are not nil, because:
|
112
122
|
# absoluteURI = scheme ":" ( hier_part | opaque_part )
|
113
123
|
# hier_part = ( net_path | abs_path ) [ "?" query ]
|
124
|
+
#p "URI::FILE self=#{self} v=#{v}"
|
114
125
|
if v && @opaque
|
115
126
|
raise InvalidURIError,
|
116
127
|
"path conflicts with opaque"
|
117
128
|
end
|
118
129
|
|
119
130
|
if @scheme
|
120
|
-
if v && v != '' &&
|
131
|
+
if v && v != '' && FILE_ABS_PATH !~ v
|
121
132
|
raise InvalidComponentError,
|
122
133
|
"bad component(expected absolute path component): #{v}"
|
123
134
|
end
|
124
135
|
else
|
125
|
-
if v && v != '' &&
|
136
|
+
if v && v != '' && FILE_ABS_PATH !~ v && FILE_REL_PATH !~ v
|
126
137
|
raise InvalidComponentError,
|
127
138
|
"bad component(expected relative path component): #{v}"
|
128
139
|
end
|
@@ -133,7 +144,6 @@ RFC 1738 Uniform Resource Locators (URL) December 1994
|
|
133
144
|
private :check_path
|
134
145
|
|
135
146
|
def path=(v)
|
136
|
-
#p "self=#{self} v=#{v}"
|
137
147
|
check_path(v)
|
138
148
|
set_path(v)
|
139
149
|
v
|
data/lib/rio/version.rb
CHANGED
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/usr/local/bin/ruby
|
2
|
+
if $0 == __FILE__
|
3
|
+
Dir.chdir File.dirname(__FILE__)+'/../'
|
4
|
+
$:.unshift File.expand_path('../lib/')
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'rio'
|
8
|
+
require 'tc/testcase'
|
9
|
+
require 'open-uri'
|
10
|
+
require 'ftp/testdef'
|
11
|
+
|
12
|
+
class TC_ftp_copy_data < Test::RIO::TestCase
|
13
|
+
@@once = false
|
14
|
+
include Test::RIO::FTP::Const
|
15
|
+
|
16
|
+
def self.once
|
17
|
+
@@once = true
|
18
|
+
end
|
19
|
+
def setup
|
20
|
+
super
|
21
|
+
self.class.once unless @@once
|
22
|
+
FS_RWROOT.entries { |ent| ent.delete! }
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_copy_string
|
26
|
+
exp = "a string\n"
|
27
|
+
ario = rio(FTP_RWROOT,'file0') < exp
|
28
|
+
assert_equal(exp,ario.contents)
|
29
|
+
end
|
30
|
+
def test_copy_array
|
31
|
+
exp = (0..1).map{|n| "Line #{n}\n"}
|
32
|
+
ario = rio(FTP_RWROOT,'file0') < exp
|
33
|
+
assert_equal(exp,ario[])
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
data/test/ftp/testdef.rb
CHANGED
@@ -6,10 +6,11 @@ module Test
|
|
6
6
|
module Const
|
7
7
|
FTPUSER = 'ftp'
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
FSROOT = rio("../../srv/ftp")
|
12
|
-
FTPHOST = '192.168.1.101'
|
9
|
+
DRV = $mswin32 ? 'x:' : ''
|
10
|
+
FSROOT = rio("#{DRV}/srv/ftp")
|
11
|
+
#FSROOT = rio("../../srv/ftp")
|
12
|
+
#FTPHOST = '192.168.1.101'
|
13
|
+
FTPHOST = 'riotest.hopto.org'
|
13
14
|
#FTPHOST = 'localhost'
|
14
15
|
FTPROOT = rio("ftp://#{FTPHOST}/")
|
15
16
|
|
data/test/http/all.rb
CHANGED
data/test/http/copy-from-http.rb
CHANGED
@@ -46,9 +46,9 @@ class TC_copy_from_http < Test::RIO::TestCase
|
|
46
46
|
ario = rio('out.txt').delete! < rio(GZURL).gzip
|
47
47
|
ans = rio(ario).contents
|
48
48
|
exp = rio(GZFILE).gzip.contents
|
49
|
-
|
50
49
|
assert_equal(exp,ans)
|
51
50
|
end
|
51
|
+
|
52
52
|
def test_uri_rio_to_file
|
53
53
|
ario = rio('outf').delete!.touch
|
54
54
|
url = HWURL
|
@@ -58,6 +58,7 @@ class TC_copy_from_http < Test::RIO::TestCase
|
|
58
58
|
assert_equal(exp,ario.contents)
|
59
59
|
assert_equal(rio(HWFILE).contents,rio('outf').contents)
|
60
60
|
end
|
61
|
+
|
61
62
|
def test_uri_rio_to_file2
|
62
63
|
ario = rio('outf2').delete!.touch
|
63
64
|
url = HWURL
|