addressable 0.1.1 → 0.1.2

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.
@@ -556,7 +556,7 @@ span.run100 {
556
556
  </head>
557
557
  <body>
558
558
  <h3>C0 code coverage information</h3>
559
- <p>Generated on Wed Sep 05 16:05:34 -0400 2007 with <a href='http://eigenclass.org/hiki.rb?rcov'>rcov 0.8.0</a>
559
+ <p>Generated on Sun Oct 28 17:27:34 -0400 2007 with <a href='http://eigenclass.org/hiki.rb?rcov'>rcov 0.8.0</a>
560
560
  </p>
561
561
  <hr /><pre><span class='marked0'>Code reported as executed by Ruby looks like this...
562
562
  </span><span class='marked1'>and this: this line is also marked as covered.
@@ -619,38 +619,38 @@ span.run100 {
619
619
  </td>
620
620
  </tr>
621
621
  </tbody>
622
- </table><pre><span class="inferred0"><a name="line1" /> 1 #--
623
- </span><span class="inferred1"><a name="line2" /> 2 # Addressable, Copyright (c) 2006-2007 Bob Aman
624
- </span><span class="inferred0"><a name="line3" /> 3 #
625
- </span><span class="inferred1"><a name="line4" /> 4 # Permission is hereby granted, free of charge, to any person obtaining
626
- </span><span class="inferred0"><a name="line5" /> 5 # a copy of this software and associated documentation files (the
627
- </span><span class="inferred1"><a name="line6" /> 6 # &quot;Software&quot;), to deal in the Software without restriction, including
628
- </span><span class="inferred0"><a name="line7" /> 7 # without limitation the rights to use, copy, modify, merge, publish,
629
- </span><span class="inferred1"><a name="line8" /> 8 # distribute, sublicense, and/or sell copies of the Software, and to
630
- </span><span class="inferred0"><a name="line9" /> 9 # permit persons to whom the Software is furnished to do so, subject to
631
- </span><span class="inferred1"><a name="line10" />10 # the following conditions:
632
- </span><span class="inferred0"><a name="line11" />11 #
633
- </span><span class="inferred1"><a name="line12" />12 # The above copyright notice and this permission notice shall be
634
- </span><span class="inferred0"><a name="line13" />13 # included in all copies or substantial portions of the Software.
635
- </span><span class="inferred1"><a name="line14" />14 #
636
- </span><span class="inferred0"><a name="line15" />15 # THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND,
637
- </span><span class="inferred1"><a name="line16" />16 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
638
- </span><span class="inferred0"><a name="line17" />17 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
639
- </span><span class="inferred1"><a name="line18" />18 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
640
- </span><span class="inferred0"><a name="line19" />19 # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
641
- </span><span class="inferred1"><a name="line20" />20 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
642
- </span><span class="inferred0"><a name="line21" />21 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
643
- </span><span class="inferred1"><a name="line22" />22 #++
644
- </span><span class="inferred0"><a name="line23" />23
645
- </span><span class="marked1"><a name="line24" />24 module Addressable
646
- </span><span class="marked0"><a name="line25" />25 module ADDRESSABLE_VERSION #:nodoc:
647
- </span><span class="marked1"><a name="line26" />26 MAJOR = 0
648
- </span><span class="marked0"><a name="line27" />27 MINOR = 1
649
- </span><span class="marked1"><a name="line28" />28 TINY = 1
650
- </span><span class="inferred0"><a name="line29" />29
651
- </span><span class="marked1"><a name="line30" />30 STRING = [MAJOR, MINOR, TINY].join('.')
652
- </span><span class="inferred0"><a name="line31" />31 end
653
- </span><span class="inferred1"><a name="line32" />32 end
622
+ </table><pre><span class="inferred1"><a name="line1" /> 1 #--
623
+ </span><span class="inferred0"><a name="line2" /> 2 # Addressable, Copyright (c) 2006-2007 Bob Aman
624
+ </span><span class="inferred1"><a name="line3" /> 3 #
625
+ </span><span class="inferred0"><a name="line4" /> 4 # Permission is hereby granted, free of charge, to any person obtaining
626
+ </span><span class="inferred1"><a name="line5" /> 5 # a copy of this software and associated documentation files (the
627
+ </span><span class="inferred0"><a name="line6" /> 6 # &quot;Software&quot;), to deal in the Software without restriction, including
628
+ </span><span class="inferred1"><a name="line7" /> 7 # without limitation the rights to use, copy, modify, merge, publish,
629
+ </span><span class="inferred0"><a name="line8" /> 8 # distribute, sublicense, and/or sell copies of the Software, and to
630
+ </span><span class="inferred1"><a name="line9" /> 9 # permit persons to whom the Software is furnished to do so, subject to
631
+ </span><span class="inferred0"><a name="line10" />10 # the following conditions:
632
+ </span><span class="inferred1"><a name="line11" />11 #
633
+ </span><span class="inferred0"><a name="line12" />12 # The above copyright notice and this permission notice shall be
634
+ </span><span class="inferred1"><a name="line13" />13 # included in all copies or substantial portions of the Software.
635
+ </span><span class="inferred0"><a name="line14" />14 #
636
+ </span><span class="inferred1"><a name="line15" />15 # THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND,
637
+ </span><span class="inferred0"><a name="line16" />16 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
638
+ </span><span class="inferred1"><a name="line17" />17 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
639
+ </span><span class="inferred0"><a name="line18" />18 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
640
+ </span><span class="inferred1"><a name="line19" />19 # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
641
+ </span><span class="inferred0"><a name="line20" />20 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
642
+ </span><span class="inferred1"><a name="line21" />21 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
643
+ </span><span class="inferred0"><a name="line22" />22 #++
644
+ </span><span class="inferred1"><a name="line23" />23
645
+ </span><span class="marked0"><a name="line24" />24 module Addressable
646
+ </span><span class="marked1"><a name="line25" />25 module ADDRESSABLE_VERSION #:nodoc:
647
+ </span><span class="marked0"><a name="line26" />26 MAJOR = 0
648
+ </span><span class="marked1"><a name="line27" />27 MINOR = 1
649
+ </span><span class="marked0"><a name="line28" />28 TINY = 2
650
+ </span><span class="inferred1"><a name="line29" />29
651
+ </span><span class="marked0"><a name="line30" />30 STRING = [MAJOR, MINOR, TINY].join('.')
652
+ </span><span class="inferred1"><a name="line31" />31 end
653
+ </span><span class="inferred0"><a name="line32" />32 end
654
654
  </span></pre><hr /> <p>Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'>rcov code coverage analysis tool for Ruby</a> version 0.8.0.</p><p>
655
655
  <a href='http://validator.w3.org/check/referer'>
656
656
  <img src='http://www.w3.org/Icons/valid-xhtml10' height='31' alt='Valid XHTML 1.0!' width='88' />
@@ -1,4 +1,4 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
1
+ <?xml version="1.0" encoding="utf-8"?>
2
2
  <!DOCTYPE html
3
3
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
4
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
@@ -6,7 +6,7 @@
6
6
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
7
  <head>
8
8
  <title>Module: Addressable</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
10
  <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
11
  <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
12
  <script type="text/javascript">
@@ -1,4 +1,4 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
1
+ <?xml version="1.0" encoding="utf-8"?>
2
2
  <!DOCTYPE html
3
3
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
4
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
@@ -6,7 +6,7 @@
6
6
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
7
  <head>
8
8
  <title>Class: Addressable::URI</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
10
  <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
11
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
12
  <script type="text/javascript">
@@ -81,7 +81,7 @@
81
81
  <div id="description">
82
82
  <p>
83
83
  This is an implementation of a <a href="URI.html">URI</a> parser based on
84
- RFC 3986.
84
+ RFC 3986, 3987.
85
85
  </p>
86
86
 
87
87
  </div>
@@ -94,18 +94,18 @@ RFC 3986.
94
94
 
95
95
  <div class="name-list">
96
96
  <a href="#M000040">+</a>&nbsp;&nbsp;
97
- <a href="#M000049">==</a>&nbsp;&nbsp;
98
- <a href="#M000048">===</a>&nbsp;&nbsp;
97
+ <a href="#M000051">==</a>&nbsp;&nbsp;
98
+ <a href="#M000050">===</a>&nbsp;&nbsp;
99
99
  <a href="#M000039">absolute?</a>&nbsp;&nbsp;
100
100
  <a href="#M000022">authority</a>&nbsp;&nbsp;
101
101
  <a href="#M000023">authority=</a>&nbsp;&nbsp;
102
102
  <a href="#M000031">basename</a>&nbsp;&nbsp;
103
103
  <a href="#M000002">convert_path</a>&nbsp;&nbsp;
104
- <a href="#M000047">display_uri</a>&nbsp;&nbsp;
105
- <a href="#M000051">dup</a>&nbsp;&nbsp;
104
+ <a href="#M000049">display_uri</a>&nbsp;&nbsp;
105
+ <a href="#M000053">dup</a>&nbsp;&nbsp;
106
106
  <a href="#M000008">encode</a>&nbsp;&nbsp;
107
107
  <a href="#M000006">encode_segment</a>&nbsp;&nbsp;
108
- <a href="#M000050">eql?</a>&nbsp;&nbsp;
108
+ <a href="#M000052">eql?</a>&nbsp;&nbsp;
109
109
  <a href="#M000003">expand_template</a>&nbsp;&nbsp;
110
110
  <a href="#M000032">extname</a>&nbsp;&nbsp;
111
111
  <a href="#M000010">extract</a>&nbsp;&nbsp;
@@ -114,15 +114,17 @@ RFC 3986.
114
114
  <a href="#M000036">fragment=</a>&nbsp;&nbsp;
115
115
  <a href="#M000020">host</a>&nbsp;&nbsp;
116
116
  <a href="#M000021">host=</a>&nbsp;&nbsp;
117
- <a href="#M000054">inspect</a>&nbsp;&nbsp;
117
+ <a href="#M000056">inspect</a>&nbsp;&nbsp;
118
118
  <a href="#M000037">ip_based?</a>&nbsp;&nbsp;
119
119
  <a href="#M000024">ip_based_schemes</a>&nbsp;&nbsp;
120
+ <a href="#M000042">join</a>&nbsp;&nbsp;
120
121
  <a href="#M000005">join</a>&nbsp;&nbsp;
122
+ <a href="#M000044">join!</a>&nbsp;&nbsp;
121
123
  <a href="#M000041">merge</a>&nbsp;&nbsp;
122
- <a href="#M000042">merge!</a>&nbsp;&nbsp;
124
+ <a href="#M000043">merge!</a>&nbsp;&nbsp;
123
125
  <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="#M000047">normalize</a>&nbsp;&nbsp;
127
+ <a href="#M000048">normalize!</a>&nbsp;&nbsp;
126
128
  <a href="#M000009">normalized_encode</a>&nbsp;&nbsp;
127
129
  <a href="#M000001">parse</a>&nbsp;&nbsp;
128
130
  <a href="#M000016">password</a>&nbsp;&nbsp;
@@ -134,14 +136,14 @@ RFC 3986.
134
136
  <a href="#M000033">query</a>&nbsp;&nbsp;
135
137
  <a href="#M000034">query=</a>&nbsp;&nbsp;
136
138
  <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="#M000045">route_from</a>&nbsp;&nbsp;
140
+ <a href="#M000046">route_to</a>&nbsp;&nbsp;
139
141
  <a href="#M000012">scheme</a>&nbsp;&nbsp;
140
142
  <a href="#M000013">scheme=</a>&nbsp;&nbsp;
141
143
  <a href="#M000025">scheme_mapping</a>&nbsp;&nbsp;
142
144
  <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="#M000055">to_h</a>&nbsp;&nbsp;
146
+ <a href="#M000054">to_s</a>&nbsp;&nbsp;
145
147
  <a href="#M000007">unencode_segment</a>&nbsp;&nbsp;
146
148
  <a href="#M000014">user</a>&nbsp;&nbsp;
147
149
  <a href="#M000015">user=</a>&nbsp;&nbsp;
@@ -265,28 +267,28 @@ This method does not take IRIs or IDNs into account.
265
267
  onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
266
268
  <div class="method-source-code" id="M000008-source">
267
269
  <pre>
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>
270
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 334</span>
271
+ 334: <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>)
272
+ 335: <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>)
273
+ 336: <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>(
274
+ 337: <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>,
275
+ 338: <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>),
276
+ 339: <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>,
277
+ 340: <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
+ 341: <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>,
279
+ 342: <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
+ 343: <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>,
281
+ 344: <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
+ 345: <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>,
283
+ 346: <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>),
284
+ 347: <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>,
285
+ 348: <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>),
286
+ 349: <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>,
287
+ 350: <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>),
288
+ 351: <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>,
289
+ 352: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">FRAGMENT</span>)
290
+ 353: ).<span class="ruby-identifier">to_s</span>
291
+ 354: <span class="ruby-keyword kw">end</span>
290
292
  </pre>
