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.
@@ -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="#M000039">+</a>&nbsp;&nbsp;
97
- <a href="#M000048">==</a>&nbsp;&nbsp;
98
- <a href="#M000047">===</a>&nbsp;&nbsp;
99
- <a href="#M000038">absolute?</a>&nbsp;&nbsp;
100
- <a href="#M000021">authority</a>&nbsp;&nbsp;
101
- <a href="#M000022">authority=</a>&nbsp;&nbsp;
102
- <a href="#M000030">basename</a>&nbsp;&nbsp;
96
+ <a href="#M000040">+</a>&nbsp;&nbsp;
97
+ <a href="#M000049">==</a>&nbsp;&nbsp;
98
+ <a href="#M000048">===</a>&nbsp;&nbsp;
99
+ <a href="#M000039">absolute?</a>&nbsp;&nbsp;
100
+ <a href="#M000022">authority</a>&nbsp;&nbsp;
101
+ <a href="#M000023">authority=</a>&nbsp;&nbsp;
102
+ <a href="#M000031">basename</a>&nbsp;&nbsp;
103
103
  <a href="#M000002">convert_path</a>&nbsp;&nbsp;
104
- <a href="#M000046">display_uri</a>&nbsp;&nbsp;
105
- <a href="#M000050">dup</a>&nbsp;&nbsp;
106
- <a href="#M000007">encode</a>&nbsp;&nbsp;
107
- <a href="#M000005">encode_segment</a>&nbsp;&nbsp;
108
- <a href="#M000049">eql?</a>&nbsp;&nbsp;
104
+ <a href="#M000047">display_uri</a>&nbsp;&nbsp;
105
+ <a href="#M000051">dup</a>&nbsp;&nbsp;
106
+ <a href="#M000008">encode</a>&nbsp;&nbsp;
107
+ <a href="#M000006">encode_segment</a>&nbsp;&nbsp;
108
+ <a href="#M000050">eql?</a>&nbsp;&nbsp;
109
109
  <a href="#M000003">expand_template</a>&nbsp;&nbsp;
110
- <a href="#M000031">extname</a>&nbsp;&nbsp;
111
- <a href="#M000009">extract</a>&nbsp;&nbsp;
112
- <a href="#M000034">fragment</a>&nbsp;&nbsp;
113
- <a href="#M000035">fragment=</a>&nbsp;&nbsp;
114
- <a href="#M000019">host</a>&nbsp;&nbsp;
115
- <a href="#M000020">host=</a>&nbsp;&nbsp;
116
- <a href="#M000053">inspect</a>&nbsp;&nbsp;
117
- <a href="#M000036">ip_based?</a>&nbsp;&nbsp;
118
- <a href="#M000023">ip_based_schemes</a>&nbsp;&nbsp;
119
- <a href="#M000004">join</a>&nbsp;&nbsp;
120
- <a href="#M000040">merge</a>&nbsp;&nbsp;
121
- <a href="#M000041">merge!</a>&nbsp;&nbsp;
122
- <a href="#M000010">new</a>&nbsp;&nbsp;
123
- <a href="#M000044">normalize</a>&nbsp;&nbsp;
124
- <a href="#M000045">normalize!</a>&nbsp;&nbsp;
125
- <a href="#M000008">normalized_encode</a>&nbsp;&nbsp;
110
+ <a href="#M000032">extname</a>&nbsp;&nbsp;
111
+ <a href="#M000010">extract</a>&nbsp;&nbsp;
112
+ <a href="#M000004">extract_mapping</a>&nbsp;&nbsp;
113
+ <a href="#M000035">fragment</a>&nbsp;&nbsp;
114
+ <a href="#M000036">fragment=</a>&nbsp;&nbsp;
115
+ <a href="#M000020">host</a>&nbsp;&nbsp;
116
+ <a href="#M000021">host=</a>&nbsp;&nbsp;
117
+ <a href="#M000054">inspect</a>&nbsp;&nbsp;
118
+ <a href="#M000037">ip_based?</a>&nbsp;&nbsp;
119
+ <a href="#M000024">ip_based_schemes</a>&nbsp;&nbsp;
120
+ <a href="#M000005">join</a>&nbsp;&nbsp;
121
+ <a href="#M000041">merge</a>&nbsp;&nbsp;
122
+ <a href="#M000042">merge!</a>&nbsp;&nbsp;
123
+ <a href="#M000011">new</a>&nbsp;&nbsp;
124
+ <a href="#M000045">normalize</a>&nbsp;&nbsp;
125
+ <a href="#M000046">normalize!</a>&nbsp;&nbsp;
126
+ <a href="#M000009">normalized_encode</a>&nbsp;&nbsp;
126
127
  <a href="#M000001">parse</a>&nbsp;&nbsp;
127
- <a href="#M000015">password</a>&nbsp;&nbsp;
128
- <a href="#M000016">password=</a>&nbsp;&nbsp;
129
- <a href="#M000028">path</a>&nbsp;&nbsp;
130
- <a href="#M000029">path=</a>&nbsp;&nbsp;
131
- <a href="#M000025">port</a>&nbsp;&nbsp;
132
- <a href="#M000026">port=</a>&nbsp;&nbsp;
133
- <a href="#M000032">query</a>&nbsp;&nbsp;
134
- <a href="#M000033">query=</a>&nbsp;&nbsp;
135
- <a href="#M000037">relative?</a>&nbsp;&nbsp;
136
- <a href="#M000042">route_from</a>&nbsp;&nbsp;
137
- <a href="#M000043">route_to</a>&nbsp;&nbsp;
138
- <a href="#M000011">scheme</a>&nbsp;&nbsp;
139
- <a href="#M000012">scheme=</a>&nbsp;&nbsp;
140
- <a href="#M000024">scheme_mapping</a>&nbsp;&nbsp;
141
- <a href="#M000027">specified_port</a>&nbsp;&nbsp;
142
- <a href="#M000052">to_h</a>&nbsp;&nbsp;
143
- <a href="#M000051">to_s</a>&nbsp;&nbsp;
144
- <a href="#M000006">unencode_segment</a>&nbsp;&nbsp;
145
- <a href="#M000013">user</a>&nbsp;&nbsp;
146
- <a href="#M000014">user=</a>&nbsp;&nbsp;
147
- <a href="#M000017">userinfo</a>&nbsp;&nbsp;
148
- <a href="#M000018">userinfo=</a>&nbsp;&nbsp;
128
+ <a href="#M000016">password</a>&nbsp;&nbsp;
129
+ <a href="#M000017">password=</a>&nbsp;&nbsp;
130
+ <a href="#M000029">path</a>&nbsp;&nbsp;
131
+ <a href="#M000030">path=</a>&nbsp;&nbsp;
132
+ <a href="#M000026">port</a>&nbsp;&nbsp;
133
+ <a href="#M000027">port=</a>&nbsp;&nbsp;
134
+ <a href="#M000033">query</a>&nbsp;&nbsp;
135
+ <a href="#M000034">query=</a>&nbsp;&nbsp;
136
+ <a href="#M000038">relative?</a>&nbsp;&nbsp;
137
+ <a href="#M000043">route_from</a>&nbsp;&nbsp;
138
+ <a href="#M000044">route_to</a>&nbsp;&nbsp;
139
+ <a href="#M000012">scheme</a>&nbsp;&nbsp;
140
+ <a href="#M000013">scheme=</a>&nbsp;&nbsp;
141
+ <a href="#M000025">scheme_mapping</a>&nbsp;&nbsp;
142
+ <a href="#M000028">specified_port</a>&nbsp;&nbsp;
143
+ <a href="#M000053">to_h</a>&nbsp;&nbsp;
144
+ <a href="#M000052">to_s</a>&nbsp;&nbsp;
145
+ <a href="#M000007">unencode_segment</a>&nbsp;&nbsp;
146
+ <a href="#M000014">user</a>&nbsp;&nbsp;
147
+ <a href="#M000015">user=</a>&nbsp;&nbsp;
148
+ <a href="#M000018">userinfo</a>&nbsp;&nbsp;
149
+ <a href="#M000019">userinfo=</a>&nbsp;&nbsp;
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#M000028">path</a> to a file protocol <a
205
- href="URI.html">URI</a>. If the <a href="URI.html#M000028">path</a>
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#M000028">path</a>
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 119</span>
216
- 119: <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>)
217
- 120: <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>
218
- 121:
219
- 122: <span class="ruby-identifier">converted_uri</span> = <span class="ruby-identifier">path</span>.<span class="ruby-identifier">strip</span>
220
- 123: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">converted_uri</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</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">&quot;/&quot;</span>
221
- 124: <span class="ruby-identifier">converted_uri</span> = <span class="ruby-value str">&quot;file://&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">converted_uri</span>
222
- 125: <span class="ruby-keyword kw">end</span>
223
- 126: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">converted_uri</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span>
224
- 127: <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">&gt;</span> <span class="ruby-value">0</span>
225
- 128: <span class="ruby-identifier">converted_uri</span> = <span class="ruby-value str">&quot;file:///&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">converted_uri</span>
226
- 129: <span class="ruby-keyword kw">end</span>
227
- 130: <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">&quot;file:///&quot;</span>)
228
- 131: <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>
229
- 132: <span class="ruby-comment cmt"># Adjust windows-style uris</span>
230
- 133: <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>)
231
- 134: <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>)
232
- 135: <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>
233
- 136: <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">&amp;&amp;</span>
234
- 137: <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>
235
- 138: <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">&quot;&quot;</span>)
236
- 139: <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>
237
- 140: <span class="ruby-keyword kw">end</span>
238
- 141: <span class="ruby-keyword kw">else</span>
239
- 142: <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>)
240
- 143: <span class="ruby-keyword kw">end</span>
241
- 144:
242
- 145: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">converted_uri</span>
243
- 146: <span class="ruby-keyword kw">end</span>
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">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</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">&quot;/&quot;</span>
222
+ 129: <span class="ruby-identifier">converted_uri</span> = <span class="ruby-value str">&quot;file://&quot;</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">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</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">&gt;</span> <span class="ruby-value">0</span>
226
+ 133: <span class="ruby-identifier">converted_uri</span> = <span class="ruby-value str">&quot;file:///&quot;</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">&quot;file:///&quot;</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">&amp;&amp;</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">&quot;&quot;</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-M000007" class="method-detail">
250
- <a name="M000007"></a>
250
+ <div id="method-M000008" class="method-detail">
251
+ <a name="M000008"></a>
251
252
 
