rio 0.5.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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]
|