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