252
253
  <div class="method-heading">
253
- <a href="#M000007" class="method-signature">
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('M000007-source');return false;">[Source]</a></p>
265
- <div class="method-source-code" id="M000007-source">
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 250</span>
268
- 250: <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>)
269
- 251: <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>)
270
- 252: <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>(
271
- 253: <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>,
272
- 254: <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>),
273
- 255: <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>,
274
- 256: <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>),
275
- 257: <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>,
276
- 258: <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>),
277
- 259: <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>,
278
- 260: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
279
- 261: <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>,
280
- 262: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
281
- 263: <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>,
282
- 264: <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>),
283
- 265: <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>,
284
- 266: <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>),
285
- 267: <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>,
286
- 268: <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>)
287
- 269: ).<span class="ruby-identifier">to_s</span>
288
- 270: <span class="ruby-keyword kw">end</span>
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-M000005" class="method-detail">
295
- <a name="M000005"></a>
295
+ <div id="method-M000006" class="method-detail">
296
+ <a name="M000006"></a>
296
297
 
297
298
  <div class="method-heading">
298
- <a href="#M000005" class="method-signature">
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
  =&gt; &quot;simple%2Dex%61mple&quot;
320
321
  </pre>
321
322
  <p><a class="source-toggle" href="#"
322
- onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
323
- <div class="method-source-code" id="M000005-source">
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 228</span>
326
- 228: <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>=
327
- 229: <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>
328
- 230: <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>)
329
- 231: <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>
330
- 232: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">segment</span>.<span class="ruby-identifier">gsub</span>(
331
- 233: <span class="ruby-node">/[^#{character_class}]/</span>
332
- 234: ) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sequence</span><span class="ruby-operator">|</span>
333
- 235: (<span class="ruby-value str">&quot;%&quot;</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>)
334
- 236: <span class="ruby-keyword kw">end</span>
335
- 237: <span class="ruby-keyword kw">end</span>
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">&quot;%&quot;</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 177</span>
390
- 177: <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>)
391
- 178: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">dup</span>
392
- 179: <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>
393
- 180: <span class="ruby-identifier">transformed_value</span> = <span class="ruby-identifier">value</span>
394
- 181: <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>
395
- 182: <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>)
396
- 183: <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>)
397
- 184: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidTemplateValue</span>,
398
- 185: <span class="ruby-node">&quot;(#{name}, #{value}) is an invalid template value.&quot;</span>
399
- 186: <span class="ruby-keyword kw">end</span>
400
- 187: <span class="ruby-keyword kw">end</span>
401
- 188: <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>)
402
- 189: <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>)
403
- 190: <span class="ruby-keyword kw">end</span>
404
- 191: <span class="ruby-keyword kw">end</span>
405
- 192:
406
- 193: <span class="ruby-comment cmt"># Handle percent escaping</span>
407
- 194: <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>,
408
- 195: <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>
409
- 196: <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>)
410
- 197:
411
- 198: <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>)
412
- 199: <span class="ruby-keyword kw">end</span>
413
- 200: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">/\{[#{CharacterClasses::UNRESERVED}]+\}/</span>, <span class="ruby-value str">&quot;&quot;</span>)
414
- 201: <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>)
415
- 202: <span class="ruby-keyword kw">end</span>
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">&quot;(#{name}, #{value}) is an invalid template value.&quot;</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">&quot;&quot;</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-M000009" class="method-detail">
422
- <a name="M000009"></a>
423
+ <div id="method-M000010" class="method-detail">
424
+ <a name="M000010"></a>
423
425
 
424
426
  <div class="method-heading">
425
- <a href="#M000009" class="method-signature">
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('M000009-source');return false;">[Source]</a></p>
436
- <div class="method-source-code" id="M000009-source">
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 316</span>
439
- 316: <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>={})
440
- 317: <span class="ruby-identifier">defaults</span> = {<span class="ruby-identifier">:base</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">:parse</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">false</span>}
441
- 318: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
442
- 319: <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>
443
- 320: <span class="ruby-comment cmt"># This regular expression needs to be less forgiving or else it would</span>
444
- 321: <span class="ruby-comment cmt"># match virtually all text. Which isn't exactly what we're going for.</span>
445
- 322: <span class="ruby-identifier">extract_regex</span> = <span class="ruby-regexp re">/((([a-z\+]+):)[^ \n\&lt;\&gt;\&quot;\\]+[\w\/])/</span>
446
- 323: <span class="ruby-identifier">extracted_uris</span> =
447
- 324: <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>] }
448
- 325: <span class="ruby-identifier">sgml_extract_regex</span> = <span class="ruby-regexp re">/&lt;[^&gt;]+href=\&quot;([^\&quot;]+?)\&quot;[^&gt;]*&gt;/</span>
449
- 326: <span class="ruby-identifier">sgml_extracted_uris</span> =
450
- 327: <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>] }
451
- 328: <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>)
452
- 329: <span class="ruby-identifier">textile_extract_regex</span> = <span class="ruby-regexp re">/\&quot;.+?\&quot;:([^ ]+\/[^ ]+)[ \,\.\;\:\?\!\&lt;\&gt;\&quot;]/i</span>
453
- 330: <span class="ruby-identifier">textile_extracted_uris</span> =
454
- 331: <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>] }
455
- 332: <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>)
456
- 333: <span class="ruby-identifier">parsed_uris</span> = []
457
- 334: <span class="ruby-identifier">base_uri</span> = <span class="ruby-keyword kw">nil</span>
458
- 335: <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>
459
- 336: <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>)
460
- 337: <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>
461
- 338: <span class="ruby-keyword kw">end</span>
462
- 339: <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>
463
- 340: <span class="ruby-keyword kw">begin</span>
464
- 341: <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>
465
- 342: <span class="ruby-identifier">parsed_uris</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri_string</span>)
466
- 343: <span class="ruby-keyword kw">else</span>
467
- 344: <span class="ruby-identifier">parsed_uris</span> <span class="ruby-operator">&lt;&lt;</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>))
468
- 345: <span class="ruby-keyword kw">end</span>
469
- 346: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
470
- 347: <span class="ruby-keyword kw">nil</span>
471
- 348: <span class="ruby-keyword kw">end</span>
472
- 349: <span class="ruby-keyword kw">end</span>
473
- 350: <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>
474
- 351: (<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>
475
- 352: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;xmlns&quot;</span> <span class="ruby-operator">||</span>
476
- 353: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;xml&quot;</span> <span class="ruby-operator">||</span>
477
- 354: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;thr&quot;</span> <span class="ruby-operator">||</span>
478
- 355: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;this&quot;</span> <span class="ruby-operator">||</span>
479
- 356: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;float&quot;</span> <span class="ruby-operator">||</span>
480
- 357: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;user&quot;</span> <span class="ruby-operator">||</span>
481
- 358: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;username&quot;</span> <span class="ruby-operator">||</span>
482
- 359: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;out&quot;</span>)
483
- 360: <span class="ruby-keyword kw">end</span>
484
- 361: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:parse</span>]
485
- 362: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parsed_uris</span>
486
- 363: <span class="ruby-keyword kw">else</span>
487
- 364: <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> }
488
- 365: <span class="ruby-keyword kw">end</span>
489
- 366: <span class="ruby-keyword kw">end</span>
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">&gt;</span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">:parse</span> =<span class="ruby-operator">&gt;</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\&lt;\&gt;\&quot;\\]+[\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">/&lt;[^&gt;]+href=\&quot;([^\&quot;]+?)\&quot;[^&gt;]*&gt;/</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">/\&quot;.+?\&quot;:([^ ]+\/[^ ]+)[ \,\.\;\:\?\!\&lt;\&gt;\&quot;]/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">&lt;&lt;</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">&lt;&lt;</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">&quot;xmlns&quot;</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">&quot;xml&quot;</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">&quot;thr&quot;</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">&quot;this&quot;</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">&quot;float&quot;</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">&quot;user&quot;</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">&quot;username&quot;</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">&quot;out&quot;</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-M000023" class="method-detail">
496
- <a name="M000023"></a>
497
+ <div id="method-M000024" class="method-detail">
498
+ <a name="M000024"></a>
497
499
 
498
500
  <div class="method-heading">
499
- <a href="#M000023" class="method-signature">
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: //&lt;<a
508
- href="URI.html#M000013">user</a>&gt;:&lt;<a
509
- href="URI.html#M000015">password</a>&gt;@&lt;<a
510
- href="URI.html#M000019">host</a>&gt;:&lt;<a
511
- href="URI.html#M000025">port</a>&gt;/&lt;url-<a
512
- href="URI.html#M000028">path</a>&gt;
510
+ href="URI.html#M000014">user</a>&gt;:&lt;<a
511
+ href="URI.html#M000016">password</a>&gt;@&lt;<a
512
+ href="URI.html#M000020">host</a>&gt;:&lt;<a
513
+ href="URI.html#M000026">port</a>&gt;/&lt;url-<a
514
+ href="URI.html#M000029">path</a>&gt;
513
515
  </p>
514
516
  <p><a class="source-toggle" href="#"
515
- onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
516
- <div class="method-source-code" id="M000023-source">
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 541</span>
519
- 541: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">ip_based_schemes</span>
520
- 542: <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>
521
- 543: <span class="ruby-keyword kw">end</span>
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-M000004" class="method-detail">
528
- <a name="M000004"></a>
529
+ <div id="method-M000005" class="method-detail">
530
+ <a name="M000005"></a>
529
531
 
530
532
  <div class="method-heading">
531
- <a href="#M000004" class="method-signature">
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>&gt;
538
540
  Joins several uris together.
539
541
  </p>
540
542
  <p><a class="source-toggle" href="#"
541
- onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
542
- <div class="method-source-code" id="M000004-source">
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 205</span>
545
- 205: <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>)
546
- 206: <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>
547
- 207: <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>)
548
- 208: <span class="ruby-keyword kw">end</span>
549
- 209: <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>
550
- 210: <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>
551
- 211: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">uri</span>)
552
- 212: <span class="ruby-keyword kw">end</span>
553
- 213: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
554
- 214: <span class="ruby-keyword kw">end</span>
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-M000010" class="method-detail">
561
- <a name="M000010"></a>
562
+ <div id="method-M000011" class="method-detail">
563
+ <a name="M000011"></a>
562
564
 