291
293
  </div>
292
294
  </div>
@@ -323,17 +325,17 @@ An example:
323
325
  onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
324
326
  <div class="method-source-code" id="M000006-source">
325
327
  <pre>
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>
328
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 312</span>
329
+ 312: <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>=
330
+ 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">RESERVED</span> <span class="ruby-operator">+</span>
331
+ 314: <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>)
332
+ 315: <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>
333
+ 316: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">segment</span>.<span class="ruby-identifier">gsub</span>(
334
+ 317: <span class="ruby-node">/[^#{character_class}]/</span>
335
+ 318: ) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sequence</span><span class="ruby-operator">|</span>
336
+ 319: (<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>)
337
+ 320: <span class="ruby-keyword kw">end</span>
338
+ 321: <span class="ruby-keyword kw">end</span>
337
339
  </pre>
338
340
  </div>
339
341
  </div>
@@ -437,58 +439,58 @@ Extracts uris from an arbitrary body of text.
437
439
  onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
438
440
  <div class="method-source-code" id="M000010-source">
439
441
  <pre>
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>
442
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 400</span>
443
+ 400: <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>={})
444
+ 401: <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>}
445
+ 402: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
446
+ 403: <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>
447
+ 404: <span class="ruby-comment cmt"># This regular expression needs to be less forgiving or else it would</span>
448
+ 405: <span class="ruby-comment cmt"># match virtually all text. Which isn't exactly what we're going for.</span>
449
+ 406: <span class="ruby-identifier">extract_regex</span> = <span class="ruby-regexp re">/((([a-z\+]+):)[^ \n\&lt;\&gt;\&quot;\\]+[\w\/])/</span>
450
+ 407: <span class="ruby-identifier">extracted_uris</span> =
451
+ 408: <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>] }
452
+ 409: <span class="ruby-identifier">sgml_extract_regex</span> = <span class="ruby-regexp re">/&lt;[^&gt;]+href=\&quot;([^\&quot;]+?)\&quot;[^&gt;]*&gt;/</span>
453
+ 410: <span class="ruby-identifier">sgml_extracted_uris</span> =
454
+ 411: <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>] }
455
+ 412: <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>)
456
+ 413: <span class="ruby-identifier">textile_extract_regex</span> = <span class="ruby-regexp re">/\&quot;.+?\&quot;:([^ ]+\/[^ ]+)[ \,\.\;\:\?\!\&lt;\&gt;\&quot;]/i</span>
457
+ 414: <span class="ruby-identifier">textile_extracted_uris</span> =
458
+ 415: <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>] }
459
+ 416: <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>)
460
+ 417: <span class="ruby-identifier">parsed_uris</span> = []
461
+ 418: <span class="ruby-identifier">base_uri</span> = <span class="ruby-keyword kw">nil</span>
462
+ 419: <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>
463
+ 420: <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>)
464
+ 421: <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>
465
+ 422: <span class="ruby-keyword kw">end</span>
466
+ 423: <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>
467
+ 424: <span class="ruby-keyword kw">begin</span>
468
+ 425: <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>
469
+ 426: <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>)
470
+ 427: <span class="ruby-keyword kw">else</span>
471
+ 428: <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>))
472
+ 429: <span class="ruby-keyword kw">end</span>
473
+ 430: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
474
+ 431: <span class="ruby-keyword kw">nil</span>
475
+ 432: <span class="ruby-keyword kw">end</span>
476
+ 433: <span class="ruby-keyword kw">end</span>
477
+ 434: <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>
478
+ 435: (<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>
479
+ 436: <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>
480
+ 437: <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>
481
+ 438: <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>
482
+ 439: <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>
483
+ 440: <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>
484
+ 441: <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>
485
+ 442: <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>
486
+ 443: <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>)
487
+ 444: <span class="ruby-keyword kw">end</span>
488
+ 445: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:parse</span>]
489
+ 446: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parsed_uris</span>
490
+ 447: <span class="ruby-keyword kw">else</span>
491
+ 448: <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> }
492
+ 449: <span class="ruby-keyword kw">end</span>
493
+ 450: <span class="ruby-keyword kw">end</span>
492
494
  </pre>
493
495
  </div>
494
496
  </div>
@@ -517,10 +519,10 @@ href="URI.html#M000029">path</a>&gt;
517
519
  onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
518
520
  <div class="method-source-code" id="M000024-source">
519
521
  <pre>
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
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 625</span>
523
+ 625: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">ip_based_schemes</span>
524
+ 626: <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>
525
+ 627: <span class="ruby-keyword kw">end</span>
524
526
  </pre>
525
527
  </div>
526
528
  </div>
@@ -543,17 +545,17 @@ Joins several uris together.
543
545
  onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
544
546
  <div class="method-source-code" id="M000005-source">
545
547
  <pre>
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>
548
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 289</span>
549
+ 289: <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>)
550
+ 290: <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>
551
+ 291: <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>)
552
+ 292: <span class="ruby-keyword kw">end</span>
553
+ 293: <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>
554
+ 294: <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>
555
+ 295: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">uri</span>)
556
+ 296: <span class="ruby-keyword kw">end</span>
557
+ 297: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
558
+ 298: <span class="ruby-keyword kw">end</span>
557
559
  </pre>
558
560
  </div>
559
561
  </div>
@@ -577,28 +579,28 @@ parts. Passing nil for any of these parameters is acceptable.
577
579
  onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
578
580
  <div class="method-source-code" id="M000011-source">
579
581
  <pre>
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>
582
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 454</span>
583
+ 454: <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>)
584
+ 455: <span class="ruby-ivar">@scheme</span> = <span class="ruby-identifier">scheme</span>
585
+ 456: <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>
586
+ 457: <span class="ruby-ivar">@user</span> = <span class="ruby-identifier">user</span>
587
+ 458: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">password</span>
588
+ 459: <span class="ruby-ivar">@host</span> = <span class="ruby-identifier">host</span>
589
+ 460: <span class="ruby-ivar">@specified_port</span> = <span class="ruby-identifier">port</span>.<span class="ruby-identifier">to_s</span>
590
+ 461: <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">port</span>
591
+ 462: <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>)
592
+ 463: <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>)
593
+ 464: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidURIError</span>,
594
+ 465: <span class="ruby-node">&quot;Invalid port number: #{@port.inspect}&quot;</span>
595
+ 466: <span class="ruby-keyword kw">end</span>
596
+ 467: <span class="ruby-ivar">@port</span> = <span class="ruby-ivar">@port</span>.<span class="ruby-identifier">to_i</span>
597
+ 468: <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>
598
+ 469: <span class="ruby-ivar">@path</span> = <span class="ruby-identifier">path</span>
599
+ 470: <span class="ruby-ivar">@query</span> = <span class="ruby-identifier">query</span>
600
+ 471: <span class="ruby-ivar">@fragment</span> = <span class="ruby-identifier">fragment</span>
601
+ 472:
602
+ 473: <span class="ruby-identifier">validate</span>()
603
+ 474: <span class="ruby-keyword kw">end</span>
602
604
  </pre>
