rio 0.3.8 → 0.3.9
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/README +18 -12
- data/Rakefile +57 -87
- data/build_doc.rb +19 -17
- data/doc/ANNOUNCE +3 -32
- data/doc/RELEASE_NOTES +4 -5
- data/doc/RIOIS +215 -0
- data/doc/generators/template/html/rio.css +428 -0
- data/doc/generators/template/html/rio.rb +18 -389
- data/doc/generators/template/html/ugly.rb +130 -0
- data/doc/pkg_def.rb +66 -0
- data/ex/catcsv.rb +64 -0
- data/ex/colx.rb +8 -0
- data/ex/findinruby +15 -0
- data/ex/findruby +14 -0
- data/ex/passwd_report.rb +8 -0
- data/ex/prompt.rb +25 -0
- data/ex/rgb.txt.gz +0 -0
- data/ex/riocat +42 -0
- data/ex/riogunzip +31 -0
- data/ex/riogzip +24 -0
- data/ex/rioprompt.rb +10 -0
- data/ex/targz2zip +17 -0
- data/ex/tonl +10 -0
- data/lib/rio.rb +16 -10
- data/lib/rio/abstract_method.rb +3 -4
- data/lib/rio/argv.rb +3 -4
- data/lib/rio/arycopy.rb +3 -4
- data/lib/rio/assert.rb +3 -4
- data/lib/rio/base.rb +3 -4
- data/lib/rio/callstr.rb +3 -4
- data/lib/rio/const.rb +3 -4
- data/lib/rio/construct.rb +3 -4
- data/lib/rio/constructor.rb +12 -8
- data/lib/rio/context.rb +15 -30
- data/lib/rio/context/autoclose.rb +3 -4
- data/lib/rio/context/copying.rb +3 -4
- data/lib/rio/context/cxx.rb +3 -4
- data/lib/rio/context/dir.rb +3 -4
- data/lib/rio/context/gzip.rb +3 -4
- data/lib/rio/context/methods.rb +16 -5
- data/lib/rio/context/skip.rb +3 -4
- data/lib/rio/context/stream.rb +42 -5
- data/lib/rio/cp.rb +7 -7
- data/lib/rio/def.rb +3 -4
- data/lib/rio/dir.rb +3 -4
- data/lib/rio/doc.rb +4 -5
- data/lib/rio/doc/EXAMPLES.rb +299 -0
- data/lib/rio/doc/HOWTO.rb +3 -4
- data/lib/rio/doc/INTRO.rb +86 -105
- data/lib/rio/doc/OPTIONAL.rb +4 -5
- data/lib/rio/doc/SYNOPSIS.rb +7 -6
- data/lib/rio/entrysel.rb +21 -23
- data/lib/rio/exception.rb +3 -4
- data/lib/rio/exception/copy.rb +3 -4
- data/lib/rio/exception/notimplemented.rb +57 -0
- data/lib/rio/exception/notsupported.rb +3 -4
- data/lib/rio/exception/open.rb +3 -4
- data/lib/rio/exception/state.rb +3 -4
- data/lib/rio/ext.rb +47 -13
- data/lib/rio/ext/csv.rb +4 -5
- data/lib/rio/ext/if.rb +45 -0
- data/lib/rio/ext/mp3info.rb +80 -0
- data/lib/rio/ext/splitlines.rb +253 -0
- data/lib/rio/ext/yaml.rb +9 -5
- data/lib/rio/ext/yaml/doc.rb +133 -0
- data/lib/rio/ext/yaml/tie.rb +149 -0
- data/lib/rio/ext/zipfile.rb +23 -4
- data/lib/rio/ext/zipfile/fs.rb +116 -0
- data/lib/rio/ext/zipfile/rl.rb +251 -0
- data/lib/rio/ext/zipfile/rootdir.rb +117 -0
- data/lib/rio/ext/zipfile/state.rb +161 -0
- data/lib/rio/ext/zipfile/wrap.rb +204 -0
- data/lib/rio/factory.rb +235 -27
- data/lib/rio/file.rb +4 -4
- data/lib/rio/filter.rb +3 -4
- data/lib/rio/filter/closeoneof.rb +3 -4
- data/lib/rio/filter/gzip.rb +9 -4
- data/lib/rio/fs/base.rb +3 -4
- data/lib/rio/fs/impl.rb +4 -5
- data/lib/rio/fs/native.rb +3 -4
- data/lib/rio/fs/stream.rb +3 -4
- data/lib/rio/fs/url.rb +3 -4
- data/lib/rio/ftp/conncache.rb +19 -5
- data/lib/rio/ftp/dir.rb +3 -4
- data/lib/rio/ftp/fs.rb +30 -24
- data/lib/rio/grande.rb +27 -7
- data/lib/rio/handle.rb +3 -4
- data/lib/rio/if.rb +19 -15
- data/lib/rio/if/basic.rb +7 -7
- data/lib/rio/if/csv.rb +5 -6
- data/lib/rio/if/dir.rb +120 -114
- data/lib/rio/if/file.rb +52 -44
- data/lib/rio/if/fileordir.rb +217 -211
- data/lib/rio/if/grande.rb +674 -644
- data/lib/rio/if/grande_entry.rb +321 -313
- data/lib/rio/if/grande_stream.rb +653 -553
- data/lib/rio/if/internal.rb +3 -4
- data/lib/rio/if/path.rb +425 -426
- data/lib/rio/if/rubyio.rb +681 -0
- data/lib/rio/if/string.rb +42 -5
- data/lib/rio/if/temp.rb +3 -4
- data/lib/rio/if/test.rb +245 -238
- data/lib/rio/if/yaml.rb +15 -41
- data/lib/rio/ioh.rb +7 -5
- data/lib/rio/iomode.rb +19 -7
- data/lib/rio/ios/fail.rb +4 -5
- data/lib/rio/ios/generic.rb +4 -5
- data/lib/rio/ios/mode.rb +4 -5
- data/lib/rio/ios/null.rb +6 -7
- data/lib/rio/iowrap.rb +3 -4
- data/lib/rio/kernel.rb +3 -5
- data/lib/rio/local.rb +3 -4
- data/lib/rio/match.rb +3 -4
- data/lib/rio/matchrecord.rb +3 -4
- data/lib/rio/no_warn.rb +3 -4
- data/lib/rio/nullio.rb +3 -4
- data/lib/rio/open3.rb +4 -5
- data/lib/rio/ops/construct.rb +3 -4
- data/lib/rio/ops/create.rb +11 -6
- data/lib/rio/ops/dir.rb +19 -8
- data/lib/rio/ops/either.rb +6 -5
- data/lib/rio/ops/file.rb +3 -4
- data/lib/rio/ops/path.rb +14 -35
- data/lib/rio/ops/stream.rb +3 -4
- data/lib/rio/ops/stream/input.rb +4 -7
- data/lib/rio/ops/stream/output.rb +3 -4
- data/lib/rio/ops/stream/read.rb +6 -5
- data/lib/rio/ops/stream/write.rb +3 -4
- data/lib/rio/ops/symlink.rb +3 -4
- data/lib/rio/path.rb +22 -18
- data/lib/rio/path/reset.rb +4 -5
- data/lib/rio/piper.rb +3 -4
- data/lib/rio/piper/cp.rb +3 -4
- data/lib/rio/prompt.rb +10 -5
- data/lib/rio/rectype.rb +5 -5
- data/lib/rio/rl/base.rb +17 -71
- data/lib/rio/rl/builder.rb +14 -38
- data/lib/rio/rl/chmap.rb +66 -0
- data/lib/rio/rl/fs2url.rb +82 -0
- data/lib/rio/rl/ioi.rb +4 -4
- data/lib/rio/rl/path.rb +44 -122
- data/lib/rio/rl/pathmethods.rb +19 -8
- data/lib/rio/rl/uri.rb +137 -60
- data/lib/rio/rl/withpath.rb +295 -0
- data/lib/rio/scheme/aryio.rb +3 -4
- data/lib/rio/scheme/cmdio.rb +3 -4
- data/lib/rio/scheme/cmdpipe.rb +4 -4
- data/lib/rio/scheme/fd.rb +3 -4
- data/lib/rio/scheme/ftp.rb +7 -7
- data/lib/rio/scheme/http.rb +4 -5
- data/lib/rio/scheme/null.rb +3 -4
- data/lib/rio/scheme/path.rb +3 -4
- data/lib/rio/scheme/stderr.rb +3 -4
- data/lib/rio/scheme/stdio.rb +3 -4
- data/lib/rio/scheme/strio.rb +3 -4
- data/lib/rio/scheme/sysio.rb +3 -4
- data/lib/rio/scheme/tcp.rb +3 -4
- data/lib/rio/scheme/temp.rb +6 -6
- data/lib/rio/state.rb +18 -46
- data/lib/rio/state/error.rb +3 -4
- data/lib/rio/stream.rb +4 -4
- data/lib/rio/stream/base.rb +3 -4
- data/lib/rio/stream/duplex.rb +3 -4
- data/lib/rio/stream/open.rb +3 -8
- data/lib/rio/symantics.rb +3 -4
- data/lib/rio/tempdir.rb +2 -2
- data/lib/rio/to_rio.rb +3 -4
- data/lib/rio/to_rio/all.rb +3 -4
- data/lib/rio/to_rio/array.rb +4 -5
- data/lib/rio/to_rio/io.rb +4 -5
- data/lib/rio/to_rio/object.rb +4 -5
- data/lib/rio/to_rio/string.rb +4 -5
- data/lib/rio/uri/file.rb +41 -5
- data/lib/rio/util.rb +3 -4
- data/lib/rio/version.rb +4 -5
- data/setup.rb +368 -339
- data/test/bin/list_dir.rb +1 -1
- data/test/ftp/anon_misc.rb +13 -1
- data/test/ftp/anon_special.rb +6 -6
- data/test/ftp/anon_write.rb +10 -3
- data/test/ftp/ftp2ftp.rb +2 -2
- data/test/ftp/testdef.rb +9 -6
- data/test/http/all.rb +3 -0
- data/test/http/copy-from-http.rb +140 -0
- data/test/lib/temp_server.rb +44 -0
- data/test/runalltests.rb +3 -1
- data/test/runhttp.rb +12 -0
- data/test/runhttptests.rb +1 -1
- data/test/runtests.rb +41 -3
- data/test/tc/abs.rb +9 -5
- data/test/tc/all.rb +9 -4
- data/test/tc/base.rb +1 -1
- data/test/tc/base2.rb +87 -0
- data/test/tc/{methods.rb → clone.rb} +72 -50
- data/test/tc/closeoncopy.rb +13 -2
- data/test/tc/copy-dir-samevar.rb +91 -0
- data/test/tc/dir_iter.rb +0 -1
- data/test/tc/empty.rb +6 -2
- data/test/tc/expand_path.rb +36 -54
- data/test/tc/ext.rb +42 -18
- data/test/tc/gzip.rb +30 -3
- data/test/tc/likeio.rb +5 -1
- data/test/tc/line_record_row.rb +51 -0
- data/test/tc/noqae.rb +71 -70
- data/test/tc/path_parts.rb +175 -0
- data/test/tc/programs_util.rb +3 -3
- data/test/tc/rename.rb +4 -5
- data/test/tc/riorl.rb +9 -7
- data/test/tc/skip.rb +35 -6
- data/test/tc/skiplines.rb +34 -5
- data/test/tc/split.rb +8 -50
- data/test/tc/splitlines.rb +65 -0
- data/test/tc/splitpath.rb +83 -0
- data/test/tc/testcase.rb +1 -1
- data/test/tc/truncate.rb +39 -0
- data/test/tc/yaml.rb +9 -8
- metadata +261 -207
- data/ChangeLog +0 -1418
- data/VERSION +0 -1
- data/lib/rio/doc/MISC.rb +0 -259
- data/lib/rio/if/stream.rb +0 -680
- data/lib/rio/impl/path.rb +0 -87
- data/test/tc/copy-from-http.rb +0 -89
data/lib/rio/state/error.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#--
|
|
2
2
|
# ===============================================================================
|
|
3
|
-
# Copyright (c) 2005,
|
|
3
|
+
# Copyright (c) 2005,2006,2007 Christopher Kleckner
|
|
4
4
|
# All rights reserved
|
|
5
5
|
#
|
|
6
6
|
# This file is part of the Rio library for ruby.
|
|
@@ -23,16 +23,15 @@
|
|
|
23
23
|
#
|
|
24
24
|
# To create the documentation for Rio run the command
|
|
25
25
|
# ruby build_doc.rb
|
|
26
|
-
# from the distribution directory.
|
|
26
|
+
# from the distribution directory.
|
|
27
27
|
#
|
|
28
28
|
# Suggested Reading
|
|
29
29
|
# * RIO::Doc::SYNOPSIS
|
|
30
30
|
# * RIO::Doc::INTRO
|
|
31
31
|
# * RIO::Doc::HOWTO
|
|
32
|
+
# * RIO::Doc::EXAMPLES
|
|
32
33
|
# * RIO::Rio
|
|
33
34
|
#
|
|
34
|
-
# <b>Rio is pre-alpha software.
|
|
35
|
-
# The documented interface and behavior is subject to change without notice.</b>
|
|
36
35
|
|
|
37
36
|
|
|
38
37
|
require 'rio/exception/state'
|
data/lib/rio/stream.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#--
|
|
2
2
|
# ===============================================================================
|
|
3
|
-
# Copyright (c) 2005,
|
|
3
|
+
# Copyright (c) 2005,2006,2007 Christopher Kleckner
|
|
4
4
|
# All rights reserved
|
|
5
5
|
#
|
|
6
6
|
# This file is part of the Rio library for ruby.
|
|
@@ -23,16 +23,15 @@
|
|
|
23
23
|
#
|
|
24
24
|
# To create the documentation for Rio run the command
|
|
25
25
|
# ruby build_doc.rb
|
|
26
|
-
# from the distribution directory.
|
|
26
|
+
# from the distribution directory.
|
|
27
27
|
#
|
|
28
28
|
# Suggested Reading
|
|
29
29
|
# * RIO::Doc::SYNOPSIS
|
|
30
30
|
# * RIO::Doc::INTRO
|
|
31
31
|
# * RIO::Doc::HOWTO
|
|
32
|
+
# * RIO::Doc::EXAMPLES
|
|
32
33
|
# * RIO::Rio
|
|
33
34
|
#
|
|
34
|
-
# <b>Rio is pre-alpha software.
|
|
35
|
-
# The documented interface and behavior is subject to change without notice.</b>
|
|
36
35
|
|
|
37
36
|
|
|
38
37
|
require 'rio/stream/base'
|
|
@@ -111,6 +110,7 @@ module RIO
|
|
|
111
110
|
include Ini
|
|
112
111
|
include Filters
|
|
113
112
|
|
|
113
|
+
|
|
114
114
|
def add_extensions()
|
|
115
115
|
#p callstr('add_extensions')
|
|
116
116
|
Ext::Input.add_extensions(self)
|
data/lib/rio/stream/base.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#--
|
|
2
2
|
# ===============================================================================
|
|
3
|
-
# Copyright (c) 2005,
|
|
3
|
+
# Copyright (c) 2005,2006,2007 Christopher Kleckner
|
|
4
4
|
# All rights reserved
|
|
5
5
|
#
|
|
6
6
|
# This file is part of the Rio library for ruby.
|
|
@@ -23,16 +23,15 @@
|
|
|
23
23
|
#
|
|
24
24
|
# To create the documentation for Rio run the command
|
|
25
25
|
# ruby build_doc.rb
|
|
26
|
-
# from the distribution directory.
|
|
26
|
+
# from the distribution directory.
|
|
27
27
|
#
|
|
28
28
|
# Suggested Reading
|
|
29
29
|
# * RIO::Doc::SYNOPSIS
|
|
30
30
|
# * RIO::Doc::INTRO
|
|
31
31
|
# * RIO::Doc::HOWTO
|
|
32
|
+
# * RIO::Doc::EXAMPLES
|
|
32
33
|
# * RIO::Rio
|
|
33
34
|
#
|
|
34
|
-
# <b>Rio is pre-alpha software.
|
|
35
|
-
# The documented interface and behavior is subject to change without notice.</b>
|
|
36
35
|
|
|
37
36
|
|
|
38
37
|
require 'rio/state'
|
data/lib/rio/stream/duplex.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#--
|
|
2
2
|
# ===============================================================================
|
|
3
|
-
# Copyright (c) 2005,
|
|
3
|
+
# Copyright (c) 2005,2006,2007 Christopher Kleckner
|
|
4
4
|
# All rights reserved
|
|
5
5
|
#
|
|
6
6
|
# This file is part of the Rio library for ruby.
|
|
@@ -23,16 +23,15 @@
|
|
|
23
23
|
#
|
|
24
24
|
# To create the documentation for Rio run the command
|
|
25
25
|
# ruby build_doc.rb
|
|
26
|
-
# from the distribution directory.
|
|
26
|
+
# from the distribution directory.
|
|
27
27
|
#
|
|
28
28
|
# Suggested Reading
|
|
29
29
|
# * RIO::Doc::SYNOPSIS
|
|
30
30
|
# * RIO::Doc::INTRO
|
|
31
31
|
# * RIO::Doc::HOWTO
|
|
32
|
+
# * RIO::Doc::EXAMPLES
|
|
32
33
|
# * RIO::Rio
|
|
33
34
|
#
|
|
34
|
-
# <b>Rio is pre-alpha software.
|
|
35
|
-
# The documented interface and behavior is subject to change without notice.</b>
|
|
36
35
|
|
|
37
36
|
|
|
38
37
|
require 'rio/stream'
|
data/lib/rio/stream/open.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#--
|
|
2
2
|
# ===============================================================================
|
|
3
|
-
# Copyright (c) 2005,
|
|
3
|
+
# Copyright (c) 2005,2006,2007 Christopher Kleckner
|
|
4
4
|
# All rights reserved
|
|
5
5
|
#
|
|
6
6
|
# This file is part of the Rio library for ruby.
|
|
@@ -23,16 +23,15 @@
|
|
|
23
23
|
#
|
|
24
24
|
# To create the documentation for Rio run the command
|
|
25
25
|
# ruby build_doc.rb
|
|
26
|
-
# from the distribution directory.
|
|
26
|
+
# from the distribution directory.
|
|
27
27
|
#
|
|
28
28
|
# Suggested Reading
|
|
29
29
|
# * RIO::Doc::SYNOPSIS
|
|
30
30
|
# * RIO::Doc::INTRO
|
|
31
31
|
# * RIO::Doc::HOWTO
|
|
32
|
+
# * RIO::Doc::EXAMPLES
|
|
32
33
|
# * RIO::Rio
|
|
33
34
|
#
|
|
34
|
-
# <b>Rio is pre-alpha software.
|
|
35
|
-
# The documented interface and behavior is subject to change without notice.</b>
|
|
36
35
|
|
|
37
36
|
|
|
38
37
|
require 'rio/ioh'
|
|
@@ -115,10 +114,6 @@ module RIO
|
|
|
115
114
|
cx['retrystate'] = cl
|
|
116
115
|
|
|
117
116
|
become(cl).add_rec_methods.add_extensions.add_filters.setup
|
|
118
|
-
#become(cl).add_rec_methods.add_filters.add_extensions.setup
|
|
119
|
-
#become(cl).add_extensions.add_rec_methods.add_filters.setup
|
|
120
|
-
#next_state.extend(Ops::Symlink::Existing) if symlink?
|
|
121
|
-
#next_state
|
|
122
117
|
end
|
|
123
118
|
def output() stream_state('Stream::Output') end
|
|
124
119
|
def input() stream_state('Stream::Input') end
|
data/lib/rio/symantics.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#--
|
|
2
2
|
# ===============================================================================
|
|
3
|
-
# Copyright (c) 2005,
|
|
3
|
+
# Copyright (c) 2005,2006,2007 Christopher Kleckner
|
|
4
4
|
# All rights reserved
|
|
5
5
|
#
|
|
6
6
|
# This file is part of the Rio library for ruby.
|
|
@@ -23,16 +23,15 @@
|
|
|
23
23
|
#
|
|
24
24
|
# To create the documentation for Rio run the command
|
|
25
25
|
# ruby build_doc.rb
|
|
26
|
-
# from the distribution directory.
|
|
26
|
+
# from the distribution directory.
|
|
27
27
|
#
|
|
28
28
|
# Suggested Reading
|
|
29
29
|
# * RIO::Doc::SYNOPSIS
|
|
30
30
|
# * RIO::Doc::INTRO
|
|
31
31
|
# * RIO::Doc::HOWTO
|
|
32
|
+
# * RIO::Doc::EXAMPLES
|
|
32
33
|
# * RIO::Rio
|
|
33
34
|
#
|
|
34
|
-
# <b>Rio is pre-alpha software.
|
|
35
|
-
# The documented interface and behavior is subject to change without notice.</b>
|
|
36
35
|
|
|
37
36
|
|
|
38
37
|
module RIO
|
data/lib/rio/tempdir.rb
CHANGED
|
@@ -30,7 +30,7 @@ it apart in tempdir.rb.
|
|
|
30
30
|
|
|
31
31
|
require 'tmpdir'
|
|
32
32
|
|
|
33
|
-
module AutoRemoval
|
|
33
|
+
module AutoRemoval #:nodoc: all
|
|
34
34
|
MAX_TRY = 10
|
|
35
35
|
@@cleanlist = []
|
|
36
36
|
|
|
@@ -96,7 +96,7 @@ module AutoRemoval
|
|
|
96
96
|
end
|
|
97
97
|
|
|
98
98
|
require 'pathname'
|
|
99
|
-
class Tempdir < Pathname
|
|
99
|
+
class Tempdir < Pathname #:nodoc: all
|
|
100
100
|
include AutoRemoval
|
|
101
101
|
|
|
102
102
|
def initialize(*args)
|
data/lib/rio/to_rio.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#--
|
|
2
2
|
# ===============================================================================
|
|
3
|
-
# Copyright (c) 2005,
|
|
3
|
+
# Copyright (c) 2005,2006,2007 Christopher Kleckner
|
|
4
4
|
# All rights reserved
|
|
5
5
|
#
|
|
6
6
|
# This file is part of the Rio library for ruby.
|
|
@@ -23,16 +23,15 @@
|
|
|
23
23
|
#
|
|
24
24
|
# To create the documentation for Rio run the command
|
|
25
25
|
# ruby build_doc.rb
|
|
26
|
-
# from the distribution directory.
|
|
26
|
+
# from the distribution directory.
|
|
27
27
|
#
|
|
28
28
|
# Suggested Reading
|
|
29
29
|
# * RIO::Doc::SYNOPSIS
|
|
30
30
|
# * RIO::Doc::INTRO
|
|
31
31
|
# * RIO::Doc::HOWTO
|
|
32
|
+
# * RIO::Doc::EXAMPLES
|
|
32
33
|
# * RIO::Rio
|
|
33
34
|
#
|
|
34
|
-
# <b>Rio is pre-alpha software.
|
|
35
|
-
# The documented interface and behavior is subject to change without notice.</b>
|
|
36
35
|
|
|
37
36
|
|
|
38
37
|
module RIO
|
data/lib/rio/to_rio/all.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#--
|
|
2
2
|
# ===============================================================================
|
|
3
|
-
# Copyright (c) 2005,
|
|
3
|
+
# Copyright (c) 2005,2006,2007 Christopher Kleckner
|
|
4
4
|
# All rights reserved
|
|
5
5
|
#
|
|
6
6
|
# This file is part of the Rio library for ruby.
|
|
@@ -23,16 +23,15 @@
|
|
|
23
23
|
#
|
|
24
24
|
# To create the documentation for Rio run the command
|
|
25
25
|
# ruby build_doc.rb
|
|
26
|
-
# from the distribution directory.
|
|
26
|
+
# from the distribution directory.
|
|
27
27
|
#
|
|
28
28
|
# Suggested Reading
|
|
29
29
|
# * RIO::Doc::SYNOPSIS
|
|
30
30
|
# * RIO::Doc::INTRO
|
|
31
31
|
# * RIO::Doc::HOWTO
|
|
32
|
+
# * RIO::Doc::EXAMPLES
|
|
32
33
|
# * RIO::Rio
|
|
33
34
|
#
|
|
34
|
-
# <b>Rio is pre-alpha software.
|
|
35
|
-
# The documented interface and behavior is subject to change without notice.</b>
|
|
36
35
|
|
|
37
36
|
require 'rio/to_rio/object'
|
|
38
37
|
require 'rio/to_rio/string'
|
data/lib/rio/to_rio/array.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#--
|
|
2
2
|
# ===============================================================================
|
|
3
|
-
# Copyright (c) 2005,
|
|
3
|
+
# Copyright (c) 2005,2006,2007 Christopher Kleckner
|
|
4
4
|
# All rights reserved
|
|
5
5
|
#
|
|
6
6
|
# This file is part of the Rio library for ruby.
|
|
@@ -23,18 +23,17 @@
|
|
|
23
23
|
#
|
|
24
24
|
# To create the documentation for Rio run the command
|
|
25
25
|
# ruby build_doc.rb
|
|
26
|
-
# from the distribution directory.
|
|
26
|
+
# from the distribution directory.
|
|
27
27
|
#
|
|
28
28
|
# Suggested Reading
|
|
29
29
|
# * RIO::Doc::SYNOPSIS
|
|
30
30
|
# * RIO::Doc::INTRO
|
|
31
31
|
# * RIO::Doc::HOWTO
|
|
32
|
+
# * RIO::Doc::EXAMPLES
|
|
32
33
|
# * RIO::Rio
|
|
33
34
|
#
|
|
34
|
-
# <b>Rio is pre-alpha software.
|
|
35
|
-
# The documented interface and behavior is subject to change without notice.</b>
|
|
36
35
|
|
|
37
36
|
require 'rio/to_rio'
|
|
38
|
-
class Array
|
|
37
|
+
class Array #:nodoc:
|
|
39
38
|
include RIO::ToRio::Array
|
|
40
39
|
end
|
data/lib/rio/to_rio/io.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#--
|
|
2
2
|
# ===============================================================================
|
|
3
|
-
# Copyright (c) 2005,
|
|
3
|
+
# Copyright (c) 2005,2006,2007 Christopher Kleckner
|
|
4
4
|
# All rights reserved
|
|
5
5
|
#
|
|
6
6
|
# This file is part of the Rio library for ruby.
|
|
@@ -23,19 +23,18 @@
|
|
|
23
23
|
#
|
|
24
24
|
# To create the documentation for Rio run the command
|
|
25
25
|
# ruby build_doc.rb
|
|
26
|
-
# from the distribution directory.
|
|
26
|
+
# from the distribution directory.
|
|
27
27
|
#
|
|
28
28
|
# Suggested Reading
|
|
29
29
|
# * RIO::Doc::SYNOPSIS
|
|
30
30
|
# * RIO::Doc::INTRO
|
|
31
31
|
# * RIO::Doc::HOWTO
|
|
32
|
+
# * RIO::Doc::EXAMPLES
|
|
32
33
|
# * RIO::Rio
|
|
33
34
|
#
|
|
34
|
-
# <b>Rio is pre-alpha software.
|
|
35
|
-
# The documented interface and behavior is subject to change without notice.</b>
|
|
36
35
|
|
|
37
36
|
require 'rio/to_rio'
|
|
38
37
|
|
|
39
|
-
class IO
|
|
38
|
+
class IO #:nodoc:
|
|
40
39
|
include RIO::ToRio::IO
|
|
41
40
|
end
|
data/lib/rio/to_rio/object.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#--
|
|
2
2
|
# ===============================================================================
|
|
3
|
-
# Copyright (c) 2005,
|
|
3
|
+
# Copyright (c) 2005,2006,2007 Christopher Kleckner
|
|
4
4
|
# All rights reserved
|
|
5
5
|
#
|
|
6
6
|
# This file is part of the Rio library for ruby.
|
|
@@ -23,20 +23,19 @@
|
|
|
23
23
|
#
|
|
24
24
|
# To create the documentation for Rio run the command
|
|
25
25
|
# ruby build_doc.rb
|
|
26
|
-
# from the distribution directory.
|
|
26
|
+
# from the distribution directory.
|
|
27
27
|
#
|
|
28
28
|
# Suggested Reading
|
|
29
29
|
# * RIO::Doc::SYNOPSIS
|
|
30
30
|
# * RIO::Doc::INTRO
|
|
31
31
|
# * RIO::Doc::HOWTO
|
|
32
|
+
# * RIO::Doc::EXAMPLES
|
|
32
33
|
# * RIO::Rio
|
|
33
34
|
#
|
|
34
|
-
# <b>Rio is pre-alpha software.
|
|
35
|
-
# The documented interface and behavior is subject to change without notice.</b>
|
|
36
35
|
|
|
37
36
|
require 'rio/to_rio'
|
|
38
37
|
|
|
39
|
-
class Object
|
|
38
|
+
class Object #:nodoc:
|
|
40
39
|
include RIO::ToRio::Object
|
|
41
40
|
end
|
|
42
41
|
require 'rio/to_rio/io'
|
data/lib/rio/to_rio/string.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#--
|
|
2
2
|
# ===============================================================================
|
|
3
|
-
# Copyright (c) 2005,
|
|
3
|
+
# Copyright (c) 2005,2006,2007 Christopher Kleckner
|
|
4
4
|
# All rights reserved
|
|
5
5
|
#
|
|
6
6
|
# This file is part of the Rio library for ruby.
|
|
@@ -23,19 +23,18 @@
|
|
|
23
23
|
#
|
|
24
24
|
# To create the documentation for Rio run the command
|
|
25
25
|
# ruby build_doc.rb
|
|
26
|
-
# from the distribution directory.
|
|
26
|
+
# from the distribution directory.
|
|
27
27
|
#
|
|
28
28
|
# Suggested Reading
|
|
29
29
|
# * RIO::Doc::SYNOPSIS
|
|
30
30
|
# * RIO::Doc::INTRO
|
|
31
31
|
# * RIO::Doc::HOWTO
|
|
32
|
+
# * RIO::Doc::EXAMPLES
|
|
32
33
|
# * RIO::Rio
|
|
33
34
|
#
|
|
34
|
-
# <b>Rio is pre-alpha software.
|
|
35
|
-
# The documented interface and behavior is subject to change without notice.</b>
|
|
36
35
|
|
|
37
36
|
require 'rio/to_rio'
|
|
38
37
|
|
|
39
|
-
class String
|
|
38
|
+
class String #:nodoc:
|
|
40
39
|
include RIO::ToRio::String
|
|
41
40
|
end
|
data/lib/rio/uri/file.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#--
|
|
2
2
|
# ===============================================================================
|
|
3
|
-
# Copyright (c) 2005,
|
|
3
|
+
# Copyright (c) 2005,2006,2007 Christopher Kleckner
|
|
4
4
|
# All rights reserved
|
|
5
5
|
#
|
|
6
6
|
# This file is part of the Rio library for ruby.
|
|
@@ -23,16 +23,15 @@
|
|
|
23
23
|
#
|
|
24
24
|
# To create the documentation for Rio run the command
|
|
25
25
|
# ruby build_doc.rb
|
|
26
|
-
# from the distribution directory.
|
|
26
|
+
# from the distribution directory.
|
|
27
27
|
#
|
|
28
28
|
# Suggested Reading
|
|
29
29
|
# * RIO::Doc::SYNOPSIS
|
|
30
30
|
# * RIO::Doc::INTRO
|
|
31
31
|
# * RIO::Doc::HOWTO
|
|
32
|
+
# * RIO::Doc::EXAMPLES
|
|
32
33
|
# * RIO::Rio
|
|
33
34
|
#
|
|
34
|
-
# <b>Rio is pre-alpha software.
|
|
35
|
-
# The documented interface and behavior is subject to change without notice.</b>
|
|
36
35
|
|
|
37
36
|
|
|
38
37
|
#
|
|
@@ -86,11 +85,16 @@ RFC 1738 Uniform Resource Locators (URL) December 1994
|
|
|
86
85
|
=end
|
|
87
86
|
|
|
88
87
|
module REGEXP
|
|
88
|
+
module PATTERN
|
|
89
|
+
DRIVE_SPEC = "[A-Za-z]:"
|
|
90
|
+
ABS_FILE_PATH = "(?:/#{DRIVE_SPEC})?/#{PATH_SEGMENTS}"
|
|
91
|
+
end
|
|
89
92
|
EMPTYHOST = Regexp.new("^$", false, 'N').freeze #"
|
|
93
|
+
ABS_FILE_PATH = Regexp.new("^#{PATTERN::ABS_FILE_PATH}$", false, 'N').freeze
|
|
90
94
|
end # module REGEXP
|
|
91
95
|
|
|
92
96
|
class FILE < Generic
|
|
93
|
-
|
|
97
|
+
#ABS_FILE_PATH = REGEXP::ABS_FILE_PATH
|
|
94
98
|
COMPONENT = [
|
|
95
99
|
:scheme,
|
|
96
100
|
:host,
|
|
@@ -103,6 +107,38 @@ RFC 1738 Uniform Resource Locators (URL) December 1994
|
|
|
103
107
|
end
|
|
104
108
|
private :check_host
|
|
105
109
|
|
|
110
|
+
def check_path(v)
|
|
111
|
+
# raise if both hier and opaque are not nil, because:
|
|
112
|
+
# absoluteURI = scheme ":" ( hier_part | opaque_part )
|
|
113
|
+
# hier_part = ( net_path | abs_path ) [ "?" query ]
|
|
114
|
+
if v && @opaque
|
|
115
|
+
raise InvalidURIError,
|
|
116
|
+
"path conflicts with opaque"
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
if @scheme
|
|
120
|
+
if v && v != '' && ABS_FILE_PATH !~ v
|
|
121
|
+
raise InvalidComponentError,
|
|
122
|
+
"bad component(expected absolute path component): #{v}"
|
|
123
|
+
end
|
|
124
|
+
else
|
|
125
|
+
if v && v != '' && ABS_FILE_PATH !~ v && REL_PATH !~ v
|
|
126
|
+
raise InvalidComponentError,
|
|
127
|
+
"bad component(expected relative path component): #{v}"
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
return true
|
|
132
|
+
end
|
|
133
|
+
private :check_path
|
|
134
|
+
|
|
135
|
+
def path=(v)
|
|
136
|
+
#p "self=#{self} v=#{v}"
|
|
137
|
+
check_path(v)
|
|
138
|
+
set_path(v)
|
|
139
|
+
v
|
|
140
|
+
end
|
|
141
|
+
|
|
106
142
|
def normalize!
|
|
107
143
|
super
|
|
108
144
|
if host && host == 'localhost'
|