uri 0.13.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/gh-pages.yml +4 -4
- data/.github/workflows/push_gem.yml +46 -0
- data/{LICENSE.txt → BSDL} +3 -3
- data/COPYING +56 -0
- data/lib/uri/common.rb +36 -16
- data/lib/uri/file.rb +3 -3
- data/lib/uri/ftp.rb +1 -1
- data/lib/uri/generic.rb +16 -26
- data/lib/uri/http.rb +2 -2
- data/lib/uri/rfc2396_parser.rb +3 -3
- data/lib/uri/rfc3986_parser.rb +26 -3
- data/lib/uri/version.rb +1 -1
- data/lib/uri.rb +9 -9
- metadata +9 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3741ee016cae6202bc6cc37831fd66551c7345f042db84e16e0c42a23e73fc4
|
4
|
+
data.tar.gz: ca5a5df406aaf613ed27613b56fbc3446596d80aa9541d2299d4ba2a17bf9cf1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9aa8a131d013045b632d03515ef521609c01c5e0d5a8ce1db18ba48e880a762aeda7ab1d346737681b66ac6a01144ddea78df8c8fbf2b2355cd2d536652bb6bc
|
7
|
+
data.tar.gz: bc2f58749df20109f28a758c0938db97f3e190a449082697681493b432a71781fd241bd535c918cb38d067fb3946ac1bd77e21872072858540073b87bdf03966
|
@@ -23,16 +23,16 @@ jobs:
|
|
23
23
|
- name: Setup Ruby
|
24
24
|
uses: ruby/setup-ruby@250fcd6a742febb1123a77a841497ccaa8b9e939 # v1.152.0
|
25
25
|
with:
|
26
|
-
ruby-version: '3.
|
26
|
+
ruby-version: '3.3'
|
27
27
|
bundler-cache: true
|
28
28
|
- name: Setup Pages
|
29
29
|
id: pages
|
30
|
-
uses: actions/configure-pages@
|
30
|
+
uses: actions/configure-pages@v5
|
31
31
|
- name: Build with RDoc
|
32
32
|
# Outputs to the './_site' directory by default
|
33
33
|
run: bundle exec rake rdoc
|
34
34
|
- name: Upload artifact
|
35
|
-
uses: actions/upload-pages-artifact@
|
35
|
+
uses: actions/upload-pages-artifact@v3
|
36
36
|
|
37
37
|
deploy:
|
38
38
|
environment:
|
@@ -43,4 +43,4 @@ jobs:
|
|
43
43
|
steps:
|
44
44
|
- name: Deploy to GitHub Pages
|
45
45
|
id: deployment
|
46
|
-
uses: actions/deploy-pages@
|
46
|
+
uses: actions/deploy-pages@v4
|
@@ -0,0 +1,46 @@
|
|
1
|
+
name: Publish gem to rubygems.org
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
tags:
|
6
|
+
- 'v*'
|
7
|
+
|
8
|
+
permissions:
|
9
|
+
contents: read
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
push:
|
13
|
+
if: github.repository == 'ruby/uri'
|
14
|
+
runs-on: ubuntu-latest
|
15
|
+
|
16
|
+
environment:
|
17
|
+
name: rubygems.org
|
18
|
+
url: https://rubygems.org/gems/uri
|
19
|
+
|
20
|
+
permissions:
|
21
|
+
contents: write
|
22
|
+
id-token: write
|
23
|
+
|
24
|
+
steps:
|
25
|
+
- name: Harden Runner
|
26
|
+
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
|
27
|
+
with:
|
28
|
+
egress-policy: audit
|
29
|
+
|
30
|
+
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
|
31
|
+
|
32
|
+
- name: Set up Ruby
|
33
|
+
uses: ruby/setup-ruby@a6e6f86333f0a2523ece813039b8b4be04560854 # v1.190.0
|
34
|
+
with:
|
35
|
+
bundler-cache: true
|
36
|
+
ruby-version: ruby
|
37
|
+
|
38
|
+
- name: Publish to RubyGems
|
39
|
+
uses: rubygems/release-gem@612653d273a73bdae1df8453e090060bb4db5f31 # v1
|
40
|
+
|
41
|
+
- name: Create GitHub release
|
42
|
+
run: |
|
43
|
+
tag_name="$(git describe --tags --abbrev=0)"
|
44
|
+
gh release create "${tag_name}" --verify-tag --generate-notes
|
45
|
+
env:
|
46
|
+
GITHUB_TOKEN: ${{ secrets.MATZBOT_GITHUB_WORKFLOW_TOKEN }}
|
data/{LICENSE.txt → BSDL}
RENAMED
@@ -4,10 +4,10 @@ Redistribution and use in source and binary forms, with or without
|
|
4
4
|
modification, are permitted provided that the following conditions
|
5
5
|
are met:
|
6
6
|
1. Redistributions of source code must retain the above copyright
|
7
|
-
notice, this list of conditions and the following disclaimer.
|
7
|
+
notice, this list of conditions and the following disclaimer.
|
8
8
|
2. Redistributions in binary form must reproduce the above copyright
|
9
|
-
notice, this list of conditions and the following disclaimer in the
|
10
|
-
documentation and/or other materials provided with the distribution.
|
9
|
+
notice, this list of conditions and the following disclaimer in the
|
10
|
+
documentation and/or other materials provided with the distribution.
|
11
11
|
|
12
12
|
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
13
13
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
data/COPYING
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
|
2
|
+
You can redistribute it and/or modify it under either the terms of the
|
3
|
+
2-clause BSDL (see the file BSDL), or the conditions below:
|
4
|
+
|
5
|
+
1. You may make and give away verbatim copies of the source form of the
|
6
|
+
software without restriction, provided that you duplicate all of the
|
7
|
+
original copyright notices and associated disclaimers.
|
8
|
+
|
9
|
+
2. You may modify your copy of the software in any way, provided that
|
10
|
+
you do at least ONE of the following:
|
11
|
+
|
12
|
+
a. place your modifications in the Public Domain or otherwise
|
13
|
+
make them Freely Available, such as by posting said
|
14
|
+
modifications to Usenet or an equivalent medium, or by allowing
|
15
|
+
the author to include your modifications in the software.
|
16
|
+
|
17
|
+
b. use the modified software only within your corporation or
|
18
|
+
organization.
|
19
|
+
|
20
|
+
c. give non-standard binaries non-standard names, with
|
21
|
+
instructions on where to get the original software distribution.
|
22
|
+
|
23
|
+
d. make other distribution arrangements with the author.
|
24
|
+
|
25
|
+
3. You may distribute the software in object code or binary form,
|
26
|
+
provided that you do at least ONE of the following:
|
27
|
+
|
28
|
+
a. distribute the binaries and library files of the software,
|
29
|
+
together with instructions (in the manual page or equivalent)
|
30
|
+
on where to get the original distribution.
|
31
|
+
|
32
|
+
b. accompany the distribution with the machine-readable source of
|
33
|
+
the software.
|
34
|
+
|
35
|
+
c. give non-standard binaries non-standard names, with
|
36
|
+
instructions on where to get the original software distribution.
|
37
|
+
|
38
|
+
d. make other distribution arrangements with the author.
|
39
|
+
|
40
|
+
4. You may modify and include the part of the software into any other
|
41
|
+
software (possibly commercial). But some files in the distribution
|
42
|
+
are not written by the author, so that they are not under these terms.
|
43
|
+
|
44
|
+
For the list of those files and their copying conditions, see the
|
45
|
+
file LEGAL.
|
46
|
+
|
47
|
+
5. The scripts and library files supplied as input to or produced as
|
48
|
+
output from the software do not automatically fall under the
|
49
|
+
copyright of the software, but belong to whomever generated them,
|
50
|
+
and may be sold commercially, and may be aggregated with this
|
51
|
+
software.
|
52
|
+
|
53
|
+
6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
|
54
|
+
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
55
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
56
|
+
PURPOSE.
|
data/lib/uri/common.rb
CHANGED
@@ -13,26 +13,46 @@ require_relative "rfc2396_parser"
|
|
13
13
|
require_relative "rfc3986_parser"
|
14
14
|
|
15
15
|
module URI
|
16
|
-
|
16
|
+
RFC2396_PARSER = RFC2396_Parser.new
|
17
|
+
Ractor.make_shareable(RFC2396_PARSER) if defined?(Ractor)
|
17
18
|
|
18
|
-
REGEXP = RFC2396_REGEXP
|
19
|
-
Parser = RFC2396_Parser
|
20
19
|
RFC3986_PARSER = RFC3986_Parser.new
|
21
20
|
Ractor.make_shareable(RFC3986_PARSER) if defined?(Ractor)
|
22
|
-
RFC2396_PARSER = RFC2396_Parser.new
|
23
|
-
Ractor.make_shareable(RFC2396_PARSER) if defined?(Ractor)
|
24
21
|
|
25
|
-
|
26
|
-
DEFAULT_PARSER
|
27
|
-
|
28
|
-
|
29
|
-
|
22
|
+
DEFAULT_PARSER = RFC3986_PARSER
|
23
|
+
Ractor.make_shareable(DEFAULT_PARSER) if defined?(Ractor)
|
24
|
+
|
25
|
+
def self.parser=(parser = RFC3986_PARSER)
|
26
|
+
remove_const(:Parser) if defined?(::URI::Parser)
|
27
|
+
const_set("Parser", parser.class)
|
28
|
+
|
29
|
+
remove_const(:REGEXP) if defined?(::URI::REGEXP)
|
30
|
+
remove_const(:PATTERN) if defined?(::URI::PATTERN)
|
31
|
+
if Parser == RFC2396_Parser
|
32
|
+
const_set("REGEXP", URI::RFC2396_REGEXP)
|
33
|
+
const_set("PATTERN", URI::RFC2396_REGEXP::PATTERN)
|
34
|
+
Parser.new.pattern.each_pair do |sym, str|
|
35
|
+
unless REGEXP::PATTERN.const_defined?(sym)
|
36
|
+
REGEXP::PATTERN.const_set(sym, str)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
Parser.new.regexp.each_pair do |sym, str|
|
42
|
+
remove_const(sym) if const_defined?(sym)
|
43
|
+
const_set(sym, str)
|
30
44
|
end
|
31
45
|
end
|
32
|
-
|
33
|
-
|
46
|
+
self.parser = RFC3986_PARSER
|
47
|
+
|
48
|
+
def self.const_missing(const)
|
49
|
+
if value = RFC2396_PARSER.regexp[const]
|
50
|
+
warn "URI::#{const} is obsolete. Use RFC2396_PARSER.regexp[#{const.inspect}] explicitly.", uplevel: 1 if $VERBOSE
|
51
|
+
value
|
52
|
+
else
|
53
|
+
super
|
54
|
+
end
|
34
55
|
end
|
35
|
-
Ractor.make_shareable(DEFAULT_PARSER) if defined?(Ractor)
|
36
56
|
|
37
57
|
module Util # :nodoc:
|
38
58
|
def make_components_hash(klass, array_hash)
|
@@ -170,7 +190,7 @@ module URI
|
|
170
190
|
# ["fragment", "top"]]
|
171
191
|
#
|
172
192
|
def self.split(uri)
|
173
|
-
|
193
|
+
DEFAULT_PARSER.split(uri)
|
174
194
|
end
|
175
195
|
|
176
196
|
# Returns a new \URI object constructed from the given string +uri+:
|
@@ -184,7 +204,7 @@ module URI
|
|
184
204
|
# if it may contain invalid URI characters.
|
185
205
|
#
|
186
206
|
def self.parse(uri)
|
187
|
-
|
207
|
+
DEFAULT_PARSER.parse(uri)
|
188
208
|
end
|
189
209
|
|
190
210
|
# Merges the given URI strings +str+
|
@@ -211,7 +231,7 @@ module URI
|
|
211
231
|
# # => #<URI::HTTP http://example.com/foo/bar>
|
212
232
|
#
|
213
233
|
def self.join(*str)
|
214
|
-
|
234
|
+
DEFAULT_PARSER.join(*str)
|
215
235
|
end
|
216
236
|
|
217
237
|
#
|
data/lib/uri/file.rb
CHANGED
@@ -70,17 +70,17 @@ module URI
|
|
70
70
|
|
71
71
|
# raise InvalidURIError
|
72
72
|
def check_userinfo(user)
|
73
|
-
raise URI::InvalidURIError, "
|
73
|
+
raise URI::InvalidURIError, "cannot set userinfo for file URI"
|
74
74
|
end
|
75
75
|
|
76
76
|
# raise InvalidURIError
|
77
77
|
def check_user(user)
|
78
|
-
raise URI::InvalidURIError, "
|
78
|
+
raise URI::InvalidURIError, "cannot set user for file URI"
|
79
79
|
end
|
80
80
|
|
81
81
|
# raise InvalidURIError
|
82
82
|
def check_password(user)
|
83
|
-
raise URI::InvalidURIError, "
|
83
|
+
raise URI::InvalidURIError, "cannot set password for file URI"
|
84
84
|
end
|
85
85
|
|
86
86
|
# do nothing
|
data/lib/uri/ftp.rb
CHANGED
@@ -17,7 +17,7 @@ module URI
|
|
17
17
|
# This class will be redesigned because of difference of implementations;
|
18
18
|
# the structure of its path. draft-hoffman-ftp-uri-04 is a draft but it
|
19
19
|
# is a good summary about the de facto spec.
|
20
|
-
#
|
20
|
+
# https://datatracker.ietf.org/doc/html/draft-hoffman-ftp-uri-04
|
21
21
|
#
|
22
22
|
class FTP < Generic
|
23
23
|
# A Default port of 21 for URI::FTP.
|
data/lib/uri/generic.rb
CHANGED
@@ -82,7 +82,7 @@ module URI
|
|
82
82
|
if args.kind_of?(Array)
|
83
83
|
return self.build(args.collect{|x|
|
84
84
|
if x.is_a?(String)
|
85
|
-
|
85
|
+
URI::RFC2396_PARSER.escape(x)
|
86
86
|
else
|
87
87
|
x
|
88
88
|
end
|
@@ -91,7 +91,7 @@ module URI
|
|
91
91
|
tmp = {}
|
92
92
|
args.each do |key, value|
|
93
93
|
tmp[key] = if value
|
94
|
-
|
94
|
+
URI::RFC2396_PARSER.escape(value)
|
95
95
|
else
|
96
96
|
value
|
97
97
|
end
|
@@ -393,7 +393,7 @@ module URI
|
|
393
393
|
def check_user(v)
|
394
394
|
if @opaque
|
395
395
|
raise InvalidURIError,
|
396
|
-
"
|
396
|
+
"cannot set user with opaque"
|
397
397
|
end
|
398
398
|
|
399
399
|
return v unless v
|
@@ -417,7 +417,7 @@ module URI
|
|
417
417
|
def check_password(v, user = @user)
|
418
418
|
if @opaque
|
419
419
|
raise InvalidURIError,
|
420
|
-
"
|
420
|
+
"cannot set password with opaque"
|
421
421
|
end
|
422
422
|
return v unless v
|
423
423
|
|
@@ -596,7 +596,7 @@ module URI
|
|
596
596
|
|
597
597
|
if @opaque
|
598
598
|
raise InvalidURIError,
|
599
|
-
"
|
599
|
+
"cannot set host with registry or opaque"
|
600
600
|
elsif parser.regexp[:HOST] !~ v
|
601
601
|
raise InvalidComponentError,
|
602
602
|
"bad component(expected host component): #{v}"
|
@@ -685,7 +685,7 @@ module URI
|
|
685
685
|
|
686
686
|
if @opaque
|
687
687
|
raise InvalidURIError,
|
688
|
-
"
|
688
|
+
"cannot set port with registry or opaque"
|
689
689
|
elsif !v.kind_of?(Integer) && parser.regexp[:PORT] !~ v
|
690
690
|
raise InvalidComponentError,
|
691
691
|
"bad component(expected port component): #{v.inspect}"
|
@@ -733,17 +733,17 @@ module URI
|
|
733
733
|
end
|
734
734
|
|
735
735
|
def check_registry(v) # :nodoc:
|
736
|
-
raise InvalidURIError, "
|
736
|
+
raise InvalidURIError, "cannot set registry"
|
737
737
|
end
|
738
738
|
private :check_registry
|
739
739
|
|
740
740
|
def set_registry(v) #:nodoc:
|
741
|
-
raise InvalidURIError, "
|
741
|
+
raise InvalidURIError, "cannot set registry"
|
742
742
|
end
|
743
743
|
protected :set_registry
|
744
744
|
|
745
745
|
def registry=(v)
|
746
|
-
raise InvalidURIError, "
|
746
|
+
raise InvalidURIError, "cannot set registry"
|
747
747
|
end
|
748
748
|
|
749
749
|
#
|
@@ -866,7 +866,7 @@ module URI
|
|
866
866
|
# hier_part = ( net_path | abs_path ) [ "?" query ]
|
867
867
|
if @host || @port || @user || @path # userinfo = @user + ':' + @password
|
868
868
|
raise InvalidURIError,
|
869
|
-
"
|
869
|
+
"cannot set opaque with host, port, userinfo or path"
|
870
870
|
elsif v && parser.regexp[:OPAQUE] !~ v
|
871
871
|
raise InvalidComponentError,
|
872
872
|
"bad component(expected opaque component): #{v}"
|
@@ -945,7 +945,7 @@ module URI
|
|
945
945
|
# == Description
|
946
946
|
#
|
947
947
|
# URI has components listed in order of decreasing significance from left to right,
|
948
|
-
# see RFC3986 https://
|
948
|
+
# see RFC3986 https://www.rfc-editor.org/rfc/rfc3986 1.2.3.
|
949
949
|
#
|
950
950
|
# == Usage
|
951
951
|
#
|
@@ -1235,7 +1235,7 @@ module URI
|
|
1235
1235
|
return rel, rel
|
1236
1236
|
end
|
1237
1237
|
|
1238
|
-
# you can modify `rel', but
|
1238
|
+
# you can modify `rel', but cannot `oth'.
|
1239
1239
|
return oth, rel
|
1240
1240
|
end
|
1241
1241
|
private :route_from0
|
@@ -1260,7 +1260,7 @@ module URI
|
|
1260
1260
|
# #=> #<URI::Generic /main.rbx?page=1>
|
1261
1261
|
#
|
1262
1262
|
def route_from(oth)
|
1263
|
-
# you can modify `rel', but
|
1263
|
+
# you can modify `rel', but cannot `oth'.
|
1264
1264
|
begin
|
1265
1265
|
oth, rel = route_from0(oth)
|
1266
1266
|
rescue
|
@@ -1364,6 +1364,9 @@ module URI
|
|
1364
1364
|
str << ':'
|
1365
1365
|
str << @port.to_s
|
1366
1366
|
end
|
1367
|
+
if (@host || @port) && !@path.empty? && !@path.start_with?('/')
|
1368
|
+
str << '/'
|
1369
|
+
end
|
1367
1370
|
str << @path
|
1368
1371
|
if @query
|
1369
1372
|
str << '?'
|
@@ -1399,19 +1402,6 @@ module URI
|
|
1399
1402
|
self.component_ary.eql?(oth.component_ary)
|
1400
1403
|
end
|
1401
1404
|
|
1402
|
-
=begin
|
1403
|
-
|
1404
|
-
--- URI::Generic#===(oth)
|
1405
|
-
|
1406
|
-
=end
|
1407
|
-
# def ===(oth)
|
1408
|
-
# raise NotImplementedError
|
1409
|
-
# end
|
1410
|
-
|
1411
|
-
=begin
|
1412
|
-
=end
|
1413
|
-
|
1414
|
-
|
1415
1405
|
# Returns an Array of the components defined from the COMPONENT Array.
|
1416
1406
|
def component_ary
|
1417
1407
|
component.collect do |x|
|
data/lib/uri/http.rb
CHANGED
@@ -85,7 +85,7 @@ module URI
|
|
85
85
|
# == Description
|
86
86
|
#
|
87
87
|
# Returns the authority for an HTTP uri, as defined in
|
88
|
-
# https://
|
88
|
+
# https://www.rfc-editor.org/rfc/rfc3986#section-3.2.
|
89
89
|
#
|
90
90
|
#
|
91
91
|
# Example:
|
@@ -106,7 +106,7 @@ module URI
|
|
106
106
|
# == Description
|
107
107
|
#
|
108
108
|
# Returns the origin for an HTTP uri, as defined in
|
109
|
-
# https://
|
109
|
+
# https://www.rfc-editor.org/rfc/rfc6454.
|
110
110
|
#
|
111
111
|
#
|
112
112
|
# Example:
|
data/lib/uri/rfc2396_parser.rb
CHANGED
@@ -140,11 +140,11 @@ module URI
|
|
140
140
|
|
141
141
|
if !scheme
|
142
142
|
raise InvalidURIError,
|
143
|
-
"bad URI(absolute but no scheme): #{uri}"
|
143
|
+
"bad URI (absolute but no scheme): #{uri}"
|
144
144
|
end
|
145
145
|
if !opaque && (!path && (!host && !registry))
|
146
146
|
raise InvalidURIError,
|
147
|
-
"bad URI(absolute but no path): #{uri}"
|
147
|
+
"bad URI (absolute but no path): #{uri}"
|
148
148
|
end
|
149
149
|
|
150
150
|
when @regexp[:REL_URI]
|
@@ -173,7 +173,7 @@ module URI
|
|
173
173
|
# server = [ [ userinfo "@" ] hostport ]
|
174
174
|
|
175
175
|
else
|
176
|
-
raise InvalidURIError, "bad URI(is not URI?): #{uri}"
|
176
|
+
raise InvalidURIError, "bad URI (is not URI?): #{uri}"
|
177
177
|
end
|
178
178
|
|
179
179
|
path = '' if !path && !opaque # (see RFC2396 Section 5.2)
|
data/lib/uri/rfc3986_parser.rb
CHANGED
@@ -78,7 +78,7 @@ module URI
|
|
78
78
|
begin
|
79
79
|
uri = uri.to_str
|
80
80
|
rescue NoMethodError
|
81
|
-
raise InvalidURIError, "bad URI(is not URI?): #{uri.inspect}"
|
81
|
+
raise InvalidURIError, "bad URI (is not URI?): #{uri.inspect}"
|
82
82
|
end
|
83
83
|
uri.ascii_only? or
|
84
84
|
raise InvalidURIError, "URI must be ascii only #{uri.dump}"
|
@@ -127,7 +127,7 @@ module URI
|
|
127
127
|
m["fragment"]
|
128
128
|
]
|
129
129
|
else
|
130
|
-
raise InvalidURIError, "bad URI(is not URI?): #{uri.inspect}"
|
130
|
+
raise InvalidURIError, "bad URI (is not URI?): #{uri.inspect}"
|
131
131
|
end
|
132
132
|
end
|
133
133
|
|
@@ -135,12 +135,35 @@ module URI
|
|
135
135
|
URI.for(*self.split(uri), self)
|
136
136
|
end
|
137
137
|
|
138
|
-
|
139
138
|
def join(*uris) # :nodoc:
|
140
139
|
uris[0] = convert_to_uri(uris[0])
|
141
140
|
uris.inject :merge
|
142
141
|
end
|
143
142
|
|
143
|
+
# Compatibility for RFC2396 parser
|
144
|
+
def extract(str, schemes = nil, &block) # :nodoc:
|
145
|
+
warn "URI::RFC3986_PARSER.extract is obsoleted. Use URI::RFC2396_PARSER.extract explicitly.", uplevel: 1 if $VERBOSE
|
146
|
+
RFC2396_PARSER.extract(str, schemes, &block)
|
147
|
+
end
|
148
|
+
|
149
|
+
# Compatibility for RFC2396 parser
|
150
|
+
def make_regexp(schemes = nil) # :nodoc:
|
151
|
+
warn "URI::RFC3986_PARSER.make_regexp is obsoleted. Use URI::RFC2396_PARSER.make_regexp explicitly.", uplevel: 1 if $VERBOSE
|
152
|
+
RFC2396_PARSER.make_regexp(schemes)
|
153
|
+
end
|
154
|
+
|
155
|
+
# Compatibility for RFC2396 parser
|
156
|
+
def escape(str, unsafe = nil) # :nodoc:
|
157
|
+
warn "URI::RFC3986_PARSER.escape is obsoleted. Use URI::RFC2396_PARSER.escape explicitly.", uplevel: 1 if $VERBOSE
|
158
|
+
unsafe ? RFC2396_PARSER.escape(str, unsafe) : RFC2396_PARSER.escape(str)
|
159
|
+
end
|
160
|
+
|
161
|
+
# Compatibility for RFC2396 parser
|
162
|
+
def unescape(str, escaped = nil) # :nodoc:
|
163
|
+
warn "URI::RFC3986_PARSER.unescape is obsoleted. Use URI::RFC2396_PARSER.unescape explicitly.", uplevel: 1 if $VERBOSE
|
164
|
+
escaped ? RFC2396_PARSER.unescape(str, escaped) : RFC2396_PARSER.unescape(str)
|
165
|
+
end
|
166
|
+
|
144
167
|
@@to_s = Kernel.instance_method(:to_s)
|
145
168
|
if @@to_s.respond_to?(:bind_call)
|
146
169
|
def inspect
|
data/lib/uri/version.rb
CHANGED
data/lib/uri.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: false
|
2
2
|
# URI is a module providing classes to handle Uniform Resource Identifiers
|
3
|
-
# (RFC2396[
|
3
|
+
# (RFC2396[https://www.rfc-editor.org/rfc/rfc2396]).
|
4
4
|
#
|
5
5
|
# == Features
|
6
6
|
#
|
@@ -47,14 +47,14 @@
|
|
47
47
|
# A good place to view an RFC spec is http://www.ietf.org/rfc.html.
|
48
48
|
#
|
49
49
|
# Here is a list of all related RFC's:
|
50
|
-
# - RFC822[
|
51
|
-
# - RFC1738[
|
52
|
-
# - RFC2255[
|
53
|
-
# - RFC2368[
|
54
|
-
# - RFC2373[
|
55
|
-
# - RFC2396[
|
56
|
-
# - RFC2732[
|
57
|
-
# - RFC3986[
|
50
|
+
# - RFC822[https://www.rfc-editor.org/rfc/rfc822]
|
51
|
+
# - RFC1738[https://www.rfc-editor.org/rfc/rfc1738]
|
52
|
+
# - RFC2255[https://www.rfc-editor.org/rfc/rfc2255]
|
53
|
+
# - RFC2368[https://www.rfc-editor.org/rfc/rfc2368]
|
54
|
+
# - RFC2373[https://www.rfc-editor.org/rfc/rfc2373]
|
55
|
+
# - RFC2396[https://www.rfc-editor.org/rfc/rfc2396]
|
56
|
+
# - RFC2732[https://www.rfc-editor.org/rfc/rfc2732]
|
57
|
+
# - RFC3986[https://www.rfc-editor.org/rfc/rfc3986]
|
58
58
|
#
|
59
59
|
# == Class tree
|
60
60
|
#
|
metadata
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Akira Yamada
|
8
|
+
autorequire:
|
8
9
|
bindir: exe
|
9
10
|
cert_chain: []
|
10
|
-
date: 2024-
|
11
|
+
date: 2024-11-07 00:00:00.000000000 Z
|
11
12
|
dependencies: []
|
12
13
|
description: URI is a module providing classes to handle Uniform Resource Identifiers
|
13
14
|
email:
|
@@ -18,10 +19,12 @@ extra_rdoc_files: []
|
|
18
19
|
files:
|
19
20
|
- ".github/dependabot.yml"
|
20
21
|
- ".github/workflows/gh-pages.yml"
|
22
|
+
- ".github/workflows/push_gem.yml"
|
21
23
|
- ".github/workflows/test.yml"
|
22
24
|
- ".gitignore"
|
25
|
+
- BSDL
|
26
|
+
- COPYING
|
23
27
|
- Gemfile
|
24
|
-
- LICENSE.txt
|
25
28
|
- README.md
|
26
29
|
- Rakefile
|
27
30
|
- bin/console
|
@@ -53,6 +56,7 @@ metadata:
|
|
53
56
|
documentation_uri: https://ruby.github.io/uri/
|
54
57
|
homepage_uri: https://github.com/ruby/uri
|
55
58
|
source_code_uri: https://github.com/ruby/uri
|
59
|
+
post_install_message:
|
56
60
|
rdoc_options: []
|
57
61
|
require_paths:
|
58
62
|
- lib
|
@@ -67,7 +71,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
67
71
|
- !ruby/object:Gem::Version
|
68
72
|
version: '0'
|
69
73
|
requirements: []
|
70
|
-
rubygems_version: 3.
|
74
|
+
rubygems_version: 3.5.11
|
75
|
+
signing_key:
|
71
76
|
specification_version: 4
|
72
77
|
summary: URI is a module providing classes to handle Uniform Resource Identifiers
|
73
78
|
test_files: []
|