603
605
  </div>
604
606
  </div>
@@ -623,43 +625,43 @@ names.
623
625
  onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
624
626
  <div class="method-source-code" id="M000009-source">
625
627
  <pre>
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>
628
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 362</span>
629
+ 362: <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>)
630
+ 363: <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>)
631
+ 364: <span class="ruby-identifier">segments</span> = {
632
+ 365: <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>),
633
+ 366: <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>),
634
+ 367: <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>),
635
+ 368: <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>),
636
+ 369: <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>),
637
+ 370: <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>),
638
+ 371: <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>),
639
+ 372: <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>)
640
+ 373: }
641
+ 374: <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>)
642
+ 375: <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>
643
+ 376: <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>
644
+ 377: <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>)
645
+ 378: <span class="ruby-keyword kw">end</span>
646
+ 379: <span class="ruby-keyword kw">end</span>
647
+ 380: <span class="ruby-keyword kw">end</span>
648
+ 381: <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>(
649
+ 382: <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>],
650
+ 383: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">SCHEME</span>),
651
+ 384: <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>],
652
+ 385: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
653
+ 386: <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>],
654
+ 387: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
655
+ 388: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>],
656
+ 389: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:port</span>],
657
+ 390: <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>],
658
+ 391: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">PATH</span>),
659
+ 392: <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>],
660
+ 393: <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>),
661
+ 394: <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>],
662
+ 395: <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>)
663
+ 396: ).<span class="ruby-identifier">to_s</span>
664
+ 397: <span class="ruby-keyword kw">end</span>
663
665
  </pre>
664
666
  </div>
665
667
  </div>
@@ -768,26 +770,26 @@ allow for better <a href="URI.html">URI</a> normalization.
768
770
  onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
769
771
  <div class="method-source-code" id="M000025-source">
770
772
  <pre>
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>
773
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 632</span>
774
+ 632: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme_mapping</span>
775
+ 633: <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>
776
+ 634: <span class="ruby-ivar">@protocol_mapping</span> = {
777
+ 635: <span class="ruby-value str">&quot;http&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">80</span>,
778
+ 636: <span class="ruby-value str">&quot;https&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">443</span>,
779
+ 637: <span class="ruby-value str">&quot;ftp&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">21</span>,
780
+ 638: <span class="ruby-value str">&quot;tftp&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">69</span>,
781
+ 639: <span class="ruby-value str">&quot;ssh&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">22</span>,
782
+ 640: <span class="ruby-value str">&quot;svn+ssh&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">22</span>,
783
+ 641: <span class="ruby-value str">&quot;telnet&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">23</span>,
784
+ 642: <span class="ruby-value str">&quot;nntp&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">119</span>,
785
+ 643: <span class="ruby-value str">&quot;gopher&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">70</span>,
786
+ 644: <span class="ruby-value str">&quot;wais&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">210</span>,
787
+ 645: <span class="ruby-value str">&quot;ldap&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">389</span>,
788
+ 646: <span class="ruby-value str">&quot;prospero&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">1525</span>
789
+ 647: }
790
+ 648: <span class="ruby-keyword kw">end</span>
791
+ 649: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@protocol_mapping</span>
792
+ 650: <span class="ruby-keyword kw">end</span>
791
793
  </pre>
792
794
  </div>
793
795
  </div>
@@ -811,13 +813,13 @@ href="URI.html">URI</a> segment. Returns a string.
811
813
  onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
812
814
  <div class="method-source-code" id="M000007-source">
813
815
  <pre>
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>
816
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 325</span>
817
+ 325: <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>)
818
+ 326: <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>
819
+ 327: <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>
820
+ 328: <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>
821
+ 329: <span class="ruby-keyword kw">end</span>
822
+ 330: <span class="ruby-keyword kw">end</span>
821
823
  </pre>
822
824
  </div>
823
825
  </div>
@@ -842,90 +844,106 @@ Joins two URIs together.
842
844
  onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
843
845
  <div class="method-source-code" id="M000040-source">
844
846
  <pre>
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>
847
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 748</span>
848
+ 748: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">uri</span>)
849
+ 749: <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>)
850
+ 750: <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>)
851
+ 751: <span class="ruby-keyword kw">end</span>
852
+ 752: <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>
853
+ 753: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
854
+ 754: <span class="ruby-keyword kw">end</span>
855
+ 755:
856
+ 756: <span class="ruby-identifier">joined_scheme</span> = <span class="ruby-keyword kw">nil</span>
857
+ 757: <span class="ruby-identifier">joined_user</span> = <span class="ruby-keyword kw">nil</span>
858
+ 758: <span class="ruby-identifier">joined_password</span> = <span class="ruby-keyword kw">nil</span>
859
+ 759: <span class="ruby-identifier">joined_host</span> = <span class="ruby-keyword kw">nil</span>
860
+ 760: <span class="ruby-identifier">joined_port</span> = <span class="ruby-keyword kw">nil</span>
861
+ 761: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">nil</span>
862
+ 762: <span class="ruby-identifier">joined_query</span> = <span class="ruby-keyword kw">nil</span>
863
+ 763: <span class="ruby-identifier">joined_fragment</span> = <span class="ruby-keyword kw">nil</span>
864
+ 764:
865
+ 765: <span class="ruby-comment cmt"># Section 5.2.2 of RFC 3986</span>
866
+ 766: <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>
867
+ 767: <span class="ruby-identifier">joined_scheme</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span>
868
+ 768: <span class="ruby-identifier">joined_user</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">user</span>
869
+ 769: <span class="ruby-identifier">joined_password</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">password</span>
870
+ 770: <span class="ruby-identifier">joined_host</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">host</span>
871
+ 771: <span class="ruby-identifier">joined_port</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">specified_port</span>
872
+ 772: <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>)
873
+ 773: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
874
+ 774: <span class="ruby-keyword kw">else</span>
875
+ 775: <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>
876
+ 776: <span class="ruby-identifier">joined_user</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">user</span>
877
+ 777: <span class="ruby-identifier">joined_password</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">password</span>
878
+ 778: <span class="ruby-identifier">joined_host</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">host</span>
879
+ 779: <span class="ruby-identifier">joined_port</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">specified_port</span>
880
+ 780: <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>)
881
+ 781: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
882
+ 782: <span class="ruby-keyword kw">else</span>
883
+ 783: <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>
884
+ 784: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>
885
+ 785: <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>
886
+ 786: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
887
+ 787: <span class="ruby-keyword kw">else</span>
888
+ 788: <span class="ruby-identifier">joined_query</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span>
889
+ 789: <span class="ruby-keyword kw">end</span>
890
+ 790: <span class="ruby-keyword kw">else</span>
891
+ 791: <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>
892
+ 792: <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>)
893
+ 793: <span class="ruby-keyword kw">else</span>
894
+ 794: <span class="ruby-identifier">base_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>.<span class="ruby-identifier">dup</span>
895
+ 795: <span class="ruby-identifier">base_path</span> = <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base_path</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
896
+ 796: <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>)
897
+ 797:
898
+ 798: <span class="ruby-comment cmt"># Section 5.2.3 of RFC 3986</span>
899
+ 799: <span class="ruby-comment cmt">#</span>
900
+ 800: <span class="ruby-comment cmt"># Removes the right-most path segment from the base path.</span>
901
+ 801: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base_path</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\//</span>
902
+ 802: <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>)
903
+ 803: <span class="ruby-keyword kw">else</span>
904
+ 804: <span class="ruby-identifier">base_path</span> = <span class="ruby-value str">&quot;&quot;</span>
905
+ 805: <span class="ruby-keyword kw">end</span>
906
+ 806:
907
+ 807: <span class="ruby-comment cmt"># If the base path is empty and an authority segment has been</span>
908
+ 808: <span class="ruby-comment cmt"># defined, use a base path of &quot;/&quot;</span>
909
+ 809: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base_path</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-operator">&amp;&amp;</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>
910
+ 810: <span class="ruby-identifier">base_path</span> = <span class="ruby-value str">&quot;/&quot;</span>
911
+ 811: <span class="ruby-keyword kw">end</span>
912
+ 812:
913
+ 813: <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>)
914
+ 814: <span class="ruby-keyword kw">end</span>
915
+ 815: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
916
+ 816: <span class="ruby-keyword kw">end</span>
917
+ 817: <span class="ruby-identifier">joined_user</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>
918
+ 818: <span class="ruby-identifier">joined_password</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>
919
+ 819: <span class="ruby-identifier">joined_host</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>
920
+ 820: <span class="ruby-identifier">joined_port</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">specified_port</span>
921
+ 821: <span class="ruby-keyword kw">end</span>
922
+ 822: <span class="ruby-identifier">joined_scheme</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>
923
+ 823: <span class="ruby-keyword kw">end</span>
924
+ 824: <span class="ruby-identifier">joined_fragment</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">fragment</span>
925
+ 825:
926
+ 826: <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>(
927
+ 827: <span class="ruby-identifier">joined_scheme</span>,
928
+ 828: <span class="ruby-identifier">joined_user</span>,
929
+ 829: <span class="ruby-identifier">joined_password</span>,
930
+ 830: <span class="ruby-identifier">joined_host</span>,
931
+ 831: <span class="ruby-identifier">joined_port</span>,
932
+ 832: <span class="ruby-identifier">joined_path</span>,
933
+ 833: <span class="ruby-identifier">joined_query</span>,
934
+ 834: <span class="ruby-identifier">joined_fragment</span>
935
+ 835: )
936
+ 836: <span class="ruby-keyword kw">end</span>
919
937
  </pre>
