rio 0.5.1 → 0.6.0
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.
- checksums.yaml +7 -0
- data/LICENSE +1 -1
- data/README +1 -1
- data/lib/rio.rb +5 -4
- data/lib/rio/abstract_method.rb +1 -1
- data/lib/rio/alturi.rb +10 -69
- data/lib/rio/alturi/algorithm.rb +1 -18
- data/lib/rio/alturi/escape.rb +0 -4
- data/lib/rio/alturi/parse.rb +0 -29
- data/lib/rio/alturi/path_parts.rb +0 -2
- data/lib/rio/alturi/uri_parts.rb +3 -32
- data/lib/rio/argv.rb +1 -1
- data/lib/rio/arraynge.rb +1 -3
- data/lib/rio/arycopy.rb +1 -1
- data/lib/rio/assert.rb +31 -47
- data/lib/rio/base.rb +1 -1
- data/lib/rio/callstr.rb +1 -1
- data/lib/rio/const.rb +1 -1
- data/lib/rio/construct.rb +1 -1
- data/lib/rio/constructor.rb +1 -1
- data/lib/rio/context.rb +8 -4
- data/lib/rio/context/autoclose.rb +1 -1
- data/lib/rio/context/binmode.rb +1 -7
- data/lib/rio/context/copying.rb +1 -1
- data/lib/rio/context/cxx.rb +1 -1
- data/lib/rio/context/dir.rb +1 -1
- data/lib/rio/context/encoding.rb +1 -2
- data/lib/rio/context/gzip.rb +1 -1
- data/lib/rio/context/methods.rb +1 -6
- data/lib/rio/context/skip.rb +1 -1
- data/lib/rio/context/stream.rb +1 -8
- data/lib/rio/cp.rb +1 -1
- data/lib/rio/cxuri.rb +11 -7
- data/lib/rio/dbg/trace_states.rb +0 -2
- data/lib/rio/def.rb +1 -1
- data/lib/rio/dir.rb +2 -2
- data/lib/rio/doc.rb +1 -1
- data/lib/rio/entrysel.rb +6 -6
- data/lib/rio/exception.rb +1 -1
- data/lib/rio/exception/copy.rb +1 -1
- data/lib/rio/exception/notimplemented.rb +1 -1
- data/lib/rio/exception/notsupported.rb +1 -1
- data/lib/rio/exception/open.rb +1 -12
- data/lib/rio/exception/state.rb +1 -1
- data/lib/rio/ext.rb +1 -8
- data/lib/rio/ext/csv.rb +1 -25
- data/lib/rio/ext/csv/csv-legacy.rb +1 -49
- data/lib/rio/ext/csv/csv.rb +1 -24
- data/lib/rio/ext/csv/filter.rb +1 -19
- data/lib/rio/ext/if.rb +1 -1
- data/lib/rio/ext/mp3info.rb +6 -5
- data/lib/rio/ext/splitlines.rb +1 -23
- data/lib/rio/ext/yaml.rb +1 -16
- data/lib/rio/ext/yaml/doc.rb +1 -6
- data/lib/rio/ext/yaml/tie.rb +4 -7
- data/lib/rio/ext/zipfile.rb +1 -56
- data/lib/rio/ext/zipfile/fs.rb +1 -30
- data/lib/rio/ext/zipfile/rl.rb +1 -128
- data/lib/rio/ext/zipfile/rootdir.rb +1 -30
- data/lib/rio/ext/zipfile/state.rb +1 -105
- data/lib/rio/ext/zipfile/wrap.rb +1 -86
- data/lib/rio/factory.rb +2 -100
- data/lib/rio/fibpipe.rb +0 -98
- data/lib/rio/file.rb +1 -12
- data/lib/rio/filter.rb +1 -1
- data/lib/rio/filter/closeoneof.rb +1 -10
- data/lib/rio/filter/gzip.rb +1 -16
- data/lib/rio/fs.rb +75 -92
- data/lib/rio/fs/base.rb +1 -1
- data/lib/rio/fs/impl.rb +1 -1
- data/lib/rio/fs/native.rb +1 -1
- data/lib/rio/fs/stream.rb +1 -1
- data/lib/rio/fs/url.rb +1 -1
- data/lib/rio/ftp/conncache.rb +1 -15
- data/lib/rio/ftp/dir.rb +1 -2
- data/lib/rio/ftp/fs.rb +1 -13
- data/lib/rio/fwd.rb +31 -8
- data/lib/rio/grande.rb +2 -4
- data/lib/rio/handle.rb +1 -1
- data/lib/rio/if.rb +1 -7
- data/lib/rio/if/basic.rb +1 -5
- data/lib/rio/if/csv.rb +1 -1
- data/lib/rio/if/dir.rb +1 -1
- data/lib/rio/if/file.rb +1 -1
- data/lib/rio/if/fileordir.rb +1 -1
- data/lib/rio/if/grande.rb +1 -1
- data/lib/rio/if/grande_entry.rb +1 -1
- data/lib/rio/if/grande_stream.rb +1 -1
- data/lib/rio/if/internal.rb +1 -1
- data/lib/rio/if/path.rb +1 -1
- data/lib/rio/if/rubyio.rb +1 -1
- data/lib/rio/if/string.rb +1 -1
- data/lib/rio/if/temp.rb +1 -1
- data/lib/rio/if/test.rb +1 -1
- data/lib/rio/if/yaml.rb +1 -1
- data/lib/rio/ioh.rb +42 -24
- data/lib/rio/iomode.rb +3 -3
- data/lib/rio/ios/fail.rb +1 -1
- data/lib/rio/ios/generic.rb +1 -1
- data/lib/rio/ios/mode.rb +1 -1
- data/lib/rio/ios/null.rb +1 -13
- data/lib/rio/iowrap.rb +1 -14
- data/lib/rio/kernel.rb +1 -2
- data/lib/rio/local.rb +1 -13
- data/lib/rio/match.rb +1 -2
- data/lib/rio/matchrecord.rb +5 -34
- data/lib/rio/no_warn.rb +1 -1
- data/lib/rio/nullio.rb +1 -1
- data/lib/rio/open3.rb +1 -10
- data/lib/rio/ops.rb +1 -1
- data/lib/rio/ops/construct.rb +1 -1
- data/lib/rio/ops/create.rb +1 -3
- data/lib/rio/ops/dir.rb +4 -46
- data/lib/rio/ops/either.rb +1 -3
- data/lib/rio/ops/file.rb +1 -25
- data/lib/rio/ops/path.rb +1 -18
- data/lib/rio/ops/stream.rb +4 -5
- data/lib/rio/ops/stream/input.rb +1 -10
- data/lib/rio/ops/stream/output.rb +1 -3
- data/lib/rio/ops/stream/read.rb +1 -1
- data/lib/rio/ops/stream/write.rb +1 -1
- data/lib/rio/ops/symlink.rb +1 -10
- data/lib/rio/path.rb +1 -4
- data/lib/rio/path/reset.rb +1 -6
- data/lib/rio/piper.rb +1 -4
- data/lib/rio/piper/cp.rb +1 -16
- data/lib/rio/prompt.rb +1 -1
- data/lib/rio/rectype.rb +1 -4
- data/lib/rio/rl/base.rb +1 -14
- data/lib/rio/rl/builder.rb +1 -12
- data/lib/rio/rl/chmap.rb +1 -11
- data/lib/rio/rl/fs2url.rb +1 -8
- data/lib/rio/rl/ioi.rb +1 -2
- data/lib/rio/rl/path.rb +1 -20
- data/lib/rio/rl/pathmethods.rb +1 -3
- data/lib/rio/rl/uri.rb +1 -11
- data/lib/rio/rl/withpath.rb +2 -30
- data/lib/rio/rrl/base.rb +1 -6
- data/lib/rio/rrl/builder.rb +2 -8
- data/lib/rio/rrl/chmap.rb +1 -11
- data/lib/rio/rrl/ioi.rb +1 -3
- data/lib/rio/rrl/path.rb +1 -11
- data/lib/rio/rrl/withpath.rb +8 -48
- data/lib/rio/scheme/aryio.rb +1 -1
- data/lib/rio/scheme/cmdio.rb +3 -15
- data/lib/rio/scheme/cmdpipe.rb +1 -5
- data/lib/rio/scheme/fd.rb +1 -1
- data/lib/rio/scheme/ftp.rb +1 -40
- data/lib/rio/scheme/http.rb +10 -7
- data/lib/rio/scheme/null.rb +1 -1
- data/lib/rio/scheme/path.rb +1 -63
- data/lib/rio/scheme/stderr.rb +1 -2
- data/lib/rio/scheme/stdio.rb +3 -3
- data/lib/rio/scheme/strio.rb +1 -3
- data/lib/rio/scheme/sysio.rb +1 -1
- data/lib/rio/scheme/tcp.rb +1 -2
- data/lib/rio/scheme/temp.rb +9 -38
- data/lib/rio/state.rb +4 -38
- data/lib/rio/state/data.rb +4 -5
- data/lib/rio/state/error.rb +2 -6
- data/lib/rio/stream.rb +1 -31
- data/lib/rio/stream/base.rb +1 -5
- data/lib/rio/stream/duplex.rb +1 -16
- data/lib/rio/stream/open.rb +1 -11
- data/lib/rio/symantics.rb +1 -1
- data/lib/rio/tempdir.rb +0 -2
- data/lib/rio/to_rio.rb +1 -1
- data/lib/rio/to_rio/all.rb +1 -1
- data/lib/rio/to_rio/array.rb +1 -1
- data/lib/rio/to_rio/io.rb +1 -1
- data/lib/rio/to_rio/object.rb +1 -1
- data/lib/rio/to_rio/string.rb +1 -1
- data/lib/rio/undef_rake_dsl.rb +3 -0
- data/lib/rio/uri/file.rb +1 -18
- data/lib/rio/uriref.rb +1 -18
- data/lib/rio/util.rb +1 -1
- data/lib/rio/version.rb +2 -2
- data/misc/update-copyright.rb +2 -2
- data/rio.gemspec +2 -3
- data/test/env.sh +1 -2
- data/test/http/tc/copy_from_http.rb +0 -1
- data/test/runhttp.rb +2 -1
- data/test/runtests.rb +7 -5
- data/test/tc/copyarray.rb +4 -4
- data/test/tc/copydir.rb +1 -1
- metadata +15 -47
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 566aa2a70a79f532a79ac92c4ca603dfb170fa86
|
|
4
|
+
data.tar.gz: 822ac8d9e81df21b9712dc65d9f975570b453f0b
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: b8a4b954b8d997c0355c337b740221ed153f30365c2575dd86f1c288767f05b7e65bed9a7ca900b5fc9bc718a18bbaf1a2d0640b9335da533b460ab9d0944607
|
|
7
|
+
data.tar.gz: 4763841f80976380eea0a2426f1aa3d5668f9d957d10f0a823d52daa321c3eab422f8314a17fc4e5a61f7ea2a022930f65e45794b2847bf66ad521a9beeb0b65
|
data/LICENSE
CHANGED
data/README
CHANGED
data/lib/rio.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#--
|
|
2
2
|
# ===========================================================================
|
|
3
|
-
# Copyright (c) 2005-
|
|
3
|
+
# Copyright (c) 2005-2017 Christopher Kleckner
|
|
4
4
|
# All rights reserved
|
|
5
5
|
#
|
|
6
6
|
# This file is part of the Rio library for ruby.
|
|
@@ -37,8 +37,6 @@ require 'rio/fs'
|
|
|
37
37
|
#require 'rio/def'
|
|
38
38
|
#require 'rio/exception'
|
|
39
39
|
|
|
40
|
-
require 'forwardable'
|
|
41
|
-
|
|
42
40
|
$trace_states = false
|
|
43
41
|
|
|
44
42
|
require 'rio/kernel'
|
|
@@ -49,6 +47,8 @@ require 'rio/const'
|
|
|
49
47
|
require 'rio/local'
|
|
50
48
|
require 'rio/factory'
|
|
51
49
|
|
|
50
|
+
require 'rio/undef_rake_dsl'
|
|
51
|
+
|
|
52
52
|
module RIO
|
|
53
53
|
class Rio #:doc:
|
|
54
54
|
include Local
|
|
@@ -109,7 +109,7 @@ module RIO
|
|
|
109
109
|
self.class.new(self.rl)
|
|
110
110
|
end
|
|
111
111
|
|
|
112
|
-
#
|
|
112
|
+
# Returns nil. Needed for 1.9.2+ problem with to_ary and method_missing.
|
|
113
113
|
def to_ary
|
|
114
114
|
nil
|
|
115
115
|
end
|
|
@@ -173,6 +173,7 @@ module RIO
|
|
|
173
173
|
|
|
174
174
|
end # class Rio
|
|
175
175
|
end # module RIO
|
|
176
|
+
|
|
176
177
|
module RIO
|
|
177
178
|
class Rio
|
|
178
179
|
USE_IF = true #:nodoc:
|
data/lib/rio/abstract_method.rb
CHANGED
data/lib/rio/alturi.rb
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
require 'forwardable'
|
|
2
1
|
require 'rio/alturi/uri_parts'
|
|
3
2
|
require 'rio/alturi/algorithm'
|
|
4
3
|
require 'rio/fwd'
|
|
@@ -33,6 +32,7 @@ module Alt
|
|
|
33
32
|
end
|
|
34
33
|
end
|
|
35
34
|
end
|
|
35
|
+
|
|
36
36
|
module Alt
|
|
37
37
|
module URI
|
|
38
38
|
module Ops
|
|
@@ -112,12 +112,8 @@ module Alt
|
|
|
112
112
|
other.rel(self)
|
|
113
113
|
end
|
|
114
114
|
def join(*a)
|
|
115
|
-
#p "A=#{a.inspect}"
|
|
116
115
|
pthstr = a.map(&:to_s).join('/')
|
|
117
|
-
#p "DODODODOD",a.map{ |ar| ar.is_a?(::String) ? "#{ar.encoding} #{ar}" : "#{ar}" }
|
|
118
|
-
#p pthstr.encoding,pthstr
|
|
119
116
|
newpth = (self.path + (a.empty? || self.path.empty? ? '' : '/') + pthstr).squeeze('/')
|
|
120
|
-
#p "NEWPATH:",newpth.encoding,newpth
|
|
121
117
|
self.path = newpth
|
|
122
118
|
end
|
|
123
119
|
|
|
@@ -125,7 +121,9 @@ module Alt
|
|
|
125
121
|
end
|
|
126
122
|
end
|
|
127
123
|
end
|
|
124
|
+
|
|
128
125
|
require 'rio/alturi/path_parts'
|
|
126
|
+
|
|
129
127
|
module Alt
|
|
130
128
|
module URI
|
|
131
129
|
class Base
|
|
@@ -160,10 +158,10 @@ module Alt
|
|
|
160
158
|
end
|
|
161
159
|
end
|
|
162
160
|
end
|
|
161
|
+
|
|
163
162
|
module Alt
|
|
164
163
|
module URI
|
|
165
164
|
class Generic < ::Alt::URI::Base
|
|
166
|
-
extend Forwardable
|
|
167
165
|
extend Builders
|
|
168
166
|
def initialize(parts=nil)
|
|
169
167
|
prts = parts || Alt::URI::Gen::URIParts.new
|
|
@@ -173,10 +171,6 @@ module Alt
|
|
|
173
171
|
super
|
|
174
172
|
end
|
|
175
173
|
def normalize
|
|
176
|
-
|
|
177
|
-
#if self.host
|
|
178
|
-
# self.host = self.scheme ? "" : nil
|
|
179
|
-
#end
|
|
180
174
|
super
|
|
181
175
|
end
|
|
182
176
|
include Ops::Generic
|
|
@@ -188,7 +182,7 @@ module Alt
|
|
|
188
182
|
fwd :parts, :host,:port
|
|
189
183
|
fwd :parts, :userinfo
|
|
190
184
|
fwd :parts, :user,:password
|
|
191
|
-
|
|
185
|
+
fwd_readers :parts, :to_s
|
|
192
186
|
|
|
193
187
|
|
|
194
188
|
def netpath
|
|
@@ -207,12 +201,6 @@ module Alt
|
|
|
207
201
|
alias :fspath :netpath
|
|
208
202
|
def fspath=(val) netpath = val end
|
|
209
203
|
|
|
210
|
-
# def abs(base)
|
|
211
|
-
# Alt::URI::Generic.new(parts.abs(base.parts))
|
|
212
|
-
# end
|
|
213
|
-
# def rel(base)
|
|
214
|
-
# Alt::URI::Generic.new(parts.rel(base.parts))
|
|
215
|
-
# end
|
|
216
204
|
end
|
|
217
205
|
|
|
218
206
|
end
|
|
@@ -221,7 +209,6 @@ end
|
|
|
221
209
|
module Alt
|
|
222
210
|
module URI
|
|
223
211
|
class File < ::Alt::URI::Base
|
|
224
|
-
extend Forwardable
|
|
225
212
|
extend Builders
|
|
226
213
|
|
|
227
214
|
def initialize(parts=nil)
|
|
@@ -239,7 +226,7 @@ module Alt
|
|
|
239
226
|
fwd :parts, :authority
|
|
240
227
|
fwd :parts, :netpath
|
|
241
228
|
fwd :parts, :host
|
|
242
|
-
|
|
229
|
+
fwd_reader :parts, :to_s
|
|
243
230
|
|
|
244
231
|
def normalize
|
|
245
232
|
hst = self.host if self.host and !(self.host == 'localhost' or self.host.empty?)
|
|
@@ -285,7 +272,6 @@ end
|
|
|
285
272
|
module Alt
|
|
286
273
|
module URI
|
|
287
274
|
class HTTP < ::Alt::URI::Base
|
|
288
|
-
extend Forwardable
|
|
289
275
|
extend Builders
|
|
290
276
|
|
|
291
277
|
def initialize(parts=nil)
|
|
@@ -303,7 +289,7 @@ module Alt
|
|
|
303
289
|
fwd :parts, :authority
|
|
304
290
|
fwd :parts, :netpath
|
|
305
291
|
fwd :parts, :host,:port
|
|
306
|
-
|
|
292
|
+
fwd_readers :parts, :to_s
|
|
307
293
|
|
|
308
294
|
def netpath
|
|
309
295
|
parts.path
|
|
@@ -335,13 +321,9 @@ module Alt
|
|
|
335
321
|
end
|
|
336
322
|
end
|
|
337
323
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
324
|
module Alt
|
|
342
325
|
module URI
|
|
343
326
|
class FTP < ::Alt::URI::Base
|
|
344
|
-
extend Forwardable
|
|
345
327
|
extend Builders
|
|
346
328
|
|
|
347
329
|
def initialize(parts=nil)
|
|
@@ -361,7 +343,7 @@ module Alt
|
|
|
361
343
|
fwd :parts, :host,:port
|
|
362
344
|
fwd :parts, :userinfo
|
|
363
345
|
fwd :parts, :user,:password
|
|
364
|
-
|
|
346
|
+
fwd_reader :parts, :to_s
|
|
365
347
|
|
|
366
348
|
|
|
367
349
|
def fspath() self.path end
|
|
@@ -378,15 +360,11 @@ module Alt
|
|
|
378
360
|
[pth,typ]
|
|
379
361
|
end
|
|
380
362
|
def path
|
|
381
|
-
#p parts[:path]
|
|
382
363
|
pth = parts._do_unesc(split_path_type[0])[1..-1]
|
|
383
|
-
#Alt::URI.unescape(split_path_type[0])[1..-1]
|
|
384
|
-
#parts.path
|
|
385
364
|
pth
|
|
386
365
|
end
|
|
387
366
|
def path=(val)
|
|
388
367
|
pth = parts._do_esc(val,:path).sub(%r{^/},'%2F')
|
|
389
|
-
#pth = Alt::URI.escape(val,:path).sub(%r{^/},'%2F')
|
|
390
368
|
typ = self.typecode
|
|
391
369
|
escpath = "/#{pth}" + (typ ? ";type=#{typ}" : "")
|
|
392
370
|
parts[:path] = escpath
|
|
@@ -408,15 +386,6 @@ module Alt
|
|
|
408
386
|
parts.uri = val
|
|
409
387
|
end
|
|
410
388
|
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
389
|
def normalize
|
|
421
390
|
if self.port == '21'
|
|
422
391
|
self.port = nil
|
|
@@ -437,16 +406,6 @@ module Alt
|
|
|
437
406
|
end
|
|
438
407
|
end
|
|
439
408
|
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
409
|
module Alt
|
|
451
410
|
module URI
|
|
452
411
|
module Factory
|
|
@@ -464,7 +423,6 @@ module Alt
|
|
|
464
423
|
end
|
|
465
424
|
|
|
466
425
|
def self.parse(str,opts={})
|
|
467
|
-
#str = "file:///" + str if str =~ /^[a-zA-Z]:/
|
|
468
426
|
u = Alt::URI::Gen::URIParts.parse(str,opts)
|
|
469
427
|
from_parts(u)
|
|
470
428
|
end
|
|
@@ -476,32 +434,15 @@ module Alt
|
|
|
476
434
|
end
|
|
477
435
|
end
|
|
478
436
|
end
|
|
437
|
+
|
|
479
438
|
module Alt
|
|
480
439
|
module URI
|
|
481
440
|
def self.parse(str,opts={})
|
|
482
|
-
|
|
483
|
-
ans = Factory.parse(str,opts)
|
|
484
|
-
#p " ans=#{ans.inspect}"
|
|
485
|
-
ans
|
|
441
|
+
Factory.parse(str,opts)
|
|
486
442
|
end
|
|
487
443
|
def self.create(hash)
|
|
488
444
|
Factory.create(hash)
|
|
489
445
|
end
|
|
490
|
-
# def self.escape(str,fld)
|
|
491
|
-
# if str
|
|
492
|
-
# # str.encode('UTF-8')
|
|
493
|
-
# Alt::URI::Escape.escape(str.force_encoding('US-ASCII'),fld)
|
|
494
|
-
# end
|
|
495
|
-
# end
|
|
496
|
-
# def self.unescape(str)
|
|
497
|
-
# if str
|
|
498
|
-
# ustr = Alt::URI::Escape.unescape(str)
|
|
499
|
-
# @encoding ? ustr.force_encoding(@encoding) : ustr
|
|
500
|
-
# end
|
|
501
|
-
# end
|
|
502
446
|
end
|
|
503
447
|
end
|
|
504
448
|
|
|
505
|
-
if __FILE__ == $0
|
|
506
|
-
# TODO Generated stub
|
|
507
|
-
end
|
data/lib/rio/alturi/algorithm.rb
CHANGED
|
@@ -42,8 +42,6 @@ module Alt
|
|
|
42
42
|
return out.join("/")
|
|
43
43
|
end
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
47
45
|
# 7) The resulting URI components, including any inherited from the
|
|
48
46
|
# base URI, are recombined to give the absolute form of the URI
|
|
49
47
|
# reference. Using pseudocode, this would be
|
|
@@ -70,16 +68,6 @@ module Alt
|
|
|
70
68
|
|
|
71
69
|
# return result
|
|
72
70
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
71
|
def self.uri_string(r)
|
|
84
72
|
( defined(r.scheme) ? r.scheme + ":" : "") +
|
|
85
73
|
( defined(r.authority) ? "//" + r.authority : "") +
|
|
@@ -87,15 +75,13 @@ module Alt
|
|
|
87
75
|
( defined(r.query) ? "?" + r.query : "") +
|
|
88
76
|
( defined(r.fragment) ? "#" + r.fragment : "")
|
|
89
77
|
end
|
|
78
|
+
|
|
90
79
|
def self.authority_string(r)
|
|
91
80
|
( defined(r.userinfo) ? r.userinfo + "@" : "") +
|
|
92
81
|
r.host +
|
|
93
82
|
( defined(r.port) ? ":" + r.port : "")
|
|
94
83
|
end
|
|
95
84
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
85
|
def self.defined(el)
|
|
100
86
|
!el.nil?
|
|
101
87
|
end
|
|
@@ -307,7 +293,4 @@ module Alt
|
|
|
307
293
|
end
|
|
308
294
|
end
|
|
309
295
|
|
|
310
|
-
if __FILE__ == $0
|
|
311
|
-
# TODO Generated stub
|
|
312
|
-
end
|
|
313
296
|
|
data/lib/rio/alturi/escape.rb
CHANGED
|
@@ -28,12 +28,10 @@ module Alt
|
|
|
28
28
|
|
|
29
29
|
def self.escape(str,arg)
|
|
30
30
|
tmp = ""
|
|
31
|
-
# p "escape: #{es(str)}"
|
|
32
31
|
table = (::Symbol === arg ? CHAR_TABLE[arg] : arg)
|
|
33
32
|
str.each_byte do |b|
|
|
34
33
|
tmp << table[b]
|
|
35
34
|
end
|
|
36
|
-
#p "escape: tmp=#{es(str)} str.enc=#{str.encoding}"
|
|
37
35
|
tmp.encode(str.encoding)
|
|
38
36
|
end
|
|
39
37
|
|
|
@@ -52,12 +50,10 @@ module Alt
|
|
|
52
50
|
UNESCAPE_HASH = build_unescape_hash
|
|
53
51
|
|
|
54
52
|
def self.unescape(estr)
|
|
55
|
-
#p "ESTR: #{estr}"
|
|
56
53
|
ustr = ""
|
|
57
54
|
pos = 0
|
|
58
55
|
while npos = estr.index('%',pos)
|
|
59
56
|
uh = UNESCAPE_HASH[estr[npos,3].upcase]
|
|
60
|
-
#p "UH: #{uh.inspect} npos:#{npos} pos:#{pos}"
|
|
61
57
|
ustr << estr[pos,npos-pos] << uh
|
|
62
58
|
pos = npos +3
|
|
63
59
|
end
|
data/lib/rio/alturi/parse.rb
CHANGED
|
@@ -15,20 +15,6 @@ module Alt
|
|
|
15
15
|
}
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
#RE_PARTS = /^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/
|
|
19
|
-
# RE_GENERIC0 = %r{
|
|
20
|
-
# (?<scheme> [^:/?#]+ ){0}
|
|
21
|
-
# (?<authority> [^/?#]* ){0}
|
|
22
|
-
# (?<path> [^?#]* ){0}
|
|
23
|
-
# (?<query> [^#]* ){0}
|
|
24
|
-
# (?<fragment> .* ){0}
|
|
25
|
-
|
|
26
|
-
# ( \g<scheme> : )?
|
|
27
|
-
# ( // \g<authority> )?
|
|
28
|
-
# \g<path>
|
|
29
|
-
# ( \? \g<query> )?
|
|
30
|
-
# ( \# \g<fragment> )?
|
|
31
|
-
# }x
|
|
32
18
|
RE_GENERIC = %r{
|
|
33
19
|
(?: ( [^:/?#]+ ) : )?
|
|
34
20
|
(?: // ( [^/?#]* ) )?
|
|
@@ -37,21 +23,6 @@ module Alt
|
|
|
37
23
|
(?: \# ( .* ) )?
|
|
38
24
|
}x
|
|
39
25
|
|
|
40
|
-
#def self.parse(ustr)
|
|
41
|
-
# parse_re(ustr,RE_GENERIC)
|
|
42
|
-
#end
|
|
43
|
-
|
|
44
|
-
#authority = [ userinfo "@" ] host [ ":" port ]
|
|
45
|
-
#RE_AUTHORITY0 = %r{
|
|
46
|
-
#(?<userinfo> [^@]+ ){0}
|
|
47
|
-
#(?<host> [^:]* ){0}
|
|
48
|
-
#(?<port> .* ){0}
|
|
49
|
-
#
|
|
50
|
-
#( \g<userinfo> @ )?
|
|
51
|
-
# \g<host>
|
|
52
|
-
#( : \g<port> )?
|
|
53
|
-
#}x
|
|
54
|
-
|
|
55
26
|
RE_AUTHORITY = %r{
|
|
56
27
|
(?: ( [^@]+ ) @ )?
|
|
57
28
|
( [^:]* )
|
data/lib/rio/alturi/uri_parts.rb
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
require 'forwardable'
|
|
2
1
|
require 'rio/alturi/escape'
|
|
3
2
|
require 'rio/alturi/parse'
|
|
4
3
|
require 'rio/alturi/algorithm'
|
|
@@ -7,12 +6,13 @@ require 'rio/alturi/algorithm'
|
|
|
7
6
|
module Alt
|
|
8
7
|
module URI
|
|
9
8
|
class FieldStore
|
|
10
|
-
extend
|
|
9
|
+
extend RIO::Fwd
|
|
11
10
|
def initialize(hash)
|
|
12
11
|
@hash = hash
|
|
13
12
|
end
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
fwd_readers :@hash, :values_at
|
|
15
|
+
fwd :@hash, :[]
|
|
16
16
|
|
|
17
17
|
def method_missing(sym,*args,&block)
|
|
18
18
|
if sym.to_s.end_with? '='
|
|
@@ -34,7 +34,6 @@ module Alt
|
|
|
34
34
|
str.encode('UTF-8')
|
|
35
35
|
|
|
36
36
|
Alt::URI::Escape.escape(str.force_encoding('US-ASCII'),fld)
|
|
37
|
-
#Alt::URI::Escape.escape(str,fld)
|
|
38
37
|
end
|
|
39
38
|
end
|
|
40
39
|
def _do_unesc(str)
|
|
@@ -274,13 +273,6 @@ module Alt
|
|
|
274
273
|
def initialize(opts={})
|
|
275
274
|
@store = { :path => "" }
|
|
276
275
|
@encoding = opts[:encoding]
|
|
277
|
-
# p "@encoding=#{@encoding.inspect}"
|
|
278
|
-
# p caller[0]
|
|
279
|
-
# @encoding = @store[:path].encoding
|
|
280
|
-
# p "URIParts",__ENCODING__
|
|
281
|
-
# @encoding = Encoding.default_internal
|
|
282
|
-
# @encoding = Encoding.find('UTF-8')
|
|
283
|
-
# @encoding = __ENCODING__
|
|
284
276
|
end
|
|
285
277
|
|
|
286
278
|
def initialize_copy(other)
|
|
@@ -309,14 +301,6 @@ module Alt
|
|
|
309
301
|
u
|
|
310
302
|
end
|
|
311
303
|
|
|
312
|
-
# def [](sym)
|
|
313
|
-
# __send__(sym)
|
|
314
|
-
# end
|
|
315
|
-
|
|
316
|
-
# def []=(sym,val)
|
|
317
|
-
# __send__(sym.to_s+'=',val)
|
|
318
|
-
# end
|
|
319
|
-
|
|
320
304
|
def [](sym)
|
|
321
305
|
@store[sym]
|
|
322
306
|
end
|
|
@@ -443,16 +427,7 @@ module Alt
|
|
|
443
427
|
@store.clear
|
|
444
428
|
@store[:path] = ""
|
|
445
429
|
else
|
|
446
|
-
#Alt::URI::Parse::RE_GENERIC.match(val) { |m|
|
|
447
|
-
# p "URI_PARTS: #{m.inspect}"
|
|
448
|
-
# self.scheme = m[:scheme]
|
|
449
|
-
# self.authority = m[:authority]
|
|
450
|
-
# @store[:path] = m[:path]
|
|
451
|
-
# @store[:query] = m[:query]
|
|
452
|
-
# @store[:fragment] = m[:fragment]
|
|
453
|
-
#}
|
|
454
430
|
Alt::URI::Parse::RE_GENERIC.match(val) { |m|
|
|
455
|
-
#p "URI_PARTS: #{m.inspect}"
|
|
456
431
|
self.scheme = m[1]
|
|
457
432
|
self.authority = m[2]
|
|
458
433
|
@store[:path] = m[3]
|
|
@@ -470,10 +445,6 @@ module Alt
|
|
|
470
445
|
self.authority = nil
|
|
471
446
|
self.path = ""
|
|
472
447
|
else
|
|
473
|
-
#Alt::URI::Parse::RE_GENERIC.match(val) { |m|
|
|
474
|
-
# self.authority = m[:authority]
|
|
475
|
-
# self.path = m[:path]
|
|
476
|
-
#}
|
|
477
448
|
Alt::URI::Parse::RE_GENERIC.match(val) { |m|
|
|
478
449
|
self.authority = m[2]
|
|
479
450
|
self.path = m[3]
|