563
565
  <div class="method-heading">
564
- <a href="#M000010" class="method-signature">
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#M000010">new</a> uri object from component
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('M000010-source');return false;">[Source]</a></p>
576
- <div class="method-source-code" id="M000010-source">
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 370</span>
579
- 370: <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>)
580
- 371: <span class="ruby-ivar">@scheme</span> = <span class="ruby-identifier">scheme</span>
581
- 372: <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">&quot;&quot;</span>
582
- 373: <span class="ruby-ivar">@user</span> = <span class="ruby-identifier">user</span>
583
- 374: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">password</span>
584
- 375: <span class="ruby-ivar">@host</span> = <span class="ruby-identifier">host</span>
585
- 376: <span class="ruby-ivar">@specified_port</span> = <span class="ruby-identifier">port</span>.<span class="ruby-identifier">to_s</span>
586
- 377: <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">port</span>
587
- 378: <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>)
588
- 379: <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">&amp;&amp;</span> <span class="ruby-operator">!</span>(<span class="ruby-ivar">@port</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^\d+$/</span>)
589
- 380: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidURIError</span>,
590
- 381: <span class="ruby-node">&quot;Invalid port number: #{@port.inspect}&quot;</span>
591
- 382: <span class="ruby-keyword kw">end</span>
592
- 383: <span class="ruby-ivar">@port</span> = <span class="ruby-ivar">@port</span>.<span class="ruby-identifier">to_i</span>
593
- 384: <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>
594
- 385: <span class="ruby-ivar">@path</span> = <span class="ruby-identifier">path</span>
595
- 386: <span class="ruby-ivar">@query</span> = <span class="ruby-identifier">query</span>
596
- 387: <span class="ruby-ivar">@fragment</span> = <span class="ruby-identifier">fragment</span>
597
- 388:
598
- 389: <span class="ruby-identifier">validate</span>()
599
- 390: <span class="ruby-keyword kw">end</span>
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">&quot;&quot;</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">&amp;&amp;</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">&quot;Invalid port number: #{@port.inspect}&quot;</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-M000008" class="method-detail">
606
- <a name="M000008"></a>
607
+ <div id="method-M000009" class="method-detail">
608
+ <a name="M000009"></a>
607
609
 
608
610
  <div class="method-heading">
609
- <a href="#M000008" class="method-signature">
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('M000008-source');return false;">[Source]</a></p>
622
- <div class="method-source-code" id="M000008-source">
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 278</span>
625
- 278: <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>)
626
- 279: <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>)
627
- 280: <span class="ruby-identifier">segments</span> = {
628
- 281: <span class="ruby-identifier">:scheme</span> =<span class="ruby-operator">&gt;</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>),
629
- 282: <span class="ruby-identifier">:user</span> =<span class="ruby-operator">&gt;</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>),
630
- 283: <span class="ruby-identifier">:password</span> =<span class="ruby-operator">&gt;</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>),
631
- 284: <span class="ruby-identifier">:host</span> =<span class="ruby-operator">&gt;</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>),
632
- 285: <span class="ruby-identifier">:port</span> =<span class="ruby-operator">&gt;</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>),
633
- 286: <span class="ruby-identifier">:path</span> =<span class="ruby-operator">&gt;</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>),
634
- 287: <span class="ruby-identifier">:query</span> =<span class="ruby-operator">&gt;</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>),
635
- 288: <span class="ruby-identifier">:fragment</span> =<span class="ruby-operator">&gt;</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>)
636
- 289: }
637
- 290: <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>)
638
- 291: <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>
639
- 292: <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>
640
- 293: <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>)
641
- 294: <span class="ruby-keyword kw">end</span>
642
- 295: <span class="ruby-keyword kw">end</span>
643
- 296: <span class="ruby-keyword kw">end</span>
644
- 297: <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>(
645
- 298: <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>],
646
- 299: <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>),
647
- 300: <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>],
648
- 301: <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>),
649
- 302: <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>],
650
- 303: <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
- 304: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>],
652
- 305: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:port</span>],
653
- 306: <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>],
654
- 307: <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>),
655
- 308: <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>],
656
- 309: <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>),
657
- 310: <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>],
658
- 311: <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>)
659
- 312: ).<span class="ruby-identifier">to_s</span>
660
- 313: <span class="ruby-keyword kw">end</span>
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">&gt;</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">&gt;</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">&gt;</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">&gt;</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">&gt;</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">&gt;</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">&gt;</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">&gt;</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 55</span>
684
- 55: <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>)
685
- 56: <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>
686
- 57:
687
- 58: <span class="ruby-comment cmt"># If a URI object is passed, just return itself.</span>
688
- 59: <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>)
689
- 60:
690
- 61: <span class="ruby-comment cmt"># If a URI object of the Ruby standard library variety is passed,</span>
691
- 62: <span class="ruby-comment cmt"># convert it to a string, then parse the string.</span>
692
- 63: <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>
693
- 64: <span class="ruby-identifier">uri_string</span> = <span class="ruby-identifier">uri_string</span>.<span class="ruby-identifier">to_s</span>
694
- 65: <span class="ruby-keyword kw">end</span>
695
- 66:
696
- 67: <span class="ruby-identifier">uri_regex</span> =
697
- 68: <span class="ruby-regexp re">/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/</span>
698
- 69: <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>)
699
- 70: <span class="ruby-identifier">fragments</span> = <span class="ruby-identifier">scan</span>[<span class="ruby-value">0</span>]
700
- 71: <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>
701
- 72: <span class="ruby-identifier">scheme</span> = <span class="ruby-identifier">fragments</span>[<span class="ruby-value">1</span>]
702
- 73: <span class="ruby-identifier">authority</span> = <span class="ruby-identifier">fragments</span>[<span class="ruby-value">3</span>]
703
- 74: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">fragments</span>[<span class="ruby-value">4</span>]
704
- 75: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">fragments</span>[<span class="ruby-value">6</span>]
705
- 76: <span class="ruby-identifier">fragment</span> = <span class="ruby-identifier">fragments</span>[<span class="ruby-value">8</span>]
706
- 77: <span class="ruby-identifier">userinfo</span> = <span class="ruby-keyword kw">nil</span>
707
- 78: <span class="ruby-identifier">user</span> = <span class="ruby-keyword kw">nil</span>
708
- 79: <span class="ruby-identifier">password</span> = <span class="ruby-keyword kw">nil</span>
709
- 80: <span class="ruby-identifier">host</span> = <span class="ruby-keyword kw">nil</span>
710
- 81: <span class="ruby-identifier">port</span> = <span class="ruby-keyword kw">nil</span>
711
- 82: <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>
712
- 83: <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>]
713
- 84: <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>
714
- 85: <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>]
715
- 86: <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>]
716
- 87: <span class="ruby-keyword kw">end</span>
717
- 88: <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">&quot;&quot;</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/:([^:@\[\]]*?)$/</span>, <span class="ruby-value str">&quot;&quot;</span>)
718
- 89: <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>]
719
- 90: <span class="ruby-keyword kw">end</span>
720
- 91: <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">&quot;&quot;</span>
721
- 92: <span class="ruby-identifier">port</span> = <span class="ruby-keyword kw">nil</span>
722
- 93: <span class="ruby-keyword kw">end</span>
723
- 94:
724
- 95: <span class="ruby-comment cmt"># WARNING: Not standards-compliant, but follows the theme</span>
725
- 96: <span class="ruby-comment cmt"># of Postel's law:</span>
726
- 97: <span class="ruby-comment cmt">#</span>
727
- 98: <span class="ruby-comment cmt"># Special exception for dealing with the retarded idea of the</span>
728
- 99: <span class="ruby-comment cmt"># feed pseudo-protocol. Without this exception, the parser will read</span>
729
- 100: <span class="ruby-comment cmt"># the URI as having a blank port number, instead of as having a second</span>
730
- 101: <span class="ruby-comment cmt"># URI embedded within. This exception translates these broken URIs</span>
731
- 102: <span class="ruby-comment cmt"># and instead treats the inner URI as opaque.</span>
732
- 103: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;feed&quot;</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">host</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;http&quot;</span>
733
- 104: <span class="ruby-identifier">userinfo</span> = <span class="ruby-keyword kw">nil</span>
734
- 105: <span class="ruby-identifier">user</span> = <span class="ruby-keyword kw">nil</span>
735
- 106: <span class="ruby-identifier">password</span> = <span class="ruby-keyword kw">nil</span>
736
- 107: <span class="ruby-identifier">host</span> = <span class="ruby-keyword kw">nil</span>
737
- 108: <span class="ruby-identifier">port</span> = <span class="ruby-keyword kw">nil</span>
738
- 109: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">authority</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">path</span>
739
- 110: <span class="ruby-keyword kw">end</span>
740
- 111:
741
- 112: <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>(
742
- 113: <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>)
743
- 114: <span class="ruby-keyword kw">end</span>
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">&quot;&quot;</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/:([^:@\[\]]*?)$/</span>, <span class="ruby-value str">&quot;&quot;</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">&quot;&quot;</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">&quot;feed&quot;</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">host</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;http&quot;</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-M000024" class="method-detail">
750
- <a name="M000024"></a>
751
+ <div id="method-M000025" class="method-detail">
752
+ <a name="M000025"></a>
751
753
 