920
938
  </div>
921
939
  </div>
922
940
  </div>
923
941
 
924
- <div id="method-M000049" class="method-detail">
925
- <a name="M000049"></a>
942
+ <div id="method-M000051" class="method-detail">
943
+ <a name="M000051"></a>
926
944
 
927
945
  <div class="method-heading">
928
- <a href="#M000049" class="method-signature">
946
+ <a href="#M000051" class="method-signature">
929
947
  <span class="method-name">==</span><span class="method-args">(uri)</span>
930
948
  </a>
931
949
  </div>
@@ -936,24 +954,24 @@ Returns true if the <a href="URI.html">URI</a> objects are equal. This
936
954
  method normalizes both URIs before doing the comparison.
937
955
  </p>
938
956
  <p><a class="source-toggle" href="#"
939
- onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
940
- <div class="method-source-code" id="M000049-source">
957
+ onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
958
+ <div class="method-source-code" id="M000051-source">
941
959
  <pre>
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>
960
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1023</span>
961
+ 1023: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">uri</span>)
962
+ 1024: <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>)
963
+ 1025: <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>
964
+ 1026: <span class="ruby-keyword kw">end</span>
947
965
  </pre>
948
966
  </div>
949
967
  </div>
950
968
  </div>
951
969
 
952
- <div id="method-M000048" class="method-detail">
953
- <a name="M000048"></a>
970
+ <div id="method-M000050" class="method-detail">
971
+ <a name="M000050"></a>
954
972
 
955
973
  <div class="method-heading">
956
- <a href="#M000048" class="method-signature">
974
+ <a href="#M000050" class="method-signature">
957
975
  <span class="method-name">===</span><span class="method-args">(uri)</span>
958
976
  </a>
959
977
  </div>
@@ -965,23 +983,23 @@ method normalizes both URIs before doing the comparison, and allows
965
983
  comparison against strings.
966
984
  </p>
967
985
  <p><a class="source-toggle" href="#"
968
- onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
969
- <div class="method-source-code" id="M000048-source">
986
+ onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
987
+ <div class="method-source-code" id="M000050-source">
970
988
  <pre>
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>
989
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1007</span>
990
+ 1007: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">===</span>(<span class="ruby-identifier">uri</span>)
991
+ 1008: <span class="ruby-identifier">uri_string</span> = <span class="ruby-keyword kw">nil</span>
992
+ 1009: <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>)
993
+ 1010: <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>
994
+ 1011: <span class="ruby-keyword kw">else</span>
995
+ 1012: <span class="ruby-keyword kw">begin</span>
996
+ 1013: <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>
997
+ 1014: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
998
+ 1015: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
999
+ 1016: <span class="ruby-keyword kw">end</span>
1000
+ 1017: <span class="ruby-keyword kw">end</span>
1001
+ 1018: <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>
1002
+ 1019: <span class="ruby-keyword kw">end</span>
985
1003
  </pre>
986
1004
  </div>
987
1005
  </div>
@@ -1004,10 +1022,10 @@ Returns true if this <a href="URI.html">URI</a> is known to be absolute.
1004
1022
  onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
1005
1023
  <div class="method-source-code" id="M000039-source">
1006
1024
  <pre>
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>
1025
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 743</span>
1026
+ 743: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">absolute?</span>
1027
+ 744: <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-identifier">relative?</span>
1028
+ 745: <span class="ruby-keyword kw">end</span>
1011
1029
  </pre>
1012
1030
  </div>
1013
1031
  </div>
@@ -1031,21 +1049,21 @@ href="URI.html">URI</a>.
1031
1049
  onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
1032
1050
  <div class="method-source-code" id="M000022-source">
1033
1051
  <pre>
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>
1052
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 579</span>
1053
+ 579: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">authority</span>
1054
+ 580: <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>
1055
+ 581: <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>
1056
+ 582: <span class="ruby-ivar">@authority</span> = <span class="ruby-value str">&quot;&quot;</span>
1057
+ 583: <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>
1058
+ 584: <span class="ruby-ivar">@authority</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{self.userinfo}@&quot;</span>
1059
+ 585: <span class="ruby-keyword kw">end</span>
1060
+ 586: <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>
1061
+ 587: <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>
1062
+ 588: <span class="ruby-ivar">@authority</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;:#{self.specified_port}&quot;</span>
1063
+ 589: <span class="ruby-keyword kw">end</span>
1064
+ 590: <span class="ruby-keyword kw">end</span>
1065
+ 591: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@authority</span>
1066
+ 592: <span class="ruby-keyword kw">end</span>
1049
1067
  </pre>
1050
1068
  </div>
1051
1069
  </div>
@@ -1069,33 +1087,33 @@ href="URI.html">URI</a>.
1069
1087
  onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
1070
1088
  <div class="method-source-code" id="M000023-source">
1071
1089
  <pre>
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>
1090
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 595</span>
1091
+ 595: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">authority=</span>(<span class="ruby-identifier">new_authority</span>)
1092
+ 596: <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>
1093
+ 597: <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>]
1094
+ 598: <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>
1095
+ 599: <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>]
1096
+ 600: <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>]
1097
+ 601: <span class="ruby-keyword kw">end</span>
1098
+ 602: <span class="ruby-identifier">new_host</span> =
1099
+ 603: <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>)
1100
+ 604: <span class="ruby-identifier">new_port</span> =
1101
+ 605: <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>]
1102
+ 606: <span class="ruby-keyword kw">end</span>
1103
+ 607: <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>
1104
+ 608:
1105
+ 609: <span class="ruby-comment cmt"># Password assigned first to ensure validity in case of nil</span>
1106
+ 610: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span> = <span class="ruby-identifier">new_password</span>
1107
+ 611: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span> = <span class="ruby-identifier">new_user</span>
1108
+ 612: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span> = <span class="ruby-identifier">new_host</span>
1109
+ 613:
1110
+ 614: <span class="ruby-comment cmt"># Port reset to allow port normalization</span>
1111
+ 615: <span class="ruby-ivar">@port</span> = <span class="ruby-keyword kw">nil</span>
1112
+ 616: <span class="ruby-ivar">@specified_port</span> = <span class="ruby-identifier">new_port</span>
1113
+ 617:
1114
+ 618: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
1115
+ 619: <span class="ruby-identifier">validate</span>()
1116
+ 620: <span class="ruby-keyword kw">end</span>
1099
1117
  </pre>
1100
1118
  </div>
1101
1119
  </div>
@@ -1120,21 +1138,21 @@ there is no <a href="URI.html#M000029">path</a> component.
1120
1138
  onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
1121
1139
  <div class="method-source-code" id="M000031-source">
1122
1140
  <pre>
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>
1141
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 698</span>
1142
+ 698: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">basename</span>
1143
+ 699: <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>
1144
+ 700: <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>)
1145
+ 701: <span class="ruby-keyword kw">end</span>
1128
1146
  </pre>
1129
1147
  </div>
1130
1148
  </div>
1131
1149
  </div>
1132
1150
 
1133
- <div id="method-M000047" class="method-detail">
1134
- <a name="M000047"></a>
1151
+ <div id="method-M000049" class="method-detail">
1152
+ <a name="M000049"></a>
1135
1153
 
1136
1154
  <div class="method-heading">
1137
- <a href="#M000047" class="method-signature">
1155
+ <a href="#M000049" class="method-signature">
1138
1156
  <span class="method-name">display_uri</span><span class="method-args">()</span>
1139
1157
  </a>
1140
1158
  </div>
@@ -1147,30 +1165,30 @@ warn the <a href="URI.html#M000014">user</a>. See RFC 3986 section 7.6 for
1147
1165
  more information.
1148
1166
  </p>
1149
1167
  <p><a class="source-toggle" href="#"
1150
- onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
1151
- <div class="method-source-code" id="M000047-source">
1168
+ onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
1169
+ <div class="method-source-code" id="M000049-source">
1152
1170
  <pre>
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>
1171
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 993</span>
1172
+ 993: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">display_uri</span>
1173
+ 994: <span class="ruby-identifier">display_uri</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>
1174
+ 995: <span class="ruby-keyword kw">begin</span>
1175
+ 996: <span class="ruby-identifier">display_uri</span>.<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">&quot;@host&quot;</span>,
1176
+ 997: <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>))
1177
+ 998: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
1178
+ 999: <span class="ruby-keyword kw">nil</span>
1179
+ 1000: <span class="ruby-keyword kw">end</span>
1180
+ 1001: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">display_uri</span>
1181
+ 1002: <span class="ruby-keyword kw">end</span>
1164
1182
  </pre>
1165
1183
  </div>
1166
1184
  </div>
1167
1185
  </div>
1168
1186
 
1169
- <div id="method-M000051" class="method-detail">
1170
- <a name="M000051"></a>
1187
+ <div id="method-M000053" class="method-detail">
1188
+ <a name="M000053"></a>
1171
1189
 
1172
1190
  <div class="method-heading">
1173
- <a href="#M000051" class="method-signature">
1191
+ <a href="#M000053" class="method-signature">
1174
1192
  <span class="method-name">dup</span><span class="method-args">()</span>
1175
1193
  </a>
1176
1194
  </div>
@@ -1180,50 +1198,50 @@ more information.
1180
1198
  Clones the <a href="URI.html">URI</a> object.
1181
1199
  </p>
1182
1200
  <p><a class="source-toggle" href="#"
