addressable 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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>