752
754
  <div class="method-heading">
753
- <a href="#M000024" class="method-signature">
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#M000025">port</a> numbers. Adding <a
762
- href="URI.html#M000010">new</a> schemes to this hash, as necessary, will
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('M000024-source');return false;">[Source]</a></p>
767
- <div class="method-source-code" id="M000024-source">
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 548</span>
770
- 548: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme_mapping</span>
771
- 549: <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>
772
- 550: <span class="ruby-ivar">@protocol_mapping</span> = {
773
- 551: <span class="ruby-value str">&quot;http&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">80</span>,
774
- 552: <span class="ruby-value str">&quot;https&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">443</span>,
775
- 553: <span class="ruby-value str">&quot;ftp&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">21</span>,
776
- 554: <span class="ruby-value str">&quot;tftp&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">69</span>,
777
- 555: <span class="ruby-value str">&quot;ssh&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">22</span>,
778
- 556: <span class="ruby-value str">&quot;svn+ssh&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">22</span>,
779
- 557: <span class="ruby-value str">&quot;telnet&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">23</span>,
780
- 558: <span class="ruby-value str">&quot;nntp&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">119</span>,
781
- 559: <span class="ruby-value str">&quot;gopher&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">70</span>,
782
- 560: <span class="ruby-value str">&quot;wais&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">210</span>,
783
- 561: <span class="ruby-value str">&quot;ldap&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">389</span>,
784
- 562: <span class="ruby-value str">&quot;prospero&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">1525</span>
785
- 563: }
786
- 564: <span class="ruby-keyword kw">end</span>
787
- 565: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@protocol_mapping</span>
788
- 566: <span class="ruby-keyword kw">end</span>
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">&quot;http&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">80</span>,
776
+ 635: <span class="ruby-value str">&quot;https&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">443</span>,
777
+ 636: <span class="ruby-value str">&quot;ftp&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">21</span>,
778
+ 637: <span class="ruby-value str">&quot;tftp&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">69</span>,
779
+ 638: <span class="ruby-value str">&quot;ssh&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">22</span>,
780
+ 639: <span class="ruby-value str">&quot;svn+ssh&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">22</span>,
781
+ 640: <span class="ruby-value str">&quot;telnet&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">23</span>,
782
+ 641: <span class="ruby-value str">&quot;nntp&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">119</span>,
783
+ 642: <span class="ruby-value str">&quot;gopher&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">70</span>,
784
+ 643: <span class="ruby-value str">&quot;wais&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">210</span>,
785
+ 644: <span class="ruby-value str">&quot;ldap&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">389</span>,
786
+ 645: <span class="ruby-value str">&quot;prospero&quot;</span> =<span class="ruby-operator">&gt;</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-M000006" class="method-detail">
795
- <a name="M000006"></a>
796
+ <div id="method-M000007" class="method-detail">
797
+ <a name="M000007"></a>
796
798
 
797
799
  <div class="method-heading">
798
- <a href="#M000006" class="method-signature">
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('M000006-source');return false;">[Source]</a></p>
810
- <div class="method-source-code" id="M000006-source">
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 241</span>
813
- 241: <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>)
814
- 242: <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>
815
- 243: <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>
816
- 244: <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>
817
- 245: <span class="ruby-keyword kw">end</span>
818
- 246: <span class="ruby-keyword kw">end</span>
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-M000039" class="method-detail">
827
- <a name="M000039"></a>
828
+ <div id="method-M000040" class="method-detail">
829
+ <a name="M000040"></a>
828
830
 
829
831
  <div class="method-heading">
830
- <a href="#M000039" class="method-signature">
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('M000039-source');return false;">[Source]</a></p>
841
- <div class="method-source-code" id="M000039-source">
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 664</span>
844
- 664: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">uri</span>)
845
- 665: <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>)
846
- 666: <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>)
847
- 667: <span class="ruby-keyword kw">end</span>
848
- 668: <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">&quot;&quot;</span>
849
- 669: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
850
- 670: <span class="ruby-keyword kw">end</span>
851
- 671:
852
- 672: <span class="ruby-identifier">joined_scheme</span> = <span class="ruby-keyword kw">nil</span>
853
- 673: <span class="ruby-identifier">joined_user</span> = <span class="ruby-keyword kw">nil</span>
854
- 674: <span class="ruby-identifier">joined_password</span> = <span class="ruby-keyword kw">nil</span>
855
- 675: <span class="ruby-identifier">joined_host</span> = <span class="ruby-keyword kw">nil</span>
856
- 676: <span class="ruby-identifier">joined_port</span> = <span class="ruby-keyword kw">nil</span>
857
- 677: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">nil</span>
858
- 678: <span class="ruby-identifier">joined_query</span> = <span class="ruby-keyword kw">nil</span>
859
- 679: <span class="ruby-identifier">joined_fragment</span> = <span class="ruby-keyword kw">nil</span>
860
- 680:
861
- 681: <span class="ruby-comment cmt"># Section 5.2.2 of RFC 3986</span>
862
- 682: <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>
863
- 683: <span class="ruby-identifier">joined_scheme</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span>
864
- 684: <span class="ruby-identifier">joined_user</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">user</span>
865
- 685: <span class="ruby-identifier">joined_password</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">password</span>
866
- 686: <span class="ruby-identifier">joined_host</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">host</span>
867
- 687: <span class="ruby-identifier">joined_port</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">specified_port</span>
868
- 688: <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>)
869
- 689: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
870
- 690: <span class="ruby-keyword kw">else</span>
871
- 691: <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>
872
- 692: <span class="ruby-identifier">joined_user</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">user</span>
873
- 693: <span class="ruby-identifier">joined_password</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">password</span>
874
- 694: <span class="ruby-identifier">joined_host</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">host</span>
875
- 695: <span class="ruby-identifier">joined_port</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">specified_port</span>
876
- 696: <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>)
877
- 697: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
878
- 698: <span class="ruby-keyword kw">else</span>
879
- 699: <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">&quot;&quot;</span>
880
- 700: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>
881
- 701: <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>
882
- 702: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
883
- 703: <span class="ruby-keyword kw">else</span>
884
- 704: <span class="ruby-identifier">joined_query</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span>
885
- 705: <span class="ruby-keyword kw">end</span>
886
- 706: <span class="ruby-keyword kw">else</span>
887
- 707: <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">&quot;/&quot;</span>
888
- 708: <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>)
889
- 709: <span class="ruby-keyword kw">else</span>
890
- 710: <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">&quot;&quot;</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>
891
- 711: <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>)
892
- 712: <span class="ruby-identifier">base_path</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\/[^\/]+$/</span>, <span class="ruby-value str">&quot;/&quot;</span>)
893
- 713: <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>)
894
- 714: <span class="ruby-keyword kw">end</span>
895
- 715: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
896
- 716: <span class="ruby-keyword kw">end</span>
897
- 717: <span class="ruby-identifier">joined_user</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>
898
- 718: <span class="ruby-identifier">joined_password</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>
899
- 719: <span class="ruby-identifier">joined_host</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>
900
- 720: <span class="ruby-identifier">joined_port</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">specified_port</span>
901
- 721: <span class="ruby-keyword kw">end</span>
902
- 722: <span class="ruby-identifier">joined_scheme</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>
903
- 723: <span class="ruby-keyword kw">end</span>
904
- 724: <span class="ruby-identifier">joined_fragment</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">fragment</span>
905
- 725:
906
- 726: <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>(
907
- 727: <span class="ruby-identifier">joined_scheme</span>,
908
- 728: <span class="ruby-identifier">joined_user</span>,
909
- 729: <span class="ruby-identifier">joined_password</span>,
910
- 730: <span class="ruby-identifier">joined_host</span>,
911
- 731: <span class="ruby-identifier">joined_port</span>,
912
- 732: <span class="ruby-identifier">joined_path</span>,
913
- 733: <span class="ruby-identifier">joined_query</span>,
914
- 734: <span class="ruby-identifier">joined_fragment</span>
915
- 735: )
916
- 736: <span class="ruby-keyword kw">end</span>
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">&quot;&quot;</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">&quot;&quot;</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">&quot;/&quot;</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">&quot;&quot;</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">&quot;/&quot;</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-M000048" class="method-detail">
923
- <a name="M000048"></a>
924
+ <div id="method-M000049" class="method-detail">
925
+ <a name="M000049"></a>
924
926
 
925
927
  <div class="method-heading">
926
- <a href="#M000048" class="method-signature">
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('M000048-source');return false;">[Source]</a></p>
938
- <div class="method-source-code" id="M000048-source">
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 911</span>
941
- 911: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">uri</span>)
942
- 912: <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>)
943
- 913: <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>
944
- 914: <span class="ruby-keyword kw">end</span>
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-M000047" class="method-detail">
951
- <a name="M000047"></a>
952
+ <div id="method-M000048" class="method-detail">
953
+ <a name="M000048"></a>
952
954
 
953
955
  <div class="method-heading">