1183
- onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
1184
- <div class="method-source-code" id="M000051-source">
1201
+ onclick="toggleCode('M000053-source');return false;">[Source]</a></p>
1202
+ <div class="method-source-code" id="M000053-source">
1185
1203
  <pre>
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>
1204
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1036</span>
1205
+ 1036: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dup</span>
1206
+ 1037: <span class="ruby-identifier">duplicated_scheme</span> = <span class="ruby-keyword kw">nil</span>
1207
+ 1038: <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>
1208
+ 1039: <span class="ruby-identifier">duplicated_user</span> = <span class="ruby-keyword kw">nil</span>
1209
+ 1040: <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>
1210
+ 1041: <span class="ruby-identifier">duplicated_password</span> = <span class="ruby-keyword kw">nil</span>
1211
+ 1042: <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>
1212
+ 1043: <span class="ruby-identifier">duplicated_host</span> = <span class="ruby-keyword kw">nil</span>
1213
+ 1044: <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>
1214
+ 1045: <span class="ruby-identifier">duplicated_port</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">port</span>
1215
+ 1046: <span class="ruby-identifier">duplicated_path</span> = <span class="ruby-keyword kw">nil</span>
1216
+ 1047: <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>
1217
+ 1048: <span class="ruby-identifier">duplicated_query</span> = <span class="ruby-keyword kw">nil</span>
1218
+ 1049: <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>
1219
+ 1050: <span class="ruby-identifier">duplicated_fragment</span> = <span class="ruby-keyword kw">nil</span>
1220
+ 1051: <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>
1221
+ 1052: <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>(
1222
+ 1053: <span class="ruby-identifier">duplicated_scheme</span>,
1223
+ 1054: <span class="ruby-identifier">duplicated_user</span>,
1224
+ 1055: <span class="ruby-identifier">duplicated_password</span>,
1225
+ 1056: <span class="ruby-identifier">duplicated_host</span>,
1226
+ 1057: <span class="ruby-identifier">duplicated_port</span>,
1227
+ 1058: <span class="ruby-identifier">duplicated_path</span>,
1228
+ 1059: <span class="ruby-identifier">duplicated_query</span>,
1229
+ 1060: <span class="ruby-identifier">duplicated_fragment</span>
1230
+ 1061: )
1231
+ 1062: <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>)
1232
+ 1063: <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>)
1233
+ 1064: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">duplicated_uri</span>
1234
+ 1065: <span class="ruby-keyword kw">end</span>
1217
1235
  </pre>
1218
1236
  </div>
1219
1237
  </div>
1220
1238
  </div>
1221
1239
 
1222
- <div id="method-M000050" class="method-detail">
1223
- <a name="M000050"></a>
1240
+ <div id="method-M000052" class="method-detail">
1241
+ <a name="M000052"></a>
1224
1242
 
1225
1243
  <div class="method-heading">
1226
- <a href="#M000050" class="method-signature">
1244
+ <a href="#M000052" class="method-signature">
1227
1245
  <span class="method-name">eql?</span><span class="method-args">(uri)</span>
1228
1246
  </a>
1229
1247
  </div>
@@ -1231,18 +1249,18 @@ Clones the <a href="URI.html">URI</a> object.
1231
1249
  <div class="method-description">
1232
1250
  <p>
1233
1251
  Returns true if the <a href="URI.html">URI</a> objects are equal. This
1234
- method does NOT <a href="URI.html#M000045">normalize</a> either <a
1252
+ method does NOT <a href="URI.html#M000047">normalize</a> either <a
1235
1253
  href="URI.html">URI</a> before doing the comparison.
1236
1254
  </p>
1237
1255
  <p><a class="source-toggle" href="#"
1238
- onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
1239
- <div class="method-source-code" id="M000050-source">
1256
+ onclick="toggleCode('M000052-source');return false;">[Source]</a></p>
1257
+ <div class="method-source-code" id="M000052-source">
1240
1258
  <pre>
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>
1259
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1030</span>
1260
+ 1030: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eql?</span>(<span class="ruby-identifier">uri</span>)
1261
+ 1031: <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>)
1262
+ 1032: <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>
1263
+ 1033: <span class="ruby-keyword kw">end</span>
1246
1264
  </pre>
1247
1265
  </div>
1248
1266
  </div>
@@ -1268,11 +1286,11 @@ href="URI.html#M000029">path</a> component.
1268
1286
  onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
1269
1287
  <div class="method-source-code" id="M000032-source">
1270
1288
  <pre>
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>
1289
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 706</span>
1290
+ 706: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extname</span>
1291
+ 707: <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>
1292
+ 708: <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>))
1293
+ 709: <span class="ruby-keyword kw">end</span>
1276
1294
  </pre>
1277
1295
  </div>
1278
1296
  </div>
@@ -1372,9 +1390,10 @@ An example:
1372
1390
  280: <span class="ruby-keyword kw">end</span>
1373
1391
  281: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">mapping</span>
1374
1392
  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>
1393
+ 283: <span class="ruby-comment cmt"># Pattern failed to match URI.</span>
1394
+ 284: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
1395
+ 285: <span class="ruby-keyword kw">end</span>
1396
+ 286: <span class="ruby-keyword kw">end</span>
1378
1397
  </pre>
1379
1398
  </div>
1380
1399
  </div>
@@ -1398,10 +1417,10 @@ href="URI.html">URI</a>.
1398
1417
  onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
1399
1418
  <div class="method-source-code" id="M000035-source">
1400
1419
  <pre>
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>
1420
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 722</span>
1421
+ 722: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fragment</span>
1422
+ 723: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@fragment</span>
1423
+ 724: <span class="ruby-keyword kw">end</span>
1405
1424
  </pre>
1406
1425
  </div>
1407
1426
  </div>
@@ -1425,10 +1444,10 @@ href="URI.html">URI</a>.
1425
1444
  onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
1426
1445
  <div class="method-source-code" id="M000036-source">
1427
1446
  <pre>
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>
1447
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 727</span>
1448
+ 727: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fragment=</span>(<span class="ruby-identifier">new_fragment</span>)
1449
+ 728: <span class="ruby-ivar">@fragment</span> = <span class="ruby-identifier">new_fragment</span>
1450
+ 729: <span class="ruby-keyword kw">end</span>
1432
1451
  </pre>
1433
1452
  </div>
1434
1453
  </div>
@@ -1452,10 +1471,10 @@ href="URI.html">URI</a>.
1452
1471
  onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
1453
1472
  <div class="method-source-code" id="M000020-source">
1454
1473
  <pre>
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>
1474
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 563</span>
1475
+ 563: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">host</span>
1476
+ 564: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@host</span>
1477
+ 565: <span class="ruby-keyword kw">end</span>
1459
1478
  </pre>
1460
1479
  </div>
1461
1480
  </div>
@@ -1479,26 +1498,26 @@ href="URI.html">URI</a>.
1479
1498
  onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
1480
1499
  <div class="method-source-code" id="M000021-source">
1481
1500
  <pre>
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>
1501
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 568</span>
1502
+ 568: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">host=</span>(<span class="ruby-identifier">new_host</span>)
1503
+ 569: <span class="ruby-ivar">@host</span> = <span class="ruby-identifier">new_host</span>
1504
+ 570:
1505
+ 571: <span class="ruby-comment cmt"># Reset dependant values</span>
1506
+ 572: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
1507
+ 573:
1508
+ 574: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
1509
+ 575: <span class="ruby-identifier">validate</span>()
1510
+ 576: <span class="ruby-keyword kw">end</span>
1492
1511
  </pre>
1493
1512
  </div>
1494
1513
  </div>
1495
1514
  </div>
1496
1515
 
1497
- <div id="method-M000054" class="method-detail">
1498
- <a name="M000054"></a>
1516
+ <div id="method-M000056" class="method-detail">
1517
+ <a name="M000056"></a>
1499
1518
 
1500
1519
  <div class="method-heading">
1501
- <a href="#M000054" class="method-signature">
1520
+ <a href="#M000056" class="method-signature">
1502
1521
  <span class="method-name">inspect</span><span class="method-args">()</span>
1503
1522
  </a>
1504
1523
  </div>
@@ -1509,13 +1528,13 @@ Returns a string representation of the <a href="URI.html">URI</a>
1509
1528
  object&#8216;s state.
1510
1529
  </p>
1511
1530
  <p><a class="source-toggle" href="#"
1512
- onclick="toggleCode('M000054-source');return false;">[Source]</a></p>
1513
- <div class="method-source-code" id="M000054-source">
1531
+ onclick="toggleCode('M000056-source');return false;">[Source]</a></p>
1532
+ <div class="method-source-code" id="M000056-source">
1514
1533
  <pre>
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>
1534
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1093</span>
1535
+ 1093: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inspect</span>
1536
+ 1094: <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>)
1537
+ 1095: <span class="ruby-keyword kw">end</span>
1519
1538
  </pre>
1520
1539
  </div>
1521
1540
  </div>
@@ -1538,16 +1557,44 @@ Returns true if the <a href="URI.html">URI</a> uses an IP-based protocol.
1538
1557
  onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
1539
1558
  <div class="method-source-code" id="M000037-source">
1540
1559
  <pre>
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>
1560
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 732</span>
1561
+ 732: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ip_based?</span>
1562
+ 733: <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>
1563
+ 734: <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>)
1564
+ 735: <span class="ruby-keyword kw">end</span>
1546
1565
  </pre>
1547
1566
  </div>
1548
1567
  </div>
1549
1568
  </div>
1550
1569
 
1570
+ <div id="method-M000042" class="method-detail">
1571
+ <a name="M000042"></a>
1572
+
1573
+ <div class="method-heading">
1574
+ <span class="method-name">join</span><span class="method-args">(uri)</span>
1575
+ </div>
1576
+
1577
+ <div class="method-description">
1578
+ <p>
1579
+ Alias for <a href="URI.html#M000041">merge</a>
1580
+ </p>
1581
+ </div>
1582
+ </div>
1583
+
1584
+ <div id="method-M000044" class="method-detail">
1585
+ <a name="M000044"></a>
1586
+
1587
+ <div class="method-heading">
1588
+ <span class="method-name">join!</span><span class="method-args">(uri)</span>
1589
+ </div>
1590
+
1591
+ <div class="method-description">
1592
+ <p>
1593
+ Alias for <a href="URI.html#M000041">merge</a>!
1594
+ </p>
1595
+ </div>
1596
+ </div>
1597
+
1551
1598
  <div id="method-M000041" class="method-detail">
