addressable 1.0.2 → 1.0.3
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/CHANGELOG +3 -0
- data/coverage/-Library-Ruby-Gems-1_8-gems-rcov-0_8_1_2_0-lib-rcov_rb.html +1598 -0
- data/coverage/-Library-Ruby-Gems-1_8-gems-rspec-1_1_3-bin-spec.html +614 -0
- data/coverage/-Library-Ruby-Gems-1_8-gems-rspec-1_1_3-lib-spec_rb.html +640 -0
- data/coverage/-Library-Ruby-Gems-1_8-gems-rspec-1_1_3-plugins-mock_frameworks-rspec_rb.html +628 -0
- data/coverage/index.html +113 -5
- data/coverage/lib-addressable-uri_rb.html +176 -170
- data/coverage/lib-addressable-version_rb.html +3 -3
- data/lib/addressable/uri.rb +7 -1
- data/lib/addressable/version.rb +2 -2
- data/spec/addressable/uri_spec.rb +12 -0
- metadata +8 -29
- data/doc/classes/Addressable.html +0 -115
- data/doc/classes/Addressable/URI.html +0 -2509
- data/doc/classes/Addressable/URI/CharacterClasses.html +0 -173
- data/doc/classes/Addressable/URI/IDNA.html +0 -193
- data/doc/classes/Addressable/URI/InvalidOptionError.html +0 -117
- data/doc/classes/Addressable/URI/InvalidTemplateValue.html +0 -117
- data/doc/classes/Addressable/URI/InvalidURIError.html +0 -117
- data/doc/created.rid +0 -1
- data/doc/files/CHANGELOG.html +0 -140
- data/doc/files/LICENSE.html +0 -130
- data/doc/files/README.html +0 -133
- data/doc/files/lib/addressable/uri_rb.html +0 -110
- data/doc/files/lib/addressable/version_rb.html +0 -101
- data/doc/fr_class_index.html +0 -33
- data/doc/fr_file_index.html +0 -31
- data/doc/fr_method_index.html +0 -85
- data/doc/index.html +0 -24
- data/doc/rdoc-style.css +0 -208
- data/specdoc/index.html +0 -1486
@@ -553,7 +553,7 @@ span.run100 {
|
|
553
553
|
</style>
|
554
554
|
</head>
|
555
555
|
<body><h3>C0 code coverage information</h3>
|
556
|
-
<p>Generated on
|
556
|
+
<p>Generated on Sat May 03 13:27:45 -0400 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
|
557
557
|
</p>
|
558
558
|
<hr/>
|
559
559
|
<pre><span class='marked0'>Code reported as executed by Ruby looks like this...
|
@@ -599,7 +599,7 @@ span.run100 {
|
|
599
599
|
</tbody>
|
600
600
|
</table>
|
601
601
|
<pre><span class="inferred1"><a name="line1"></a> 1 #--
|
602
|
-
</span><span class="inferred0"><a name="line2"></a> 2 # Addressable, Copyright (c) 2006-
|
602
|
+
</span><span class="inferred0"><a name="line2"></a> 2 # Addressable, Copyright (c) 2006-2008 Bob Aman
|
603
603
|
</span><span class="inferred1"><a name="line3"></a> 3 #
|
604
604
|
</span><span class="inferred0"><a name="line4"></a> 4 # Permission is hereby granted, free of charge, to any person obtaining
|
605
605
|
</span><span class="inferred1"><a name="line5"></a> 5 # a copy of this software and associated documentation files (the
|
@@ -625,7 +625,7 @@ span.run100 {
|
|
625
625
|
</span><span class="marked1"><a name="line25"></a>25 module ADDRESSABLE_VERSION #:nodoc:
|
626
626
|
</span><span class="marked0"><a name="line26"></a>26 MAJOR = 1
|
627
627
|
</span><span class="marked1"><a name="line27"></a>27 MINOR = 0
|
628
|
-
</span><span class="marked0"><a name="line28"></a>28 TINY =
|
628
|
+
</span><span class="marked0"><a name="line28"></a>28 TINY = 3
|
629
629
|
</span><span class="inferred1"><a name="line29"></a>29
|
630
630
|
</span><span class="marked0"><a name="line30"></a>30 STRING = [MAJOR, MINOR, TINY].join('.')
|
631
631
|
</span><span class="inferred1"><a name="line31"></a>31 end
|
data/lib/addressable/uri.rb
CHANGED
@@ -93,7 +93,7 @@ module Addressable
|
|
93
93
|
host = authority.gsub(/^([^\[\]]*)@/, "").gsub(/:([^:@\[\]]*?)$/, "")
|
94
94
|
port = authority.scan(/:([^:@\[\]]*?)$/).flatten[0]
|
95
95
|
end
|
96
|
-
if port ==
|
96
|
+
if port == ""
|
97
97
|
port = nil
|
98
98
|
end
|
99
99
|
|
@@ -1070,6 +1070,12 @@ module Addressable
|
|
1070
1070
|
return false unless uri.kind_of?(self.class)
|
1071
1071
|
return self.to_s == uri.to_s
|
1072
1072
|
end
|
1073
|
+
|
1074
|
+
# Returns a hash value that will make a URI equivalent to its normalized
|
1075
|
+
# form.
|
1076
|
+
def hash
|
1077
|
+
return (self.normalize.to_s.hash * -1)
|
1078
|
+
end
|
1073
1079
|
|
1074
1080
|
# Clones the URI object.
|
1075
1081
|
def dup
|
data/lib/addressable/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Addressable, Copyright (c) 2006-
|
2
|
+
# Addressable, Copyright (c) 2006-2008 Bob Aman
|
3
3
|
#
|
4
4
|
# Permission is hereby granted, free of charge, to any person obtaining
|
5
5
|
# a copy of this software and associated documentation files (the
|
@@ -25,7 +25,7 @@ module Addressable
|
|
25
25
|
module ADDRESSABLE_VERSION #:nodoc:
|
26
26
|
MAJOR = 1
|
27
27
|
MINOR = 0
|
28
|
-
TINY =
|
28
|
+
TINY = 3
|
29
29
|
|
30
30
|
STRING = [MAJOR, MINOR, TINY].join('.')
|
31
31
|
end
|
@@ -610,6 +610,18 @@ describe Addressable::URI, " when parsed from " +
|
|
610
610
|
it "should be identical to its duplicate" do
|
611
611
|
@uri.should == @uri.dup
|
612
612
|
end
|
613
|
+
|
614
|
+
it "should have the same hash as its duplicate" do
|
615
|
+
@uri.hash.should == @uri.dup.hash
|
616
|
+
end
|
617
|
+
|
618
|
+
it "should have a different hash from its equivalent String value" do
|
619
|
+
@uri.hash.should_not == @uri.to_s.hash
|
620
|
+
end
|
621
|
+
|
622
|
+
it "should have the same hash as an equivalent URI" do
|
623
|
+
@uri.hash.should == Addressable::URI.parse("http://example.com:80/").hash
|
624
|
+
end
|
613
625
|
end
|
614
626
|
|
615
627
|
describe Addressable::URI, " when parsed from " +
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: addressable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
platform:
|
4
|
+
version: 1.0.3
|
5
|
+
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bob Aman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2008-05-03 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -46,31 +46,10 @@ files:
|
|
46
46
|
- spec/addressable/uri_spec.rb
|
47
47
|
- spec/data
|
48
48
|
- spec/data/rfc3986.txt
|
49
|
-
-
|
50
|
-
-
|
51
|
-
-
|
52
|
-
-
|
53
|
-
- doc/classes/Addressable/URI/IDNA.html
|
54
|
-
- doc/classes/Addressable/URI/InvalidOptionError.html
|
55
|
-
- doc/classes/Addressable/URI/InvalidTemplateValue.html
|
56
|
-
- doc/classes/Addressable/URI/InvalidURIError.html
|
57
|
-
- doc/classes/Addressable/URI.html
|
58
|
-
- doc/classes/Addressable.html
|
59
|
-
- doc/created.rid
|
60
|
-
- doc/files
|
61
|
-
- doc/files/CHANGELOG.html
|
62
|
-
- doc/files/lib
|
63
|
-
- doc/files/lib/addressable
|
64
|
-
- doc/files/lib/addressable/uri_rb.html
|
65
|
-
- doc/files/lib/addressable/version_rb.html
|
66
|
-
- doc/files/LICENSE.html
|
67
|
-
- doc/files/README.html
|
68
|
-
- doc/fr_class_index.html
|
69
|
-
- doc/fr_file_index.html
|
70
|
-
- doc/fr_method_index.html
|
71
|
-
- doc/index.html
|
72
|
-
- doc/rdoc-style.css
|
73
|
-
- specdoc/index.html
|
49
|
+
- coverage/-Library-Ruby-Gems-1_8-gems-rcov-0_8_1_2_0-lib-rcov_rb.html
|
50
|
+
- coverage/-Library-Ruby-Gems-1_8-gems-rspec-1_1_3-bin-spec.html
|
51
|
+
- coverage/-Library-Ruby-Gems-1_8-gems-rspec-1_1_3-lib-spec_rb.html
|
52
|
+
- coverage/-Library-Ruby-Gems-1_8-gems-rspec-1_1_3-plugins-mock_frameworks-rspec_rb.html
|
74
53
|
- coverage/index.html
|
75
54
|
- coverage/lib-addressable-uri_rb.html
|
76
55
|
- coverage/lib-addressable-version_rb.html
|
@@ -101,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
80
|
requirements: []
|
102
81
|
|
103
82
|
rubyforge_project: addressable
|
104
|
-
rubygems_version: 0.
|
83
|
+
rubygems_version: 1.0.1
|
105
84
|
signing_key:
|
106
85
|
specification_version: 2
|
107
86
|
summary: URI Implementation
|
@@ -1,115 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
2
|
-
<!DOCTYPE html
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
-
|
6
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
-
<head>
|
8
|
-
<title>Module: Addressable</title>
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
10
|
-
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
-
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
12
|
-
<script type="text/javascript">
|
13
|
-
// <![CDATA[
|
14
|
-
|
15
|
-
function popupCode( url ) {
|
16
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
-
}
|
18
|
-
|
19
|
-
function toggleCode( id ) {
|
20
|
-
if ( document.getElementById )
|
21
|
-
elem = document.getElementById( id );
|
22
|
-
else if ( document.all )
|
23
|
-
elem = eval( "document.all." + id );
|
24
|
-
else
|
25
|
-
return false;
|
26
|
-
|
27
|
-
elemStyle = elem.style;
|
28
|
-
|
29
|
-
if ( elemStyle.display != "block" ) {
|
30
|
-
elemStyle.display = "block"
|
31
|
-
} else {
|
32
|
-
elemStyle.display = "none"
|
33
|
-
}
|
34
|
-
|
35
|
-
return true;
|
36
|
-
}
|
37
|
-
|
38
|
-
// Make codeblocks hidden by default
|
39
|
-
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
-
|
41
|
-
// ]]>
|
42
|
-
</script>
|
43
|
-
|
44
|
-
</head>
|
45
|
-
<body>
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
<div id="classHeader">
|
50
|
-
<table class="header-table">
|
51
|
-
<tr class="top-aligned-row">
|
52
|
-
<td><strong>Module</strong></td>
|
53
|
-
<td class="class-name-in-header">Addressable</td>
|
54
|
-
</tr>
|
55
|
-
<tr class="top-aligned-row">
|
56
|
-
<td><strong>In:</strong></td>
|
57
|
-
<td>
|
58
|
-
<a href="../files/lib/addressable/uri_rb.html">
|
59
|
-
lib/addressable/uri.rb
|
60
|
-
</a>
|
61
|
-
<br />
|
62
|
-
<a href="../files/lib/addressable/version_rb.html">
|
63
|
-
lib/addressable/version.rb
|
64
|
-
</a>
|
65
|
-
<br />
|
66
|
-
</td>
|
67
|
-
</tr>
|
68
|
-
|
69
|
-
</table>
|
70
|
-
</div>
|
71
|
-
<!-- banner header -->
|
72
|
-
|
73
|
-
<div id="bodyContent">
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
<div id="contextContent">
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
</div>
|
82
|
-
|
83
|
-
|
84
|
-
</div>
|
85
|
-
|
86
|
-
|
87
|
-
<!-- if includes -->
|
88
|
-
|
89
|
-
<div id="section">
|
90
|
-
|
91
|
-
<div id="class-list">
|
92
|
-
<h3 class="section-bar">Classes and Modules</h3>
|
93
|
-
|
94
|
-
Class <a href="Addressable/URI.html" class="link">Addressable::URI</a><br />
|
95
|
-
|
96
|
-
</div>
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
<!-- if method_list -->
|
105
|
-
|
106
|
-
|
107
|
-
</div>
|
108
|
-
|
109
|
-
|
110
|
-
<div id="validator-badges">
|
111
|
-
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
112
|
-
</div>
|
113
|
-
|
114
|
-
</body>
|
115
|
-
</html>
|
@@ -1,2509 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
2
|
-
<!DOCTYPE html
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
-
|
6
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
-
<head>
|
8
|
-
<title>Class: Addressable::URI</title>
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
10
|
-
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
-
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
12
|
-
<script type="text/javascript">
|
13
|
-
// <![CDATA[
|
14
|
-
|
15
|
-
function popupCode( url ) {
|
16
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
-
}
|
18
|
-
|
19
|
-
function toggleCode( id ) {
|
20
|
-
if ( document.getElementById )
|
21
|
-
elem = document.getElementById( id );
|
22
|
-
else if ( document.all )
|
23
|
-
elem = eval( "document.all." + id );
|
24
|
-
else
|
25
|
-
return false;
|
26
|
-
|
27
|
-
elemStyle = elem.style;
|
28
|
-
|
29
|
-
if ( elemStyle.display != "block" ) {
|
30
|
-
elemStyle.display = "block"
|
31
|
-
} else {
|
32
|
-
elemStyle.display = "none"
|
33
|
-
}
|
34
|
-
|
35
|
-
return true;
|
36
|
-
}
|
37
|
-
|
38
|
-
// Make codeblocks hidden by default
|
39
|
-
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
-
|
41
|
-
// ]]>
|
42
|
-
</script>
|
43
|
-
|
44
|
-
</head>
|
45
|
-
<body>
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
<div id="classHeader">
|
50
|
-
<table class="header-table">
|
51
|
-
<tr class="top-aligned-row">
|
52
|
-
<td><strong>Class</strong></td>
|
53
|
-
<td class="class-name-in-header">Addressable::URI</td>
|
54
|
-
</tr>
|
55
|
-
<tr class="top-aligned-row">
|
56
|
-
<td><strong>In:</strong></td>
|
57
|
-
<td>
|
58
|
-
<a href="../../files/lib/addressable/uri_rb.html">
|
59
|
-
lib/addressable/uri.rb
|
60
|
-
</a>
|
61
|
-
<br />
|
62
|
-
</td>
|
63
|
-
</tr>
|
64
|
-
|
65
|
-
<tr class="top-aligned-row">
|
66
|
-
<td><strong>Parent:</strong></td>
|
67
|
-
<td>
|
68
|
-
Object
|
69
|
-
</td>
|
70
|
-
</tr>
|
71
|
-
</table>
|
72
|
-
</div>
|
73
|
-
<!-- banner header -->
|
74
|
-
|
75
|
-
<div id="bodyContent">
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
<div id="contextContent">
|
80
|
-
|
81
|
-
<div id="description">
|
82
|
-
<p>
|
83
|
-
This is an implementation of a <a href="URI.html">URI</a> parser based on
|
84
|
-
RFC 3986, 3987.
|
85
|
-
</p>
|
86
|
-
|
87
|
-
</div>
|
88
|
-
|
89
|
-
|
90
|
-
</div>
|
91
|
-
|
92
|
-
<div id="method-list">
|
93
|
-
<h3 class="section-bar">Methods</h3>
|
94
|
-
|
95
|
-
<div class="name-list">
|
96
|
-
<a href="#M000041">+</a>
|
97
|
-
<a href="#M000052">==</a>
|
98
|
-
<a href="#M000051">===</a>
|
99
|
-
<a href="#M000040">absolute?</a>
|
100
|
-
<a href="#M000023">authority</a>
|
101
|
-
<a href="#M000024">authority=</a>
|
102
|
-
<a href="#M000032">basename</a>
|
103
|
-
<a href="#M000003">convert_path</a>
|
104
|
-
<a href="#M000050">display_uri</a>
|
105
|
-
<a href="#M000054">dup</a>
|
106
|
-
<a href="#M000009">encode</a>
|
107
|
-
<a href="#M000007">encode_segment</a>
|
108
|
-
<a href="#M000053">eql?</a>
|
109
|
-
<a href="#M000004">expand_template</a>
|
110
|
-
<a href="#M000033">extname</a>
|
111
|
-
<a href="#M000011">extract</a>
|
112
|
-
<a href="#M000005">extract_mapping</a>
|
113
|
-
<a href="#M000036">fragment</a>
|
114
|
-
<a href="#M000037">fragment=</a>
|
115
|
-
<a href="#M000002">heuristic_parse</a>
|
116
|
-
<a href="#M000021">host</a>
|
117
|
-
<a href="#M000022">host=</a>
|
118
|
-
<a href="#M000057">inspect</a>
|
119
|
-
<a href="#M000038">ip_based?</a>
|
120
|
-
<a href="#M000025">ip_based_schemes</a>
|
121
|
-
<a href="#M000043">join</a>
|
122
|
-
<a href="#M000006">join</a>
|
123
|
-
<a href="#M000045">join!</a>
|
124
|
-
<a href="#M000042">merge</a>
|
125
|
-
<a href="#M000044">merge!</a>
|
126
|
-
<a href="#M000012">new</a>
|
127
|
-
<a href="#M000048">normalize</a>
|
128
|
-
<a href="#M000049">normalize!</a>
|
129
|
-
<a href="#M000010">normalized_encode</a>
|
130
|
-
<a href="#M000001">parse</a>
|
131
|
-
<a href="#M000017">password</a>
|
132
|
-
<a href="#M000018">password=</a>
|
133
|
-
<a href="#M000030">path</a>
|
134
|
-
<a href="#M000031">path=</a>
|
135
|
-
<a href="#M000027">port</a>
|
136
|
-
<a href="#M000028">port=</a>
|
137
|
-
<a href="#M000034">query</a>
|
138
|
-
<a href="#M000035">query=</a>
|
139
|
-
<a href="#M000039">relative?</a>
|
140
|
-
<a href="#M000046">route_from</a>
|
141
|
-
<a href="#M000047">route_to</a>
|
142
|
-
<a href="#M000013">scheme</a>
|
143
|
-
<a href="#M000014">scheme=</a>
|
144
|
-
<a href="#M000026">scheme_mapping</a>
|
145
|
-
<a href="#M000029">specified_port</a>
|
146
|
-
<a href="#M000056">to_hash</a>
|
147
|
-
<a href="#M000055">to_s</a>
|
148
|
-
<a href="#M000008">unencode_segment</a>
|
149
|
-
<a href="#M000015">user</a>
|
150
|
-
<a href="#M000016">user=</a>
|
151
|
-
<a href="#M000019">userinfo</a>
|
152
|
-
<a href="#M000020">userinfo=</a>
|
153
|
-
</div>
|
154
|
-
</div>
|
155
|
-
|
156
|
-
</div>
|
157
|
-
|
158
|
-
|
159
|
-
<!-- if includes -->
|
160
|
-
|
161
|
-
<div id="section">
|
162
|
-
|
163
|
-
<div id="class-list">
|
164
|
-
<h3 class="section-bar">Classes and Modules</h3>
|
165
|
-
|
166
|
-
Module <a href="URI/CharacterClasses.html" class="link">Addressable::URI::CharacterClasses</a><br />
|
167
|
-
Module <a href="URI/IDNA.html" class="link">Addressable::URI::IDNA</a><br />
|
168
|
-
Class <a href="URI/InvalidOptionError.html" class="link">Addressable::URI::InvalidOptionError</a><br />
|
169
|
-
Class <a href="URI/InvalidTemplateValue.html" class="link">Addressable::URI::InvalidTemplateValue</a><br />
|
170
|
-
Class <a href="URI/InvalidURIError.html" class="link">Addressable::URI::InvalidURIError</a><br />
|
171
|
-
|
172
|
-
</div>
|
173
|
-
|
174
|
-
|
175
|
-
<div id="aliases-list">
|
176
|
-
<h3 class="section-bar">External Aliases</h3>
|
177
|
-
|
178
|
-
<div class="name-list">
|
179
|
-
<table summary="aliases">
|
180
|
-
<tr class="top-aligned-row context-row">
|
181
|
-
<td class="context-item-name">encode</td>
|
182
|
-
<td>-></td>
|
183
|
-
<td class="context-item-value">escape</td>
|
184
|
-
</tr>
|
185
|
-
</table>
|
186
|
-
</div>
|
187
|
-
</div>
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
<!-- if method_list -->
|
194
|
-
<div id="methods">
|
195
|
-
<h3 class="section-bar">Public Class methods</h3>
|
196
|
-
|
197
|
-
<div id="method-M000003" class="method-detail">
|
198
|
-
<a name="M000003"></a>
|
199
|
-
|
200
|
-
<div class="method-heading">
|
201
|
-
<a href="#M000003" class="method-signature">
|
202
|
-
<span class="method-name">convert_path</span><span class="method-args">(path)</span>
|
203
|
-
</a>
|
204
|
-
</div>
|
205
|
-
|
206
|
-
<div class="method-description">
|
207
|
-
<p>
|
208
|
-
Converts a <a href="URI.html#M000030">path</a> to a file protocol <a
|
209
|
-
href="URI.html">URI</a>. If the <a href="URI.html#M000030">path</a>
|
210
|
-
supplied is relative, it will be returned as a relative <a
|
211
|
-
href="URI.html">URI</a>. If the <a href="URI.html#M000030">path</a>
|
212
|
-
supplied is actually a <a href="URI.html">URI</a>, it will return the
|
213
|
-
parsed <a href="URI.html">URI</a>.
|
214
|
-
</p>
|
215
|
-
<p><a class="source-toggle" href="#"
|
216
|
-
onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
|
217
|
-
<div class="method-source-code" id="M000003-source">
|
218
|
-
<pre>
|
219
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 144</span>
|
220
|
-
144: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">convert_path</span>(<span class="ruby-identifier">path</span>)
|
221
|
-
145: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span>.<span class="ruby-identifier">nil?</span>
|
222
|
-
146:
|
223
|
-
147: <span class="ruby-identifier">converted_uri</span> = <span class="ruby-identifier">path</span>.<span class="ruby-identifier">strip</span>
|
224
|
-
148: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">converted_uri</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">converted_uri</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">"/"</span>
|
225
|
-
149: <span class="ruby-identifier">converted_uri</span> = <span class="ruby-value str">"file://"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">converted_uri</span>
|
226
|
-
150: <span class="ruby-keyword kw">end</span>
|
227
|
-
151: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">converted_uri</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span> <span class="ruby-operator">&&</span>
|
228
|
-
152: <span class="ruby-identifier">converted_uri</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/^[a-zA-Z]:[\\\/]/</span>).<span class="ruby-identifier">size</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
229
|
-
153: <span class="ruby-identifier">converted_uri</span> = <span class="ruby-value str">"file:///"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">converted_uri</span>
|
230
|
-
154: <span class="ruby-keyword kw">end</span>
|
231
|
-
155: <span class="ruby-identifier">converted_uri</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/^file:\/*/i</span>, <span class="ruby-value str">"file:///"</span>)
|
232
|
-
156: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">converted_uri</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^file:/i</span>
|
233
|
-
157: <span class="ruby-comment cmt"># Adjust windows-style uris</span>
|
234
|
-
158: <span class="ruby-identifier">converted_uri</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/^file:\/\/\/([a-zA-Z])\|/i</span>, <span class="ruby-value str">'file:///\1:'</span>)
|
235
|
-
159: <span class="ruby-identifier">converted_uri</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\\/</span>, <span class="ruby-value str">'/'</span>)
|
236
|
-
160: <span class="ruby-identifier">converted_uri</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">converted_uri</span>).<span class="ruby-identifier">normalize</span>
|
237
|
-
161: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">converted_uri</span>.<span class="ruby-identifier">path</span>) <span class="ruby-operator">&&</span>
|
238
|
-
162: <span class="ruby-constant">File</span>.<span class="ruby-identifier">stat</span>(<span class="ruby-identifier">converted_uri</span>.<span class="ruby-identifier">path</span>).<span class="ruby-identifier">directory?</span>
|
239
|
-
163: <span class="ruby-identifier">converted_uri</span>.<span class="ruby-identifier">path</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\/$/</span>, <span class="ruby-value str">""</span>)
|
240
|
-
164: <span class="ruby-identifier">converted_uri</span>.<span class="ruby-identifier">path</span> = <span class="ruby-identifier">converted_uri</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
|
241
|
-
165: <span class="ruby-keyword kw">end</span>
|
242
|
-
166: <span class="ruby-keyword kw">else</span>
|
243
|
-
167: <span class="ruby-identifier">converted_uri</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">converted_uri</span>)
|
244
|
-
168: <span class="ruby-keyword kw">end</span>
|
245
|
-
169:
|
246
|
-
170: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">converted_uri</span>
|
247
|
-
171: <span class="ruby-keyword kw">end</span>
|
248
|
-
</pre>
|
249
|
-
</div>
|
250
|
-
</div>
|
251
|
-
</div>
|
252
|
-
|
253
|
-
<div id="method-M000009" class="method-detail">
|
254
|
-
<a name="M000009"></a>
|
255
|
-
|
256
|
-
<div class="method-heading">
|
257
|
-
<a href="#M000009" class="method-signature">
|
258
|
-
<span class="method-name">encode</span><span class="method-args">(uri)</span>
|
259
|
-
</a>
|
260
|
-
</div>
|
261
|
-
|
262
|
-
<div class="method-description">
|
263
|
-
<p>
|
264
|
-
Percent encodes any special characters in the <a href="URI.html">URI</a>.
|
265
|
-
This method does not take IRIs or IDNs into account.
|
266
|
-
</p>
|
267
|
-
<p><a class="source-toggle" href="#"
|
268
|
-
onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
|
269
|
-
<div class="method-source-code" id="M000009-source">
|
270
|
-
<pre>
|
271
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 373</span>
|
272
|
-
373: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode</span>(<span class="ruby-identifier">uri</span>)
|
273
|
-
374: <span class="ruby-identifier">uri_object</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">uri</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>)
|
274
|
-
375: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
|
275
|
-
376: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">scheme</span>,
|
276
|
-
377: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">SCHEME</span>),
|
277
|
-
378: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">user</span>,
|
278
|
-
379: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
|
279
|
-
380: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">password</span>,
|
280
|
-
381: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
|
281
|
-
382: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">host</span>,
|
282
|
-
383: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
|
283
|
-
384: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">specified_port</span>,
|
284
|
-
385: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
|
285
|
-
386: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">path</span>,
|
286
|
-
387: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">PATH</span>),
|
287
|
-
388: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">query</span>,
|
288
|
-
389: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">QUERY</span>),
|
289
|
-
390: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">fragment</span>,
|
290
|
-
391: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">FRAGMENT</span>)
|
291
|
-
392: ).<span class="ruby-identifier">to_s</span>
|
292
|
-
393: <span class="ruby-keyword kw">end</span>
|
293
|
-
</pre>
|
294
|
-
</div>
|
295
|
-
</div>
|
296
|
-
</div>
|
297
|
-
|
298
|
-
<div id="method-M000007" class="method-detail">
|
299
|
-
<a name="M000007"></a>
|
300
|
-
|
301
|
-
<div class="method-heading">
|
302
|
-
<a href="#M000007" class="method-signature">
|
303
|
-
<span class="method-name">encode_segment</span><span class="method-args">(segment, character_class= Addressable::URI::CharacterClasses::RESERVED + Addressable::URI::CharacterClasses::UNRESERVED)</span>
|
304
|
-
</a>
|
305
|
-
</div>
|
306
|
-
|
307
|
-
<div class="method-description">
|
308
|
-
<p>
|
309
|
-
Percent encodes a <a href="URI.html">URI</a> segment. Returns a string.
|
310
|
-
Takes an optional character class parameter, which should be specified as a
|
311
|
-
string containing a regular expression character class (not including the
|
312
|
-
surrounding square brackets). The character class parameter defaults to the
|
313
|
-
reserved plus unreserved character classes specified in RFC 3986. Usage of
|
314
|
-
the constants within the <a
|
315
|
-
href="URI/CharacterClasses.html">CharacterClasses</a> module is highly
|
316
|
-
recommended when using this method.
|
317
|
-
</p>
|
318
|
-
<p>
|
319
|
-
An example:
|
320
|
-
</p>
|
321
|
-
<pre>
|
322
|
-
Addressable::URI.escape_segment("simple-example", "b-zB-Z0-9")
|
323
|
-
=> "simple%2Dex%61mple"
|
324
|
-
</pre>
|
325
|
-
<p><a class="source-toggle" href="#"
|
326
|
-
onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
|
327
|
-
<div class="method-source-code" id="M000007-source">
|
328
|
-
<pre>
|
329
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 351</span>
|
330
|
-
351: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segment</span>, <span class="ruby-identifier">character_class</span>=
|
331
|
-
352: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">RESERVED</span> <span class="ruby-operator">+</span>
|
332
|
-
353: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">UNRESERVED</span>)
|
333
|
-
354: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">segment</span>.<span class="ruby-identifier">nil?</span>
|
334
|
-
355: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">segment</span>.<span class="ruby-identifier">gsub</span>(
|
335
|
-
356: <span class="ruby-node">/[^#{character_class}]/</span>
|
336
|
-
357: ) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sequence</span><span class="ruby-operator">|</span>
|
337
|
-
358: (<span class="ruby-value str">"%"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">sequence</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">'C'</span>)[<span class="ruby-value">0</span>].<span class="ruby-identifier">to_s</span>(<span class="ruby-value">16</span>).<span class="ruby-identifier">upcase</span>)
|
338
|
-
359: <span class="ruby-keyword kw">end</span>
|
339
|
-
360: <span class="ruby-keyword kw">end</span>
|
340
|
-
</pre>
|
341
|
-
</div>
|
342
|
-
</div>
|
343
|
-
</div>
|
344
|
-
|
345
|
-
<div id="method-M000004" class="method-detail">
|
346
|
-
<a name="M000004"></a>
|
347
|
-
|
348
|
-
<div class="method-heading">
|
349
|
-
<a href="#M000004" class="method-signature">
|
350
|
-
<span class="method-name">expand_template</span><span class="method-args">(pattern, mapping, processor=nil)</span>
|
351
|
-
</a>
|
352
|
-
</div>
|
353
|
-
|
354
|
-
<div class="method-description">
|
355
|
-
<p>
|
356
|
-
Expands a <a href="URI.html">URI</a> template into a full <a
|
357
|
-
href="URI.html">URI</a>.
|
358
|
-
</p>
|
359
|
-
<p>
|
360
|
-
An optional processor object may be supplied. The object should respond to
|
361
|
-
either the :validate or :transform messages or both. Both the :validate and
|
362
|
-
:transform methods should take two parameters: :name and :value. The
|
363
|
-
:validate method should return true or false; true if the value of the
|
364
|
-
variable is valid, false otherwise. The :transform method should return the
|
365
|
-
transformed variable value as a string.
|
366
|
-
</p>
|
367
|
-
<p>
|
368
|
-
An example:
|
369
|
-
</p>
|
370
|
-
<pre>
|
371
|
-
class ExampleProcessor
|
372
|
-
def self.validate(name, value)
|
373
|
-
return !!(value =~ /^[\w ]+$/) if name == "query"
|
374
|
-
return true
|
375
|
-
end
|
376
|
-
|
377
|
-
def self.transform(name, value)
|
378
|
-
return value.gsub(/ /, "+") if name == "query"
|
379
|
-
return value
|
380
|
-
end
|
381
|
-
end
|
382
|
-
|
383
|
-
Addressable::URI.expand_template(
|
384
|
-
"http://example.com/search/{query}/",
|
385
|
-
{"query" => "an example search query"},
|
386
|
-
ExampleProcessor).to_s
|
387
|
-
=> "http://example.com/search/an+example+search+query/"
|
388
|
-
</pre>
|
389
|
-
<p><a class="source-toggle" href="#"
|
390
|
-
onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
|
391
|
-
<div class="method-source-code" id="M000004-source">
|
392
|
-
<pre>
|
393
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 202</span>
|
394
|
-
202: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">expand_template</span>(<span class="ruby-identifier">pattern</span>, <span class="ruby-identifier">mapping</span>, <span class="ruby-identifier">processor</span>=<span class="ruby-keyword kw">nil</span>)
|
395
|
-
203: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">dup</span>
|
396
|
-
204: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span> <span class="ruby-keyword kw">in</span> <span class="ruby-identifier">mapping</span>
|
397
|
-
205: <span class="ruby-identifier">transformed_value</span> = <span class="ruby-identifier">value</span>
|
398
|
-
206: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processor</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
399
|
-
207: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processor</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:validate</span>)
|
400
|
-
208: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">processor</span>.<span class="ruby-identifier">validate</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
|
401
|
-
209: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidTemplateValue</span>,
|
402
|
-
210: <span class="ruby-node">"(#{name}, #{value}) is an invalid template value."</span>
|
403
|
-
211: <span class="ruby-keyword kw">end</span>
|
404
|
-
212: <span class="ruby-keyword kw">end</span>
|
405
|
-
213: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processor</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:transform</span>)
|
406
|
-
214: <span class="ruby-identifier">transformed_value</span> = <span class="ruby-identifier">processor</span>.<span class="ruby-identifier">transform</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
|
407
|
-
215: <span class="ruby-keyword kw">end</span>
|
408
|
-
216: <span class="ruby-keyword kw">end</span>
|
409
|
-
217:
|
410
|
-
218: <span class="ruby-comment cmt"># Handle percent escaping</span>
|
411
|
-
219: <span class="ruby-identifier">transformed_value</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">transformed_value</span>,
|
412
|
-
220: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">RESERVED</span> <span class="ruby-operator">+</span>
|
413
|
-
221: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">UNRESERVED</span>)
|
414
|
-
222:
|
415
|
-
223: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">/\{#{Regexp.escape(name)}\}/</span>, <span class="ruby-identifier">transformed_value</span>)
|
416
|
-
224: <span class="ruby-keyword kw">end</span>
|
417
|
-
225: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">gsub!</span>(
|
418
|
-
226: <span class="ruby-node">/\{[#{Addressable::URI::CharacterClasses::UNRESERVED}]+\}/</span>, <span class="ruby-value str">""</span>)
|
419
|
-
227: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">result</span>)
|
420
|
-
228: <span class="ruby-keyword kw">end</span>
|
421
|
-
</pre>
|
422
|
-
</div>
|
423
|
-
</div>
|
424
|
-
</div>
|
425
|
-
|
426
|
-
<div id="method-M000011" class="method-detail">
|
427
|
-
<a name="M000011"></a>
|
428
|
-
|
429
|
-
<div class="method-heading">
|
430
|
-
<a href="#M000011" class="method-signature">
|
431
|
-
<span class="method-name">extract</span><span class="method-args">(text, options={})</span>
|
432
|
-
</a>
|
433
|
-
</div>
|
434
|
-
|
435
|
-
<div class="method-description">
|
436
|
-
<p>
|
437
|
-
Extracts uris from an arbitrary body of text.
|
438
|
-
</p>
|
439
|
-
<p><a class="source-toggle" href="#"
|
440
|
-
onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
|
441
|
-
<div class="method-source-code" id="M000011-source">
|
442
|
-
<pre>
|
443
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 439</span>
|
444
|
-
439: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">extract</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">options</span>={})
|
445
|
-
440: <span class="ruby-identifier">defaults</span> = {<span class="ruby-identifier">:base</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">:parse</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">false</span>}
|
446
|
-
441: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
|
447
|
-
442: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidOptionError</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">options</span>.<span class="ruby-identifier">keys</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">keys</span>).<span class="ruby-identifier">empty?</span>
|
448
|
-
443: <span class="ruby-comment cmt"># This regular expression needs to be less forgiving or else it would</span>
|
449
|
-
444: <span class="ruby-comment cmt"># match virtually all text. Which isn't exactly what we're going for.</span>
|
450
|
-
445: <span class="ruby-identifier">extract_regex</span> = <span class="ruby-regexp re">/((([a-z\+]+):)[^ \n\<\>\"\\]+[\w\/])/</span>
|
451
|
-
446: <span class="ruby-identifier">extracted_uris</span> =
|
452
|
-
447: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">extract_regex</span>).<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span> <span class="ruby-identifier">match</span>[<span class="ruby-value">0</span>] }
|
453
|
-
448: <span class="ruby-identifier">sgml_extract_regex</span> = <span class="ruby-regexp re">/<[^>]+href=\"([^\"]+?)\"[^>]*>/</span>
|
454
|
-
449: <span class="ruby-identifier">sgml_extracted_uris</span> =
|
455
|
-
450: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">sgml_extract_regex</span>).<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span> <span class="ruby-identifier">match</span>[<span class="ruby-value">0</span>] }
|
456
|
-
451: <span class="ruby-identifier">extracted_uris</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">sgml_extracted_uris</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">extracted_uris</span>)
|
457
|
-
452: <span class="ruby-identifier">textile_extract_regex</span> = <span class="ruby-regexp re">/\".+?\":([^ ]+\/[^ ]+)[ \,\.\;\:\?\!\<\>\"]/i</span>
|
458
|
-
453: <span class="ruby-identifier">textile_extracted_uris</span> =
|
459
|
-
454: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">textile_extract_regex</span>).<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span> <span class="ruby-identifier">match</span>[<span class="ruby-value">0</span>] }
|
460
|
-
455: <span class="ruby-identifier">extracted_uris</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">textile_extracted_uris</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">extracted_uris</span>)
|
461
|
-
456: <span class="ruby-identifier">parsed_uris</span> = []
|
462
|
-
457: <span class="ruby-identifier">base_uri</span> = <span class="ruby-keyword kw">nil</span>
|
463
|
-
458: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:base</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
464
|
-
459: <span class="ruby-identifier">base_uri</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:base</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:base</span>].<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>)
|
465
|
-
460: <span class="ruby-identifier">base_uri</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:base</span>].<span class="ruby-identifier">to_s</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base_uri</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
|
466
|
-
461: <span class="ruby-keyword kw">end</span>
|
467
|
-
462: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">uri_string</span> <span class="ruby-keyword kw">in</span> <span class="ruby-identifier">extracted_uris</span>
|
468
|
-
463: <span class="ruby-keyword kw">begin</span>
|
469
|
-
464: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base_uri</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
|
470
|
-
465: <span class="ruby-identifier">parsed_uris</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri_string</span>)
|
471
|
-
466: <span class="ruby-keyword kw">else</span>
|
472
|
-
467: <span class="ruby-identifier">parsed_uris</span> <span class="ruby-operator"><<</span> (<span class="ruby-identifier">base_uri</span> <span class="ruby-operator">+</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri_string</span>))
|
473
|
-
468: <span class="ruby-keyword kw">end</span>
|
474
|
-
469: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
|
475
|
-
470: <span class="ruby-keyword kw">nil</span>
|
476
|
-
471: <span class="ruby-keyword kw">end</span>
|
477
|
-
472: <span class="ruby-keyword kw">end</span>
|
478
|
-
473: <span class="ruby-identifier">parsed_uris</span>.<span class="ruby-identifier">reject!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">uri</span><span class="ruby-operator">|</span>
|
479
|
-
474: (<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/T\d+/</span> <span class="ruby-operator">||</span>
|
480
|
-
475: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"xmlns"</span> <span class="ruby-operator">||</span>
|
481
|
-
476: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"xml"</span> <span class="ruby-operator">||</span>
|
482
|
-
477: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"thr"</span> <span class="ruby-operator">||</span>
|
483
|
-
478: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"this"</span> <span class="ruby-operator">||</span>
|
484
|
-
479: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"float"</span> <span class="ruby-operator">||</span>
|
485
|
-
480: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"user"</span> <span class="ruby-operator">||</span>
|
486
|
-
481: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"username"</span> <span class="ruby-operator">||</span>
|
487
|
-
482: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"out"</span>)
|
488
|
-
483: <span class="ruby-keyword kw">end</span>
|
489
|
-
484: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:parse</span>]
|
490
|
-
485: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parsed_uris</span>
|
491
|
-
486: <span class="ruby-keyword kw">else</span>
|
492
|
-
487: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parsed_uris</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">uri</span><span class="ruby-operator">|</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span> }
|
493
|
-
488: <span class="ruby-keyword kw">end</span>
|
494
|
-
489: <span class="ruby-keyword kw">end</span>
|
495
|
-
</pre>
|
496
|
-
</div>
|
497
|
-
</div>
|
498
|
-
</div>
|
499
|
-
|
500
|
-
<div id="method-M000002" class="method-detail">
|
501
|
-
<a name="M000002"></a>
|
502
|
-
|
503
|
-
<div class="method-heading">
|
504
|
-
<a href="#M000002" class="method-signature">
|
505
|
-
<span class="method-name">heuristic_parse</span><span class="method-args">(input, hints={})</span>
|
506
|
-
</a>
|
507
|
-
</div>
|
508
|
-
|
509
|
-
<div class="method-description">
|
510
|
-
<p>
|
511
|
-
Converts an input to a <a href="URI.html">URI</a>. The input does not have
|
512
|
-
to be a valid <a href="URI.html">URI</a> — the method will use
|
513
|
-
heuristics to guess what <a href="URI.html">URI</a> was intended. This is
|
514
|
-
not standards compliant, merely <a
|
515
|
-
href="URI.html#M000015">user</a>-friendly.
|
516
|
-
</p>
|
517
|
-
<p><a class="source-toggle" href="#"
|
518
|
-
onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
|
519
|
-
<div class="method-source-code" id="M000002-source">
|
520
|
-
<pre>
|
521
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 107</span>
|
522
|
-
107: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">heuristic_parse</span>(<span class="ruby-identifier">input</span>, <span class="ruby-identifier">hints</span>={})
|
523
|
-
108: <span class="ruby-identifier">input</span> = <span class="ruby-identifier">input</span>.<span class="ruby-identifier">dup</span>
|
524
|
-
109: <span class="ruby-identifier">hints</span> = {
|
525
|
-
110: <span class="ruby-identifier">:scheme</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"http"</span>
|
526
|
-
111: }.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">hints</span>)
|
527
|
-
112: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">input</span>
|
528
|
-
113: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^http:\/+/</span>
|
529
|
-
114: <span class="ruby-identifier">input</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/^http:\/+/</span>, <span class="ruby-value str">"http://"</span>)
|
530
|
-
115: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^feed:\/+http:\/+/</span>
|
531
|
-
116: <span class="ruby-identifier">input</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/^feed:\/+http:\/+/</span>, <span class="ruby-value str">"feed:http://"</span>)
|
532
|
-
117: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^feed:\/+/</span>
|
533
|
-
118: <span class="ruby-identifier">input</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/^feed:\/+/</span>, <span class="ruby-value str">"feed://"</span>)
|
534
|
-
119: <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^file:\/+/</span>
|
535
|
-
120: <span class="ruby-identifier">input</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/^file:\/+/</span>, <span class="ruby-value str">"file:///"</span>)
|
536
|
-
121: <span class="ruby-keyword kw">end</span>
|
537
|
-
122: <span class="ruby-identifier">parsed</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">input</span>)
|
538
|
-
123: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^[^\/?#\.]+\.[^\/?#]+$/</span>
|
539
|
-
124: <span class="ruby-identifier">parsed</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">hints</span>[<span class="ruby-identifier">:scheme</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">"://"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">input</span>)
|
540
|
-
125: <span class="ruby-keyword kw">end</span>
|
541
|
-
126: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">authority</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
|
542
|
-
127: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^[^\/]+\./</span>
|
543
|
-
128: <span class="ruby-identifier">new_host</span> = <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">path</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/^([^\/]+\.[^\/]*)/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
|
544
|
-
129: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">new_host</span>
|
545
|
-
130: <span class="ruby-identifier">new_path</span> = <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">path</span>.<span class="ruby-identifier">gsub</span>(
|
546
|
-
131: <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"^"</span> <span class="ruby-operator">+</span> <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-identifier">new_host</span>)), <span class="ruby-value str">""</span>)
|
547
|
-
132: <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">host</span> = <span class="ruby-identifier">new_host</span>
|
548
|
-
133: <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">path</span> = <span class="ruby-identifier">new_path</span>
|
549
|
-
134: <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">scheme</span> = <span class="ruby-identifier">hints</span>[<span class="ruby-identifier">:scheme</span>]
|
550
|
-
135: <span class="ruby-keyword kw">end</span>
|
551
|
-
136: <span class="ruby-keyword kw">end</span>
|
552
|
-
137: <span class="ruby-keyword kw">end</span>
|
553
|
-
138: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parsed</span>
|
554
|
-
139: <span class="ruby-keyword kw">end</span>
|
555
|
-
</pre>
|
556
|
-
</div>
|
557
|
-
</div>
|
558
|
-
</div>
|
559
|
-
|
560
|
-
<div id="method-M000025" class="method-detail">
|
561
|
-
<a name="M000025"></a>
|
562
|
-
|
563
|
-
<div class="method-heading">
|
564
|
-
<a href="#M000025" class="method-signature">
|
565
|
-
<span class="method-name">ip_based_schemes</span><span class="method-args">()</span>
|
566
|
-
</a>
|
567
|
-
</div>
|
568
|
-
|
569
|
-
<div class="method-description">
|
570
|
-
<p>
|
571
|
-
Returns an array of known ip-based schemes. These schemes typically use a
|
572
|
-
similar <a href="URI.html">URI</a> form: //<<a
|
573
|
-
href="URI.html#M000015">user</a>>:<<a
|
574
|
-
href="URI.html#M000017">password</a>>@<<a
|
575
|
-
href="URI.html#M000021">host</a>>:<<a
|
576
|
-
href="URI.html#M000027">port</a>>/<url-<a
|
577
|
-
href="URI.html#M000030">path</a>>
|
578
|
-
</p>
|
579
|
-
<p><a class="source-toggle" href="#"
|
580
|
-
onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
|
581
|
-
<div class="method-source-code" id="M000025-source">
|
582
|
-
<pre>
|
583
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 662</span>
|
584
|
-
662: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">ip_based_schemes</span>
|
585
|
-
663: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme_mapping</span>.<span class="ruby-identifier">keys</span>
|
586
|
-
664: <span class="ruby-keyword kw">end</span>
|
587
|
-
</pre>
|
588
|
-
</div>
|
589
|
-
</div>
|
590
|
-
</div>
|
591
|
-
|
592
|
-
<div id="method-M000006" class="method-detail">
|
593
|
-
<a name="M000006"></a>
|
594
|
-
|
595
|
-
<div class="method-heading">
|
596
|
-
<a href="#M000006" class="method-signature">
|
597
|
-
<span class="method-name">join</span><span class="method-args">(*uris)</span>
|
598
|
-
</a>
|
599
|
-
</div>
|
600
|
-
|
601
|
-
<div class="method-description">
|
602
|
-
<p>
|
603
|
-
Joins several uris together.
|
604
|
-
</p>
|
605
|
-
<p><a class="source-toggle" href="#"
|
606
|
-
onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
|
607
|
-
<div class="method-source-code" id="M000006-source">
|
608
|
-
<pre>
|
609
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 328</span>
|
610
|
-
328: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">join</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">uris</span>)
|
611
|
-
329: <span class="ruby-identifier">uri_objects</span> = <span class="ruby-identifier">uris</span>.<span class="ruby-identifier">collect</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">uri</span><span class="ruby-operator">|</span>
|
612
|
-
330: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">uri</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>)
|
613
|
-
331: <span class="ruby-keyword kw">end</span>
|
614
|
-
332: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">uri_objects</span>.<span class="ruby-identifier">shift</span>.<span class="ruby-identifier">dup</span>
|
615
|
-
333: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">uri</span> <span class="ruby-keyword kw">in</span> <span class="ruby-identifier">uri_objects</span>
|
616
|
-
334: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">uri</span>)
|
617
|
-
335: <span class="ruby-keyword kw">end</span>
|
618
|
-
336: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
|
619
|
-
337: <span class="ruby-keyword kw">end</span>
|
620
|
-
</pre>
|
621
|
-
</div>
|
622
|
-
</div>
|
623
|
-
</div>
|
624
|
-
|
625
|
-
<div id="method-M000012" class="method-detail">
|
626
|
-
<a name="M000012"></a>
|
627
|
-
|
628
|
-
<div class="method-heading">
|
629
|
-
<a href="#M000012" class="method-signature">
|
630
|
-
<span class="method-name">new</span><span class="method-args">(scheme, user, password, host, port, path, query, fragment)</span>
|
631
|
-
</a>
|
632
|
-
</div>
|
633
|
-
|
634
|
-
<div class="method-description">
|
635
|
-
<p>
|
636
|
-
Creates a <a href="URI.html#M000012">new</a> uri object from component
|
637
|
-
parts. Passing nil for any of these parameters is acceptable.
|
638
|
-
</p>
|
639
|
-
<p><a class="source-toggle" href="#"
|
640
|
-
onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
|
641
|
-
<div class="method-source-code" id="M000012-source">
|
642
|
-
<pre>
|
643
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 493</span>
|
644
|
-
493: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">scheme</span>, <span class="ruby-identifier">user</span>, <span class="ruby-identifier">password</span>, <span class="ruby-identifier">host</span>, <span class="ruby-identifier">port</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">query</span>, <span class="ruby-identifier">fragment</span>)
|
645
|
-
494: <span class="ruby-ivar">@scheme</span> = <span class="ruby-identifier">scheme</span>
|
646
|
-
495: <span class="ruby-ivar">@scheme</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scheme</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span> <span class="ruby-operator">==</span> <span class="ruby-value str">""</span>
|
647
|
-
496: <span class="ruby-ivar">@user</span> = <span class="ruby-identifier">user</span>
|
648
|
-
497: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">password</span>
|
649
|
-
498: <span class="ruby-ivar">@host</span> = <span class="ruby-identifier">host</span>
|
650
|
-
499: <span class="ruby-ivar">@specified_port</span> = <span class="ruby-identifier">port</span>.<span class="ruby-identifier">to_s</span>
|
651
|
-
500: <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">port</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Fixnum</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">port</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">port</span>
|
652
|
-
501: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@port</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span>(<span class="ruby-ivar">@port</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^\d+$/</span>)
|
653
|
-
502: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidURIError</span>,
|
654
|
-
503: <span class="ruby-node">"Invalid port number: #{@port.inspect}"</span>
|
655
|
-
504: <span class="ruby-keyword kw">end</span>
|
656
|
-
505: <span class="ruby-ivar">@port</span> = <span class="ruby-ivar">@port</span>.<span class="ruby-identifier">to_i</span>
|
657
|
-
506: <span class="ruby-ivar">@port</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@port</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
658
|
-
507: <span class="ruby-ivar">@path</span> = (<span class="ruby-identifier">path</span> <span class="ruby-operator">||</span> <span class="ruby-value str">""</span>)
|
659
|
-
508: <span class="ruby-ivar">@query</span> = <span class="ruby-identifier">query</span>
|
660
|
-
509: <span class="ruby-ivar">@fragment</span> = <span class="ruby-identifier">fragment</span>
|
661
|
-
510:
|
662
|
-
511: <span class="ruby-identifier">validate</span>()
|
663
|
-
512: <span class="ruby-keyword kw">end</span>
|
664
|
-
</pre>
|
665
|
-
</div>
|
666
|
-
</div>
|
667
|
-
</div>
|
668
|
-
|
669
|
-
<div id="method-M000010" class="method-detail">
|
670
|
-
<a name="M000010"></a>
|
671
|
-
|
672
|
-
<div class="method-heading">
|
673
|
-
<a href="#M000010" class="method-signature">
|
674
|
-
<span class="method-name">normalized_encode</span><span class="method-args">(uri)</span>
|
675
|
-
</a>
|
676
|
-
</div>
|
677
|
-
|
678
|
-
<div class="method-description">
|
679
|
-
<p>
|
680
|
-
Normalizes the encoding of a <a href="URI.html">URI</a>. Characters within
|
681
|
-
a hostname are not percent encoded to allow for internationalized domain
|
682
|
-
names.
|
683
|
-
</p>
|
684
|
-
<p><a class="source-toggle" href="#"
|
685
|
-
onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
|
686
|
-
<div class="method-source-code" id="M000010-source">
|
687
|
-
<pre>
|
688
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 401</span>
|
689
|
-
401: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalized_encode</span>(<span class="ruby-identifier">uri</span>)
|
690
|
-
402: <span class="ruby-identifier">uri_object</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">uri</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>)
|
691
|
-
403: <span class="ruby-identifier">segments</span> = {
|
692
|
-
404: <span class="ruby-identifier">:scheme</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">unencode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">scheme</span>),
|
693
|
-
405: <span class="ruby-identifier">:user</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">unencode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">user</span>),
|
694
|
-
406: <span class="ruby-identifier">:password</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">unencode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">password</span>),
|
695
|
-
407: <span class="ruby-identifier">:host</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">unencode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">host</span>),
|
696
|
-
408: <span class="ruby-identifier">:port</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">unencode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">specified_port</span>),
|
697
|
-
409: <span class="ruby-identifier">:path</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">unencode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">path</span>),
|
698
|
-
410: <span class="ruby-identifier">:query</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">unencode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">query</span>),
|
699
|
-
411: <span class="ruby-identifier">:fragment</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">unencode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">fragment</span>)
|
700
|
-
412: }
|
701
|
-
413: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">IDNA</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">:use_libidn?</span>)
|
702
|
-
414: <span class="ruby-identifier">segments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
|
703
|
-
415: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
704
|
-
416: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-constant">IDN</span><span class="ruby-operator">::</span><span class="ruby-constant">Stringprep</span>.<span class="ruby-identifier">nfkc_normalize</span>(<span class="ruby-identifier">value</span>.<span class="ruby-identifier">to_s</span>)
|
705
|
-
417: <span class="ruby-keyword kw">end</span>
|
706
|
-
418: <span class="ruby-keyword kw">end</span>
|
707
|
-
419: <span class="ruby-keyword kw">end</span>
|
708
|
-
420: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
|
709
|
-
421: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:scheme</span>],
|
710
|
-
422: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">SCHEME</span>),
|
711
|
-
423: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:user</span>],
|
712
|
-
424: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
|
713
|
-
425: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:password</span>],
|
714
|
-
426: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
|
715
|
-
427: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>],
|
716
|
-
428: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:port</span>],
|
717
|
-
429: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:path</span>],
|
718
|
-
430: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">PATH</span>),
|
719
|
-
431: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:query</span>],
|
720
|
-
432: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">QUERY</span>),
|
721
|
-
433: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:fragment</span>],
|
722
|
-
434: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">FRAGMENT</span>)
|
723
|
-
435: ).<span class="ruby-identifier">to_s</span>
|
724
|
-
436: <span class="ruby-keyword kw">end</span>
|
725
|
-
</pre>
|
726
|
-
</div>
|
727
|
-
</div>
|
728
|
-
</div>
|
729
|
-
|
730
|
-
<div id="method-M000001" class="method-detail">
|
731
|
-
<a name="M000001"></a>
|
732
|
-
|
733
|
-
<div class="method-heading">
|
734
|
-
<a href="#M000001" class="method-signature">
|
735
|
-
<span class="method-name">parse</span><span class="method-args">(uri_string)</span>
|
736
|
-
</a>
|
737
|
-
</div>
|
738
|
-
|
739
|
-
<div class="method-description">
|
740
|
-
<p>
|
741
|
-
Returns a <a href="URI.html">URI</a> object based on the parsed string.
|
742
|
-
</p>
|
743
|
-
<p><a class="source-toggle" href="#"
|
744
|
-
onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
|
745
|
-
<div class="method-source-code" id="M000001-source">
|
746
|
-
<pre>
|
747
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 60</span>
|
748
|
-
60: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri_string</span>)
|
749
|
-
61: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri_string</span>.<span class="ruby-identifier">nil?</span>
|
750
|
-
62:
|
751
|
-
63: <span class="ruby-comment cmt"># If a URI object is passed, just return itself.</span>
|
752
|
-
64: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">uri_string</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri_string</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>)
|
753
|
-
65:
|
754
|
-
66: <span class="ruby-comment cmt"># If a URI object of the Ruby standard library variety is passed,</span>
|
755
|
-
67: <span class="ruby-comment cmt"># convert it to a string, then parse the string.</span>
|
756
|
-
68: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri_string</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^URI::/</span>
|
757
|
-
69: <span class="ruby-identifier">uri_string</span> = <span class="ruby-identifier">uri_string</span>.<span class="ruby-identifier">to_s</span>
|
758
|
-
70: <span class="ruby-keyword kw">end</span>
|
759
|
-
71:
|
760
|
-
72: <span class="ruby-identifier">uri_regex</span> =
|
761
|
-
73: <span class="ruby-regexp re">/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/</span>
|
762
|
-
74: <span class="ruby-identifier">scan</span> = <span class="ruby-identifier">uri_string</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">uri_regex</span>)
|
763
|
-
75: <span class="ruby-identifier">fragments</span> = <span class="ruby-identifier">scan</span>[<span class="ruby-value">0</span>]
|
764
|
-
76: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fragments</span>.<span class="ruby-identifier">nil?</span>
|
765
|
-
77: <span class="ruby-identifier">scheme</span> = <span class="ruby-identifier">fragments</span>[<span class="ruby-value">1</span>]
|
766
|
-
78: <span class="ruby-identifier">authority</span> = <span class="ruby-identifier">fragments</span>[<span class="ruby-value">3</span>]
|
767
|
-
79: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">fragments</span>[<span class="ruby-value">4</span>]
|
768
|
-
80: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">fragments</span>[<span class="ruby-value">6</span>]
|
769
|
-
81: <span class="ruby-identifier">fragment</span> = <span class="ruby-identifier">fragments</span>[<span class="ruby-value">8</span>]
|
770
|
-
82: <span class="ruby-identifier">userinfo</span> = <span class="ruby-keyword kw">nil</span>
|
771
|
-
83: <span class="ruby-identifier">user</span> = <span class="ruby-keyword kw">nil</span>
|
772
|
-
84: <span class="ruby-identifier">password</span> = <span class="ruby-keyword kw">nil</span>
|
773
|
-
85: <span class="ruby-identifier">host</span> = <span class="ruby-keyword kw">nil</span>
|
774
|
-
86: <span class="ruby-identifier">port</span> = <span class="ruby-keyword kw">nil</span>
|
775
|
-
87: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">authority</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
776
|
-
88: <span class="ruby-identifier">userinfo</span> = <span class="ruby-identifier">authority</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/^([^\[\]]*)@/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
|
777
|
-
89: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">userinfo</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
778
|
-
90: <span class="ruby-identifier">user</span> = <span class="ruby-identifier">userinfo</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/^([^:]*):?/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
|
779
|
-
91: <span class="ruby-identifier">password</span> = <span class="ruby-identifier">userinfo</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/:(.*)$/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
|
780
|
-
92: <span class="ruby-keyword kw">end</span>
|
781
|
-
93: <span class="ruby-identifier">host</span> = <span class="ruby-identifier">authority</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/^([^\[\]]*)@/</span>, <span class="ruby-value str">""</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/:([^:@\[\]]*?)$/</span>, <span class="ruby-value str">""</span>)
|
782
|
-
94: <span class="ruby-identifier">port</span> = <span class="ruby-identifier">authority</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/:([^:@\[\]]*?)$/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
|
783
|
-
95: <span class="ruby-keyword kw">end</span>
|
784
|
-
96: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">port</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">port</span> <span class="ruby-operator">==</span> <span class="ruby-value str">""</span>
|
785
|
-
97: <span class="ruby-identifier">port</span> = <span class="ruby-keyword kw">nil</span>
|
786
|
-
98: <span class="ruby-keyword kw">end</span>
|
787
|
-
99:
|
788
|
-
100: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
|
789
|
-
101: <span class="ruby-identifier">scheme</span>, <span class="ruby-identifier">user</span>, <span class="ruby-identifier">password</span>, <span class="ruby-identifier">host</span>, <span class="ruby-identifier">port</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">query</span>, <span class="ruby-identifier">fragment</span>)
|
790
|
-
102: <span class="ruby-keyword kw">end</span>
|
791
|
-
</pre>
|
792
|
-
</div>
|
793
|
-
</div>
|
794
|
-
</div>
|
795
|
-
|
796
|
-
<div id="method-M000026" class="method-detail">
|
797
|
-
<a name="M000026"></a>
|
798
|
-
|
799
|
-
<div class="method-heading">
|
800
|
-
<a href="#M000026" class="method-signature">
|
801
|
-
<span class="method-name">scheme_mapping</span><span class="method-args">()</span>
|
802
|
-
</a>
|
803
|
-
</div>
|
804
|
-
|
805
|
-
<div class="method-description">
|
806
|
-
<p>
|
807
|
-
Returns a hash of common IP-based schemes and their default <a
|
808
|
-
href="URI.html#M000027">port</a> numbers. Adding <a
|
809
|
-
href="URI.html#M000012">new</a> schemes to this hash, as necessary, will
|
810
|
-
allow for better <a href="URI.html">URI</a> normalization.
|
811
|
-
</p>
|
812
|
-
<p><a class="source-toggle" href="#"
|
813
|
-
onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
|
814
|
-
<div class="method-source-code" id="M000026-source">
|
815
|
-
<pre>
|
816
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 669</span>
|
817
|
-
669: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme_mapping</span>
|
818
|
-
670: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-keyword kw">defined?</span>(<span class="ruby-ivar">@protocol_mapping</span>) <span class="ruby-operator">||</span> <span class="ruby-ivar">@protocol_mapping</span>.<span class="ruby-identifier">nil?</span>
|
819
|
-
671: <span class="ruby-ivar">@protocol_mapping</span> = {
|
820
|
-
672: <span class="ruby-value str">"http"</span> =<span class="ruby-operator">></span> <span class="ruby-value">80</span>,
|
821
|
-
673: <span class="ruby-value str">"https"</span> =<span class="ruby-operator">></span> <span class="ruby-value">443</span>,
|
822
|
-
674: <span class="ruby-value str">"ftp"</span> =<span class="ruby-operator">></span> <span class="ruby-value">21</span>,
|
823
|
-
675: <span class="ruby-value str">"tftp"</span> =<span class="ruby-operator">></span> <span class="ruby-value">69</span>,
|
824
|
-
676: <span class="ruby-value str">"ssh"</span> =<span class="ruby-operator">></span> <span class="ruby-value">22</span>,
|
825
|
-
677: <span class="ruby-value str">"svn+ssh"</span> =<span class="ruby-operator">></span> <span class="ruby-value">22</span>,
|
826
|
-
678: <span class="ruby-value str">"telnet"</span> =<span class="ruby-operator">></span> <span class="ruby-value">23</span>,
|
827
|
-
679: <span class="ruby-value str">"nntp"</span> =<span class="ruby-operator">></span> <span class="ruby-value">119</span>,
|
828
|
-
680: <span class="ruby-value str">"gopher"</span> =<span class="ruby-operator">></span> <span class="ruby-value">70</span>,
|
829
|
-
681: <span class="ruby-value str">"wais"</span> =<span class="ruby-operator">></span> <span class="ruby-value">210</span>,
|
830
|
-
682: <span class="ruby-value str">"ldap"</span> =<span class="ruby-operator">></span> <span class="ruby-value">389</span>,
|
831
|
-
683: <span class="ruby-value str">"prospero"</span> =<span class="ruby-operator">></span> <span class="ruby-value">1525</span>
|
832
|
-
684: }
|
833
|
-
685: <span class="ruby-keyword kw">end</span>
|
834
|
-
686: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@protocol_mapping</span>
|
835
|
-
687: <span class="ruby-keyword kw">end</span>
|
836
|
-
</pre>
|
837
|
-
</div>
|
838
|
-
</div>
|
839
|
-
</div>
|
840
|
-
|
841
|
-
<div id="method-M000008" class="method-detail">
|
842
|
-
<a name="M000008"></a>
|
843
|
-
|
844
|
-
<div class="method-heading">
|
845
|
-
<a href="#M000008" class="method-signature">
|
846
|
-
<span class="method-name">unencode_segment</span><span class="method-args">(segment)</span>
|
847
|
-
</a>
|
848
|
-
</div>
|
849
|
-
|
850
|
-
<div class="method-description">
|
851
|
-
<p>
|
852
|
-
Unencodes any percent encoded characters within a <a
|
853
|
-
href="URI.html">URI</a> segment. Returns a string.
|
854
|
-
</p>
|
855
|
-
<p><a class="source-toggle" href="#"
|
856
|
-
onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
|
857
|
-
<div class="method-source-code" id="M000008-source">
|
858
|
-
<pre>
|
859
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 364</span>
|
860
|
-
364: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">unencode_segment</span>(<span class="ruby-identifier">segment</span>)
|
861
|
-
365: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">segment</span>.<span class="ruby-identifier">nil?</span>
|
862
|
-
366: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">segment</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/%[0-9a-f]{2}/i</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sequence</span><span class="ruby-operator">|</span>
|
863
|
-
367: <span class="ruby-identifier">sequence</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">3</span>].<span class="ruby-identifier">to_i</span>(<span class="ruby-value">16</span>).<span class="ruby-identifier">chr</span>
|
864
|
-
368: <span class="ruby-keyword kw">end</span>
|
865
|
-
369: <span class="ruby-keyword kw">end</span>
|
866
|
-
</pre>
|
867
|
-
</div>
|
868
|
-
</div>
|
869
|
-
</div>
|
870
|
-
|
871
|
-
<h3 class="section-bar">Public Instance methods</h3>
|
872
|
-
|
873
|
-
<div id="method-M000041" class="method-detail">
|
874
|
-
<a name="M000041"></a>
|
875
|
-
|
876
|
-
<div class="method-heading">
|
877
|
-
<a href="#M000041" class="method-signature">
|
878
|
-
<span class="method-name">+</span><span class="method-args">(uri)</span>
|
879
|
-
</a>
|
880
|
-
</div>
|
881
|
-
|
882
|
-
<div class="method-description">
|
883
|
-
<p>
|
884
|
-
Joins two URIs together.
|
885
|
-
</p>
|
886
|
-
<p><a class="source-toggle" href="#"
|
887
|
-
onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
|
888
|
-
<div class="method-source-code" id="M000041-source">
|
889
|
-
<pre>
|
890
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 788</span>
|
891
|
-
788: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">uri</span>)
|
892
|
-
789: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>)
|
893
|
-
790: <span class="ruby-identifier">uri</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>)
|
894
|
-
791: <span class="ruby-keyword kw">end</span>
|
895
|
-
792: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-value str">""</span>
|
896
|
-
793: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
|
897
|
-
794: <span class="ruby-keyword kw">end</span>
|
898
|
-
795:
|
899
|
-
796: <span class="ruby-identifier">joined_scheme</span> = <span class="ruby-keyword kw">nil</span>
|
900
|
-
797: <span class="ruby-identifier">joined_user</span> = <span class="ruby-keyword kw">nil</span>
|
901
|
-
798: <span class="ruby-identifier">joined_password</span> = <span class="ruby-keyword kw">nil</span>
|
902
|
-
799: <span class="ruby-identifier">joined_host</span> = <span class="ruby-keyword kw">nil</span>
|
903
|
-
800: <span class="ruby-identifier">joined_port</span> = <span class="ruby-keyword kw">nil</span>
|
904
|
-
801: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">nil</span>
|
905
|
-
802: <span class="ruby-identifier">joined_query</span> = <span class="ruby-keyword kw">nil</span>
|
906
|
-
803: <span class="ruby-identifier">joined_fragment</span> = <span class="ruby-keyword kw">nil</span>
|
907
|
-
804:
|
908
|
-
805: <span class="ruby-comment cmt"># Section 5.2.2 of RFC 3986</span>
|
909
|
-
806: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
910
|
-
807: <span class="ruby-identifier">joined_scheme</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span>
|
911
|
-
808: <span class="ruby-identifier">joined_user</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">user</span>
|
912
|
-
809: <span class="ruby-identifier">joined_password</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">password</span>
|
913
|
-
810: <span class="ruby-identifier">joined_host</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">host</span>
|
914
|
-
811: <span class="ruby-identifier">joined_port</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">specified_port</span>
|
915
|
-
812: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>)
|
916
|
-
813: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
|
917
|
-
814: <span class="ruby-keyword kw">else</span>
|
918
|
-
815: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">authority</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
919
|
-
816: <span class="ruby-identifier">joined_user</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">user</span>
|
920
|
-
817: <span class="ruby-identifier">joined_password</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">password</span>
|
921
|
-
818: <span class="ruby-identifier">joined_host</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">host</span>
|
922
|
-
819: <span class="ruby-identifier">joined_port</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">specified_port</span>
|
923
|
-
820: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>)
|
924
|
-
821: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
|
925
|
-
822: <span class="ruby-keyword kw">else</span>
|
926
|
-
823: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">==</span> <span class="ruby-value str">""</span>
|
927
|
-
824: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>
|
928
|
-
825: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
929
|
-
826: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
|
930
|
-
827: <span class="ruby-keyword kw">else</span>
|
931
|
-
828: <span class="ruby-identifier">joined_query</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span>
|
932
|
-
829: <span class="ruby-keyword kw">end</span>
|
933
|
-
830: <span class="ruby-keyword kw">else</span>
|
934
|
-
831: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">"/"</span>
|
935
|
-
832: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>)
|
936
|
-
833: <span class="ruby-keyword kw">else</span>
|
937
|
-
834: <span class="ruby-identifier">base_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>.<span class="ruby-identifier">dup</span>
|
938
|
-
835: <span class="ruby-identifier">base_path</span> = <span class="ruby-value str">""</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base_path</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
|
939
|
-
836: <span class="ruby-identifier">base_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">base_path</span>)
|
940
|
-
837:
|
941
|
-
838: <span class="ruby-comment cmt"># Section 5.2.3 of RFC 3986</span>
|
942
|
-
839: <span class="ruby-comment cmt">#</span>
|
943
|
-
840: <span class="ruby-comment cmt"># Removes the right-most path segment from the base path.</span>
|
944
|
-
841: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base_path</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\//</span>
|
945
|
-
842: <span class="ruby-identifier">base_path</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\/[^\/]+$/</span>, <span class="ruby-value str">"/"</span>)
|
946
|
-
843: <span class="ruby-keyword kw">else</span>
|
947
|
-
844: <span class="ruby-identifier">base_path</span> = <span class="ruby-value str">""</span>
|
948
|
-
845: <span class="ruby-keyword kw">end</span>
|
949
|
-
846:
|
950
|
-
847: <span class="ruby-comment cmt"># If the base path is empty and an authority segment has been</span>
|
951
|
-
848: <span class="ruby-comment cmt"># defined, use a base path of "/"</span>
|
952
|
-
849: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base_path</span> <span class="ruby-operator">==</span> <span class="ruby-value str">""</span> <span class="ruby-operator">&&</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">authority</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
953
|
-
850: <span class="ruby-identifier">base_path</span> = <span class="ruby-value str">"/"</span>
|
954
|
-
851: <span class="ruby-keyword kw">end</span>
|
955
|
-
852:
|
956
|
-
853: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">base_path</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>)
|
957
|
-
854: <span class="ruby-keyword kw">end</span>
|
958
|
-
855: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
|
959
|
-
856: <span class="ruby-keyword kw">end</span>
|
960
|
-
857: <span class="ruby-identifier">joined_user</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>
|
961
|
-
858: <span class="ruby-identifier">joined_password</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>
|
962
|
-
859: <span class="ruby-identifier">joined_host</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>
|
963
|
-
860: <span class="ruby-identifier">joined_port</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">specified_port</span>
|
964
|
-
861: <span class="ruby-keyword kw">end</span>
|
965
|
-
862: <span class="ruby-identifier">joined_scheme</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>
|
966
|
-
863: <span class="ruby-keyword kw">end</span>
|
967
|
-
864: <span class="ruby-identifier">joined_fragment</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">fragment</span>
|
968
|
-
865:
|
969
|
-
866: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
|
970
|
-
867: <span class="ruby-identifier">joined_scheme</span>,
|
971
|
-
868: <span class="ruby-identifier">joined_user</span>,
|
972
|
-
869: <span class="ruby-identifier">joined_password</span>,
|
973
|
-
870: <span class="ruby-identifier">joined_host</span>,
|
974
|
-
871: <span class="ruby-identifier">joined_port</span>,
|
975
|
-
872: <span class="ruby-identifier">joined_path</span>,
|
976
|
-
873: <span class="ruby-identifier">joined_query</span>,
|
977
|
-
874: <span class="ruby-identifier">joined_fragment</span>
|
978
|
-
875: )
|
979
|
-
876: <span class="ruby-keyword kw">end</span>
|
980
|
-
</pre>
|
981
|
-
</div>
|
982
|
-
</div>
|
983
|
-
</div>
|
984
|
-
|
985
|
-
<div id="method-M000052" class="method-detail">
|
986
|
-
<a name="M000052"></a>
|
987
|
-
|
988
|
-
<div class="method-heading">
|
989
|
-
<a href="#M000052" class="method-signature">
|
990
|
-
<span class="method-name">==</span><span class="method-args">(uri)</span>
|
991
|
-
</a>
|
992
|
-
</div>
|
993
|
-
|
994
|
-
<div class="method-description">
|
995
|
-
<p>
|
996
|
-
Returns true if the <a href="URI.html">URI</a> objects are equal. This
|
997
|
-
method normalizes both URIs before doing the comparison.
|
998
|
-
</p>
|
999
|
-
<p><a class="source-toggle" href="#"
|
1000
|
-
onclick="toggleCode('M000052-source');return false;">[Source]</a></p>
|
1001
|
-
<div class="method-source-code" id="M000052-source">
|
1002
|
-
<pre>
|
1003
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1062</span>
|
1004
|
-
1062: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">uri</span>)
|
1005
|
-
1063: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>)
|
1006
|
-
1064: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">normalize</span>.<span class="ruby-identifier">to_s</span>
|
1007
|
-
1065: <span class="ruby-keyword kw">end</span>
|
1008
|
-
</pre>
|
1009
|
-
</div>
|
1010
|
-
</div>
|
1011
|
-
</div>
|
1012
|
-
|
1013
|
-
<div id="method-M000051" class="method-detail">
|
1014
|
-
<a name="M000051"></a>
|
1015
|
-
|
1016
|
-
<div class="method-heading">
|
1017
|
-
<a href="#M000051" class="method-signature">
|
1018
|
-
<span class="method-name">===</span><span class="method-args">(uri)</span>
|
1019
|
-
</a>
|
1020
|
-
</div>
|
1021
|
-
|
1022
|
-
<div class="method-description">
|
1023
|
-
<p>
|
1024
|
-
Returns true if the <a href="URI.html">URI</a> objects are equal. This
|
1025
|
-
method normalizes both URIs before doing the comparison, and allows
|
1026
|
-
comparison against strings.
|
1027
|
-
</p>
|
1028
|
-
<p><a class="source-toggle" href="#"
|
1029
|
-
onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
|
1030
|
-
<div class="method-source-code" id="M000051-source">
|
1031
|
-
<pre>
|
1032
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1047</span>
|
1033
|
-
1047: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">===</span>(<span class="ruby-identifier">uri</span>)
|
1034
|
-
1048: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:normalize</span>)
|
1035
|
-
1049: <span class="ruby-identifier">uri_string</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">normalize</span>.<span class="ruby-identifier">to_s</span>
|
1036
|
-
1050: <span class="ruby-keyword kw">else</span>
|
1037
|
-
1051: <span class="ruby-keyword kw">begin</span>
|
1038
|
-
1052: <span class="ruby-identifier">uri_string</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>).<span class="ruby-identifier">normalize</span>.<span class="ruby-identifier">to_s</span>
|
1039
|
-
1053: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">InvalidURIError</span>
|
1040
|
-
1054: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
|
1041
|
-
1055: <span class="ruby-keyword kw">end</span>
|
1042
|
-
1056: <span class="ruby-keyword kw">end</span>
|
1043
|
-
1057: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri_string</span>
|
1044
|
-
1058: <span class="ruby-keyword kw">end</span>
|
1045
|
-
</pre>
|
1046
|
-
</div>
|
1047
|
-
</div>
|
1048
|
-
</div>
|
1049
|
-
|
1050
|
-
<div id="method-M000040" class="method-detail">
|
1051
|
-
<a name="M000040"></a>
|
1052
|
-
|
1053
|
-
<div class="method-heading">
|
1054
|
-
<a href="#M000040" class="method-signature">
|
1055
|
-
<span class="method-name">absolute?</span><span class="method-args">()</span>
|
1056
|
-
</a>
|
1057
|
-
</div>
|
1058
|
-
|
1059
|
-
<div class="method-description">
|
1060
|
-
<p>
|
1061
|
-
Returns true if this <a href="URI.html">URI</a> is known to be absolute.
|
1062
|
-
</p>
|
1063
|
-
<p><a class="source-toggle" href="#"
|
1064
|
-
onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
|
1065
|
-
<div class="method-source-code" id="M000040-source">
|
1066
|
-
<pre>
|
1067
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 783</span>
|
1068
|
-
783: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">absolute?</span>
|
1069
|
-
784: <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-identifier">relative?</span>
|
1070
|
-
785: <span class="ruby-keyword kw">end</span>
|
1071
|
-
</pre>
|
1072
|
-
</div>
|
1073
|
-
</div>
|
1074
|
-
</div>
|
1075
|
-
|
1076
|
-
<div id="method-M000023" class="method-detail">
|
1077
|
-
<a name="M000023"></a>
|
1078
|
-
|
1079
|
-
<div class="method-heading">
|
1080
|
-
<a href="#M000023" class="method-signature">
|
1081
|
-
<span class="method-name">authority</span><span class="method-args">()</span>
|
1082
|
-
</a>
|
1083
|
-
</div>
|
1084
|
-
|
1085
|
-
<div class="method-description">
|
1086
|
-
<p>
|
1087
|
-
Returns the <a href="URI.html#M000023">authority</a> segment of this <a
|
1088
|
-
href="URI.html">URI</a>.
|
1089
|
-
</p>
|
1090
|
-
<p><a class="source-toggle" href="#"
|
1091
|
-
onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
|
1092
|
-
<div class="method-source-code" id="M000023-source">
|
1093
|
-
<pre>
|
1094
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 617</span>
|
1095
|
-
617: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">authority</span>
|
1096
|
-
618: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-keyword kw">defined?</span>(<span class="ruby-ivar">@authority</span>) <span class="ruby-operator">||</span> <span class="ruby-ivar">@authority</span>.<span class="ruby-identifier">nil?</span>
|
1097
|
-
619: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>.<span class="ruby-identifier">nil?</span>
|
1098
|
-
620: <span class="ruby-ivar">@authority</span> = <span class="ruby-value str">""</span>
|
1099
|
-
621: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">userinfo</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
1100
|
-
622: <span class="ruby-ivar">@authority</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{self.userinfo}@"</span>
|
1101
|
-
623: <span class="ruby-keyword kw">end</span>
|
1102
|
-
624: <span class="ruby-ivar">@authority</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>
|
1103
|
-
625: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">specified_port</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
1104
|
-
626: <span class="ruby-ivar">@authority</span> <span class="ruby-operator"><<</span> <span class="ruby-node">":#{self.specified_port}"</span>
|
1105
|
-
627: <span class="ruby-keyword kw">end</span>
|
1106
|
-
628: <span class="ruby-keyword kw">end</span>
|
1107
|
-
629: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@authority</span>
|
1108
|
-
630: <span class="ruby-keyword kw">end</span>
|
1109
|
-
</pre>
|
1110
|
-
</div>
|
1111
|
-
</div>
|
1112
|
-
</div>
|
1113
|
-
|
1114
|
-
<div id="method-M000024" class="method-detail">
|
1115
|
-
<a name="M000024"></a>
|
1116
|
-
|
1117
|
-
<div class="method-heading">
|
1118
|
-
<a href="#M000024" class="method-signature">
|
1119
|
-
<span class="method-name">authority=</span><span class="method-args">(new_authority)</span>
|
1120
|
-
</a>
|
1121
|
-
</div>
|
1122
|
-
|
1123
|
-
<div class="method-description">
|
1124
|
-
<p>
|
1125
|
-
Sets the <a href="URI.html#M000023">authority</a> segment of this <a
|
1126
|
-
href="URI.html">URI</a>.
|
1127
|
-
</p>
|
1128
|
-
<p><a class="source-toggle" href="#"
|
1129
|
-
onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
|
1130
|
-
<div class="method-source-code" id="M000024-source">
|
1131
|
-
<pre>
|
1132
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 633</span>
|
1133
|
-
633: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">authority=</span>(<span class="ruby-identifier">new_authority</span>)
|
1134
|
-
634: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">new_authority</span>
|
1135
|
-
635: <span class="ruby-identifier">new_userinfo</span> = <span class="ruby-identifier">new_authority</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/^([^\[\]]*)@/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
|
1136
|
-
636: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">new_userinfo</span>
|
1137
|
-
637: <span class="ruby-identifier">new_user</span> = <span class="ruby-identifier">new_userinfo</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/^([^:]*):?/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
|
1138
|
-
638: <span class="ruby-identifier">new_password</span> = <span class="ruby-identifier">new_userinfo</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/:(.*)$/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
|
1139
|
-
639: <span class="ruby-keyword kw">end</span>
|
1140
|
-
640: <span class="ruby-identifier">new_host</span> =
|
1141
|
-
641: <span class="ruby-identifier">new_authority</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/^([^\[\]]*)@/</span>, <span class="ruby-value str">""</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/:([^:@\[\]]*?)$/</span>, <span class="ruby-value str">""</span>)
|
1142
|
-
642: <span class="ruby-identifier">new_port</span> =
|
1143
|
-
643: <span class="ruby-identifier">new_authority</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/:([^:@\[\]]*?)$/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
|
1144
|
-
644: <span class="ruby-keyword kw">end</span>
|
1145
|
-
645:
|
1146
|
-
646: <span class="ruby-comment cmt"># Password assigned first to ensure validity in case of nil</span>
|
1147
|
-
647: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span> = <span class="ruby-identifier">new_password</span>
|
1148
|
-
648: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span> = <span class="ruby-identifier">new_user</span>
|
1149
|
-
649: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span> = <span class="ruby-identifier">new_host</span>
|
1150
|
-
650:
|
1151
|
-
651: <span class="ruby-comment cmt"># Port reset to allow port normalization</span>
|
1152
|
-
652: <span class="ruby-ivar">@port</span> = <span class="ruby-keyword kw">nil</span>
|
1153
|
-
653: <span class="ruby-ivar">@specified_port</span> = <span class="ruby-identifier">new_port</span>
|
1154
|
-
654:
|
1155
|
-
655: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
|
1156
|
-
656: <span class="ruby-identifier">validate</span>()
|
1157
|
-
657: <span class="ruby-keyword kw">end</span>
|
1158
|
-
</pre>
|
1159
|
-
</div>
|
1160
|
-
</div>
|
1161
|
-
</div>
|
1162
|
-
|
1163
|
-
<div id="method-M000032" class="method-detail">
|
1164
|
-
<a name="M000032"></a>
|
1165
|
-
|
1166
|
-
<div class="method-heading">
|
1167
|
-
<a href="#M000032" class="method-signature">
|
1168
|
-
<span class="method-name">basename</span><span class="method-args">()</span>
|
1169
|
-
</a>
|
1170
|
-
</div>
|
1171
|
-
|
1172
|
-
<div class="method-description">
|
1173
|
-
<p>
|
1174
|
-
Returns the <a href="URI.html#M000032">basename</a>, if any, of the file at
|
1175
|
-
the <a href="URI.html#M000030">path</a> being referenced. Returns nil if
|
1176
|
-
there is no <a href="URI.html#M000030">path</a> component.
|
1177
|
-
</p>
|
1178
|
-
<p><a class="source-toggle" href="#"
|
1179
|
-
onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
|
1180
|
-
<div class="method-source-code" id="M000032-source">
|
1181
|
-
<pre>
|
1182
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 735</span>
|
1183
|
-
735: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">basename</span>
|
1184
|
-
736: <span class="ruby-comment cmt"># Path cannot be nil</span>
|
1185
|
-
737: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/;[^\/]*$/</span>, <span class="ruby-value str">""</span>)
|
1186
|
-
738: <span class="ruby-keyword kw">end</span>
|
1187
|
-
</pre>
|
1188
|
-
</div>
|
1189
|
-
</div>
|
1190
|
-
</div>
|
1191
|
-
|
1192
|
-
<div id="method-M000050" class="method-detail">
|
1193
|
-
<a name="M000050"></a>
|
1194
|
-
|
1195
|
-
<div class="method-heading">
|
1196
|
-
<a href="#M000050" class="method-signature">
|
1197
|
-
<span class="method-name">display_uri</span><span class="method-args">()</span>
|
1198
|
-
</a>
|
1199
|
-
</div>
|
1200
|
-
|
1201
|
-
<div class="method-description">
|
1202
|
-
<p>
|
1203
|
-
Creates a <a href="URI.html">URI</a> suitable for display to users. If
|
1204
|
-
semantic attacks are likely, the application should try to detect these and
|
1205
|
-
warn the <a href="URI.html#M000015">user</a>. See RFC 3986 section 7.6 for
|
1206
|
-
more information.
|
1207
|
-
</p>
|
1208
|
-
<p><a class="source-toggle" href="#"
|
1209
|
-
onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
|
1210
|
-
<div class="method-source-code" id="M000050-source">
|
1211
|
-
<pre>
|
1212
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1033</span>
|
1213
|
-
1033: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">display_uri</span>
|
1214
|
-
1034: <span class="ruby-identifier">display_uri</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>
|
1215
|
-
1035: <span class="ruby-keyword kw">begin</span>
|
1216
|
-
1036: <span class="ruby-identifier">display_uri</span>.<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">"@host"</span>,
|
1217
|
-
1037: <span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">IDNA</span>.<span class="ruby-identifier">to_unicode</span>(<span class="ruby-identifier">display_uri</span>.<span class="ruby-identifier">host</span>))
|
1218
|
-
1038: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
|
1219
|
-
1039: <span class="ruby-keyword kw">nil</span>
|
1220
|
-
1040: <span class="ruby-keyword kw">end</span>
|
1221
|
-
1041: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">display_uri</span>
|
1222
|
-
1042: <span class="ruby-keyword kw">end</span>
|
1223
|
-
</pre>
|
1224
|
-
</div>
|
1225
|
-
</div>
|
1226
|
-
</div>
|
1227
|
-
|
1228
|
-
<div id="method-M000054" class="method-detail">
|
1229
|
-
<a name="M000054"></a>
|
1230
|
-
|
1231
|
-
<div class="method-heading">
|
1232
|
-
<a href="#M000054" class="method-signature">
|
1233
|
-
<span class="method-name">dup</span><span class="method-args">()</span>
|
1234
|
-
</a>
|
1235
|
-
</div>
|
1236
|
-
|
1237
|
-
<div class="method-description">
|
1238
|
-
<p>
|
1239
|
-
Clones the <a href="URI.html">URI</a> object.
|
1240
|
-
</p>
|
1241
|
-
<p><a class="source-toggle" href="#"
|
1242
|
-
onclick="toggleCode('M000054-source');return false;">[Source]</a></p>
|
1243
|
-
<div class="method-source-code" id="M000054-source">
|
1244
|
-
<pre>
|
1245
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1075</span>
|
1246
|
-
1075: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dup</span>
|
1247
|
-
1076: <span class="ruby-identifier">duplicated_scheme</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
|
1248
|
-
1077: <span class="ruby-identifier">duplicated_user</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
|
1249
|
-
1078: <span class="ruby-identifier">duplicated_password</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
|
1250
|
-
1079: <span class="ruby-identifier">duplicated_host</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
|
1251
|
-
1080: <span class="ruby-identifier">duplicated_port</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">specified_port</span>
|
1252
|
-
1081: <span class="ruby-identifier">duplicated_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
|
1253
|
-
1082: <span class="ruby-identifier">duplicated_query</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
|
1254
|
-
1083: <span class="ruby-identifier">duplicated_fragment</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fragment</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fragment</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
|
1255
|
-
1084: <span class="ruby-identifier">duplicated_uri</span> = <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
|
1256
|
-
1085: <span class="ruby-identifier">duplicated_scheme</span>,
|
1257
|
-
1086: <span class="ruby-identifier">duplicated_user</span>,
|
1258
|
-
1087: <span class="ruby-identifier">duplicated_password</span>,
|
1259
|
-
1088: <span class="ruby-identifier">duplicated_host</span>,
|
1260
|
-
1089: <span class="ruby-identifier">duplicated_port</span>,
|
1261
|
-
1090: <span class="ruby-identifier">duplicated_path</span>,
|
1262
|
-
1091: <span class="ruby-identifier">duplicated_query</span>,
|
1263
|
-
1092: <span class="ruby-identifier">duplicated_fragment</span>
|
1264
|
-
1093: )
|
1265
|
-
1094: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">duplicated_uri</span>
|
1266
|
-
1095: <span class="ruby-keyword kw">end</span>
|
1267
|
-
</pre>
|
1268
|
-
</div>
|
1269
|
-
</div>
|
1270
|
-
</div>
|
1271
|
-
|
1272
|
-
<div id="method-M000053" class="method-detail">
|
1273
|
-
<a name="M000053"></a>
|
1274
|
-
|
1275
|
-
<div class="method-heading">
|
1276
|
-
<a href="#M000053" class="method-signature">
|
1277
|
-
<span class="method-name">eql?</span><span class="method-args">(uri)</span>
|
1278
|
-
</a>
|
1279
|
-
</div>
|
1280
|
-
|
1281
|
-
<div class="method-description">
|
1282
|
-
<p>
|
1283
|
-
Returns true if the <a href="URI.html">URI</a> objects are equal. This
|
1284
|
-
method does NOT <a href="URI.html#M000048">normalize</a> either <a
|
1285
|
-
href="URI.html">URI</a> before doing the comparison.
|
1286
|
-
</p>
|
1287
|
-
<p><a class="source-toggle" href="#"
|
1288
|
-
onclick="toggleCode('M000053-source');return false;">[Source]</a></p>
|
1289
|
-
<div class="method-source-code" id="M000053-source">
|
1290
|
-
<pre>
|
1291
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1069</span>
|
1292
|
-
1069: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eql?</span>(<span class="ruby-identifier">uri</span>)
|
1293
|
-
1070: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>)
|
1294
|
-
1071: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>
|
1295
|
-
1072: <span class="ruby-keyword kw">end</span>
|
1296
|
-
</pre>
|
1297
|
-
</div>
|
1298
|
-
</div>
|
1299
|
-
</div>
|
1300
|
-
|
1301
|
-
<div id="method-M000033" class="method-detail">
|
1302
|
-
<a name="M000033"></a>
|
1303
|
-
|
1304
|
-
<div class="method-heading">
|
1305
|
-
<a href="#M000033" class="method-signature">
|
1306
|
-
<span class="method-name">extname</span><span class="method-args">()</span>
|
1307
|
-
</a>
|
1308
|
-
</div>
|
1309
|
-
|
1310
|
-
<div class="method-description">
|
1311
|
-
<p>
|
1312
|
-
Returns the extension, if any, of the file at the <a
|
1313
|
-
href="URI.html#M000030">path</a> being referenced. Returns "" if
|
1314
|
-
there is no extension or nil if there is no <a
|
1315
|
-
href="URI.html#M000030">path</a> component.
|
1316
|
-
</p>
|
1317
|
-
<p><a class="source-toggle" href="#"
|
1318
|
-
onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
|
1319
|
-
<div class="method-source-code" id="M000033-source">
|
1320
|
-
<pre>
|
1321
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 743</span>
|
1322
|
-
743: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extname</span>
|
1323
|
-
744: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>
|
1324
|
-
745: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">extname</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">basename</span>)
|
1325
|
-
746: <span class="ruby-keyword kw">end</span>
|
1326
|
-
</pre>
|
1327
|
-
</div>
|
1328
|
-
</div>
|
1329
|
-
</div>
|
1330
|
-
|
1331
|
-
<div id="method-M000005" class="method-detail">
|
1332
|
-
<a name="M000005"></a>
|
1333
|
-
|
1334
|
-
<div class="method-heading">
|
1335
|
-
<a href="#M000005" class="method-signature">
|
1336
|
-
<span class="method-name">extract_mapping</span><span class="method-args">(pattern, processor=nil)</span>
|
1337
|
-
</a>
|
1338
|
-
</div>
|
1339
|
-
|
1340
|
-
<div class="method-description">
|
1341
|
-
<p>
|
1342
|
-
Extracts a mapping from the <a href="URI.html">URI</a> using a <a
|
1343
|
-
href="URI.html">URI</a> Template pattern. Returns nil if the pattern
|
1344
|
-
doesn‘t match the <a href="URI.html">URI</a>.
|
1345
|
-
</p>
|
1346
|
-
<p>
|
1347
|
-
An optional processor object may be supplied. The object should respond to
|
1348
|
-
either the :restore or :match messages or both. The :restore method should
|
1349
|
-
take two parameters: :name and :value. The :restore method should reverse
|
1350
|
-
any transformations that have been performed on the value to ensure a valid
|
1351
|
-
<a href="URI.html">URI</a>. The :match method should take a single
|
1352
|
-
parameter: :name. The :match method should return a String containing a
|
1353
|
-
regular expression capture group for matching on that particular variable.
|
1354
|
-
The default value is ".*".
|
1355
|
-
</p>
|
1356
|
-
<p>
|
1357
|
-
An example:
|
1358
|
-
</p>
|
1359
|
-
<pre>
|
1360
|
-
class ExampleProcessor
|
1361
|
-
def self.restore(name, value)
|
1362
|
-
return value.gsub(/\+/, " ") if name == "query"
|
1363
|
-
return value
|
1364
|
-
end
|
1365
|
-
|
1366
|
-
def self.match(name)
|
1367
|
-
return ".*?" if name == "first"
|
1368
|
-
return ".*"
|
1369
|
-
end
|
1370
|
-
end
|
1371
|
-
|
1372
|
-
uri = Addressable::URI.parse(
|
1373
|
-
"http://example.com/search/an+example+search+query/")
|
1374
|
-
uri.extract_mapping("http://example.com/search/{query}/",
|
1375
|
-
ExampleProcessor)
|
1376
|
-
=> {"query" => "an example search query"}
|
1377
|
-
|
1378
|
-
uri = Addressable::URI.parse(
|
1379
|
-
"http://example.com/a/b/c/")
|
1380
|
-
uri.extract_mapping("http://example.com/{first}/{second}/",
|
1381
|
-
ExampleProcessor)
|
1382
|
-
=> {"first" => "a", "second" => "b/c"}
|
1383
|
-
</pre>
|
1384
|
-
<p><a class="source-toggle" href="#"
|
1385
|
-
onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
|
1386
|
-
<div class="method-source-code" id="M000005-source">
|
1387
|
-
<pre>
|
1388
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 267</span>
|
1389
|
-
267: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extract_mapping</span>(<span class="ruby-identifier">pattern</span>, <span class="ruby-identifier">processor</span>=<span class="ruby-keyword kw">nil</span>)
|
1390
|
-
268: <span class="ruby-identifier">mapping</span> = {}
|
1391
|
-
269: <span class="ruby-identifier">variable_regexp</span> =
|
1392
|
-
270: <span class="ruby-node">/\{([#{Addressable::URI::CharacterClasses::UNRESERVED}]+)\}/</span>
|
1393
|
-
271:
|
1394
|
-
272: <span class="ruby-comment cmt"># Get all the variables in the pattern</span>
|
1395
|
-
273: <span class="ruby-identifier">variables</span> = <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">variable_regexp</span>).<span class="ruby-identifier">flatten</span>
|
1396
|
-
274:
|
1397
|
-
275: <span class="ruby-comment cmt"># Initialize all result values to the empty string</span>
|
1398
|
-
276: <span class="ruby-identifier">variables</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">mapping</span>[<span class="ruby-identifier">v</span>] = <span class="ruby-value str">""</span> }
|
1399
|
-
277:
|
1400
|
-
278: <span class="ruby-comment cmt"># Escape the pattern</span>
|
1401
|
-
279: <span class="ruby-identifier">escaped_pattern</span> =
|
1402
|
-
280: <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-identifier">pattern</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\\\{/</span>, <span class="ruby-value str">"{"</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\\\}/</span>, <span class="ruby-value str">"}"</span>)
|
1403
|
-
281:
|
1404
|
-
282: <span class="ruby-comment cmt"># Create a regular expression that captures the values of the</span>
|
1405
|
-
283: <span class="ruby-comment cmt"># variables in the URI.</span>
|
1406
|
-
284: <span class="ruby-identifier">regexp_string</span> = <span class="ruby-identifier">escaped_pattern</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-identifier">variable_regexp</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
|
1407
|
-
285: <span class="ruby-identifier">capture_group</span> = <span class="ruby-value str">"(.*)"</span>
|
1408
|
-
286:
|
1409
|
-
287: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processor</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
1410
|
-
288: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processor</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:match</span>)
|
1411
|
-
289: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">variable_regexp</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
|
1412
|
-
290: <span class="ruby-identifier">capture_group</span> = <span class="ruby-node">"(#{processor.match(name)})"</span>
|
1413
|
-
291: <span class="ruby-keyword kw">end</span>
|
1414
|
-
292: <span class="ruby-keyword kw">end</span>
|
1415
|
-
293:
|
1416
|
-
294: <span class="ruby-identifier">capture_group</span>
|
1417
|
-
295: <span class="ruby-keyword kw">end</span>
|
1418
|
-
296:
|
1419
|
-
297: <span class="ruby-comment cmt"># Ensure that the regular expression matches the whole URI.</span>
|
1420
|
-
298: <span class="ruby-identifier">regexp_string</span> = <span class="ruby-node">"^#{regexp_string}$"</span>
|
1421
|
-
299:
|
1422
|
-
300: <span class="ruby-identifier">regexp</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">regexp_string</span>)
|
1423
|
-
301: <span class="ruby-identifier">values</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">regexp</span>).<span class="ruby-identifier">flatten</span>
|
1424
|
-
302:
|
1425
|
-
303: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">variables</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">values</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">variables</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
1426
|
-
304: <span class="ruby-comment cmt"># We have a match.</span>
|
1427
|
-
305: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">variables</span>.<span class="ruby-identifier">size</span>
|
1428
|
-
306: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">variables</span>[<span class="ruby-identifier">i</span>]
|
1429
|
-
307: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">values</span>[<span class="ruby-identifier">i</span>]
|
1430
|
-
308:
|
1431
|
-
309: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processor</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
1432
|
-
310: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processor</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:restore</span>)
|
1433
|
-
311: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">processor</span>.<span class="ruby-identifier">restore</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
|
1434
|
-
312: <span class="ruby-keyword kw">end</span>
|
1435
|
-
313: <span class="ruby-keyword kw">end</span>
|
1436
|
-
314:
|
1437
|
-
315: <span class="ruby-identifier">mapping</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">value</span>
|
1438
|
-
316: <span class="ruby-keyword kw">end</span>
|
1439
|
-
317: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">mapping</span>
|
1440
|
-
318: <span class="ruby-keyword kw">elsif</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">pattern</span>
|
1441
|
-
319: <span class="ruby-comment cmt"># The pattern contained no variables but still matched.</span>
|
1442
|
-
320: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">mapping</span>
|
1443
|
-
321: <span class="ruby-keyword kw">else</span>
|
1444
|
-
322: <span class="ruby-comment cmt"># Pattern failed to match URI.</span>
|
1445
|
-
323: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
1446
|
-
324: <span class="ruby-keyword kw">end</span>
|
1447
|
-
325: <span class="ruby-keyword kw">end</span>
|
1448
|
-
</pre>
|
1449
|
-
</div>
|
1450
|
-
</div>
|
1451
|
-
</div>
|
1452
|
-
|
1453
|
-
<div id="method-M000036" class="method-detail">
|
1454
|
-
<a name="M000036"></a>
|
1455
|
-
|
1456
|
-
<div class="method-heading">
|
1457
|
-
<a href="#M000036" class="method-signature">
|
1458
|
-
<span class="method-name">fragment</span><span class="method-args">()</span>
|
1459
|
-
</a>
|
1460
|
-
</div>
|
1461
|
-
|
1462
|
-
<div class="method-description">
|
1463
|
-
<p>
|
1464
|
-
Returns the <a href="URI.html#M000036">fragment</a> for this <a
|
1465
|
-
href="URI.html">URI</a>.
|
1466
|
-
</p>
|
1467
|
-
<p><a class="source-toggle" href="#"
|
1468
|
-
onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
|
1469
|
-
<div class="method-source-code" id="M000036-source">
|
1470
|
-
<pre>
|
1471
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 759</span>
|
1472
|
-
759: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fragment</span>
|
1473
|
-
760: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@fragment</span>
|
1474
|
-
761: <span class="ruby-keyword kw">end</span>
|
1475
|
-
</pre>
|
1476
|
-
</div>
|
1477
|
-
</div>
|
1478
|
-
</div>
|
1479
|
-
|
1480
|
-
<div id="method-M000037" class="method-detail">
|
1481
|
-
<a name="M000037"></a>
|
1482
|
-
|
1483
|
-
<div class="method-heading">
|
1484
|
-
<a href="#M000037" class="method-signature">
|
1485
|
-
<span class="method-name">fragment=</span><span class="method-args">(new_fragment)</span>
|
1486
|
-
</a>
|
1487
|
-
</div>
|
1488
|
-
|
1489
|
-
<div class="method-description">
|
1490
|
-
<p>
|
1491
|
-
Sets the <a href="URI.html#M000036">fragment</a> for this <a
|
1492
|
-
href="URI.html">URI</a>.
|
1493
|
-
</p>
|
1494
|
-
<p><a class="source-toggle" href="#"
|
1495
|
-
onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
|
1496
|
-
<div class="method-source-code" id="M000037-source">
|
1497
|
-
<pre>
|
1498
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 764</span>
|
1499
|
-
764: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fragment=</span>(<span class="ruby-identifier">new_fragment</span>)
|
1500
|
-
765: <span class="ruby-ivar">@fragment</span> = <span class="ruby-identifier">new_fragment</span>
|
1501
|
-
766: <span class="ruby-keyword kw">end</span>
|
1502
|
-
</pre>
|
1503
|
-
</div>
|
1504
|
-
</div>
|
1505
|
-
</div>
|
1506
|
-
|
1507
|
-
<div id="method-M000021" class="method-detail">
|
1508
|
-
<a name="M000021"></a>
|
1509
|
-
|
1510
|
-
<div class="method-heading">
|
1511
|
-
<a href="#M000021" class="method-signature">
|
1512
|
-
<span class="method-name">host</span><span class="method-args">()</span>
|
1513
|
-
</a>
|
1514
|
-
</div>
|
1515
|
-
|
1516
|
-
<div class="method-description">
|
1517
|
-
<p>
|
1518
|
-
Returns the <a href="URI.html#M000021">host</a> for this <a
|
1519
|
-
href="URI.html">URI</a>.
|
1520
|
-
</p>
|
1521
|
-
<p><a class="source-toggle" href="#"
|
1522
|
-
onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
|
1523
|
-
<div class="method-source-code" id="M000021-source">
|
1524
|
-
<pre>
|
1525
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 601</span>
|
1526
|
-
601: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">host</span>
|
1527
|
-
602: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@host</span>
|
1528
|
-
603: <span class="ruby-keyword kw">end</span>
|
1529
|
-
</pre>
|
1530
|
-
</div>
|
1531
|
-
</div>
|
1532
|
-
</div>
|
1533
|
-
|
1534
|
-
<div id="method-M000022" class="method-detail">
|
1535
|
-
<a name="M000022"></a>
|
1536
|
-
|
1537
|
-
<div class="method-heading">
|
1538
|
-
<a href="#M000022" class="method-signature">
|
1539
|
-
<span class="method-name">host=</span><span class="method-args">(new_host)</span>
|
1540
|
-
</a>
|
1541
|
-
</div>
|
1542
|
-
|
1543
|
-
<div class="method-description">
|
1544
|
-
<p>
|
1545
|
-
Sets the <a href="URI.html#M000021">host</a> for this <a
|
1546
|
-
href="URI.html">URI</a>.
|
1547
|
-
</p>
|
1548
|
-
<p><a class="source-toggle" href="#"
|
1549
|
-
onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
|
1550
|
-
<div class="method-source-code" id="M000022-source">
|
1551
|
-
<pre>
|
1552
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 606</span>
|
1553
|
-
606: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">host=</span>(<span class="ruby-identifier">new_host</span>)
|
1554
|
-
607: <span class="ruby-ivar">@host</span> = <span class="ruby-identifier">new_host</span>
|
1555
|
-
608:
|
1556
|
-
609: <span class="ruby-comment cmt"># Reset dependant values</span>
|
1557
|
-
610: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
|
1558
|
-
611:
|
1559
|
-
612: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
|
1560
|
-
613: <span class="ruby-identifier">validate</span>()
|
1561
|
-
614: <span class="ruby-keyword kw">end</span>
|
1562
|
-
</pre>
|
1563
|
-
</div>
|
1564
|
-
</div>
|
1565
|
-
</div>
|
1566
|
-
|
1567
|
-
<div id="method-M000057" class="method-detail">
|
1568
|
-
<a name="M000057"></a>
|
1569
|
-
|
1570
|
-
<div class="method-heading">
|
1571
|
-
<a href="#M000057" class="method-signature">
|
1572
|
-
<span class="method-name">inspect</span><span class="method-args">()</span>
|
1573
|
-
</a>
|
1574
|
-
</div>
|
1575
|
-
|
1576
|
-
<div class="method-description">
|
1577
|
-
<p>
|
1578
|
-
Returns a string representation of the <a href="URI.html">URI</a>
|
1579
|
-
object‘s state.
|
1580
|
-
</p>
|
1581
|
-
<p><a class="source-toggle" href="#"
|
1582
|
-
onclick="toggleCode('M000057-source');return false;">[Source]</a></p>
|
1583
|
-
<div class="method-source-code" id="M000057-source">
|
1584
|
-
<pre>
|
1585
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1123</span>
|
1586
|
-
1123: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inspect</span>
|
1587
|
-
1124: <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">"#<%s:%#0x URI:%s>"</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">object_id</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span>)
|
1588
|
-
1125: <span class="ruby-keyword kw">end</span>
|
1589
|
-
</pre>
|
1590
|
-
</div>
|
1591
|
-
</div>
|
1592
|
-
</div>
|
1593
|
-
|
1594
|
-
<div id="method-M000038" class="method-detail">
|
1595
|
-
<a name="M000038"></a>
|
1596
|
-
|
1597
|
-
<div class="method-heading">
|
1598
|
-
<a href="#M000038" class="method-signature">
|
1599
|
-
<span class="method-name">ip_based?</span><span class="method-args">()</span>
|
1600
|
-
</a>
|
1601
|
-
</div>
|
1602
|
-
|
1603
|
-
<div class="method-description">
|
1604
|
-
<p>
|
1605
|
-
Returns true if the <a href="URI.html">URI</a> uses an IP-based protocol.
|
1606
|
-
</p>
|
1607
|
-
<p><a class="source-toggle" href="#"
|
1608
|
-
onclick="toggleCode('M000038-source');return false;">[Source]</a></p>
|
1609
|
-
<div class="method-source-code" id="M000038-source">
|
1610
|
-
<pre>
|
1611
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 769</span>
|
1612
|
-
769: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ip_based?</span>
|
1613
|
-
770: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>
|
1614
|
-
771: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">ip_based_schemes</span>.<span class="ruby-identifier">include?</span>(
|
1615
|
-
772: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">downcase</span>)
|
1616
|
-
773: <span class="ruby-keyword kw">end</span>
|
1617
|
-
774: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
|
1618
|
-
775: <span class="ruby-keyword kw">end</span>
|
1619
|
-
</pre>
|
1620
|
-
</div>
|
1621
|
-
</div>
|
1622
|
-
</div>
|
1623
|
-
|
1624
|
-
<div id="method-M000043" class="method-detail">
|
1625
|
-
<a name="M000043"></a>
|
1626
|
-
|
1627
|
-
<div class="method-heading">
|
1628
|
-
<span class="method-name">join</span><span class="method-args">(uri)</span>
|
1629
|
-
</div>
|
1630
|
-
|
1631
|
-
<div class="method-description">
|
1632
|
-
<p>
|
1633
|
-
Alias for <a href="URI.html#M000042">merge</a>
|
1634
|
-
</p>
|
1635
|
-
</div>
|
1636
|
-
</div>
|
1637
|
-
|
1638
|
-
<div id="method-M000045" class="method-detail">
|
1639
|
-
<a name="M000045"></a>
|
1640
|
-
|
1641
|
-
<div class="method-heading">
|
1642
|
-
<span class="method-name">join!</span><span class="method-args">(uri)</span>
|
1643
|
-
</div>
|
1644
|
-
|
1645
|
-
<div class="method-description">
|
1646
|
-
<p>
|
1647
|
-
Alias for <a href="URI.html#M000042">merge</a>!
|
1648
|
-
</p>
|
1649
|
-
</div>
|
1650
|
-
</div>
|
1651
|
-
|
1652
|
-
<div id="method-M000042" class="method-detail">
|
1653
|
-
<a name="M000042"></a>
|
1654
|
-
|
1655
|
-
<div class="method-heading">
|
1656
|
-
<a href="#M000042" class="method-signature">
|
1657
|
-
<span class="method-name">merge</span><span class="method-args">(uri)</span>
|
1658
|
-
</a>
|
1659
|
-
</div>
|
1660
|
-
|
1661
|
-
<div class="method-description">
|
1662
|
-
<p>
|
1663
|
-
Merges two URIs together.
|
1664
|
-
</p>
|
1665
|
-
<p><a class="source-toggle" href="#"
|
1666
|
-
onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
|
1667
|
-
<div class="method-source-code" id="M000042-source">
|
1668
|
-
<pre>
|
1669
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 879</span>
|
1670
|
-
879: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">merge</span>(<span class="ruby-identifier">uri</span>)
|
1671
|
-
880: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">uri</span>
|
1672
|
-
881: <span class="ruby-keyword kw">end</span>
|
1673
|
-
</pre>
|
1674
|
-
</div>
|
1675
|
-
</div>
|
1676
|
-
</div>
|
1677
|
-
|
1678
|
-
<div id="method-M000044" class="method-detail">
|
1679
|
-
<a name="M000044"></a>
|
1680
|
-
|
1681
|
-
<div class="method-heading">
|
1682
|
-
<a href="#M000044" class="method-signature">
|
1683
|
-
<span class="method-name">merge!</span><span class="method-args">(uri)</span>
|
1684
|
-
</a>
|
1685
|
-
</div>
|
1686
|
-
|
1687
|
-
<div class="method-description">
|
1688
|
-
<p>
|
1689
|
-
Destructive form of <a href="URI.html#M000042">merge</a>.
|
1690
|
-
</p>
|
1691
|
-
<p><a class="source-toggle" href="#"
|
1692
|
-
onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
|
1693
|
-
<div class="method-source-code" id="M000044-source">
|
1694
|
-
<pre>
|
1695
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 885</span>
|
1696
|
-
885: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">uri</span>)
|
1697
|
-
886: <span class="ruby-identifier">replace_self</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">uri</span>))
|
1698
|
-
887: <span class="ruby-keyword kw">end</span>
|
1699
|
-
</pre>
|
1700
|
-
</div>
|
1701
|
-
</div>
|
1702
|
-
</div>
|
1703
|
-
|
1704
|
-
<div id="method-M000048" class="method-detail">
|
1705
|
-
<a name="M000048"></a>
|
1706
|
-
|
1707
|
-
<div class="method-heading">
|
1708
|
-
<a href="#M000048" class="method-signature">
|
1709
|
-
<span class="method-name">normalize</span><span class="method-args">()</span>
|
1710
|
-
</a>
|
1711
|
-
</div>
|
1712
|
-
|
1713
|
-
<div class="method-description">
|
1714
|
-
<p>
|
1715
|
-
Returns a normalized <a href="URI.html">URI</a> object.
|
1716
|
-
</p>
|
1717
|
-
<p>
|
1718
|
-
NOTE: This method does not attempt to fully conform to specifications. It
|
1719
|
-
exists largely to correct other people‘s failures to read the
|
1720
|
-
specifications, and also to deal with caching issues since several
|
1721
|
-
different URIs may represent the same resource and should not be cached
|
1722
|
-
multiple times.
|
1723
|
-
</p>
|
1724
|
-
<p><a class="source-toggle" href="#"
|
1725
|
-
onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
|
1726
|
-
<div class="method-source-code" id="M000048-source">
|
1727
|
-
<pre>
|
1728
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 956</span>
|
1729
|
-
956: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">normalize</span>
|
1730
|
-
957: <span class="ruby-identifier">normalized_scheme</span> = <span class="ruby-keyword kw">nil</span>
|
1731
|
-
958: <span class="ruby-identifier">normalized_scheme</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
1732
|
-
959: <span class="ruby-identifier">normalized_scheme</span> = <span class="ruby-value str">"svn+ssh"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"ssh+svn"</span>
|
1733
|
-
960: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"feed"</span>
|
1734
|
-
961: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^feed:\/*http:\/*/</span>
|
1735
|
-
962: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">parse</span>(
|
1736
|
-
963: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/^feed:\/*(http:\/*.*)/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]).<span class="ruby-identifier">normalize</span>
|
1737
|
-
964: <span class="ruby-keyword kw">end</span>
|
1738
|
-
965: <span class="ruby-keyword kw">end</span>
|
1739
|
-
966: <span class="ruby-identifier">normalized_user</span> = <span class="ruby-keyword kw">nil</span>
|
1740
|
-
967: <span class="ruby-identifier">normalized_user</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>.<span class="ruby-identifier">strip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
1741
|
-
968: <span class="ruby-identifier">normalized_password</span> = <span class="ruby-keyword kw">nil</span>
|
1742
|
-
969: <span class="ruby-identifier">normalized_password</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>.<span class="ruby-identifier">strip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
1743
|
-
970:
|
1744
|
-
971: <span class="ruby-comment cmt"># If we are using http or https and user/password are blank,</span>
|
1745
|
-
972: <span class="ruby-comment cmt"># then we remove them</span>
|
1746
|
-
973: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_scheme</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/https?/</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">normalized_user</span> <span class="ruby-operator">==</span> <span class="ruby-value str">""</span> <span class="ruby-operator">&&</span>
|
1747
|
-
974: (<span class="ruby-operator">!</span><span class="ruby-identifier">normalized_password</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">normalized_password</span> <span class="ruby-operator">==</span> <span class="ruby-value str">""</span>)
|
1748
|
-
975: <span class="ruby-identifier">normalized_user</span> = <span class="ruby-keyword kw">nil</span>
|
1749
|
-
976: <span class="ruby-identifier">normalized_password</span> = <span class="ruby-keyword kw">nil</span>
|
1750
|
-
977: <span class="ruby-keyword kw">end</span>
|
1751
|
-
978:
|
1752
|
-
979: <span class="ruby-identifier">normalized_host</span> = <span class="ruby-keyword kw">nil</span>
|
1753
|
-
980: <span class="ruby-identifier">normalized_host</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
1754
|
-
981: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_host</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
1755
|
-
982: <span class="ruby-keyword kw">begin</span>
|
1756
|
-
983: <span class="ruby-identifier">normalized_host</span> = <span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">IDNA</span>.<span class="ruby-identifier">to_ascii</span>(<span class="ruby-identifier">normalized_host</span>)
|
1757
|
-
984: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
|
1758
|
-
985: <span class="ruby-keyword kw">nil</span>
|
1759
|
-
986: <span class="ruby-keyword kw">end</span>
|
1760
|
-
987: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_host</span>[<span class="ruby-value">-1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">"."</span>
|
1761
|
-
988: <span class="ruby-identifier">normalized_host</span> = <span class="ruby-identifier">normalized_host</span>[<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-value">-1</span>]
|
1762
|
-
989: <span class="ruby-keyword kw">end</span>
|
1763
|
-
990: <span class="ruby-keyword kw">end</span>
|
1764
|
-
991:
|
1765
|
-
992: <span class="ruby-identifier">normalized_port</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">port</span>
|
1766
|
-
993: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">scheme_mapping</span>[<span class="ruby-identifier">normalized_scheme</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">normalized_port</span>
|
1767
|
-
994: <span class="ruby-identifier">normalized_port</span> = <span class="ruby-keyword kw">nil</span>
|
1768
|
-
995: <span class="ruby-keyword kw">end</span>
|
1769
|
-
996: <span class="ruby-identifier">normalized_path</span> = <span class="ruby-keyword kw">nil</span>
|
1770
|
-
997: <span class="ruby-identifier">normalized_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>.<span class="ruby-identifier">strip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
1771
|
-
998: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_path</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
1772
|
-
999: <span class="ruby-identifier">normalized_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">normalized_path</span>)
|
1773
|
-
1000: <span class="ruby-keyword kw">end</span>
|
1774
|
-
1001: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_path</span> <span class="ruby-operator">==</span> <span class="ruby-value str">""</span>
|
1775
|
-
1002: <span class="ruby-keyword kw">if</span> [<span class="ruby-value str">"http"</span>, <span class="ruby-value str">"https"</span>, <span class="ruby-value str">"ftp"</span>, <span class="ruby-value str">"tftp"</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">normalized_scheme</span>)
|
1776
|
-
1003: <span class="ruby-identifier">normalized_path</span> = <span class="ruby-value str">"/"</span>
|
1777
|
-
1004: <span class="ruby-keyword kw">end</span>
|
1778
|
-
1005: <span class="ruby-keyword kw">end</span>
|
1779
|
-
1006:
|
1780
|
-
1007: <span class="ruby-identifier">normalized_query</span> = <span class="ruby-keyword kw">nil</span>
|
1781
|
-
1008: <span class="ruby-identifier">normalized_query</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">strip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
1782
|
-
1009:
|
1783
|
-
1010: <span class="ruby-identifier">normalized_fragment</span> = <span class="ruby-keyword kw">nil</span>
|
1784
|
-
1011: <span class="ruby-identifier">normalized_fragment</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fragment</span>.<span class="ruby-identifier">strip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fragment</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
1785
|
-
1012: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(
|
1786
|
-
1013: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">normalized_encode</span>(<span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
|
1787
|
-
1014: <span class="ruby-identifier">normalized_scheme</span>,
|
1788
|
-
1015: <span class="ruby-identifier">normalized_user</span>,
|
1789
|
-
1016: <span class="ruby-identifier">normalized_password</span>,
|
1790
|
-
1017: <span class="ruby-identifier">normalized_host</span>,
|
1791
|
-
1018: <span class="ruby-identifier">normalized_port</span>,
|
1792
|
-
1019: <span class="ruby-identifier">normalized_path</span>,
|
1793
|
-
1020: <span class="ruby-identifier">normalized_query</span>,
|
1794
|
-
1021: <span class="ruby-identifier">normalized_fragment</span>
|
1795
|
-
1022: )))
|
1796
|
-
1023: <span class="ruby-keyword kw">end</span>
|
1797
|
-
</pre>
|
1798
|
-
</div>
|
1799
|
-
</div>
|
1800
|
-
</div>
|
1801
|
-
|
1802
|
-
<div id="method-M000049" class="method-detail">
|
1803
|
-
<a name="M000049"></a>
|
1804
|
-
|
1805
|
-
<div class="method-heading">
|
1806
|
-
<a href="#M000049" class="method-signature">
|
1807
|
-
<span class="method-name">normalize!</span><span class="method-args">()</span>
|
1808
|
-
</a>
|
1809
|
-
</div>
|
1810
|
-
|
1811
|
-
<div class="method-description">
|
1812
|
-
<p>
|
1813
|
-
Destructively normalizes this <a href="URI.html">URI</a> object.
|
1814
|
-
</p>
|
1815
|
-
<p><a class="source-toggle" href="#"
|
1816
|
-
onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
|
1817
|
-
<div class="method-source-code" id="M000049-source">
|
1818
|
-
<pre>
|
1819
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1026</span>
|
1820
|
-
1026: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">normalize!</span>
|
1821
|
-
1027: <span class="ruby-identifier">replace_self</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>)
|
1822
|
-
1028: <span class="ruby-keyword kw">end</span>
|
1823
|
-
</pre>
|
1824
|
-
</div>
|
1825
|
-
</div>
|
1826
|
-
</div>
|
1827
|
-
|
1828
|
-
<div id="method-M000017" class="method-detail">
|
1829
|
-
<a name="M000017"></a>
|
1830
|
-
|
1831
|
-
<div class="method-heading">
|
1832
|
-
<a href="#M000017" class="method-signature">
|
1833
|
-
<span class="method-name">password</span><span class="method-args">()</span>
|
1834
|
-
</a>
|
1835
|
-
</div>
|
1836
|
-
|
1837
|
-
<div class="method-description">
|
1838
|
-
<p>
|
1839
|
-
Returns the <a href="URI.html#M000017">password</a> for this <a
|
1840
|
-
href="URI.html">URI</a>.
|
1841
|
-
</p>
|
1842
|
-
<p><a class="source-toggle" href="#"
|
1843
|
-
onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
|
1844
|
-
<div class="method-source-code" id="M000017-source">
|
1845
|
-
<pre>
|
1846
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 547</span>
|
1847
|
-
547: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">password</span>
|
1848
|
-
548: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@password</span>
|
1849
|
-
549: <span class="ruby-keyword kw">end</span>
|
1850
|
-
</pre>
|
1851
|
-
</div>
|
1852
|
-
</div>
|
1853
|
-
</div>
|
1854
|
-
|
1855
|
-
<div id="method-M000018" class="method-detail">
|
1856
|
-
<a name="M000018"></a>
|
1857
|
-
|
1858
|
-
<div class="method-heading">
|
1859
|
-
<a href="#M000018" class="method-signature">
|
1860
|
-
<span class="method-name">password=</span><span class="method-args">(new_password)</span>
|
1861
|
-
</a>
|
1862
|
-
</div>
|
1863
|
-
|
1864
|
-
<div class="method-description">
|
1865
|
-
<p>
|
1866
|
-
Sets the <a href="URI.html#M000017">password</a> for this <a
|
1867
|
-
href="URI.html">URI</a>.
|
1868
|
-
</p>
|
1869
|
-
<p><a class="source-toggle" href="#"
|
1870
|
-
onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
|
1871
|
-
<div class="method-source-code" id="M000018-source">
|
1872
|
-
<pre>
|
1873
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 552</span>
|
1874
|
-
552: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">password=</span>(<span class="ruby-identifier">new_password</span>)
|
1875
|
-
553: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">new_password</span>
|
1876
|
-
554:
|
1877
|
-
555: <span class="ruby-comment cmt"># You can't have a nil user with a non-nil password</span>
|
1878
|
-
556: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@password</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
1879
|
-
557: <span class="ruby-ivar">@user</span> = <span class="ruby-value str">""</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@user</span>.<span class="ruby-identifier">nil?</span>
|
1880
|
-
558: <span class="ruby-keyword kw">end</span>
|
1881
|
-
559:
|
1882
|
-
560: <span class="ruby-comment cmt"># Reset dependant values</span>
|
1883
|
-
561: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-keyword kw">nil</span>
|
1884
|
-
562: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
|
1885
|
-
563:
|
1886
|
-
564: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
|
1887
|
-
565: <span class="ruby-identifier">validate</span>()
|
1888
|
-
566: <span class="ruby-keyword kw">end</span>
|
1889
|
-
</pre>
|
1890
|
-
</div>
|
1891
|
-
</div>
|
1892
|
-
</div>
|
1893
|
-
|
1894
|
-
<div id="method-M000030" class="method-detail">
|
1895
|
-
<a name="M000030"></a>
|
1896
|
-
|
1897
|
-
<div class="method-heading">
|
1898
|
-
<a href="#M000030" class="method-signature">
|
1899
|
-
<span class="method-name">path</span><span class="method-args">()</span>
|
1900
|
-
</a>
|
1901
|
-
</div>
|
1902
|
-
|
1903
|
-
<div class="method-description">
|
1904
|
-
<p>
|
1905
|
-
Returns the <a href="URI.html#M000030">path</a> for this <a
|
1906
|
-
href="URI.html">URI</a>.
|
1907
|
-
</p>
|
1908
|
-
<p><a class="source-toggle" href="#"
|
1909
|
-
onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
|
1910
|
-
<div class="method-source-code" id="M000030-source">
|
1911
|
-
<pre>
|
1912
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 724</span>
|
1913
|
-
724: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">path</span>
|
1914
|
-
725: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@path</span>
|
1915
|
-
726: <span class="ruby-keyword kw">end</span>
|
1916
|
-
</pre>
|
1917
|
-
</div>
|
1918
|
-
</div>
|
1919
|
-
</div>
|
1920
|
-
|
1921
|
-
<div id="method-M000031" class="method-detail">
|
1922
|
-
<a name="M000031"></a>
|
1923
|
-
|
1924
|
-
<div class="method-heading">
|
1925
|
-
<a href="#M000031" class="method-signature">
|
1926
|
-
<span class="method-name">path=</span><span class="method-args">(new_path)</span>
|
1927
|
-
</a>
|
1928
|
-
</div>
|
1929
|
-
|
1930
|
-
<div class="method-description">
|
1931
|
-
<p>
|
1932
|
-
Sets the <a href="URI.html#M000030">path</a> for this <a
|
1933
|
-
href="URI.html">URI</a>.
|
1934
|
-
</p>
|
1935
|
-
<p><a class="source-toggle" href="#"
|
1936
|
-
onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
|
1937
|
-
<div class="method-source-code" id="M000031-source">
|
1938
|
-
<pre>
|
1939
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 729</span>
|
1940
|
-
729: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">path=</span>(<span class="ruby-identifier">new_path</span>)
|
1941
|
-
730: <span class="ruby-ivar">@path</span> = (<span class="ruby-identifier">new_path</span> <span class="ruby-operator">||</span> <span class="ruby-value str">""</span>)
|
1942
|
-
731: <span class="ruby-keyword kw">end</span>
|
1943
|
-
</pre>
|
1944
|
-
</div>
|
1945
|
-
</div>
|
1946
|
-
</div>
|
1947
|
-
|
1948
|
-
<div id="method-M000027" class="method-detail">
|
1949
|
-
<a name="M000027"></a>
|
1950
|
-
|
1951
|
-
<div class="method-heading">
|
1952
|
-
<a href="#M000027" class="method-signature">
|
1953
|
-
<span class="method-name">port</span><span class="method-args">()</span>
|
1954
|
-
</a>
|
1955
|
-
</div>
|
1956
|
-
|
1957
|
-
<div class="method-description">
|
1958
|
-
<p>
|
1959
|
-
Returns the <a href="URI.html#M000027">port</a> number for this <a
|
1960
|
-
href="URI.html">URI</a>. This method will <a
|
1961
|
-
href="URI.html#M000048">normalize</a> to the default <a
|
1962
|
-
href="URI.html#M000027">port</a> for the <a href="URI.html">URI</a>‘s
|
1963
|
-
<a href="URI.html#M000013">scheme</a> if the <a
|
1964
|
-
href="URI.html#M000027">port</a> isn‘t explicitly specified in the <a
|
1965
|
-
href="URI.html">URI</a>.
|
1966
|
-
</p>
|
1967
|
-
<p><a class="source-toggle" href="#"
|
1968
|
-
onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
|
1969
|
-
<div class="method-source-code" id="M000027-source">
|
1970
|
-
<pre>
|
1971
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 692</span>
|
1972
|
-
692: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">port</span>
|
1973
|
-
693: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@port</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
1974
|
-
694: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>
|
1975
|
-
695: <span class="ruby-ivar">@port</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">scheme_mapping</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">downcase</span>]
|
1976
|
-
696: <span class="ruby-keyword kw">else</span>
|
1977
|
-
697: <span class="ruby-ivar">@port</span> = <span class="ruby-keyword kw">nil</span>
|
1978
|
-
698: <span class="ruby-keyword kw">end</span>
|
1979
|
-
699: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@port</span>
|
1980
|
-
700: <span class="ruby-keyword kw">else</span>
|
1981
|
-
701: <span class="ruby-ivar">@port</span> = <span class="ruby-ivar">@port</span>.<span class="ruby-identifier">to_i</span>
|
1982
|
-
702: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@port</span>
|
1983
|
-
703: <span class="ruby-keyword kw">end</span>
|
1984
|
-
704: <span class="ruby-keyword kw">end</span>
|
1985
|
-
</pre>
|
1986
|
-
</div>
|
1987
|
-
</div>
|
1988
|
-
</div>
|
1989
|
-
|
1990
|
-
<div id="method-M000028" class="method-detail">
|
1991
|
-
<a name="M000028"></a>
|
1992
|
-
|
1993
|
-
<div class="method-heading">
|
1994
|
-
<a href="#M000028" class="method-signature">
|
1995
|
-
<span class="method-name">port=</span><span class="method-args">(new_port)</span>
|
1996
|
-
</a>
|
1997
|
-
</div>
|
1998
|
-
|
1999
|
-
<div class="method-description">
|
2000
|
-
<p>
|
2001
|
-
Sets the <a href="URI.html#M000027">port</a> for this <a
|
2002
|
-
href="URI.html">URI</a>.
|
2003
|
-
</p>
|
2004
|
-
<p><a class="source-toggle" href="#"
|
2005
|
-
onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
|
2006
|
-
<div class="method-source-code" id="M000028-source">
|
2007
|
-
<pre>
|
2008
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 707</span>
|
2009
|
-
707: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">port=</span>(<span class="ruby-identifier">new_port</span>)
|
2010
|
-
708: <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">new_port</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">to_i</span>
|
2011
|
-
709: <span class="ruby-ivar">@specified_port</span> = <span class="ruby-ivar">@port</span>
|
2012
|
-
710: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
|
2013
|
-
711: <span class="ruby-keyword kw">end</span>
|
2014
|
-
</pre>
|
2015
|
-
</div>
|
2016
|
-
</div>
|
2017
|
-
</div>
|
2018
|
-
|
2019
|
-
<div id="method-M000034" class="method-detail">
|
2020
|
-
<a name="M000034"></a>
|
2021
|
-
|
2022
|
-
<div class="method-heading">
|
2023
|
-
<a href="#M000034" class="method-signature">
|
2024
|
-
<span class="method-name">query</span><span class="method-args">()</span>
|
2025
|
-
</a>
|
2026
|
-
</div>
|
2027
|
-
|
2028
|
-
<div class="method-description">
|
2029
|
-
<p>
|
2030
|
-
Returns the <a href="URI.html#M000034">query</a> string for this <a
|
2031
|
-
href="URI.html">URI</a>.
|
2032
|
-
</p>
|
2033
|
-
<p><a class="source-toggle" href="#"
|
2034
|
-
onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
|
2035
|
-
<div class="method-source-code" id="M000034-source">
|
2036
|
-
<pre>
|
2037
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 749</span>
|
2038
|
-
749: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query</span>
|
2039
|
-
750: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@query</span>
|
2040
|
-
751: <span class="ruby-keyword kw">end</span>
|
2041
|
-
</pre>
|
2042
|
-
</div>
|
2043
|
-
</div>
|
2044
|
-
</div>
|
2045
|
-
|
2046
|
-
<div id="method-M000035" class="method-detail">
|
2047
|
-
<a name="M000035"></a>
|
2048
|
-
|
2049
|
-
<div class="method-heading">
|
2050
|
-
<a href="#M000035" class="method-signature">
|
2051
|
-
<span class="method-name">query=</span><span class="method-args">(new_query)</span>
|
2052
|
-
</a>
|
2053
|
-
</div>
|
2054
|
-
|
2055
|
-
<div class="method-description">
|
2056
|
-
<p>
|
2057
|
-
Sets the <a href="URI.html#M000034">query</a> string for this <a
|
2058
|
-
href="URI.html">URI</a>.
|
2059
|
-
</p>
|
2060
|
-
<p><a class="source-toggle" href="#"
|
2061
|
-
onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
|
2062
|
-
<div class="method-source-code" id="M000035-source">
|
2063
|
-
<pre>
|
2064
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 754</span>
|
2065
|
-
754: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query=</span>(<span class="ruby-identifier">new_query</span>)
|
2066
|
-
755: <span class="ruby-ivar">@query</span> = <span class="ruby-identifier">new_query</span>
|
2067
|
-
756: <span class="ruby-keyword kw">end</span>
|
2068
|
-
</pre>
|
2069
|
-
</div>
|
2070
|
-
</div>
|
2071
|
-
</div>
|
2072
|
-
|
2073
|
-
<div id="method-M000039" class="method-detail">
|
2074
|
-
<a name="M000039"></a>
|
2075
|
-
|
2076
|
-
<div class="method-heading">
|
2077
|
-
<a href="#M000039" class="method-signature">
|
2078
|
-
<span class="method-name">relative?</span><span class="method-args">()</span>
|
2079
|
-
</a>
|
2080
|
-
</div>
|
2081
|
-
|
2082
|
-
<div class="method-description">
|
2083
|
-
<p>
|
2084
|
-
Returns true if this <a href="URI.html">URI</a> is known to be relative.
|
2085
|
-
</p>
|
2086
|
-
<p><a class="source-toggle" href="#"
|
2087
|
-
onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
|
2088
|
-
<div class="method-source-code" id="M000039-source">
|
2089
|
-
<pre>
|
2090
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 778</span>
|
2091
|
-
778: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">relative?</span>
|
2092
|
-
779: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>.<span class="ruby-identifier">nil?</span>
|
2093
|
-
780: <span class="ruby-keyword kw">end</span>
|
2094
|
-
</pre>
|
2095
|
-
</div>
|
2096
|
-
</div>
|
2097
|
-
</div>
|
2098
|
-
|
2099
|
-
<div id="method-M000046" class="method-detail">
|
2100
|
-
<a name="M000046"></a>
|
2101
|
-
|
2102
|
-
<div class="method-heading">
|
2103
|
-
<a href="#M000046" class="method-signature">
|
2104
|
-
<span class="method-name">route_from</span><span class="method-args">(uri)</span>
|
2105
|
-
</a>
|
2106
|
-
</div>
|
2107
|
-
|
2108
|
-
<div class="method-description">
|
2109
|
-
<p>
|
2110
|
-
Returns the shortest normalized relative form of this <a
|
2111
|
-
href="URI.html">URI</a> that uses the supplied <a href="URI.html">URI</a>
|
2112
|
-
as a base for resolution. Returns an absolute <a href="URI.html">URI</a> if
|
2113
|
-
necessary.
|
2114
|
-
</p>
|
2115
|
-
<p><a class="source-toggle" href="#"
|
2116
|
-
onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
|
2117
|
-
<div class="method-source-code" id="M000046-source">
|
2118
|
-
<pre>
|
2119
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 893</span>
|
2120
|
-
893: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">route_from</span>(<span class="ruby-identifier">uri</span>)
|
2121
|
-
894: <span class="ruby-identifier">uri</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>).<span class="ruby-identifier">normalize</span>
|
2122
|
-
895: <span class="ruby-identifier">normalized_self</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>
|
2123
|
-
896: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">relative?</span>
|
2124
|
-
897: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">"Expected absolute URI, got: #{self.to_s}"</span>
|
2125
|
-
898: <span class="ruby-keyword kw">end</span>
|
2126
|
-
899: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">relative?</span>
|
2127
|
-
900: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">"Expected absolute URI, got: #{uri.to_s}"</span>
|
2128
|
-
901: <span class="ruby-keyword kw">end</span>
|
2129
|
-
902: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_self</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>
|
2130
|
-
903: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-node">"##{normalized_self.fragment}"</span>)
|
2131
|
-
904: <span class="ruby-keyword kw">end</span>
|
2132
|
-
905: <span class="ruby-identifier">segments</span> = <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">to_hash</span>
|
2133
|
-
906: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span>
|
2134
|
-
907: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:scheme</span>] = <span class="ruby-keyword kw">nil</span>
|
2135
|
-
908: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">authority</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">authority</span>
|
2136
|
-
909: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:user</span>] = <span class="ruby-keyword kw">nil</span>
|
2137
|
-
910: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:password</span>] = <span class="ruby-keyword kw">nil</span>
|
2138
|
-
911: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>] = <span class="ruby-keyword kw">nil</span>
|
2139
|
-
912: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:port</span>] = <span class="ruby-keyword kw">nil</span>
|
2140
|
-
913: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>
|
2141
|
-
914: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:path</span>] = <span class="ruby-keyword kw">nil</span>
|
2142
|
-
915: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">query</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
|
2143
|
-
916: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:query</span>] = <span class="ruby-keyword kw">nil</span>
|
2144
|
-
917: <span class="ruby-keyword kw">end</span>
|
2145
|
-
918: <span class="ruby-keyword kw">else</span>
|
2146
|
-
919: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">"/"</span>
|
2147
|
-
920: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:path</span>].<span class="ruby-identifier">gsub!</span>(
|
2148
|
-
921: <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"^"</span> <span class="ruby-operator">+</span> <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>)), <span class="ruby-value str">""</span>)
|
2149
|
-
922: <span class="ruby-keyword kw">end</span>
|
2150
|
-
923: <span class="ruby-keyword kw">end</span>
|
2151
|
-
924: <span class="ruby-keyword kw">end</span>
|
2152
|
-
925: <span class="ruby-keyword kw">end</span>
|
2153
|
-
926: <span class="ruby-comment cmt"># Avoid network-path references.</span>
|
2154
|
-
927: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
2155
|
-
928: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:scheme</span>] = <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">scheme</span>
|
2156
|
-
929: <span class="ruby-keyword kw">end</span>
|
2157
|
-
930: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
|
2158
|
-
931: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:scheme</span>],
|
2159
|
-
932: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:user</span>],
|
2160
|
-
933: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:password</span>],
|
2161
|
-
934: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>],
|
2162
|
-
935: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:port</span>],
|
2163
|
-
936: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:path</span>],
|
2164
|
-
937: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:query</span>],
|
2165
|
-
938: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:fragment</span>]
|
2166
|
-
939: )
|
2167
|
-
940: <span class="ruby-keyword kw">end</span>
|
2168
|
-
</pre>
|
2169
|
-
</div>
|
2170
|
-
</div>
|
2171
|
-
</div>
|
2172
|
-
|
2173
|
-
<div id="method-M000047" class="method-detail">
|
2174
|
-
<a name="M000047"></a>
|
2175
|
-
|
2176
|
-
<div class="method-heading">
|
2177
|
-
<a href="#M000047" class="method-signature">
|
2178
|
-
<span class="method-name">route_to</span><span class="method-args">(uri)</span>
|
2179
|
-
</a>
|
2180
|
-
</div>
|
2181
|
-
|
2182
|
-
<div class="method-description">
|
2183
|
-
<p>
|
2184
|
-
Returns the shortest normalized relative form of the supplied <a
|
2185
|
-
href="URI.html">URI</a> that uses this <a href="URI.html">URI</a> as a base
|
2186
|
-
for resolution. Returns an absolute <a href="URI.html">URI</a> if
|
2187
|
-
necessary.
|
2188
|
-
</p>
|
2189
|
-
<p><a class="source-toggle" href="#"
|
2190
|
-
onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
|
2191
|
-
<div class="method-source-code" id="M000047-source">
|
2192
|
-
<pre>
|
2193
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 945</span>
|
2194
|
-
945: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">route_to</span>(<span class="ruby-identifier">uri</span>)
|
2195
|
-
946: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>).<span class="ruby-identifier">route_from</span>(<span class="ruby-keyword kw">self</span>)
|
2196
|
-
947: <span class="ruby-keyword kw">end</span>
|
2197
|
-
</pre>
|
2198
|
-
</div>
|
2199
|
-
</div>
|
2200
|
-
</div>
|
2201
|
-
|
2202
|
-
<div id="method-M000013" class="method-detail">
|
2203
|
-
<a name="M000013"></a>
|
2204
|
-
|
2205
|
-
<div class="method-heading">
|
2206
|
-
<a href="#M000013" class="method-signature">
|
2207
|
-
<span class="method-name">scheme</span><span class="method-args">()</span>
|
2208
|
-
</a>
|
2209
|
-
</div>
|
2210
|
-
|
2211
|
-
<div class="method-description">
|
2212
|
-
<p>
|
2213
|
-
Returns the <a href="URI.html#M000013">scheme</a> (protocol) for this <a
|
2214
|
-
href="URI.html">URI</a>.
|
2215
|
-
</p>
|
2216
|
-
<p><a class="source-toggle" href="#"
|
2217
|
-
onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
|
2218
|
-
<div class="method-source-code" id="M000013-source">
|
2219
|
-
<pre>
|
2220
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 515</span>
|
2221
|
-
515: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scheme</span>
|
2222
|
-
516: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@scheme</span>
|
2223
|
-
517: <span class="ruby-keyword kw">end</span>
|
2224
|
-
</pre>
|
2225
|
-
</div>
|
2226
|
-
</div>
|
2227
|
-
</div>
|
2228
|
-
|
2229
|
-
<div id="method-M000014" class="method-detail">
|
2230
|
-
<a name="M000014"></a>
|
2231
|
-
|
2232
|
-
<div class="method-heading">
|
2233
|
-
<a href="#M000014" class="method-signature">
|
2234
|
-
<span class="method-name">scheme=</span><span class="method-args">(new_scheme)</span>
|
2235
|
-
</a>
|
2236
|
-
</div>
|
2237
|
-
|
2238
|
-
<div class="method-description">
|
2239
|
-
<p>
|
2240
|
-
Sets the <a href="URI.html#M000013">scheme</a> (protocol for this <a
|
2241
|
-
href="URI.html">URI</a>.)
|
2242
|
-
</p>
|
2243
|
-
<p><a class="source-toggle" href="#"
|
2244
|
-
onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
|
2245
|
-
<div class="method-source-code" id="M000014-source">
|
2246
|
-
<pre>
|
2247
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 520</span>
|
2248
|
-
520: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scheme=</span>(<span class="ruby-identifier">new_scheme</span>)
|
2249
|
-
521: <span class="ruby-ivar">@scheme</span> = <span class="ruby-identifier">new_scheme</span>
|
2250
|
-
522: <span class="ruby-keyword kw">end</span>
|
2251
|
-
</pre>
|
2252
|
-
</div>
|
2253
|
-
</div>
|
2254
|
-
</div>
|
2255
|
-
|
2256
|
-
<div id="method-M000029" class="method-detail">
|
2257
|
-
<a name="M000029"></a>
|
2258
|
-
|
2259
|
-
<div class="method-heading">
|
2260
|
-
<a href="#M000029" class="method-signature">
|
2261
|
-
<span class="method-name">specified_port</span><span class="method-args">()</span>
|
2262
|
-
</a>
|
2263
|
-
</div>
|
2264
|
-
|
2265
|
-
<div class="method-description">
|
2266
|
-
<p>
|
2267
|
-
Returns the <a href="URI.html#M000027">port</a> number that was actually
|
2268
|
-
specified in the <a href="URI.html">URI</a> string.
|
2269
|
-
</p>
|
2270
|
-
<p><a class="source-toggle" href="#"
|
2271
|
-
onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
|
2272
|
-
<div class="method-source-code" id="M000029-source">
|
2273
|
-
<pre>
|
2274
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 714</span>
|
2275
|
-
714: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">specified_port</span>
|
2276
|
-
715: <span class="ruby-identifier">port</span> = <span class="ruby-ivar">@specified_port</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">to_i</span>
|
2277
|
-
716: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">port</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
2278
|
-
717: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
2279
|
-
718: <span class="ruby-keyword kw">else</span>
|
2280
|
-
719: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">port</span>
|
2281
|
-
720: <span class="ruby-keyword kw">end</span>
|
2282
|
-
721: <span class="ruby-keyword kw">end</span>
|
2283
|
-
</pre>
|
2284
|
-
</div>
|
2285
|
-
</div>
|
2286
|
-
</div>
|
2287
|
-
|
2288
|
-
<div id="method-M000056" class="method-detail">
|
2289
|
-
<a name="M000056"></a>
|
2290
|
-
|
2291
|
-
<div class="method-heading">
|
2292
|
-
<a href="#M000056" class="method-signature">
|
2293
|
-
<span class="method-name">to_hash</span><span class="method-args">()</span>
|
2294
|
-
</a>
|
2295
|
-
</div>
|
2296
|
-
|
2297
|
-
<div class="method-description">
|
2298
|
-
<p>
|
2299
|
-
Returns a Hash of the <a href="URI.html">URI</a> segments.
|
2300
|
-
</p>
|
2301
|
-
<p><a class="source-toggle" href="#"
|
2302
|
-
onclick="toggleCode('M000056-source');return false;">[Source]</a></p>
|
2303
|
-
<div class="method-source-code" id="M000056-source">
|
2304
|
-
<pre>
|
2305
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1109</span>
|
2306
|
-
1109: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_hash</span>
|
2307
|
-
1110: <span class="ruby-keyword kw">return</span> {
|
2308
|
-
1111: <span class="ruby-identifier">:scheme</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>,
|
2309
|
-
1112: <span class="ruby-identifier">:user</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>,
|
2310
|
-
1113: <span class="ruby-identifier">:password</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>,
|
2311
|
-
1114: <span class="ruby-identifier">:host</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>,
|
2312
|
-
1115: <span class="ruby-identifier">:port</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">specified_port</span>,
|
2313
|
-
1116: <span class="ruby-identifier">:path</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>,
|
2314
|
-
1117: <span class="ruby-identifier">:query</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span>,
|
2315
|
-
1118: <span class="ruby-identifier">:fragment</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fragment</span>
|
2316
|
-
1119: }
|
2317
|
-
1120: <span class="ruby-keyword kw">end</span>
|
2318
|
-
</pre>
|
2319
|
-
</div>
|
2320
|
-
</div>
|
2321
|
-
</div>
|
2322
|
-
|
2323
|
-
<div id="method-M000055" class="method-detail">
|
2324
|
-
<a name="M000055"></a>
|
2325
|
-
|
2326
|
-
<div class="method-heading">
|
2327
|
-
<a href="#M000055" class="method-signature">
|
2328
|
-
<span class="method-name">to_s</span><span class="method-args">()</span>
|
2329
|
-
</a>
|
2330
|
-
</div>
|
2331
|
-
|
2332
|
-
<div class="method-description">
|
2333
|
-
<p>
|
2334
|
-
Returns the assembled <a href="URI.html">URI</a> as a string.
|
2335
|
-
</p>
|
2336
|
-
<p><a class="source-toggle" href="#"
|
2337
|
-
onclick="toggleCode('M000055-source');return false;">[Source]</a></p>
|
2338
|
-
<div class="method-source-code" id="M000055-source">
|
2339
|
-
<pre>
|
2340
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1098</span>
|
2341
|
-
1098: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
|
2342
|
-
1099: <span class="ruby-identifier">uri_string</span> = <span class="ruby-value str">""</span>
|
2343
|
-
1100: <span class="ruby-identifier">uri_string</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{self.scheme}:"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
2344
|
-
1101: <span class="ruby-identifier">uri_string</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"//#{self.authority}"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">authority</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
2345
|
-
1102: <span class="ruby-identifier">uri_string</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>.<span class="ruby-identifier">to_s</span>
|
2346
|
-
1103: <span class="ruby-identifier">uri_string</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"?#{self.query}"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
2347
|
-
1104: <span class="ruby-identifier">uri_string</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"##{self.fragment}"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fragment</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
2348
|
-
1105: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">uri_string</span>
|
2349
|
-
1106: <span class="ruby-keyword kw">end</span>
|
2350
|
-
</pre>
|
2351
|
-
</div>
|
2352
|
-
</div>
|
2353
|
-
</div>
|
2354
|
-
|
2355
|
-
<div id="method-M000015" class="method-detail">
|
2356
|
-
<a name="M000015"></a>
|
2357
|
-
|
2358
|
-
<div class="method-heading">
|
2359
|
-
<a href="#M000015" class="method-signature">
|
2360
|
-
<span class="method-name">user</span><span class="method-args">()</span>
|
2361
|
-
</a>
|
2362
|
-
</div>
|
2363
|
-
|
2364
|
-
<div class="method-description">
|
2365
|
-
<p>
|
2366
|
-
Returns the <a href="URI.html#M000015">user</a> for this <a
|
2367
|
-
href="URI.html">URI</a>.
|
2368
|
-
</p>
|
2369
|
-
<p><a class="source-toggle" href="#"
|
2370
|
-
onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
|
2371
|
-
<div class="method-source-code" id="M000015-source">
|
2372
|
-
<pre>
|
2373
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 525</span>
|
2374
|
-
525: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">user</span>
|
2375
|
-
526: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@user</span>
|
2376
|
-
527: <span class="ruby-keyword kw">end</span>
|
2377
|
-
</pre>
|
2378
|
-
</div>
|
2379
|
-
</div>
|
2380
|
-
</div>
|
2381
|
-
|
2382
|
-
<div id="method-M000016" class="method-detail">
|
2383
|
-
<a name="M000016"></a>
|
2384
|
-
|
2385
|
-
<div class="method-heading">
|
2386
|
-
<a href="#M000016" class="method-signature">
|
2387
|
-
<span class="method-name">user=</span><span class="method-args">(new_user)</span>
|
2388
|
-
</a>
|
2389
|
-
</div>
|
2390
|
-
|
2391
|
-
<div class="method-description">
|
2392
|
-
<p>
|
2393
|
-
Sets the <a href="URI.html#M000015">user</a> for this <a
|
2394
|
-
href="URI.html">URI</a>.
|
2395
|
-
</p>
|
2396
|
-
<p><a class="source-toggle" href="#"
|
2397
|
-
onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
|
2398
|
-
<div class="method-source-code" id="M000016-source">
|
2399
|
-
<pre>
|
2400
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 530</span>
|
2401
|
-
530: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">user=</span>(<span class="ruby-identifier">new_user</span>)
|
2402
|
-
531: <span class="ruby-ivar">@user</span> = <span class="ruby-identifier">new_user</span>
|
2403
|
-
532:
|
2404
|
-
533: <span class="ruby-comment cmt"># You can't have a nil user with a non-nil password</span>
|
2405
|
-
534: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@password</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
|
2406
|
-
535: <span class="ruby-ivar">@user</span> = <span class="ruby-value str">""</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@user</span>.<span class="ruby-identifier">nil?</span>
|
2407
|
-
536: <span class="ruby-keyword kw">end</span>
|
2408
|
-
537:
|
2409
|
-
538: <span class="ruby-comment cmt"># Reset dependant values</span>
|
2410
|
-
539: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-keyword kw">nil</span>
|
2411
|
-
540: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
|
2412
|
-
541:
|
2413
|
-
542: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
|
2414
|
-
543: <span class="ruby-identifier">validate</span>()
|
2415
|
-
544: <span class="ruby-keyword kw">end</span>
|
2416
|
-
</pre>
|
2417
|
-
</div>
|
2418
|
-
</div>
|
2419
|
-
</div>
|
2420
|
-
|
2421
|
-
<div id="method-M000019" class="method-detail">
|
2422
|
-
<a name="M000019"></a>
|
2423
|
-
|
2424
|
-
<div class="method-heading">
|
2425
|
-
<a href="#M000019" class="method-signature">
|
2426
|
-
<span class="method-name">userinfo</span><span class="method-args">()</span>
|
2427
|
-
</a>
|
2428
|
-
</div>
|
2429
|
-
|
2430
|
-
<div class="method-description">
|
2431
|
-
<p>
|
2432
|
-
Returns the username and <a href="URI.html#M000017">password</a> segment of
|
2433
|
-
this <a href="URI.html">URI</a>.
|
2434
|
-
</p>
|
2435
|
-
<p><a class="source-toggle" href="#"
|
2436
|
-
onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
|
2437
|
-
<div class="method-source-code" id="M000019-source">
|
2438
|
-
<pre>
|
2439
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 569</span>
|
2440
|
-
569: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">userinfo</span>
|
2441
|
-
570: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-keyword kw">defined?</span>(<span class="ruby-ivar">@userinfo</span>) <span class="ruby-operator">||</span> <span class="ruby-ivar">@userinfo</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
|
2442
|
-
571: <span class="ruby-identifier">current_user</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>
|
2443
|
-
572: <span class="ruby-identifier">current_password</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>
|
2444
|
-
573: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">current_user</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">current_password</span>
|
2445
|
-
574: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-keyword kw">nil</span>
|
2446
|
-
575: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">current_user</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">current_password</span>
|
2447
|
-
576: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-node">"#{current_user}:#{current_password}"</span>
|
2448
|
-
577: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">current_user</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">current_password</span>
|
2449
|
-
578: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-node">"#{current_user}"</span>
|
2450
|
-
579: <span class="ruby-keyword kw">end</span>
|
2451
|
-
580: <span class="ruby-keyword kw">end</span>
|
2452
|
-
581: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@userinfo</span>
|
2453
|
-
582: <span class="ruby-keyword kw">end</span>
|
2454
|
-
</pre>
|
2455
|
-
</div>
|
2456
|
-
</div>
|
2457
|
-
</div>
|
2458
|
-
|
2459
|
-
<div id="method-M000020" class="method-detail">
|
2460
|
-
<a name="M000020"></a>
|
2461
|
-
|
2462
|
-
<div class="method-heading">
|
2463
|
-
<a href="#M000020" class="method-signature">
|
2464
|
-
<span class="method-name">userinfo=</span><span class="method-args">(new_userinfo)</span>
|
2465
|
-
</a>
|
2466
|
-
</div>
|
2467
|
-
|
2468
|
-
<div class="method-description">
|
2469
|
-
<p>
|
2470
|
-
Sets the username and <a href="URI.html#M000017">password</a> segment of
|
2471
|
-
this <a href="URI.html">URI</a>.
|
2472
|
-
</p>
|
2473
|
-
<p><a class="source-toggle" href="#"
|
2474
|
-
onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
|
2475
|
-
<div class="method-source-code" id="M000020-source">
|
2476
|
-
<pre>
|
2477
|
-
<span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 585</span>
|
2478
|
-
585: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">userinfo=</span>(<span class="ruby-identifier">new_userinfo</span>)
|
2479
|
-
586: <span class="ruby-identifier">new_user</span> = <span class="ruby-identifier">new_userinfo</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/^(.*):/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
|
2480
|
-
587: <span class="ruby-identifier">new_password</span> = <span class="ruby-identifier">new_userinfo</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/:(.*)$/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
|
2481
|
-
588:
|
2482
|
-
589: <span class="ruby-comment cmt"># Password assigned first to ensure validity in case of nil</span>
|
2483
|
-
590: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span> = <span class="ruby-identifier">new_password</span>
|
2484
|
-
591: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span> = <span class="ruby-identifier">new_user</span>
|
2485
|
-
592:
|
2486
|
-
593: <span class="ruby-comment cmt"># Reset dependant values</span>
|
2487
|
-
594: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
|
2488
|
-
595:
|
2489
|
-
596: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
|
2490
|
-
597: <span class="ruby-identifier">validate</span>()
|
2491
|
-
598: <span class="ruby-keyword kw">end</span>
|
2492
|
-
</pre>
|
2493
|
-
</div>
|
2494
|
-
</div>
|
2495
|
-
</div>
|
2496
|
-
|
2497
|
-
|
2498
|
-
</div>
|
2499
|
-
|
2500
|
-
|
2501
|
-
</div>
|
2502
|
-
|
2503
|
-
|
2504
|
-
<div id="validator-badges">
|
2505
|
-
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
2506
|
-
</div>
|
2507
|
-
|
2508
|
-
</body>
|
2509
|
-
</html>
|