954
- <a href="#M000047" class="method-signature">
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('M000047-source');return false;">[Source]</a></p>
967
- <div class="method-source-code" id="M000047-source">
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 895</span>
970
- 895: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">===</span>(<span class="ruby-identifier">uri</span>)
971
- 896: <span class="ruby-identifier">uri_string</span> = <span class="ruby-keyword kw">nil</span>
972
- 897: <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>)
973
- 898: <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>
974
- 899: <span class="ruby-keyword kw">else</span>
975
- 900: <span class="ruby-keyword kw">begin</span>
976
- 901: <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>
977
- 902: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
978
- 903: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
979
- 904: <span class="ruby-keyword kw">end</span>
980
- 905: <span class="ruby-keyword kw">end</span>
981
- 906: <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>
982
- 907: <span class="ruby-keyword kw">end</span>
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-M000038" class="method-detail">
989
- <a name="M000038"></a>
990
+ <div id="method-M000039" class="method-detail">
991
+ <a name="M000039"></a>
990
992
 
991
993
  <div class="method-heading">
992
- <a href="#M000038" class="method-signature">
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('M000038-source');return false;">[Source]</a></p>
1003
- <div class="method-source-code" id="M000038-source">
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 659</span>
1006
- 659: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">absolute?</span>
1007
- 660: <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-identifier">relative?</span>
1008
- 661: <span class="ruby-keyword kw">end</span>
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-M000021" class="method-detail">
1015
- <a name="M000021"></a>
1016
+ <div id="method-M000022" class="method-detail">
1017
+ <a name="M000022"></a>
1016
1018
 
1017
1019
  <div class="method-heading">
1018
- <a href="#M000021" class="method-signature">
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#M000021">authority</a> segment of this <a
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('M000021-source');return false;">[Source]</a></p>
1030
- <div class="method-source-code" id="M000021-source">
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 495</span>
1033
- 495: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">authority</span>
1034
- 496: <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>
1035
- 497: <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>
1036
- 498: <span class="ruby-ivar">@authority</span> = <span class="ruby-value str">&quot;&quot;</span>
1037
- 499: <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>
1038
- 500: <span class="ruby-ivar">@authority</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{self.userinfo}@&quot;</span>
1039
- 501: <span class="ruby-keyword kw">end</span>
1040
- 502: <span class="ruby-ivar">@authority</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>
1041
- 503: <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>
1042
- 504: <span class="ruby-ivar">@authority</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;:#{self.specified_port}&quot;</span>
1043
- 505: <span class="ruby-keyword kw">end</span>
1044
- 506: <span class="ruby-keyword kw">end</span>
1045
- 507: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@authority</span>
1046
- 508: <span class="ruby-keyword kw">end</span>
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">&quot;&quot;</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">&lt;&lt;</span> <span class="ruby-node">&quot;#{self.userinfo}@&quot;</span>
1041
+ 584: <span class="ruby-keyword kw">end</span>
1042
+ 585: <span class="ruby-ivar">@authority</span> <span class="ruby-operator">&lt;&lt;</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">&lt;&lt;</span> <span class="ruby-node">&quot;:#{self.specified_port}&quot;</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-M000022" class="method-detail">
1053
- <a name="M000022"></a>
1054
+ <div id="method-M000023" class="method-detail">
1055
+ <a name="M000023"></a>
1054
1056
 
1055
1057
  <div class="method-heading">
1056
- <a href="#M000022" class="method-signature">
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#M000021">authority</a> segment of this <a
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('M000022-source');return false;">[Source]</a></p>
1068
- <div class="method-source-code" id="M000022-source">
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 511</span>
1071
- 511: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">authority=</span>(<span class="ruby-identifier">new_authority</span>)
1072
- 512: <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>
1073
- 513: <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>]
1074
- 514: <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>
1075
- 515: <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>]
1076
- 516: <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>]
1077
- 517: <span class="ruby-keyword kw">end</span>
1078
- 518: <span class="ruby-identifier">new_host</span> =
1079
- 519: <span class="ruby-identifier">new_authority</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/^([^\[\]]*)@/</span>, <span class="ruby-value str">&quot;&quot;</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/:([^:@\[\]]*?)$/</span>, <span class="ruby-value str">&quot;&quot;</span>)
1080
- 520: <span class="ruby-identifier">new_port</span> =
1081
- 521: <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>]
1082
- 522: <span class="ruby-keyword kw">end</span>
1083
- 523: <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">&quot;&quot;</span>
1084
- 524:
1085
- 525: <span class="ruby-comment cmt"># Password assigned first to ensure validity in case of nil</span>
1086
- 526: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span> = <span class="ruby-identifier">new_password</span>
1087
- 527: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span> = <span class="ruby-identifier">new_user</span>
1088
- 528: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span> = <span class="ruby-identifier">new_host</span>
1089
- 529:
1090
- 530: <span class="ruby-comment cmt"># Port reset to allow port normalization</span>
1091
- 531: <span class="ruby-ivar">@port</span> = <span class="ruby-keyword kw">nil</span>
1092
- 532: <span class="ruby-ivar">@specified_port</span> = <span class="ruby-identifier">new_port</span>
1093
- 533:
1094
- 534: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
1095
- 535: <span class="ruby-identifier">validate</span>()
1096
- 536: <span class="ruby-keyword kw">end</span>
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">&quot;&quot;</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/:([^:@\[\]]*?)$/</span>, <span class="ruby-value str">&quot;&quot;</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">&quot;&quot;</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-M000030" class="method-detail">
1103
- <a name="M000030"></a>
1104
+ <div id="method-M000031" class="method-detail">
1105
+ <a name="M000031"></a>
1104
1106
 
1105
1107
  <div class="method-heading">
1106
- <a href="#M000030" class="method-signature">
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#M000030">basename</a>, if any, of the file at
1114
- the <a href="URI.html#M000028">path</a> being referenced. Returns nil if
1115
- there is no <a href="URI.html#M000028">path</a> component.
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('M000030-source');return false;">[Source]</a></p>
1119
- <div class="method-source-code" id="M000030-source">
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 614</span>
1122
- 614: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">basename</span>
1123
- 615: <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>
1124
- 616: <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">&quot;&quot;</span>)
1125
- 617: <span class="ruby-keyword kw">end</span>
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">&quot;&quot;</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-M000046" class="method-detail">
1132
- <a name="M000046"></a>
1133
+ <div id="method-M000047" class="method-detail">
1134
+ <a name="M000047"></a>
1133
1135
 
1134
1136
  <div class="method-heading">
1135
- <a href="#M000046" class="method-signature">
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#M000013">user</a>. See RFC 3986 section 7.6 for
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('M000046-source');return false;">[Source]</a></p>
1149
- <div class="method-source-code" id="M000046-source">
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 881</span>
1152
- 881: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">display_uri</span>
1153
- 882: <span class="ruby-identifier">display_uri</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>
1154
- 883: <span class="ruby-keyword kw">begin</span>
1155
- 884: <span class="ruby-identifier">display_uri</span>.<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">&quot;@host&quot;</span>,
1156
- 885: <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>))
1157
- 886: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
1158
- 887: <span class="ruby-keyword kw">nil</span>
1159
- 888: <span class="ruby-keyword kw">end</span>
1160
- 889: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">display_uri</span>
1161
- 890: <span class="ruby-keyword kw">end</span>
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">&quot;@host&quot;</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-M000050" class="method-detail">
1168
- <a name="M000050"></a>
1169
+ <div id="method-M000051" class="method-detail">
1170
+ <a name="M000051"></a>
1169
1171
 
1170
1172
  <div class="method-heading">
1171
- <a href="#M000050" class="method-signature">
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('M000050-source');return false;">[Source]</a></p>
1182
- <div class="method-source-code" id="M000050-source">
1183
+ onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
1184
+ <div class="method-source-code" id="M000051-source">
1183
1185
  <pre>
1184
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 924</span>
1185
- 924: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dup</span>
1186
- 925: <span class="ruby-identifier">duplicated_scheme</span> = <span class="ruby-keyword kw">nil</span>
1187
- 926: <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>
1188
- 927: <span class="ruby-identifier">duplicated_user</span> = <span class="ruby-keyword kw">nil</span>
1189
- 928: <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>
1190
- 929: <span class="ruby-identifier">duplicated_password</span> = <span class="ruby-keyword kw">nil</span>
1191
- 930: <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>
1192
- 931: <span class="ruby-identifier">duplicated_host</span> = <span class="ruby-keyword kw">nil</span>
1193
- 932: <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>
1194
- 933: <span class="ruby-identifier">duplicated_port</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">port</span>
1195
- 934: <span class="ruby-identifier">duplicated_path</span> = <span class="ruby-keyword kw">nil</span>
1196
- 935: <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>
1197
- 936: <span class="ruby-identifier">duplicated_query</span> = <span class="ruby-keyword kw">nil</span>
1198
- 937: <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>
1199
- 938: <span class="ruby-identifier">duplicated_fragment</span> = <span class="ruby-keyword kw">nil</span>
1200
- 939: <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>
1201
- 940: <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>(
1202
- 941: <span class="ruby-identifier">duplicated_scheme</span>,
1203
- 942: <span class="ruby-identifier">duplicated_user</span>,
1204
- 943: <span class="ruby-identifier">duplicated_password</span>,
1205
- 944: <span class="ruby-identifier">duplicated_host</span>,
1206
- 945: <span class="ruby-identifier">duplicated_port</span>,
1207
- 946: <span class="ruby-identifier">duplicated_path</span>,
1208
- 947: <span class="ruby-identifier">duplicated_query</span>,
1209
- 948: <span class="ruby-identifier">duplicated_fragment</span>
1210
- 949: )
1211
- 950: <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>)
1212
- 951: <span class="ruby-identifier">duplicated_uri</span>.<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">&quot;@specified_port&quot;</span>, <span class="ruby-ivar">@specified_port</span>)
1213
- 952: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">duplicated_uri</span>
1214
- 953: <span class="ruby-keyword kw">end</span>
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">&quot;@specified_port&quot;</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-M000049" class="method-detail">
1221
- <a name="M000049"></a>
1222
+ <div id="method-M000050" class="method-detail">
1223
+ <a name="M000050"></a>
1222
1224
 
1223
1225
  <div class="method-heading">