1552
1599
  <a name="M000041"></a>
1553
1600
 
@@ -1565,20 +1612,20 @@ Merges two URIs together.
1565
1612
  onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
1566
1613
  <div class="method-source-code" id="M000041-source">
1567
1614
  <pre>
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>
1615
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 839</span>
1616
+ 839: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">merge</span>(<span class="ruby-identifier">uri</span>)
1617
+ 840: <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>
1618
+ 841: <span class="ruby-keyword kw">end</span>
1572
1619
  </pre>
1573
1620
  </div>
1574
1621
  </div>
1575
1622
  </div>
1576
1623
 
1577
- <div id="method-M000042" class="method-detail">
1578
- <a name="M000042"></a>
1624
+ <div id="method-M000043" class="method-detail">
1625
+ <a name="M000043"></a>
1579
1626
 
1580
1627
  <div class="method-heading">
1581
- <a href="#M000042" class="method-signature">
1628
+ <a href="#M000043" class="method-signature">
1582
1629
  <span class="method-name">merge!</span><span class="method-args">(uri)</span>
1583
1630
  </a>
1584
1631
  </div>
@@ -1588,23 +1635,23 @@ Merges two URIs together.
1588
1635
  Destructive form of <a href="URI.html#M000041">merge</a>.
1589
1636
  </p>
1590
1637
  <p><a class="source-toggle" href="#"
1591
- onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
1592
- <div class="method-source-code" id="M000042-source">
1638
+ onclick="toggleCode('M000043-source');return false;">[Source]</a></p>
1639
+ <div class="method-source-code" id="M000043-source">
1593
1640
  <pre>
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>
1641
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 845</span>
1642
+ 845: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">uri</span>)
1643
+ 846: <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>))
1644
+ 847: <span class="ruby-keyword kw">end</span>
1598
1645
  </pre>
1599
1646
  </div>
1600
1647
  </div>
1601
1648
  </div>
1602
1649
 
1603
- <div id="method-M000045" class="method-detail">
1604
- <a name="M000045"></a>
1650
+ <div id="method-M000047" class="method-detail">
1651
+ <a name="M000047"></a>
1605
1652
 
1606
1653
  <div class="method-heading">
1607
- <a href="#M000045" class="method-signature">
1654
+ <a href="#M000047" class="method-signature">
1608
1655
  <span class="method-name">normalize</span><span class="method-args">()</span>
1609
1656
  </a>
1610
1657
  </div>
@@ -1621,81 +1668,91 @@ different URIs may represent the same resource and should not be cached
1621
1668
  multiple times.
1622
1669
  </p>
1623
1670
  <p><a class="source-toggle" href="#"
1624
- onclick="toggleCode('M000045-source');return false;">[Source]</a></p>
1625
- <div class="method-source-code" id="M000045-source">
1671
+ onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
1672
+ <div class="method-source-code" id="M000047-source">
1626
1673
  <pre>
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>
1674
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 913</span>
1675
+ 913: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">normalize</span>
1676
+ 914: <span class="ruby-identifier">normalized_scheme</span> = <span class="ruby-keyword kw">nil</span>
1677
+ 915: <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>
1678
+ 916: <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>
1679
+ 917: <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>
1680
+ 918: <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>
1681
+ 919: <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>(
1682
+ 920: <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>
1683
+ 921: <span class="ruby-keyword kw">end</span>
1684
+ 922: <span class="ruby-keyword kw">end</span>
1685
+ 923: <span class="ruby-identifier">normalized_user</span> = <span class="ruby-keyword kw">nil</span>
1686
+ 924: <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>
1687
+ 925: <span class="ruby-identifier">normalized_password</span> = <span class="ruby-keyword kw">nil</span>
1688
+ 926: <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>
1689
+ 927:
1690
+ 928: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_scheme</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/https?/</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">normalized_user</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-operator">&amp;&amp;</span>
1691
+ 929: (<span class="ruby-identifier">normalized_password</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">normalized_password</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;&quot;</span>)
1692
+ 930: <span class="ruby-identifier">normalized_user</span> = <span class="ruby-keyword kw">nil</span>
1693
+ 931: <span class="ruby-identifier">normalized_password</span> = <span class="ruby-keyword kw">nil</span>
1694
+ 932: <span class="ruby-keyword kw">end</span>
1695
+ 933:
1696
+ 934: <span class="ruby-identifier">normalized_host</span> = <span class="ruby-keyword kw">nil</span>
1697
+ 935: <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>
1698
+ 936: <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>
1699
+ 937: <span class="ruby-keyword kw">begin</span>
1700
+ 938: <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>)
1701
+ 939: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
1702
+ 940: <span class="ruby-keyword kw">nil</span>
1703
+ 941: <span class="ruby-keyword kw">end</span>
1704
+ 942: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_host</span>[<span class="ruby-value">-1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;.&quot;</span>
1705
+ 943: <span class="ruby-identifier">normalized_host</span> = <span class="ruby-identifier">normalized_host</span>[<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-value">-1</span>]
1706
+ 944: <span class="ruby-keyword kw">end</span>
1707
+ 945: <span class="ruby-keyword kw">end</span>
1708
+ 946:
1709
+ 947: <span class="ruby-identifier">normalized_port</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">port</span>
1710
+ 948: <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>
1711
+ 949: <span class="ruby-identifier">normalized_port</span> = <span class="ruby-keyword kw">nil</span>
1712
+ 950: <span class="ruby-keyword kw">end</span>
1713
+ 951: <span class="ruby-identifier">normalized_path</span> = <span class="ruby-keyword kw">nil</span>
1714
+ 952: <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>
1715
+ 953: <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>
1716
+ 954: <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>
1717
+ 955: <span class="ruby-identifier">normalized_host</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1718
+ 956: <span class="ruby-identifier">normalized_path</span> = <span class="ruby-value str">&quot;/&quot;</span>
1719
+ 957: <span class="ruby-keyword kw">end</span>
1720
+ 958: <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>
1721
+ 959: <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>)
1722
+ 960: <span class="ruby-keyword kw">end</span>
1723
+ 961: <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>
1724
+ 962: <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>)
1725
+ 963: <span class="ruby-identifier">normalized_path</span> = <span class="ruby-value str">&quot;/&quot;</span>
1726
+ 964: <span class="ruby-keyword kw">end</span>
1727
+ 965: <span class="ruby-keyword kw">end</span>
1728
+ 966:
1729
+ 967: <span class="ruby-identifier">normalized_query</span> = <span class="ruby-keyword kw">nil</span>
1730
+ 968: <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>
1731
+ 969:
1732
+ 970: <span class="ruby-identifier">normalized_fragment</span> = <span class="ruby-keyword kw">nil</span>
1733
+ 971: <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>
1734
+ 972: <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>(
1735
+ 973: <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>(
1736
+ 974: <span class="ruby-identifier">normalized_scheme</span>,
1737
+ 975: <span class="ruby-identifier">normalized_user</span>,
1738
+ 976: <span class="ruby-identifier">normalized_password</span>,
1739
+ 977: <span class="ruby-identifier">normalized_host</span>,
1740
+ 978: <span class="ruby-identifier">normalized_port</span>,
1741
+ 979: <span class="ruby-identifier">normalized_path</span>,
1742
+ 980: <span class="ruby-identifier">normalized_query</span>,
1743
+ 981: <span class="ruby-identifier">normalized_fragment</span>
1744
+ 982: )))
1745
+ 983: <span class="ruby-keyword kw">end</span>
1689
1746
  </pre>
1690
1747
  </div>
1691
1748
  </div>
1692
1749
  </div>
1693
1750
 
1694
- <div id="method-M000046" class="method-detail">
1695
- <a name="M000046"></a>
1751
+ <div id="method-M000048" class="method-detail">
1752
+ <a name="M000048"></a>
1696
1753
 
1697
1754
  <div class="method-heading">
1698
- <a href="#M000046" class="method-signature">
1755
+ <a href="#M000048" class="method-signature">
1699
1756
  <span class="method-name">normalize!</span><span class="method-args">()</span>
1700
1757
  </a>
1701
1758
  </div>
@@ -1705,13 +1762,13 @@ multiple times.
1705
1762
  Destructively normalizes this <a href="URI.html">URI</a> object.
1706
1763
  </p>
1707
1764
  <p><a class="source-toggle" href="#"
1708
- onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
1709
- <div class="method-source-code" id="M000046-source">
1765
+ onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
1766
+ <div class="method-source-code" id="M000048-source">
1710
1767
  <pre>
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>
1768
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 986</span>
1769
+ 986: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">normalize!</span>
1770
+ 987: <span class="ruby-identifier">replace_self</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>)
1771
+ 988: <span class="ruby-keyword kw">end</span>
1715
1772
  </pre>
1716
1773
  </div>
1717
1774
  </div>
@@ -1735,10 +1792,10 @@ href="URI.html">URI</a>.
1735
1792
  onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
1736
1793
  <div class="method-source-code" id="M000016-source">
1737
1794
  <pre>
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>
1795
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 509</span>
1796
+ 509: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">password</span>
1797
+ 510: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@password</span>
1798
+ 511: <span class="ruby-keyword kw">end</span>
1742
1799
  </pre>
1743
1800
  </div>
1744
1801
  </div>
@@ -1762,22 +1819,22 @@ href="URI.html">URI</a>.
1762
1819
  onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
1763
1820
  <div class="method-source-code" id="M000017-source">