1224
- <a href="#M000049" class="method-signature">
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#M000044">normalize</a> either <a
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('M000049-source');return false;">[Source]</a></p>
1237
- <div class="method-source-code" id="M000049-source">
1238
+ onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
1239
+ <div class="method-source-code" id="M000050-source">
1238
1240
  <pre>
1239
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 918</span>
1240
- 918: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eql?</span>(<span class="ruby-identifier">uri</span>)
1241
- 919: <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>)
1242
- 920: <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>
1243
- 921: <span class="ruby-keyword kw">end</span>
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-M000031" class="method-detail">
1250
- <a name="M000031"></a>
1251
+ <div id="method-M000032" class="method-detail">
1252
+ <a name="M000032"></a>
1251
1253
 
1252
1254
  <div class="method-heading">
1253
- <a href="#M000031" class="method-signature">
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#M000028">path</a> being referenced. Returns &quot;&quot; if
1263
+ href="URI.html#M000029">path</a> being referenced. Returns &quot;&quot; if
1262
1264
  there is no extension or nil if there is no <a
1263
- href="URI.html#M000028">path</a> component.
1265
+ href="URI.html#M000029">path</a> component.
1264
1266
  </p>
1265
1267
  <p><a class="source-toggle" href="#"
1266
- onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
1267
- <div class="method-source-code" id="M000031-source">
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 622</span>
1270
- 622: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extname</span>
1271
- 623: <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>
1272
- 624: <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">&quot;&quot;</span>))
1273
- 625: <span class="ruby-keyword kw">end</span>
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">&quot;&quot;</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-M000034" class="method-detail">
1280
- <a name="M000034"></a>
1281
+ <div id="method-M000004" class="method-detail">
1282
+ <a name="M000004"></a>
1281
1283
 
1282
1284
  <div class="method-heading">
1283
- <a href="#M000034" class="method-signature">
1284
- <span class="method-name">fragment</span><span class="method-args">()</span>
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
- Returns the <a href="URI.html#M000034">fragment</a> for this <a
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&#8216;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 &quot;.*&quot;.
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(/\+/, &quot; &quot;) if name == &quot;query&quot;
1313
+ return value
1314
+ end
1315
+
1316
+ def self.match(name)
1317
+ return &quot;.*?&quot; if name == &quot;first&quot;
1318
+ return &quot;.*&quot;
1319
+ end
1320
+ end
1321
+
1322
+ uri = Addressable::URI.parse(
1323
+ &quot;http://example.com/search/an+example+search+query/&quot;)
1324
+ uri.extract_mapping(&quot;http://example.com/search/{query}/&quot;,
1325
+ ExampleProcessor)
1326
+ =&gt; {&quot;query&quot; =&gt; &quot;an example search query&quot;}
1327
+
1328
+ uri = Addressable::URI.parse(
1329
+ &quot;http://example.com/a/b/c/&quot;)
1330
+ uri.extract_mapping(&quot;http://example.com/{first}/{second}/&quot;,
1331
+ ExampleProcessor)
1332
+ =&gt; {&quot;first&quot; =&gt; &quot;a&quot;, &quot;second&quot; =&gt; &quot;b/c&quot;}
1333
+ </pre>
1293
1334
  <p><a class="source-toggle" href="#"
1294
- onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
1295
- <div class="method-source-code" id="M000034-source">
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 638</span>
1298
- 638: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fragment</span>
1299
- 639: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@fragment</span>
1300
- 640: <span class="ruby-keyword kw">end</span>
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">&quot;&quot;</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">&quot;{&quot;</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\\\}/</span>, <span class="ruby-value str">&quot;}&quot;</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">&quot;(.*)&quot;</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">&quot;(#{processor.match(name)})&quot;</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=</span><span class="method-args">(new_fragment)</span>
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
- Sets the <a href="URI.html#M000034">fragment</a> for this <a
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 643</span>
1325
- 643: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fragment=</span>(<span class="ruby-identifier">new_fragment</span>)
1326
- 644: <span class="ruby-ivar">@fragment</span> = <span class="ruby-identifier">new_fragment</span>
1327
- 645: <span class="ruby-keyword kw">end</span>
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-M000019" class="method-detail">
1334
- <a name="M000019"></a>
1410
+ <div id="method-M000036" class="method-detail">
1411
+ <a name="M000036"></a>
1335
1412
 
1336
1413
  <div class="method-heading">
1337
- <a href="#M000019" class="method-signature">
1338
- <span class="method-name">host</span><span class="method-args">()</span>
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
- Returns the <a href="URI.html#M000019">host</a> for this <a
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('M000019-source');return false;">[Source]</a></p>
1349
- <div class="method-source-code" id="M000019-source">
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 479</span>
1352
- 479: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">host</span>
1353
- 480: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@host</span>
1354
- 481: <span class="ruby-keyword kw">end</span>
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=</span><span class="method-args">(new_host)</span>
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
- Sets the <a href="URI.html#M000019">host</a> for this <a
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 484</span>
1379
- 484: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">host=</span>(<span class="ruby-identifier">new_host</span>)
1380
- 485: <span class="ruby-ivar">@host</span> = <span class="ruby-identifier">new_host</span>
1381
- 486:
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-M000053" class="method-detail">
1394
- <a name="M000053"></a>
1464
+ <div id="method-M000021" class="method-detail">
1465
+ <a name="M000021"></a>
1395
1466
 
1396
1467
  <div class="method-heading">
1397
- <a href="#M000053" class="method-signature">
1398
- <span class="method-name">inspect</span><span class="method-args">()</span>
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
- Returns a string representation of the <a href="URI.html">URI</a>
1405
- object&#8216;s state.
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('M000053-source');return false;">[Source]</a></p>
1409
- <div class="method-source-code" id="M000053-source">
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 981</span>
1412
- 981: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inspect</span>
1413
- 982: <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;#&lt;%s:%#0x URI:%s&gt;&quot;</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>)
1414
- 983: <span class="ruby-keyword kw">end</span>
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-M000036" class="method-detail">
1421
- <a name="M000036"></a>
1497
+ <div id="method-M000054" class="method-detail">
1498
+ <a name="M000054"></a>
1422
1499
 
1423
1500
  <div class="method-heading">
1424
- <a href="#M000036" class="method-signature">
1425
- <span class="method-name">ip_based?</span><span class="method-args">()</span>
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 true if the <a href="URI.html">URI</a> uses an IP-based protocol.
1508
+ Returns a string representation of the <a href="URI.html">URI</a>
1509
+ object&#8216;s state.
1432
1510
  </p>
1433
1511
  <p><a class="source-toggle" href="#"
1434
- onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
1435
- <div class="method-source-code" id="M000036-source">
1512
+ onclick="toggleCode('M000054-source');return false;">[Source]</a></p>
1513
+ <div class="method-source-code" id="M000054-source">
1436
1514
  <pre>
1437
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 648</span>
1438
- 648: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ip_based?</span>
1439
- 649: <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>
1440
- 650: <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>)
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">&quot;#&lt;%s:%#0x URI:%s&gt;&quot;</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-M000040" class="method-detail">
1448
- <a name="M000040"></a>
1524
+ <div id="method-M000037" class="method-detail">
1525
+ <a name="M000037"></a>
1449
1526
 
1450
1527
  <div class="method-heading">
1451
- <a href="#M000040" class="method-signature">
1452
- <span class="method-name">merge</span><span class="method-args">(uri)</span>
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
- Merges two URIs together.
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('M000040-source');return false;">[Source]</a></p>
1462
- <div class="method-source-code" id="M000040-source">
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 739</span>
1465
- 739: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">merge</span>(<span class="ruby-identifier">uri</span>)
1466
- 740: <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>
1467
- 741: <span class="ruby-keyword kw">end</span>
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!</span><span class="method-args">(uri)</span>
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
- Destructive form of <a href="URI.html#M000040">merge</a>.
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 744</span>
1491
- 744: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">uri</span>)
1492
- 745: <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>))
1493
- 746: <span class="ruby-keyword kw">end</span>
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-M000044" class="method-detail">
1500
- <a name="M000044"></a>
1577
+ <div id="method-M000042" class="method-detail">
1578
+ <a name="M000042"></a>
1501
1579
 
1502
1580
  <div class="method-heading">