1764
1821
  <pre>
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>
1822
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 514</span>
1823
+ 514: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">password=</span>(<span class="ruby-identifier">new_password</span>)
1824
+ 515: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">new_password</span>
1825
+ 516:
1826
+ 517: <span class="ruby-comment cmt"># You can't have a nil user with a non-nil password</span>
1827
+ 518: <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>
1828
+ 519: <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>
1829
+ 520: <span class="ruby-keyword kw">end</span>
1830
+ 521:
1831
+ 522: <span class="ruby-comment cmt"># Reset dependant values</span>
1832
+ 523: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-keyword kw">nil</span>
1833
+ 524: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
1834
+ 525:
1835
+ 526: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
1836
+ 527: <span class="ruby-identifier">validate</span>()
1837
+ 528: <span class="ruby-keyword kw">end</span>
1781
1838
  </pre>
1782
1839
  </div>
1783
1840
  </div>
@@ -1801,10 +1858,10 @@ href="URI.html">URI</a>.
1801
1858
  onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
1802
1859
  <div class="method-source-code" id="M000029-source">
1803
1860
  <pre>
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>
1861
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 687</span>
1862
+ 687: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">path</span>
1863
+ 688: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@path</span>
1864
+ 689: <span class="ruby-keyword kw">end</span>
1808
1865
  </pre>
1809
1866
  </div>
1810
1867
  </div>
@@ -1828,10 +1885,10 @@ href="URI.html">URI</a>.
1828
1885
  onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
1829
1886
  <div class="method-source-code" id="M000030-source">
1830
1887
  <pre>
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>
1888
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 692</span>
1889
+ 692: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">path=</span>(<span class="ruby-identifier">new_path</span>)
1890
+ 693: <span class="ruby-ivar">@path</span> = <span class="ruby-identifier">new_path</span>
1891
+ 694: <span class="ruby-keyword kw">end</span>
1835
1892
  </pre>
1836
1893
  </div>
1837
1894
  </div>
@@ -1850,7 +1907,7 @@ href="URI.html">URI</a>.
1850
1907
  <p>
1851
1908
  Returns the <a href="URI.html#M000026">port</a> number for this <a
1852
1909
  href="URI.html">URI</a>. This method will <a
1853
- href="URI.html#M000045">normalize</a> to the default <a
1910
+ href="URI.html#M000047">normalize</a> to the default <a
1854
1911
  href="URI.html#M000026">port</a> for the <a href="URI.html">URI</a>&#8216;s
1855
1912
  <a href="URI.html#M000012">scheme</a> if the <a
1856
1913
  href="URI.html#M000026">port</a> isn&#8216;t explicitly specified in the <a
@@ -1860,20 +1917,20 @@ href="URI.html">URI</a>.
1860
1917
  onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
1861
1918
  <div class="method-source-code" id="M000026-source">
1862
1919
  <pre>
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>
1920
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 655</span>
1921
+ 655: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">port</span>
1922
+ 656: <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>
1923
+ 657: <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>
1924
+ 658: <span class="ruby-ivar">@port</span> = <span class="ruby-keyword kw">nil</span>
1925
+ 659: <span class="ruby-keyword kw">else</span>
1926
+ 660: <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>]
1927
+ 661: <span class="ruby-keyword kw">end</span>
1928
+ 662: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@port</span>
1929
+ 663: <span class="ruby-keyword kw">else</span>
1930
+ 664: <span class="ruby-ivar">@port</span> = <span class="ruby-ivar">@port</span>.<span class="ruby-identifier">to_i</span>
1931
+ 665: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@port</span>
1932
+ 666: <span class="ruby-keyword kw">end</span>
1933
+ 667: <span class="ruby-keyword kw">end</span>
1877
1934
  </pre>
1878
1935
  </div>
1879
1936
  </div>
@@ -1897,12 +1954,12 @@ href="URI.html">URI</a>.
1897
1954
  onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
1898
1955
  <div class="method-source-code" id="M000027-source">
1899
1956
  <pre>
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>
1957
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 670</span>
1958
+ 670: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">port=</span>(<span class="ruby-identifier">new_port</span>)
1959
+ 671: <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>
1960
+ 672: <span class="ruby-ivar">@specified_port</span> = <span class="ruby-ivar">@port</span>
1961
+ 673: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
1962
+ 674: <span class="ruby-keyword kw">end</span>
1906
1963
  </pre>
1907
1964
  </div>
1908
1965
  </div>
@@ -1926,10 +1983,10 @@ href="URI.html">URI</a>.
1926
1983
  onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
1927
1984
  <div class="method-source-code" id="M000033-source">
1928
1985
  <pre>
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>
1986
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 712</span>
1987
+ 712: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query</span>
1988
+ 713: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@query</span>
1989
+ 714: <span class="ruby-keyword kw">end</span>
1933
1990
  </pre>
1934
1991
  </div>
1935
1992
  </div>
@@ -1953,10 +2010,10 @@ href="URI.html">URI</a>.
1953
2010
  onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
1954
2011
  <div class="method-source-code" id="M000034-source">
1955
2012
  <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>
2013
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 717</span>
2014
+ 717: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query=</span>(<span class="ruby-identifier">new_query</span>)
2015
+ 718: <span class="ruby-ivar">@query</span> = <span class="ruby-identifier">new_query</span>
2016
+ 719: <span class="ruby-keyword kw">end</span>
1960
2017
  </pre>
1961
2018
  </div>
1962
2019
  </div>
@@ -1979,20 +2036,20 @@ Returns true if this <a href="URI.html">URI</a> is known to be relative.
1979
2036
  onclick="toggleCode('M000038-source');return false;">[Source]</a></p>
1980
2037
  <div class="method-source-code" id="M000038-source">
1981
2038
  <pre>
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>
2039
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 738</span>
2040
+ 738: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">relative?</span>
2041
+ 739: <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>
2042
+ 740: <span class="ruby-keyword kw">end</span>
1986
2043
  </pre>
1987
2044
  </div>
1988
2045
  </div>
1989
2046
  </div>
1990
2047
 
1991
- <div id="method-M000043" class="method-detail">
1992
- <a name="M000043"></a>
2048
+ <div id="method-M000045" class="method-detail">
2049
+ <a name="M000045"></a>
1993
2050
 
1994
2051
  <div class="method-heading">
1995
- <a href="#M000043" class="method-signature">
2052
+ <a href="#M000045" class="method-signature">
1996
2053
  <span class="method-name">route_from</span><span class="method-args">(uri)</span>
1997
2054
  </a>
1998
2055
  </div>
@@ -2005,64 +2062,64 @@ as a base for resolution. Returns an absolute <a href="URI.html">URI</a> if
2005
2062
  necessary.
2006
2063
  </p>
2007
2064
  <p><a class="source-toggle" href="#"
2008
- onclick="toggleCode('M000043-source');return false;">[Source]</a></p>
2009
- <div class="method-source-code" id="M000043-source">
2065
+ onclick="toggleCode('M000045-source');return false;">[Source]</a></p>
2066
+ <div class="method-source-code" id="M000045-source">
2010
2067
  <pre>
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>
2068
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 853</span>
2069
+ 853: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">route_from</span>(<span class="ruby-identifier">uri</span>)
2070
+ 854: <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>)
2071
+ 855: <span class="ruby-identifier">uri</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">normalize</span>
2072
+ 856: <span class="ruby-identifier">normalized_self</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>
2073
+ 857: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">relative?</span>
2074
+ 858: <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>
2075
+ 859: <span class="ruby-keyword kw">end</span>
2076
+ 860: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">relative?</span>
2077
+ 861: <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>
2040
2078
  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>
2079
+ 863: <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>
2080
+ 864: <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>)
2081
+ 865: <span class="ruby-keyword kw">end</span>
2082
+ 866: <span class="ruby-identifier">segments</span> = <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">to_h</span>
2083
+ 867: <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>
2084
+ 868: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:scheme</span>] = <span class="ruby-keyword kw">nil</span>
2085
+ 869: <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>
2086
+ 870: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:user</span>] = <span class="ruby-keyword kw">nil</span>
2087
+ 871: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:password</span>] = <span class="ruby-keyword kw">nil</span>
2088
+ 872: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>] = <span class="ruby-keyword kw">nil</span>
2089
+ 873: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:port</span>] = <span class="ruby-keyword kw">nil</span>
2090
+ 874: <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>
2091
+ 875: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:path</span>] = <span class="ruby-keyword kw">nil</span>
2092
+ 876: <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>
2093
+ 877: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:query</span>] = <span class="ruby-keyword kw">nil</span>
2094
+ 878: <span class="ruby-keyword kw">end</span>
2095
+ 879: <span class="ruby-keyword kw">end</span>
2096
+ 880: <span class="ruby-keyword kw">end</span>
2097
+ 881: <span class="ruby-keyword kw">end</span>
2098
+ 882: <span class="ruby-comment cmt"># Avoid network-path references.</span>
2099
+ 883: <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>
2100
+ 884: <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>
2101
+ 885: <span class="ruby-keyword kw">end</span>
2102
+ 886: <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>(
2103
+ 887: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:scheme</span>],
2104
+ 888: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:user</span>],
2105
+ 889: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:password</span>],
2106
+ 890: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>],
2107
+ 891: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:port</span>],
2108
+ 892: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:path</span>],
2109
+ 893: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:query</span>],
2110
+ 894: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:fragment</span>]
2111
+ 895: )
2112
+ 896: <span class="ruby-keyword kw">end</span>
2056
2113
  </pre>
2057
2114
  </div>
2058
2115
  </div>
2059
2116
  </div>
2060
2117
 
2061
- <div id="method-M000044" class="method-detail">
2062
- <a name="M000044"></a>
2118
+ <div id="method-M000046" class="method-detail">
2119
+ <a name="M000046"></a>
2063
2120
 
2064
2121
  <div class="method-heading">
2065
- <a href="#M000044" class="method-signature">
2122
+ <a href="#M000046" class="method-signature">
2066
2123
  <span class="method-name">route_to</span><span class="method-args">(uri)</span>