1503
- <a href="#M000044" class="method-signature">
1504
- <span class="method-name">normalize</span><span class="method-args">()</span>
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
- Returns a normalized <a href="URI.html">URI</a> object.
1511
- </p>
1512
- <p>
1513
- NOTE: This method does not attempt to fully conform to specifications. It
1514
- exists largely to correct other people&#8216;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('M000044-source');return false;">[Source]</a></p>
1521
- <div class="method-source-code" id="M000044-source">
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 811</span>
1524
- 811: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">normalize</span>
1525
- 812: <span class="ruby-identifier">normalized_scheme</span> = <span class="ruby-keyword kw">nil</span>
1526
- 813: <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>
1527
- 814: <span class="ruby-identifier">normalized_scheme</span> = <span class="ruby-value str">&quot;svn+ssh&quot;</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">&quot;ssh+svn&quot;</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">&quot;feed&quot;</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">&amp;&amp;</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">&amp;&amp;</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">&quot;/&quot;</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">&quot;&quot;</span>
1563
- 850: <span class="ruby-keyword kw">if</span> [<span class="ruby-value str">&quot;http&quot;</span>, <span class="ruby-value str">&quot;https&quot;</span>, <span class="ruby-value str">&quot;ftp&quot;</span>, <span class="ruby-value str">&quot;tftp&quot;</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">&quot;/&quot;</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!</span><span class="method-args">()</span>
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
- Destructively normalizes this <a href="URI.html">URI</a> object.
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&#8216;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 874</span>
1608
- 874: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">normalize!</span>
1609
- 875: <span class="ruby-identifier">replace_self</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>)
1610
- 876: <span class="ruby-keyword kw">end</span>
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">&quot;svn+ssh&quot;</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">&quot;ssh+svn&quot;</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">&quot;feed&quot;</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">&amp;&amp;</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">&amp;&amp;</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">&quot;/&quot;</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">&quot;&quot;</span>
1667
+ 933: <span class="ruby-keyword kw">if</span> [<span class="ruby-value str">&quot;http&quot;</span>, <span class="ruby-value str">&quot;https&quot;</span>, <span class="ruby-value str">&quot;ftp&quot;</span>, <span class="ruby-value str">&quot;tftp&quot;</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">&quot;/&quot;</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-M000015" class="method-detail">
1617
- <a name="M000015"></a>
1694
+ <div id="method-M000046" class="method-detail">
1695
+ <a name="M000046"></a>
1618
1696
 
1619
1697
  <div class="method-heading">
1620
- <a href="#M000015" class="method-signature">
1621
- <span class="method-name">password</span><span class="method-args">()</span>
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
- Returns the <a href="URI.html#M000015">password</a> for this <a
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('M000015-source');return false;">[Source]</a></p>
1632
- <div class="method-source-code" id="M000015-source">
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 425</span>
1635
- 425: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">password</span>
1636
- 426: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@password</span>
1637
- 427: <span class="ruby-keyword kw">end</span>
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=</span><span class="method-args">(new_password)</span>
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
- Sets the <a href="URI.html#M000015">password</a> for this <a
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 430</span>
1662
- 430: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">password=</span>(<span class="ruby-identifier">new_password</span>)
1663
- 431: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">new_password</span>
1664
- 432:
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">&quot;&quot;</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-M000028" class="method-detail">
1683
- <a name="M000028"></a>
1747
+ <div id="method-M000017" class="method-detail">
1748
+ <a name="M000017"></a>
1684
1749
 
1685
1750
  <div class="method-heading">
1686
- <a href="#M000028" class="method-signature">
1687
- <span class="method-name">path</span><span class="method-args">()</span>
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
- Returns the <a href="URI.html#M000028">path</a> for this <a
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('M000028-source');return false;">[Source]</a></p>
1698
- <div class="method-source-code" id="M000028-source">
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 603</span>
1701
- 603: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">path</span>
1702
- 604: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@path</span>
1703
- 605: <span class="ruby-keyword kw">end</span>
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">&quot;&quot;</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=</span><span class="method-args">(new_path)</span>
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
- Sets the <a href="URI.html#M000028">path</a> for this <a
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 608</span>
1728
- 608: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">path=</span>(<span class="ruby-identifier">new_path</span>)
1729
- 609: <span class="ruby-ivar">@path</span> = <span class="ruby-identifier">new_path</span>
1730
- 610: <span class="ruby-keyword kw">end</span>
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-M000025" class="method-detail">
1737
- <a name="M000025"></a>
1813
+ <div id="method-M000030" class="method-detail">
1814
+ <a name="M000030"></a>
1738
1815
 
1739
1816
  <div class="method-heading">
1740
- <a href="#M000025" class="method-signature">
1741
- <span class="method-name">port</span><span class="method-args">()</span>
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
- Returns the <a href="URI.html#M000025">port</a> number for this <a
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>&#8216;s
1751
- <a href="URI.html#M000011">scheme</a> if the <a
1752
- href="URI.html#M000025">port</a> isn&#8216;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('M000025-source');return false;">[Source]</a></p>
1757
- <div class="method-source-code" id="M000025-source">
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 571</span>
1760
- 571: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">port</span>
1761
- 572: <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>
1762
- 573: <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>
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=</span><span class="method-args">(new_port)</span>
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
- Sets the <a href="URI.html#M000025">port</a> for this <a
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>&#8216;s
1855
+ <a href="URI.html#M000012">scheme</a> if the <a
1856
+ href="URI.html#M000026">port</a> isn&#8216;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 586</span>
1797
- 586: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">port=</span>(<span class="ruby-identifier">new_port</span>)
1798
- 587: <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>
1799
- 588: <span class="ruby-ivar">@specified_port</span> = <span class="ruby-ivar">@port</span>
1800
- 589: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
1801
- 590: <span class="ruby-keyword kw">end</span>
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-M000032" class="method-detail">
1808
- <a name="M000032"></a>
1882
+ <div id="method-M000027" class="method-detail">
1883
+ <a name="M000027"></a>
1809
1884
 
1810
1885
  <div class="method-heading">
1811
- <a href="#M000032" class="method-signature">
1812
- <span class="method-name">query</span><span class="method-args">()</span>
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
- Returns the <a href="URI.html#M000032">query</a> string for this <a
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('M000032-source');return false;">[Source]</a></p>
1823
- <div class="method-source-code" id="M000032-source">
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 628</span>
1826
- 628: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query</span>
1827
- 629: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@query</span>
1828
- 630: <span class="ruby-keyword kw">end</span>
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=</span><span class="method-args">(new_query)</span>
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
- Sets the <a href="URI.html#M000032">query</a> string for this <a
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 633</span>
1853
- 633: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query=</span>(<span class="ruby-identifier">new_query</span>)
1854
- 634: <span class="ruby-ivar">@query</span> = <span class="ruby-identifier">new_query</span>
1855
- 635: <span class="ruby-keyword kw">end</span>
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-M000037" class="method-detail">
1862
- <a name="M000037"></a>
1938
+ <div id="method-M000034" class="method-detail">
1939
+ <a name="M000034"></a>
1863
1940
 
1864
1941
  <div class="method-heading">
1865
- <a href="#M000037" class="method-signature">
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('M000037-source');return false;">[Source]</a></p>
1876
- <div class="method-source-code" id="M000037-source">
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 654</span>
1879
- 654: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">relative?</span>
1880
- 655: <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>
1881
- 656: <span class="ruby-keyword kw">end</span>
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-M000042" class="method-detail">
1888
- <a name="M000042"></a>
1991
+ <div id="method-M000043" class="method-detail">
1992
+ <a name="M000043"></a>
1889
1993
 
1890
1994
  <div class="method-heading">
1891
- <a href="#M000042" class="method-signature">
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('M000042-source');return false;">[Source]</a></p>
1905
- <div class="method-source-code" id="M000042-source">
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 751</span>
1908
- 751: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">route_from</span>(<span class="ruby-identifier">uri</span>)
1909
- 752: <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>)
1910
- 753: <span class="ruby-identifier">uri</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">normalize</span>
1911
- 754: <span class="ruby-identifier">normalized_self</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>
1912
- 755: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">relative?</span>
1913
- 756: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Expected absolute URI, got: #{self.to_s}&quot;</span>
1914
- 757: <span class="ruby-keyword kw">end</span>
1915
- 758: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">relative?</span>
1916
- 759: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Expected absolute URI, got: #{self.to_s}&quot;</span>
1917
- 760: <span class="ruby-keyword kw">end</span>
1918
- 761: <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>
1919
- 762: <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">&quot;##{normalized_self.fragment}&quot;</span>)
1920
- 763: <span class="ruby-keyword kw">end</span>
1921
- 764: <span class="ruby-identifier">segments</span> = <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">to_h</span>
1922
- 765: <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>
1923
- 766: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:scheme</span>] = <span class="ruby-keyword kw">nil</span>
1924
- 767: <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>
1925
- 768: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:user</span>] = <span class="ruby-keyword kw">nil</span>
1926
- 769: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:password</span>] = <span class="ruby-keyword kw">nil</span>
1927
- 770: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>] = <span class="ruby-keyword kw">nil</span>
1928
- 771: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:port</span>] = <span class="ruby-keyword kw">nil</span>
1929
- 772: <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>
1930
- 773: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:path</span>] = <span class="ruby-keyword kw">nil</span>
1931
- 774: <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>
1932
- 775: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:query</span>] = <span class="ruby-keyword kw">nil</span>
1933
- 776: <span class="ruby-keyword kw">end</span>
1934
- 777: <span class="ruby-keyword kw">end</span>
1935
- 778: <span class="ruby-keyword kw">end</span>
1936
- 779: <span class="ruby-keyword kw">end</span>
1937
- 780: <span class="ruby-comment cmt"># Avoid network-path references.</span>
1938
- 781: <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">&amp;&amp;</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>
1939
- 782: <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>
1940
- 783: <span class="ruby-keyword kw">end</span>
1941
- 784: <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>(
1942
- 785: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:scheme</span>],
1943
- 786: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:user</span>],
1944
- 787: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:password</span>],
1945
- 788: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>],
1946
- 789: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:port</span>],
1947
- 790: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:path</span>],
1948
- 791: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:query</span>],
1949
- 792: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:fragment</span>]
1950
- 793: )
1951
- 794: <span class="ruby-keyword kw">end</span>
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">&quot;Expected absolute URI, got: #{self.to_s}&quot;</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">&quot;Expected absolute URI, got: #{self.to_s}&quot;</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">&quot;##{normalized_self.fragment}&quot;</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">&amp;&amp;</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-M000043" class="method-detail">
1958
- <a name="M000043"></a>
2061
+ <div id="method-M000044" class="method-detail">
2062
+ <a name="M000044"></a>
1959
2063
 
1960
2064
  <div class="method-heading">
1961
- <a href="#M000043" class="method-signature">
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('M000043-source');return false;">[Source]</a></p>
1975
- <div class="method-source-code" id="M000043-source">
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 799</span>
1978
- 799: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">route_to</span>(<span class="ruby-identifier">uri</span>)
1979
- 800: <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>)
1980
- 801: <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>)
1981
- 802: <span class="ruby-keyword kw">end</span>
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-M000011" class="method-detail">
1988
- <a name="M000011"></a>
2091
+ <div id="method-M000012" class="method-detail">
2092
+ <a name="M000012"></a>
1989
2093
 
1990
2094
  <div class="method-heading">
1991
- <a href="#M000011" class="method-signature">
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#M000011">scheme</a> (protocol) for this <a
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('M000011-source');return false;">[Source]</a></p>
2003
- <div class="method-source-code" id="M000011-source">
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 393</span>
2006
- 393: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scheme</span>
2007
- 394: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@scheme</span>
2008
- 395: <span class="ruby-keyword kw">end</span>
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-M000012" class="method-detail">
2015
- <a name="M000012"></a>
2118
+ <div id="method-M000013" class="method-detail">
2119
+ <a name="M000013"></a>
2016
2120
 
2017
2121
  <div class="method-heading">
2018
- <a href="#M000012" class="method-signature">
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#M000011">scheme</a> (protocol for this <a
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('M000012-source');return false;">[Source]</a></p>
2030
- <div class="method-source-code" id="M000012-source">
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 398</span>
2033
- 398: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scheme=</span>(<span class="ruby-identifier">new_scheme</span>)
2034
- 399: <span class="ruby-ivar">@scheme</span> = <span class="ruby-identifier">new_scheme</span>
2035
- 400: <span class="ruby-keyword kw">end</span>
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-M000027" class="method-detail">
2042
- <a name="M000027"></a>
2145
+ <div id="method-M000028" class="method-detail">
2146
+ <a name="M000028"></a>
2043
2147
 
2044
2148
  <div class="method-heading">
2045
- <a href="#M000027" class="method-signature">
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#M000025">port</a> number that was actually
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('M000027-source');return false;">[Source]</a></p>
2057
- <div class="method-source-code" id="M000027-source">
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 593</span>
2060
- 593: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">specified_port</span>
2061
- 594: <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>
2062
- 595: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">port</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
2063
- 596: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
2064
- 597: <span class="ruby-keyword kw">else</span>
2065
- 598: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">port</span>
2066
- 599: <span class="ruby-keyword kw">end</span>
2067
- 600: <span class="ruby-keyword kw">end</span>
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-M000052" class="method-detail">
2074
- <a name="M000052"></a>
2177
+ <div id="method-M000053" class="method-detail">
2178
+ <a name="M000053"></a>
2075
2179
 
2076
2180
  <div class="method-heading">
2077
- <a href="#M000052" class="method-signature">
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('M000052-source');return false;">[Source]</a></p>
2088
- <div class="method-source-code" id="M000052-source">
2191
+ onclick="toggleCode('M000053-source');return false;">[Source]</a></p>
2192
+ <div class="method-source-code" id="M000053-source">
2089
2193
  <pre>
2090
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 967</span>
2091
- 967: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_h</span>
2092
- 968: <span class="ruby-keyword kw">return</span> {
2093
- 969: <span class="ruby-identifier">:scheme</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>,
2094
- 970: <span class="ruby-identifier">:user</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>,
2095
- 971: <span class="ruby-identifier">:password</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>,
2096
- 972: <span class="ruby-identifier">:host</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>,
2097
- 973: <span class="ruby-identifier">:port</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">specified_port</span>,
2098
- 974: <span class="ruby-identifier">:path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>,
2099
- 975: <span class="ruby-identifier">:query</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span>,
2100
- 976: <span class="ruby-identifier">:fragment</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fragment</span>
2101
- 977: }
2102
- 978: <span class="ruby-keyword kw">end</span>
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">&gt;</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">&gt;</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">&gt;</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">&gt;</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">&gt;</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">&gt;</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">&gt;</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">&gt;</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-M000051" class="method-detail">
2109
- <a name="M000051"></a>
2212
+ <div id="method-M000052" class="method-detail">
2213
+ <a name="M000052"></a>
2110
2214
 
2111
2215
  <div class="method-heading">
2112
- <a href="#M000051" class="method-signature">
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('M000051-source');return false;">[Source]</a></p>
2123
- <div class="method-source-code" id="M000051-source">
2226
+ onclick="toggleCode('M000052-source');return false;">[Source]</a></p>
2227
+ <div class="method-source-code" id="M000052-source">
2124
2228
  <pre>
2125
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 956</span>
2126
- 956: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
2127
- 957: <span class="ruby-identifier">uri_string</span> = <span class="ruby-value str">&quot;&quot;</span>
2128
- 958: <span class="ruby-identifier">uri_string</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{self.scheme}:&quot;</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>
2129
- 959: <span class="ruby-identifier">uri_string</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;//#{self.authority}&quot;</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>
2130
- 960: <span class="ruby-identifier">uri_string</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>.<span class="ruby-identifier">to_s</span>
2131
- 961: <span class="ruby-identifier">uri_string</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;?#{self.query}&quot;</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>
2132
- 962: <span class="ruby-identifier">uri_string</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;##{self.fragment}&quot;</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>
2133
- 963: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">uri_string</span>
2134
- 964: <span class="ruby-keyword kw">end</span>
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">&quot;&quot;</span>
2232
+ 1041: <span class="ruby-identifier">uri_string</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{self.scheme}:&quot;</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">&lt;&lt;</span> <span class="ruby-node">&quot;//#{self.authority}&quot;</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">&lt;&lt;</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">&lt;&lt;</span> <span class="ruby-node">&quot;?#{self.query}&quot;</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">&lt;&lt;</span> <span class="ruby-node">&quot;##{self.fragment}&quot;</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-M000013" class="method-detail">
2141
- <a name="M000013"></a>
2244
+ <div id="method-M000014" class="method-detail">
2245
+ <a name="M000014"></a>
2142
2246
 
2143
2247
  <div class="method-heading">
2144
- <a href="#M000013" class="method-signature">
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#M000013">user</a> for this <a
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('M000013-source');return false;">[Source]</a></p>
2156
- <div class="method-source-code" id="M000013-source">
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 403</span>
2159
- 403: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">user</span>
2160
- 404: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@user</span>
2161
- 405: <span class="ruby-keyword kw">end</span>
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-M000014" class="method-detail">
2168
- <a name="M000014"></a>
2271
+ <div id="method-M000015" class="method-detail">
2272
+ <a name="M000015"></a>
2169
2273
 
2170
2274
  <div class="method-heading">
2171
- <a href="#M000014" class="method-signature">
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#M000013">user</a> for this <a
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('M000014-source');return false;">[Source]</a></p>
2183
- <div class="method-source-code" id="M000014-source">
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 408</span>
2186
- 408: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">user=</span>(<span class="ruby-identifier">new_user</span>)
2187
- 409: <span class="ruby-ivar">@user</span> = <span class="ruby-identifier">new_user</span>
2188
- 410:
2189
- 411: <span class="ruby-comment cmt"># You can't have a nil user with a non-nil password</span>
2190
- 412: <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>
2191
- 413: <span class="ruby-ivar">@user</span> = <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@user</span>.<span class="ruby-identifier">nil?</span>
2192
- 414: <span class="ruby-keyword kw">end</span>
2193
- 415:
2194
- 416: <span class="ruby-comment cmt"># Reset dependant values</span>
2195
- 417: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-keyword kw">nil</span>
2196
- 418: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
2197
- 419:
2198
- 420: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
2199
- 421: <span class="ruby-identifier">validate</span>()
2200
- 422: <span class="ruby-keyword kw">end</span>
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">&quot;&quot;</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-M000017" class="method-detail">
2207
- <a name="M000017"></a>
2310
+ <div id="method-M000018" class="method-detail">
2311
+ <a name="M000018"></a>
2208
2312
 
2209
2313
  <div class="method-heading">
2210
- <a href="#M000017" class="method-signature">
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#M000015">password</a> segment of
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('M000017-source');return false;">[Source]</a></p>
2222
- <div class="method-source-code" id="M000017-source">
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 447</span>
2225
- 447: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">userinfo</span>
2226
- 448: <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>
2227
- 449: <span class="ruby-identifier">current_user</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>
2228
- 450: <span class="ruby-identifier">current_password</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>
2229
- 451: <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">&amp;&amp;</span> <span class="ruby-identifier">current_password</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
2230
- 452: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-keyword kw">nil</span>
2231
- 453: <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">&amp;&amp;</span> <span class="ruby-identifier">current_password</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
2232
- 454: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-node">&quot;#{current_user}&quot;</span>
2233
- 455: <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">&amp;&amp;</span> <span class="ruby-identifier">current_password</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
2234
- 456: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-node">&quot;#{current_user}:#{current_password}&quot;</span>
2235
- 457: <span class="ruby-keyword kw">end</span>
2236
- 458: <span class="ruby-keyword kw">end</span>
2237
- 459: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@userinfo</span>
2238
- 460: <span class="ruby-keyword kw">end</span>
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">&amp;&amp;</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">&amp;&amp;</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">&quot;#{current_user}&quot;</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">&amp;&amp;</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">&quot;#{current_user}:#{current_password}&quot;</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-M000018" class="method-detail">
2245
- <a name="M000018"></a>
2348
+ <div id="method-M000019" class="method-detail">
2349
+ <a name="M000019"></a>
2246
2350
 
2247
2351
  <div class="method-heading">
2248
- <a href="#M000018" class="method-signature">
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#M000015">password</a> segment of
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('M000018-source');return false;">[Source]</a></p>
2260
- <div class="method-source-code" id="M000018-source">
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 463</span>
2263
- 463: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">userinfo=</span>(<span class="ruby-identifier">new_userinfo</span>)
2264
- 464: <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>]
2265
- 465: <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>]
2266
- 466:
2267
- 467: <span class="ruby-comment cmt"># Password assigned first to ensure validity in case of nil</span>
2268
- 468: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span> = <span class="ruby-identifier">new_password</span>
2269
- 469: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span> = <span class="ruby-identifier">new_user</span>
2270
- 470:
2271
- 471: <span class="ruby-comment cmt"># Reset dependant values</span>
2272
- 472: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
2273
- 473:
2274
- 474: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
2275
- 475: <span class="ruby-identifier">validate</span>()
2276
- 476: <span class="ruby-keyword kw">end</span>
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>