2067
2124
  </a>
2068
2125
  </div>
@@ -2075,14 +2132,14 @@ for resolution. Returns an absolute <a href="URI.html">URI</a> if
2075
2132
  necessary.
2076
2133
  </p>
2077
2134
  <p><a class="source-toggle" href="#"
2078
- onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
2079
- <div class="method-source-code" id="M000044-source">
2135
+ onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
2136
+ <div class="method-source-code" id="M000046-source">
2080
2137
  <pre>
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>
2138
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 901</span>
2139
+ 901: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">route_to</span>(<span class="ruby-identifier">uri</span>)
2140
+ 902: <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>)
2141
+ 903: <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>)
2142
+ 904: <span class="ruby-keyword kw">end</span>
2086
2143
  </pre>
2087
2144
  </div>
2088
2145
  </div>
@@ -2106,10 +2163,10 @@ href="URI.html">URI</a>.
2106
2163
  onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
2107
2164
  <div class="method-source-code" id="M000012-source">
2108
2165
  <pre>
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>
2166
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 477</span>
2167
+ 477: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scheme</span>
2168
+ 478: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@scheme</span>
2169
+ 479: <span class="ruby-keyword kw">end</span>
2113
2170
  </pre>
2114
2171
  </div>
2115
2172
  </div>
@@ -2133,10 +2190,10 @@ href="URI.html">URI</a>.)
2133
2190
  onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
2134
2191
  <div class="method-source-code" id="M000013-source">
2135
2192
  <pre>
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>
2193
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 482</span>
2194
+ 482: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scheme=</span>(<span class="ruby-identifier">new_scheme</span>)
2195
+ 483: <span class="ruby-ivar">@scheme</span> = <span class="ruby-identifier">new_scheme</span>
2196
+ 484: <span class="ruby-keyword kw">end</span>
2140
2197
  </pre>
2141
2198
  </div>
2142
2199
  </div>
@@ -2160,25 +2217,25 @@ specified in the <a href="URI.html">URI</a> string.
2160
2217
  onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
2161
2218
  <div class="method-source-code" id="M000028-source">
2162
2219
  <pre>
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>
2220
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 677</span>
2221
+ 677: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">specified_port</span>
2222
+ 678: <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>
2223
+ 679: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">port</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
2224
+ 680: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
2225
+ 681: <span class="ruby-keyword kw">else</span>
2226
+ 682: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">port</span>
2227
+ 683: <span class="ruby-keyword kw">end</span>
2228
+ 684: <span class="ruby-keyword kw">end</span>
2172
2229
  </pre>
2173
2230
  </div>
2174
2231
  </div>
2175
2232
  </div>
2176
2233
 
2177
- <div id="method-M000053" class="method-detail">
2178
- <a name="M000053"></a>
2234
+ <div id="method-M000055" class="method-detail">
2235
+ <a name="M000055"></a>
2179
2236
 
2180
2237
  <div class="method-heading">
2181
- <a href="#M000053" class="method-signature">
2238
+ <a href="#M000055" class="method-signature">
2182
2239
  <span class="method-name">to_h</span><span class="method-args">()</span>
2183
2240
  </a>
2184
2241
  </div>
@@ -2188,32 +2245,32 @@ specified in the <a href="URI.html">URI</a> string.
2188
2245
  Returns a Hash of the <a href="URI.html">URI</a> segments.
2189
2246
  </p>
2190
2247
  <p><a class="source-toggle" href="#"
2191
- onclick="toggleCode('M000053-source');return false;">[Source]</a></p>
2192
- <div class="method-source-code" id="M000053-source">
2248
+ onclick="toggleCode('M000055-source');return false;">[Source]</a></p>
2249
+ <div class="method-source-code" id="M000055-source">
2193
2250
  <pre>
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>
2251
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1079</span>
2252
+ 1079: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_h</span>
2253
+ 1080: <span class="ruby-keyword kw">return</span> {
2254
+ 1081: <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>,
2255
+ 1082: <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>,
2256
+ 1083: <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>,
2257
+ 1084: <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>,
2258
+ 1085: <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>,
2259
+ 1086: <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>,
2260
+ 1087: <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>,
2261
+ 1088: <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>
2262
+ 1089: }
2263
+ 1090: <span class="ruby-keyword kw">end</span>
2207
2264
  </pre>
2208
2265
  </div>
2209
2266
  </div>
2210
2267
  </div>
2211
2268
 
2212
- <div id="method-M000052" class="method-detail">
2213
- <a name="M000052"></a>
2269
+ <div id="method-M000054" class="method-detail">
2270
+ <a name="M000054"></a>
2214
2271
 
2215
2272
  <div class="method-heading">
2216
- <a href="#M000052" class="method-signature">
2273
+ <a href="#M000054" class="method-signature">
2217
2274
  <span class="method-name">to_s</span><span class="method-args">()</span>
2218
2275
  </a>
2219
2276
  </div>
@@ -2223,19 +2280,19 @@ Returns a Hash of the <a href="URI.html">URI</a> segments.
2223
2280
  Returns the assembled <a href="URI.html">URI</a> as a string.
2224
2281
  </p>
2225
2282
  <p><a class="source-toggle" href="#"
2226
- onclick="toggleCode('M000052-source');return false;">[Source]</a></p>
2227
- <div class="method-source-code" id="M000052-source">
2283
+ onclick="toggleCode('M000054-source');return false;">[Source]</a></p>
2284
+ <div class="method-source-code" id="M000054-source">
2228
2285
  <pre>
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>
2286
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1068</span>
2287
+ 1068: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
2288
+ 1069: <span class="ruby-identifier">uri_string</span> = <span class="ruby-value str">&quot;&quot;</span>
2289
+ 1070: <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>
2290
+ 1071: <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>
2291
+ 1072: <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>
2292
+ 1073: <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>
2293
+ 1074: <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>
2294
+ 1075: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">uri_string</span>
2295
+ 1076: <span class="ruby-keyword kw">end</span>
2239
2296
  </pre>
2240
2297
  </div>
2241
2298
  </div>
@@ -2259,10 +2316,10 @@ href="URI.html">URI</a>.
2259
2316
  onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
2260
2317
  <div class="method-source-code" id="M000014-source">
2261
2318
  <pre>
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>
2319
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 487</span>
2320
+ 487: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">user</span>
2321
+ 488: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@user</span>
2322
+ 489: <span class="ruby-keyword kw">end</span>
2266
2323
  </pre>
2267
2324
  </div>
2268
2325
  </div>
@@ -2286,22 +2343,22 @@ href="URI.html">URI</a>.
2286
2343
  onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
2287
2344
  <div class="method-source-code" id="M000015-source">
2288
2345
  <pre>
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>
2346
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 492</span>
2347
+ 492: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">user=</span>(<span class="ruby-identifier">new_user</span>)
2348
+ 493: <span class="ruby-ivar">@user</span> = <span class="ruby-identifier">new_user</span>
2349
+ 494:
2350
+ 495: <span class="ruby-comment cmt"># You can't have a nil user with a non-nil password</span>
2351
+ 496: <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>
2352
+ 497: <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>
2353
+ 498: <span class="ruby-keyword kw">end</span>
2354
+ 499:
2355
+ 500: <span class="ruby-comment cmt"># Reset dependant values</span>
2356
+ 501: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-keyword kw">nil</span>
2357
+ 502: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
2358
+ 503:
2359
+ 504: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
2360
+ 505: <span class="ruby-identifier">validate</span>()
2361
+ 506: <span class="ruby-keyword kw">end</span>
2305
2362
  </pre>
2306
2363
  </div>
2307
2364
  </div>
@@ -2325,21 +2382,21 @@ this <a href="URI.html">URI</a>.
2325
2382
  onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
2326
2383
  <div class="method-source-code" id="M000018-source">
2327
2384
  <pre>
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>
2385
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 531</span>
2386
+ 531: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">userinfo</span>
2387
+ 532: <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>
2388
+ 533: <span class="ruby-identifier">current_user</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>
2389
+ 534: <span class="ruby-identifier">current_password</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>
2390
+ 535: <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>
2391
+ 536: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-keyword kw">nil</span>
2392
+ 537: <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>
2393
+ 538: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-node">&quot;#{current_user}&quot;</span>
2394
+ 539: <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>
2395
+ 540: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-node">&quot;#{current_user}:#{current_password}&quot;</span>
2396
+ 541: <span class="ruby-keyword kw">end</span>
2397
+ 542: <span class="ruby-keyword kw">end</span>
2398
+ 543: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@userinfo</span>
2399
+ 544: <span class="ruby-keyword kw">end</span>
2343
2400
  </pre>
2344
2401
  </div>
2345
2402
  </div>
@@ -2363,21 +2420,21 @@ this <a href="URI.html">URI</a>.
2363
2420
  onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
2364
2421
  <div class="method-source-code" id="M000019-source">
2365
2422
  <pre>
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>
2423
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 547</span>
2424
+ 547: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">userinfo=</span>(<span class="ruby-identifier">new_userinfo</span>)
2425
+ 548: <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>]
2426
+ 549: <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>]
2427
+ 550:
2428
+ 551: <span class="ruby-comment cmt"># Password assigned first to ensure validity in case of nil</span>
2429
+ 552: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span> = <span class="ruby-identifier">new_password</span>
2430
+ 553: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span> = <span class="ruby-identifier">new_user</span>
2431
+ 554:
2432
+ 555: <span class="ruby-comment cmt"># Reset dependant values</span>
2433
+ 556: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
2434
+ 557:
2435
+ 558: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
2436
+ 559: <span class="ruby-identifier">validate</span>()
2437
+ 560: <span class="ruby-keyword kw">end</span>
2381
2438
  </pre>
2382
2439
  </div>
2383
2440
  </div>