addressable 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Sun Dec 09 23:54:29 -0500 2007 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Thu Dec 13 13:10:50 -0500 2007 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -625,7 +625,7 @@ span.run100 {
625
625
  </span><span class="marked1"><a name="line25"></a>25 module ADDRESSABLE_VERSION #:nodoc:
626
626
  </span><span class="marked0"><a name="line26"></a>26 MAJOR = 1
627
627
  </span><span class="marked1"><a name="line27"></a>27 MINOR = 0
628
- </span><span class="marked0"><a name="line28"></a>28 TINY = 0
628
+ </span><span class="marked0"><a name="line28"></a>28 TINY = 2
629
629
  </span><span class="inferred1"><a name="line29"></a>29
630
630
  </span><span class="marked0"><a name="line30"></a>30 STRING = [MAJOR, MINOR, TINY].join('.')
631
631
  </span><span class="inferred1"><a name="line31"></a>31 end
@@ -268,28 +268,28 @@ This method does not take IRIs or IDNs into account.
268
268
  onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
269
269
  <div class="method-source-code" id="M000009-source">
270
270
  <pre>
271
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 357</span>
272
- 357: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode</span>(<span class="ruby-identifier">uri</span>)
273
- 358: <span class="ruby-identifier">uri_object</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">uri</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>)
274
- 359: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
275
- 360: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">scheme</span>,
276
- 361: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">SCHEME</span>),
277
- 362: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">user</span>,
278
- 363: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
279
- 364: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">password</span>,
280
- 365: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
281
- 366: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">host</span>,
282
- 367: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
283
- 368: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">specified_port</span>,
284
- 369: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
285
- 370: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">path</span>,
286
- 371: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">PATH</span>),
287
- 372: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">query</span>,
288
- 373: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">QUERY</span>),
289
- 374: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">fragment</span>,
290
- 375: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">FRAGMENT</span>)
291
- 376: ).<span class="ruby-identifier">to_s</span>
292
- 377: <span class="ruby-keyword kw">end</span>
271
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 373</span>
272
+ 373: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode</span>(<span class="ruby-identifier">uri</span>)
273
+ 374: <span class="ruby-identifier">uri_object</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">uri</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>)
274
+ 375: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
275
+ 376: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">scheme</span>,
276
+ 377: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">SCHEME</span>),
277
+ 378: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">user</span>,
278
+ 379: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
279
+ 380: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">password</span>,
280
+ 381: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
281
+ 382: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">host</span>,
282
+ 383: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
283
+ 384: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">specified_port</span>,
284
+ 385: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
285
+ 386: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">path</span>,
286
+ 387: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">PATH</span>),
287
+ 388: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">query</span>,
288
+ 389: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">QUERY</span>),
289
+ 390: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">uri_object</span>.<span class="ruby-identifier">fragment</span>,
290
+ 391: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">FRAGMENT</span>)
291
+ 392: ).<span class="ruby-identifier">to_s</span>
292
+ 393: <span class="ruby-keyword kw">end</span>
293
293
  </pre>
294
294
  </div>
295
295
  </div>
@@ -326,17 +326,17 @@ An example:
326
326
  onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
327
327
  <div class="method-source-code" id="M000007-source">
328
328
  <pre>
329
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 335</span>
330
- 335: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segment</span>, <span class="ruby-identifier">character_class</span>=
331
- 336: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">RESERVED</span> <span class="ruby-operator">+</span>
332
- 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">UNRESERVED</span>)
333
- 338: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">segment</span>.<span class="ruby-identifier">nil?</span>
334
- 339: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">segment</span>.<span class="ruby-identifier">gsub</span>(
335
- 340: <span class="ruby-node">/[^#{character_class}]/</span>
336
- 341: ) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sequence</span><span class="ruby-operator">|</span>
337
- 342: (<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>)
338
- 343: <span class="ruby-keyword kw">end</span>
339
- 344: <span class="ruby-keyword kw">end</span>
329
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 351</span>
330
+ 351: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segment</span>, <span class="ruby-identifier">character_class</span>=
331
+ 352: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">RESERVED</span> <span class="ruby-operator">+</span>
332
+ 353: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">UNRESERVED</span>)
333
+ 354: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">segment</span>.<span class="ruby-identifier">nil?</span>
334
+ 355: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">segment</span>.<span class="ruby-identifier">gsub</span>(
335
+ 356: <span class="ruby-node">/[^#{character_class}]/</span>
336
+ 357: ) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sequence</span><span class="ruby-operator">|</span>
337
+ 358: (<span class="ruby-value str">&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>)
338
+ 359: <span class="ruby-keyword kw">end</span>
339
+ 360: <span class="ruby-keyword kw">end</span>
340
340
  </pre>
341
341
  </div>
342
342
  </div>
@@ -440,58 +440,58 @@ Extracts uris from an arbitrary body of text.
440
440
  onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
441
441
  <div class="method-source-code" id="M000011-source">
442
442
  <pre>
443
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 423</span>
444
- 423: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">extract</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">options</span>={})
445
- 424: <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>}
446
- 425: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
447
- 426: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidOptionError</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">options</span>.<span class="ruby-identifier">keys</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">keys</span>).<span class="ruby-identifier">empty?</span>
448
- 427: <span class="ruby-comment cmt"># This regular expression needs to be less forgiving or else it would</span>
449
- 428: <span class="ruby-comment cmt"># match virtually all text. Which isn't exactly what we're going for.</span>
450
- 429: <span class="ruby-identifier">extract_regex</span> = <span class="ruby-regexp re">/((([a-z\+]+):)[^ \n\&lt;\&gt;\&quot;\\]+[\w\/])/</span>
451
- 430: <span class="ruby-identifier">extracted_uris</span> =
452
- 431: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">extract_regex</span>).<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span> <span class="ruby-identifier">match</span>[<span class="ruby-value">0</span>] }
453
- 432: <span class="ruby-identifier">sgml_extract_regex</span> = <span class="ruby-regexp re">/&lt;[^&gt;]+href=\&quot;([^\&quot;]+?)\&quot;[^&gt;]*&gt;/</span>
454
- 433: <span class="ruby-identifier">sgml_extracted_uris</span> =
455
- 434: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">sgml_extract_regex</span>).<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span> <span class="ruby-identifier">match</span>[<span class="ruby-value">0</span>] }
456
- 435: <span class="ruby-identifier">extracted_uris</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">sgml_extracted_uris</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">extracted_uris</span>)
457
- 436: <span class="ruby-identifier">textile_extract_regex</span> = <span class="ruby-regexp re">/\&quot;.+?\&quot;:([^ ]+\/[^ ]+)[ \,\.\;\:\?\!\&lt;\&gt;\&quot;]/i</span>
458
- 437: <span class="ruby-identifier">textile_extracted_uris</span> =
459
- 438: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">textile_extract_regex</span>).<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span> <span class="ruby-identifier">match</span>[<span class="ruby-value">0</span>] }
460
- 439: <span class="ruby-identifier">extracted_uris</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">textile_extracted_uris</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">extracted_uris</span>)
461
- 440: <span class="ruby-identifier">parsed_uris</span> = []
462
- 441: <span class="ruby-identifier">base_uri</span> = <span class="ruby-keyword kw">nil</span>
463
- 442: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:base</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
464
- 443: <span class="ruby-identifier">base_uri</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:base</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:base</span>].<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>)
465
- 444: <span class="ruby-identifier">base_uri</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:base</span>].<span class="ruby-identifier">to_s</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base_uri</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
466
- 445: <span class="ruby-keyword kw">end</span>
467
- 446: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">uri_string</span> <span class="ruby-keyword kw">in</span> <span class="ruby-identifier">extracted_uris</span>
468
- 447: <span class="ruby-keyword kw">begin</span>
469
- 448: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base_uri</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
470
- 449: <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>)
471
- 450: <span class="ruby-keyword kw">else</span>
472
- 451: <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>))
473
- 452: <span class="ruby-keyword kw">end</span>
474
- 453: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
475
- 454: <span class="ruby-keyword kw">nil</span>
476
- 455: <span class="ruby-keyword kw">end</span>
477
- 456: <span class="ruby-keyword kw">end</span>
478
- 457: <span class="ruby-identifier">parsed_uris</span>.<span class="ruby-identifier">reject!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">uri</span><span class="ruby-operator">|</span>
479
- 458: (<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/T\d+/</span> <span class="ruby-operator">||</span>
480
- 459: <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>
481
- 460: <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>
482
- 461: <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>
483
- 462: <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>
484
- 463: <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>
485
- 464: <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>
486
- 465: <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>
487
- 466: <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>)
488
- 467: <span class="ruby-keyword kw">end</span>
489
- 468: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:parse</span>]
490
- 469: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parsed_uris</span>
491
- 470: <span class="ruby-keyword kw">else</span>
492
- 471: <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> }
443
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 439</span>
444
+ 439: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">extract</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">options</span>={})
445
+ 440: <span class="ruby-identifier">defaults</span> = {<span class="ruby-identifier">:base</span> =<span class="ruby-operator">&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>}
446
+ 441: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
447
+ 442: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidOptionError</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">options</span>.<span class="ruby-identifier">keys</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">keys</span>).<span class="ruby-identifier">empty?</span>
448
+ 443: <span class="ruby-comment cmt"># This regular expression needs to be less forgiving or else it would</span>
449
+ 444: <span class="ruby-comment cmt"># match virtually all text. Which isn't exactly what we're going for.</span>
450
+ 445: <span class="ruby-identifier">extract_regex</span> = <span class="ruby-regexp re">/((([a-z\+]+):)[^ \n\&lt;\&gt;\&quot;\\]+[\w\/])/</span>
451
+ 446: <span class="ruby-identifier">extracted_uris</span> =
452
+ 447: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">extract_regex</span>).<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span> <span class="ruby-identifier">match</span>[<span class="ruby-value">0</span>] }
453
+ 448: <span class="ruby-identifier">sgml_extract_regex</span> = <span class="ruby-regexp re">/&lt;[^&gt;]+href=\&quot;([^\&quot;]+?)\&quot;[^&gt;]*&gt;/</span>
454
+ 449: <span class="ruby-identifier">sgml_extracted_uris</span> =
455
+ 450: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">sgml_extract_regex</span>).<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span> <span class="ruby-identifier">match</span>[<span class="ruby-value">0</span>] }
456
+ 451: <span class="ruby-identifier">extracted_uris</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">sgml_extracted_uris</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">extracted_uris</span>)
457
+ 452: <span class="ruby-identifier">textile_extract_regex</span> = <span class="ruby-regexp re">/\&quot;.+?\&quot;:([^ ]+\/[^ ]+)[ \,\.\;\:\?\!\&lt;\&gt;\&quot;]/i</span>
458
+ 453: <span class="ruby-identifier">textile_extracted_uris</span> =
459
+ 454: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">textile_extract_regex</span>).<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">match</span><span class="ruby-operator">|</span> <span class="ruby-identifier">match</span>[<span class="ruby-value">0</span>] }
460
+ 455: <span class="ruby-identifier">extracted_uris</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">textile_extracted_uris</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">extracted_uris</span>)
461
+ 456: <span class="ruby-identifier">parsed_uris</span> = []
462
+ 457: <span class="ruby-identifier">base_uri</span> = <span class="ruby-keyword kw">nil</span>
463
+ 458: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:base</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
464
+ 459: <span class="ruby-identifier">base_uri</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:base</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:base</span>].<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>)
465
+ 460: <span class="ruby-identifier">base_uri</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:base</span>].<span class="ruby-identifier">to_s</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base_uri</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
466
+ 461: <span class="ruby-keyword kw">end</span>
467
+ 462: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">uri_string</span> <span class="ruby-keyword kw">in</span> <span class="ruby-identifier">extracted_uris</span>
468
+ 463: <span class="ruby-keyword kw">begin</span>
469
+ 464: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base_uri</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
470
+ 465: <span class="ruby-identifier">parsed_uris</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri_string</span>)
471
+ 466: <span class="ruby-keyword kw">else</span>
472
+ 467: <span class="ruby-identifier">parsed_uris</span> <span class="ruby-operator">&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>))
473
+ 468: <span class="ruby-keyword kw">end</span>
474
+ 469: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
475
+ 470: <span class="ruby-keyword kw">nil</span>
476
+ 471: <span class="ruby-keyword kw">end</span>
493
477
  472: <span class="ruby-keyword kw">end</span>
494
- 473: <span class="ruby-keyword kw">end</span>
478
+ 473: <span class="ruby-identifier">parsed_uris</span>.<span class="ruby-identifier">reject!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">uri</span><span class="ruby-operator">|</span>
479
+ 474: (<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/T\d+/</span> <span class="ruby-operator">||</span>
480
+ 475: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;xmlns&quot;</span> <span class="ruby-operator">||</span>
481
+ 476: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;xml&quot;</span> <span class="ruby-operator">||</span>
482
+ 477: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;thr&quot;</span> <span class="ruby-operator">||</span>
483
+ 478: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;this&quot;</span> <span class="ruby-operator">||</span>
484
+ 479: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;float&quot;</span> <span class="ruby-operator">||</span>
485
+ 480: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;user&quot;</span> <span class="ruby-operator">||</span>
486
+ 481: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;username&quot;</span> <span class="ruby-operator">||</span>
487
+ 482: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;out&quot;</span>)
488
+ 483: <span class="ruby-keyword kw">end</span>
489
+ 484: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:parse</span>]
490
+ 485: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parsed_uris</span>
491
+ 486: <span class="ruby-keyword kw">else</span>
492
+ 487: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parsed_uris</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">uri</span><span class="ruby-operator">|</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span> }
493
+ 488: <span class="ruby-keyword kw">end</span>
494
+ 489: <span class="ruby-keyword kw">end</span>
495
495
  </pre>
496
496
  </div>
497
497
  </div>
@@ -580,10 +580,10 @@ href="URI.html#M000030">path</a>&gt;
580
580
  onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
581
581
  <div class="method-source-code" id="M000025-source">
582
582
  <pre>
583
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 646</span>
584
- 646: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">ip_based_schemes</span>
585
- 647: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme_mapping</span>.<span class="ruby-identifier">keys</span>
586
- 648: <span class="ruby-keyword kw">end</span>
583
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 662</span>
584
+ 662: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">ip_based_schemes</span>
585
+ 663: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme_mapping</span>.<span class="ruby-identifier">keys</span>
586
+ 664: <span class="ruby-keyword kw">end</span>
587
587
  </pre>
588
588
  </div>
589
589
  </div>
@@ -606,17 +606,17 @@ Joins several uris together.
606
606
  onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
607
607
  <div class="method-source-code" id="M000006-source">
608
608
  <pre>
609
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 312</span>
610
- 312: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">join</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">uris</span>)
611
- 313: <span class="ruby-identifier">uri_objects</span> = <span class="ruby-identifier">uris</span>.<span class="ruby-identifier">collect</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">uri</span><span class="ruby-operator">|</span>
612
- 314: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">uri</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>)
613
- 315: <span class="ruby-keyword kw">end</span>
614
- 316: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">uri_objects</span>.<span class="ruby-identifier">shift</span>.<span class="ruby-identifier">dup</span>
615
- 317: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">uri</span> <span class="ruby-keyword kw">in</span> <span class="ruby-identifier">uri_objects</span>
616
- 318: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">uri</span>)
617
- 319: <span class="ruby-keyword kw">end</span>
618
- 320: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
619
- 321: <span class="ruby-keyword kw">end</span>
609
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 328</span>
610
+ 328: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">join</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">uris</span>)
611
+ 329: <span class="ruby-identifier">uri_objects</span> = <span class="ruby-identifier">uris</span>.<span class="ruby-identifier">collect</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">uri</span><span class="ruby-operator">|</span>
612
+ 330: <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">uri</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>)
613
+ 331: <span class="ruby-keyword kw">end</span>
614
+ 332: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">uri_objects</span>.<span class="ruby-identifier">shift</span>.<span class="ruby-identifier">dup</span>
615
+ 333: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">uri</span> <span class="ruby-keyword kw">in</span> <span class="ruby-identifier">uri_objects</span>
616
+ 334: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">uri</span>)
617
+ 335: <span class="ruby-keyword kw">end</span>
618
+ 336: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
619
+ 337: <span class="ruby-keyword kw">end</span>
620
620
  </pre>
621
621
  </div>
622
622
  </div>
@@ -640,27 +640,27 @@ parts. Passing nil for any of these parameters is acceptable.
640
640
  onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
641
641
  <div class="method-source-code" id="M000012-source">
642
642
  <pre>
643
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 477</span>
644
- 477: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">scheme</span>, <span class="ruby-identifier">user</span>, <span class="ruby-identifier">password</span>, <span class="ruby-identifier">host</span>, <span class="ruby-identifier">port</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">query</span>, <span class="ruby-identifier">fragment</span>)
645
- 478: <span class="ruby-ivar">@scheme</span> = <span class="ruby-identifier">scheme</span>
646
- 479: <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>
647
- 480: <span class="ruby-ivar">@user</span> = <span class="ruby-identifier">user</span>
648
- 481: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">password</span>
649
- 482: <span class="ruby-ivar">@host</span> = <span class="ruby-identifier">host</span>
650
- 483: <span class="ruby-ivar">@specified_port</span> = <span class="ruby-identifier">port</span>.<span class="ruby-identifier">to_s</span>
651
- 484: <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">port</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Fixnum</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">port</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">port</span>
652
- 485: <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>)
653
- 486: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidURIError</span>,
654
- 487: <span class="ruby-node">&quot;Invalid port number: #{@port.inspect}&quot;</span>
655
- 488: <span class="ruby-keyword kw">end</span>
656
- 489: <span class="ruby-ivar">@port</span> = <span class="ruby-ivar">@port</span>.<span class="ruby-identifier">to_i</span>
657
- 490: <span class="ruby-ivar">@port</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@port</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
658
- 491: <span class="ruby-ivar">@path</span> = (<span class="ruby-identifier">path</span> <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>)
659
- 492: <span class="ruby-ivar">@query</span> = <span class="ruby-identifier">query</span>
660
- 493: <span class="ruby-ivar">@fragment</span> = <span class="ruby-identifier">fragment</span>
661
- 494:
662
- 495: <span class="ruby-identifier">validate</span>()
663
- 496: <span class="ruby-keyword kw">end</span>
643
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 493</span>
644
+ 493: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">scheme</span>, <span class="ruby-identifier">user</span>, <span class="ruby-identifier">password</span>, <span class="ruby-identifier">host</span>, <span class="ruby-identifier">port</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">query</span>, <span class="ruby-identifier">fragment</span>)
645
+ 494: <span class="ruby-ivar">@scheme</span> = <span class="ruby-identifier">scheme</span>
646
+ 495: <span class="ruby-ivar">@scheme</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scheme</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;&quot;</span>
647
+ 496: <span class="ruby-ivar">@user</span> = <span class="ruby-identifier">user</span>
648
+ 497: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">password</span>
649
+ 498: <span class="ruby-ivar">@host</span> = <span class="ruby-identifier">host</span>
650
+ 499: <span class="ruby-ivar">@specified_port</span> = <span class="ruby-identifier">port</span>.<span class="ruby-identifier">to_s</span>
651
+ 500: <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">port</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Fixnum</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">port</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">port</span>
652
+ 501: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@port</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">&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>)
653
+ 502: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidURIError</span>,
654
+ 503: <span class="ruby-node">&quot;Invalid port number: #{@port.inspect}&quot;</span>
655
+ 504: <span class="ruby-keyword kw">end</span>
656
+ 505: <span class="ruby-ivar">@port</span> = <span class="ruby-ivar">@port</span>.<span class="ruby-identifier">to_i</span>
657
+ 506: <span class="ruby-ivar">@port</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@port</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
658
+ 507: <span class="ruby-ivar">@path</span> = (<span class="ruby-identifier">path</span> <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>)
659
+ 508: <span class="ruby-ivar">@query</span> = <span class="ruby-identifier">query</span>
660
+ 509: <span class="ruby-ivar">@fragment</span> = <span class="ruby-identifier">fragment</span>
661
+ 510:
662
+ 511: <span class="ruby-identifier">validate</span>()
663
+ 512: <span class="ruby-keyword kw">end</span>
664
664
  </pre>
665
665
  </div>
666
666
  </div>
@@ -685,43 +685,43 @@ names.
685
685
  onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
686
686
  <div class="method-source-code" id="M000010-source">
687
687
  <pre>
688
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 385</span>
689
- 385: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalized_encode</span>(<span class="ruby-identifier">uri</span>)
690
- 386: <span class="ruby-identifier">uri_object</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">uri</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>)
691
- 387: <span class="ruby-identifier">segments</span> = {
692
- 388: <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>),
693
- 389: <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>),
694
- 390: <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>),
695
- 391: <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>),
696
- 392: <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>),
697
- 393: <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>),
698
- 394: <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>),
699
- 395: <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>)
700
- 396: }
701
- 397: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">IDNA</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">:use_libidn?</span>)
702
- 398: <span class="ruby-identifier">segments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
703
- 399: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
704
- 400: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-constant">IDN</span><span class="ruby-operator">::</span><span class="ruby-constant">Stringprep</span>.<span class="ruby-identifier">nfkc_normalize</span>(<span class="ruby-identifier">value</span>.<span class="ruby-identifier">to_s</span>)
705
- 401: <span class="ruby-keyword kw">end</span>
706
- 402: <span class="ruby-keyword kw">end</span>
707
- 403: <span class="ruby-keyword kw">end</span>
708
- 404: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
709
- 405: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:scheme</span>],
710
- 406: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">SCHEME</span>),
711
- 407: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:user</span>],
712
- 408: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
713
- 409: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:password</span>],
714
- 410: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
715
- 411: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>],
716
- 412: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:port</span>],
717
- 413: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:path</span>],
718
- 414: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">PATH</span>),
719
- 415: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:query</span>],
720
- 416: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">QUERY</span>),
721
- 417: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:fragment</span>],
722
- 418: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">FRAGMENT</span>)
723
- 419: ).<span class="ruby-identifier">to_s</span>
724
- 420: <span class="ruby-keyword kw">end</span>
688
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 401</span>
689
+ 401: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalized_encode</span>(<span class="ruby-identifier">uri</span>)
690
+ 402: <span class="ruby-identifier">uri_object</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">uri</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>)
691
+ 403: <span class="ruby-identifier">segments</span> = {
692
+ 404: <span class="ruby-identifier">:scheme</span> =<span class="ruby-operator">&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>),
693
+ 405: <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>),
694
+ 406: <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>),
695
+ 407: <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>),
696
+ 408: <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>),
697
+ 409: <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>),
698
+ 410: <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>),
699
+ 411: <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>)
700
+ 412: }
701
+ 413: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">IDNA</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">:use_libidn?</span>)
702
+ 414: <span class="ruby-identifier">segments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
703
+ 415: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
704
+ 416: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-constant">IDN</span><span class="ruby-operator">::</span><span class="ruby-constant">Stringprep</span>.<span class="ruby-identifier">nfkc_normalize</span>(<span class="ruby-identifier">value</span>.<span class="ruby-identifier">to_s</span>)
705
+ 417: <span class="ruby-keyword kw">end</span>
706
+ 418: <span class="ruby-keyword kw">end</span>
707
+ 419: <span class="ruby-keyword kw">end</span>
708
+ 420: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
709
+ 421: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:scheme</span>],
710
+ 422: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">SCHEME</span>),
711
+ 423: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:user</span>],
712
+ 424: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
713
+ 425: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:password</span>],
714
+ 426: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">AUTHORITY</span>),
715
+ 427: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>],
716
+ 428: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:port</span>],
717
+ 429: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:path</span>],
718
+ 430: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">PATH</span>),
719
+ 431: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:query</span>],
720
+ 432: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">QUERY</span>),
721
+ 433: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">encode_segment</span>(<span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:fragment</span>],
722
+ 434: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">CharacterClasses</span><span class="ruby-operator">::</span><span class="ruby-constant">FRAGMENT</span>)
723
+ 435: ).<span class="ruby-identifier">to_s</span>
724
+ 436: <span class="ruby-keyword kw">end</span>
725
725
  </pre>
726
726
  </div>
727
727
  </div>
@@ -813,26 +813,26 @@ allow for better <a href="URI.html">URI</a> normalization.
813
813
  onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
814
814
  <div class="method-source-code" id="M000026-source">
815
815
  <pre>
816
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 653</span>
817
- 653: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme_mapping</span>
818
- 654: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-keyword kw">defined?</span>(<span class="ruby-ivar">@protocol_mapping</span>) <span class="ruby-operator">||</span> <span class="ruby-ivar">@protocol_mapping</span>.<span class="ruby-identifier">nil?</span>
819
- 655: <span class="ruby-ivar">@protocol_mapping</span> = {
820
- 656: <span class="ruby-value str">&quot;http&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">80</span>,
821
- 657: <span class="ruby-value str">&quot;https&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">443</span>,
822
- 658: <span class="ruby-value str">&quot;ftp&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">21</span>,
823
- 659: <span class="ruby-value str">&quot;tftp&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">69</span>,
824
- 660: <span class="ruby-value str">&quot;ssh&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">22</span>,
825
- 661: <span class="ruby-value str">&quot;svn+ssh&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">22</span>,
826
- 662: <span class="ruby-value str">&quot;telnet&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">23</span>,
827
- 663: <span class="ruby-value str">&quot;nntp&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">119</span>,
828
- 664: <span class="ruby-value str">&quot;gopher&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">70</span>,
829
- 665: <span class="ruby-value str">&quot;wais&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">210</span>,
830
- 666: <span class="ruby-value str">&quot;ldap&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">389</span>,
831
- 667: <span class="ruby-value str">&quot;prospero&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">1525</span>
832
- 668: }
833
- 669: <span class="ruby-keyword kw">end</span>
834
- 670: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@protocol_mapping</span>
835
- 671: <span class="ruby-keyword kw">end</span>
816
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 669</span>
817
+ 669: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme_mapping</span>
818
+ 670: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-keyword kw">defined?</span>(<span class="ruby-ivar">@protocol_mapping</span>) <span class="ruby-operator">||</span> <span class="ruby-ivar">@protocol_mapping</span>.<span class="ruby-identifier">nil?</span>
819
+ 671: <span class="ruby-ivar">@protocol_mapping</span> = {
820
+ 672: <span class="ruby-value str">&quot;http&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">80</span>,
821
+ 673: <span class="ruby-value str">&quot;https&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">443</span>,
822
+ 674: <span class="ruby-value str">&quot;ftp&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">21</span>,
823
+ 675: <span class="ruby-value str">&quot;tftp&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">69</span>,
824
+ 676: <span class="ruby-value str">&quot;ssh&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">22</span>,
825
+ 677: <span class="ruby-value str">&quot;svn+ssh&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">22</span>,
826
+ 678: <span class="ruby-value str">&quot;telnet&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">23</span>,
827
+ 679: <span class="ruby-value str">&quot;nntp&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">119</span>,
828
+ 680: <span class="ruby-value str">&quot;gopher&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">70</span>,
829
+ 681: <span class="ruby-value str">&quot;wais&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">210</span>,
830
+ 682: <span class="ruby-value str">&quot;ldap&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">389</span>,
831
+ 683: <span class="ruby-value str">&quot;prospero&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">1525</span>
832
+ 684: }
833
+ 685: <span class="ruby-keyword kw">end</span>
834
+ 686: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@protocol_mapping</span>
835
+ 687: <span class="ruby-keyword kw">end</span>
836
836
  </pre>
837
837
  </div>
838
838
  </div>
@@ -856,13 +856,13 @@ href="URI.html">URI</a> segment. Returns a string.
856
856
  onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
857
857
  <div class="method-source-code" id="M000008-source">
858
858
  <pre>
859
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 348</span>
860
- 348: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">unencode_segment</span>(<span class="ruby-identifier">segment</span>)
861
- 349: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">segment</span>.<span class="ruby-identifier">nil?</span>
862
- 350: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">segment</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/%[0-9a-f]{2}/i</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sequence</span><span class="ruby-operator">|</span>
863
- 351: <span class="ruby-identifier">sequence</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">3</span>].<span class="ruby-identifier">to_i</span>(<span class="ruby-value">16</span>).<span class="ruby-identifier">chr</span>
864
- 352: <span class="ruby-keyword kw">end</span>
865
- 353: <span class="ruby-keyword kw">end</span>
859
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 364</span>
860
+ 364: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">unencode_segment</span>(<span class="ruby-identifier">segment</span>)
861
+ 365: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">segment</span>.<span class="ruby-identifier">nil?</span>
862
+ 366: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">segment</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/%[0-9a-f]{2}/i</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sequence</span><span class="ruby-operator">|</span>
863
+ 367: <span class="ruby-identifier">sequence</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">3</span>].<span class="ruby-identifier">to_i</span>(<span class="ruby-value">16</span>).<span class="ruby-identifier">chr</span>
864
+ 368: <span class="ruby-keyword kw">end</span>
865
+ 369: <span class="ruby-keyword kw">end</span>
866
866
  </pre>
867
867
  </div>
868
868
  </div>
@@ -887,96 +887,96 @@ Joins two URIs together.
887
887
  onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
888
888
  <div class="method-source-code" id="M000041-source">
889
889
  <pre>
890
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 772</span>
891
- 772: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">uri</span>)
892
- 773: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>)
893
- 774: <span class="ruby-identifier">uri</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>)
894
- 775: <span class="ruby-keyword kw">end</span>
895
- 776: <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>
896
- 777: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
897
- 778: <span class="ruby-keyword kw">end</span>
898
- 779:
899
- 780: <span class="ruby-identifier">joined_scheme</span> = <span class="ruby-keyword kw">nil</span>
900
- 781: <span class="ruby-identifier">joined_user</span> = <span class="ruby-keyword kw">nil</span>
901
- 782: <span class="ruby-identifier">joined_password</span> = <span class="ruby-keyword kw">nil</span>
902
- 783: <span class="ruby-identifier">joined_host</span> = <span class="ruby-keyword kw">nil</span>
903
- 784: <span class="ruby-identifier">joined_port</span> = <span class="ruby-keyword kw">nil</span>
904
- 785: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">nil</span>
905
- 786: <span class="ruby-identifier">joined_query</span> = <span class="ruby-keyword kw">nil</span>
906
- 787: <span class="ruby-identifier">joined_fragment</span> = <span class="ruby-keyword kw">nil</span>
907
- 788:
908
- 789: <span class="ruby-comment cmt"># Section 5.2.2 of RFC 3986</span>
909
- 790: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
910
- 791: <span class="ruby-identifier">joined_scheme</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span>
911
- 792: <span class="ruby-identifier">joined_user</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">user</span>
912
- 793: <span class="ruby-identifier">joined_password</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">password</span>
913
- 794: <span class="ruby-identifier">joined_host</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">host</span>
914
- 795: <span class="ruby-identifier">joined_port</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">specified_port</span>
915
- 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">uri</span>.<span class="ruby-identifier">path</span>)
916
- 797: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
917
- 798: <span class="ruby-keyword kw">else</span>
918
- 799: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">authority</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
919
- 800: <span class="ruby-identifier">joined_user</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">user</span>
920
- 801: <span class="ruby-identifier">joined_password</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">password</span>
921
- 802: <span class="ruby-identifier">joined_host</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">host</span>
922
- 803: <span class="ruby-identifier">joined_port</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">specified_port</span>
923
- 804: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>)
924
- 805: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
925
- 806: <span class="ruby-keyword kw">else</span>
926
- 807: <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>
927
- 808: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>
928
- 809: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
929
- 810: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
930
- 811: <span class="ruby-keyword kw">else</span>
931
- 812: <span class="ruby-identifier">joined_query</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span>
932
- 813: <span class="ruby-keyword kw">end</span>
933
- 814: <span class="ruby-keyword kw">else</span>
934
- 815: <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>
935
- 816: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>)
936
- 817: <span class="ruby-keyword kw">else</span>
937
- 818: <span class="ruby-identifier">base_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>.<span class="ruby-identifier">dup</span>
938
- 819: <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>
939
- 820: <span class="ruby-identifier">base_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">base_path</span>)
940
- 821:
941
- 822: <span class="ruby-comment cmt"># Section 5.2.3 of RFC 3986</span>
942
- 823: <span class="ruby-comment cmt">#</span>
943
- 824: <span class="ruby-comment cmt"># Removes the right-most path segment from the base path.</span>
944
- 825: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base_path</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\//</span>
945
- 826: <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>)
946
- 827: <span class="ruby-keyword kw">else</span>
947
- 828: <span class="ruby-identifier">base_path</span> = <span class="ruby-value str">&quot;&quot;</span>
948
- 829: <span class="ruby-keyword kw">end</span>
949
- 830:
950
- 831: <span class="ruby-comment cmt"># If the base path is empty and an authority segment has been</span>
951
- 832: <span class="ruby-comment cmt"># defined, use a base path of &quot;/&quot;</span>
952
- 833: <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>
953
- 834: <span class="ruby-identifier">base_path</span> = <span class="ruby-value str">&quot;/&quot;</span>
954
- 835: <span class="ruby-keyword kw">end</span>
955
- 836:
956
- 837: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">base_path</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>)
957
- 838: <span class="ruby-keyword kw">end</span>
958
- 839: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
959
- 840: <span class="ruby-keyword kw">end</span>
960
- 841: <span class="ruby-identifier">joined_user</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>
961
- 842: <span class="ruby-identifier">joined_password</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>
962
- 843: <span class="ruby-identifier">joined_host</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>
963
- 844: <span class="ruby-identifier">joined_port</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">specified_port</span>
964
- 845: <span class="ruby-keyword kw">end</span>
965
- 846: <span class="ruby-identifier">joined_scheme</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>
966
- 847: <span class="ruby-keyword kw">end</span>
967
- 848: <span class="ruby-identifier">joined_fragment</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">fragment</span>
968
- 849:
969
- 850: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
970
- 851: <span class="ruby-identifier">joined_scheme</span>,
971
- 852: <span class="ruby-identifier">joined_user</span>,
972
- 853: <span class="ruby-identifier">joined_password</span>,
973
- 854: <span class="ruby-identifier">joined_host</span>,
974
- 855: <span class="ruby-identifier">joined_port</span>,
975
- 856: <span class="ruby-identifier">joined_path</span>,
976
- 857: <span class="ruby-identifier">joined_query</span>,
977
- 858: <span class="ruby-identifier">joined_fragment</span>
978
- 859: )
979
- 860: <span class="ruby-keyword kw">end</span>
890
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 788</span>
891
+ 788: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">uri</span>)
892
+ 789: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>)
893
+ 790: <span class="ruby-identifier">uri</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>)
894
+ 791: <span class="ruby-keyword kw">end</span>
895
+ 792: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;&quot;</span>
896
+ 793: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
897
+ 794: <span class="ruby-keyword kw">end</span>
898
+ 795:
899
+ 796: <span class="ruby-identifier">joined_scheme</span> = <span class="ruby-keyword kw">nil</span>
900
+ 797: <span class="ruby-identifier">joined_user</span> = <span class="ruby-keyword kw">nil</span>
901
+ 798: <span class="ruby-identifier">joined_password</span> = <span class="ruby-keyword kw">nil</span>
902
+ 799: <span class="ruby-identifier">joined_host</span> = <span class="ruby-keyword kw">nil</span>
903
+ 800: <span class="ruby-identifier">joined_port</span> = <span class="ruby-keyword kw">nil</span>
904
+ 801: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">nil</span>
905
+ 802: <span class="ruby-identifier">joined_query</span> = <span class="ruby-keyword kw">nil</span>
906
+ 803: <span class="ruby-identifier">joined_fragment</span> = <span class="ruby-keyword kw">nil</span>
907
+ 804:
908
+ 805: <span class="ruby-comment cmt"># Section 5.2.2 of RFC 3986</span>
909
+ 806: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
910
+ 807: <span class="ruby-identifier">joined_scheme</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span>
911
+ 808: <span class="ruby-identifier">joined_user</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">user</span>
912
+ 809: <span class="ruby-identifier">joined_password</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">password</span>
913
+ 810: <span class="ruby-identifier">joined_host</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">host</span>
914
+ 811: <span class="ruby-identifier">joined_port</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">specified_port</span>
915
+ 812: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>)
916
+ 813: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
917
+ 814: <span class="ruby-keyword kw">else</span>
918
+ 815: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">authority</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
919
+ 816: <span class="ruby-identifier">joined_user</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">user</span>
920
+ 817: <span class="ruby-identifier">joined_password</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">password</span>
921
+ 818: <span class="ruby-identifier">joined_host</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">host</span>
922
+ 819: <span class="ruby-identifier">joined_port</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">specified_port</span>
923
+ 820: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>)
924
+ 821: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
925
+ 822: <span class="ruby-keyword kw">else</span>
926
+ 823: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;&quot;</span>
927
+ 824: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>
928
+ 825: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
929
+ 826: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
930
+ 827: <span class="ruby-keyword kw">else</span>
931
+ 828: <span class="ruby-identifier">joined_query</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span>
932
+ 829: <span class="ruby-keyword kw">end</span>
933
+ 830: <span class="ruby-keyword kw">else</span>
934
+ 831: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;/&quot;</span>
935
+ 832: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>)
936
+ 833: <span class="ruby-keyword kw">else</span>
937
+ 834: <span class="ruby-identifier">base_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>.<span class="ruby-identifier">dup</span>
938
+ 835: <span class="ruby-identifier">base_path</span> = <span class="ruby-value str">&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>
939
+ 836: <span class="ruby-identifier">base_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">base_path</span>)
940
+ 837:
941
+ 838: <span class="ruby-comment cmt"># Section 5.2.3 of RFC 3986</span>
942
+ 839: <span class="ruby-comment cmt">#</span>
943
+ 840: <span class="ruby-comment cmt"># Removes the right-most path segment from the base path.</span>
944
+ 841: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base_path</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\//</span>
945
+ 842: <span class="ruby-identifier">base_path</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\/[^\/]+$/</span>, <span class="ruby-value str">&quot;/&quot;</span>)
946
+ 843: <span class="ruby-keyword kw">else</span>
947
+ 844: <span class="ruby-identifier">base_path</span> = <span class="ruby-value str">&quot;&quot;</span>
948
+ 845: <span class="ruby-keyword kw">end</span>
949
+ 846:
950
+ 847: <span class="ruby-comment cmt"># If the base path is empty and an authority segment has been</span>
951
+ 848: <span class="ruby-comment cmt"># defined, use a base path of &quot;/&quot;</span>
952
+ 849: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">base_path</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&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>
953
+ 850: <span class="ruby-identifier">base_path</span> = <span class="ruby-value str">&quot;/&quot;</span>
954
+ 851: <span class="ruby-keyword kw">end</span>
955
+ 852:
956
+ 853: <span class="ruby-identifier">joined_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">base_path</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>)
957
+ 854: <span class="ruby-keyword kw">end</span>
958
+ 855: <span class="ruby-identifier">joined_query</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
959
+ 856: <span class="ruby-keyword kw">end</span>
960
+ 857: <span class="ruby-identifier">joined_user</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>
961
+ 858: <span class="ruby-identifier">joined_password</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>
962
+ 859: <span class="ruby-identifier">joined_host</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>
963
+ 860: <span class="ruby-identifier">joined_port</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">specified_port</span>
964
+ 861: <span class="ruby-keyword kw">end</span>
965
+ 862: <span class="ruby-identifier">joined_scheme</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>
966
+ 863: <span class="ruby-keyword kw">end</span>
967
+ 864: <span class="ruby-identifier">joined_fragment</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">fragment</span>
968
+ 865:
969
+ 866: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
970
+ 867: <span class="ruby-identifier">joined_scheme</span>,
971
+ 868: <span class="ruby-identifier">joined_user</span>,
972
+ 869: <span class="ruby-identifier">joined_password</span>,
973
+ 870: <span class="ruby-identifier">joined_host</span>,
974
+ 871: <span class="ruby-identifier">joined_port</span>,
975
+ 872: <span class="ruby-identifier">joined_path</span>,
976
+ 873: <span class="ruby-identifier">joined_query</span>,
977
+ 874: <span class="ruby-identifier">joined_fragment</span>
978
+ 875: )
979
+ 876: <span class="ruby-keyword kw">end</span>
980
980
  </pre>
981
981
  </div>
982
982
  </div>
@@ -1000,11 +1000,11 @@ method normalizes both URIs before doing the comparison.
1000
1000
  onclick="toggleCode('M000052-source');return false;">[Source]</a></p>
1001
1001
  <div class="method-source-code" id="M000052-source">
1002
1002
  <pre>
1003
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1046</span>
1004
- 1046: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">uri</span>)
1005
- 1047: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>)
1006
- 1048: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">normalize</span>.<span class="ruby-identifier">to_s</span>
1007
- 1049: <span class="ruby-keyword kw">end</span>
1003
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1062</span>
1004
+ 1062: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">uri</span>)
1005
+ 1063: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>)
1006
+ 1064: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">normalize</span>.<span class="ruby-identifier">to_s</span>
1007
+ 1065: <span class="ruby-keyword kw">end</span>
1008
1008
  </pre>
1009
1009
  </div>
1010
1010
  </div>
@@ -1029,19 +1029,19 @@ comparison against strings.
1029
1029
  onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
1030
1030
  <div class="method-source-code" id="M000051-source">
1031
1031
  <pre>
1032
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1031</span>
1033
- 1031: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">===</span>(<span class="ruby-identifier">uri</span>)
1034
- 1032: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:normalize</span>)
1035
- 1033: <span class="ruby-identifier">uri_string</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">normalize</span>.<span class="ruby-identifier">to_s</span>
1036
- 1034: <span class="ruby-keyword kw">else</span>
1037
- 1035: <span class="ruby-keyword kw">begin</span>
1038
- 1036: <span class="ruby-identifier">uri_string</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>).<span class="ruby-identifier">normalize</span>.<span class="ruby-identifier">to_s</span>
1039
- 1037: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">InvalidURIError</span>
1040
- 1038: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1041
- 1039: <span class="ruby-keyword kw">end</span>
1042
- 1040: <span class="ruby-keyword kw">end</span>
1043
- 1041: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri_string</span>
1044
- 1042: <span class="ruby-keyword kw">end</span>
1032
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1047</span>
1033
+ 1047: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">===</span>(<span class="ruby-identifier">uri</span>)
1034
+ 1048: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:normalize</span>)
1035
+ 1049: <span class="ruby-identifier">uri_string</span> = <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">normalize</span>.<span class="ruby-identifier">to_s</span>
1036
+ 1050: <span class="ruby-keyword kw">else</span>
1037
+ 1051: <span class="ruby-keyword kw">begin</span>
1038
+ 1052: <span class="ruby-identifier">uri_string</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>).<span class="ruby-identifier">normalize</span>.<span class="ruby-identifier">to_s</span>
1039
+ 1053: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">InvalidURIError</span>
1040
+ 1054: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1041
+ 1055: <span class="ruby-keyword kw">end</span>
1042
+ 1056: <span class="ruby-keyword kw">end</span>
1043
+ 1057: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri_string</span>
1044
+ 1058: <span class="ruby-keyword kw">end</span>
1045
1045
  </pre>
1046
1046
  </div>
1047
1047
  </div>
@@ -1064,10 +1064,10 @@ Returns true if this <a href="URI.html">URI</a> is known to be absolute.
1064
1064
  onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
1065
1065
  <div class="method-source-code" id="M000040-source">
1066
1066
  <pre>
1067
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 767</span>
1068
- 767: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">absolute?</span>
1069
- 768: <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-identifier">relative?</span>
1070
- 769: <span class="ruby-keyword kw">end</span>
1067
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 783</span>
1068
+ 783: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">absolute?</span>
1069
+ 784: <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-identifier">relative?</span>
1070
+ 785: <span class="ruby-keyword kw">end</span>
1071
1071
  </pre>
1072
1072
  </div>
1073
1073
  </div>
@@ -1091,21 +1091,21 @@ href="URI.html">URI</a>.
1091
1091
  onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
1092
1092
  <div class="method-source-code" id="M000023-source">
1093
1093
  <pre>
1094
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 601</span>
1095
- 601: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">authority</span>
1096
- 602: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-keyword kw">defined?</span>(<span class="ruby-ivar">@authority</span>) <span class="ruby-operator">||</span> <span class="ruby-ivar">@authority</span>.<span class="ruby-identifier">nil?</span>
1097
- 603: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>.<span class="ruby-identifier">nil?</span>
1098
- 604: <span class="ruby-ivar">@authority</span> = <span class="ruby-value str">&quot;&quot;</span>
1099
- 605: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">userinfo</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1100
- 606: <span class="ruby-ivar">@authority</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{self.userinfo}@&quot;</span>
1101
- 607: <span class="ruby-keyword kw">end</span>
1102
- 608: <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>
1103
- 609: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">specified_port</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1104
- 610: <span class="ruby-ivar">@authority</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;:#{self.specified_port}&quot;</span>
1105
- 611: <span class="ruby-keyword kw">end</span>
1106
- 612: <span class="ruby-keyword kw">end</span>
1107
- 613: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@authority</span>
1108
- 614: <span class="ruby-keyword kw">end</span>
1094
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 617</span>
1095
+ 617: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">authority</span>
1096
+ 618: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-keyword kw">defined?</span>(<span class="ruby-ivar">@authority</span>) <span class="ruby-operator">||</span> <span class="ruby-ivar">@authority</span>.<span class="ruby-identifier">nil?</span>
1097
+ 619: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>.<span class="ruby-identifier">nil?</span>
1098
+ 620: <span class="ruby-ivar">@authority</span> = <span class="ruby-value str">&quot;&quot;</span>
1099
+ 621: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">userinfo</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1100
+ 622: <span class="ruby-ivar">@authority</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{self.userinfo}@&quot;</span>
1101
+ 623: <span class="ruby-keyword kw">end</span>
1102
+ 624: <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>
1103
+ 625: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">specified_port</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1104
+ 626: <span class="ruby-ivar">@authority</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;:#{self.specified_port}&quot;</span>
1105
+ 627: <span class="ruby-keyword kw">end</span>
1106
+ 628: <span class="ruby-keyword kw">end</span>
1107
+ 629: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@authority</span>
1108
+ 630: <span class="ruby-keyword kw">end</span>
1109
1109
  </pre>
1110
1110
  </div>
1111
1111
  </div>
@@ -1129,32 +1129,32 @@ href="URI.html">URI</a>.
1129
1129
  onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
1130
1130
  <div class="method-source-code" id="M000024-source">
1131
1131
  <pre>
1132
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 617</span>
1133
- 617: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">authority=</span>(<span class="ruby-identifier">new_authority</span>)
1134
- 618: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">new_authority</span>
1135
- 619: <span class="ruby-identifier">new_userinfo</span> = <span class="ruby-identifier">new_authority</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/^([^\[\]]*)@/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
1136
- 620: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">new_userinfo</span>
1137
- 621: <span class="ruby-identifier">new_user</span> = <span class="ruby-identifier">new_userinfo</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/^([^:]*):?/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
1138
- 622: <span class="ruby-identifier">new_password</span> = <span class="ruby-identifier">new_userinfo</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/:(.*)$/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
1139
- 623: <span class="ruby-keyword kw">end</span>
1140
- 624: <span class="ruby-identifier">new_host</span> =
1141
- 625: <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>)
1142
- 626: <span class="ruby-identifier">new_port</span> =
1143
- 627: <span class="ruby-identifier">new_authority</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/:([^:@\[\]]*?)$/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
1144
- 628: <span class="ruby-keyword kw">end</span>
1145
- 629:
1146
- 630: <span class="ruby-comment cmt"># Password assigned first to ensure validity in case of nil</span>
1147
- 631: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span> = <span class="ruby-identifier">new_password</span>
1148
- 632: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span> = <span class="ruby-identifier">new_user</span>
1149
- 633: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span> = <span class="ruby-identifier">new_host</span>
1150
- 634:
1151
- 635: <span class="ruby-comment cmt"># Port reset to allow port normalization</span>
1152
- 636: <span class="ruby-ivar">@port</span> = <span class="ruby-keyword kw">nil</span>
1153
- 637: <span class="ruby-ivar">@specified_port</span> = <span class="ruby-identifier">new_port</span>
1154
- 638:
1155
- 639: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
1156
- 640: <span class="ruby-identifier">validate</span>()
1157
- 641: <span class="ruby-keyword kw">end</span>
1132
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 633</span>
1133
+ 633: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">authority=</span>(<span class="ruby-identifier">new_authority</span>)
1134
+ 634: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">new_authority</span>
1135
+ 635: <span class="ruby-identifier">new_userinfo</span> = <span class="ruby-identifier">new_authority</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/^([^\[\]]*)@/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
1136
+ 636: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">new_userinfo</span>
1137
+ 637: <span class="ruby-identifier">new_user</span> = <span class="ruby-identifier">new_userinfo</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/^([^:]*):?/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
1138
+ 638: <span class="ruby-identifier">new_password</span> = <span class="ruby-identifier">new_userinfo</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/:(.*)$/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
1139
+ 639: <span class="ruby-keyword kw">end</span>
1140
+ 640: <span class="ruby-identifier">new_host</span> =
1141
+ 641: <span class="ruby-identifier">new_authority</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/^([^\[\]]*)@/</span>, <span class="ruby-value str">&quot;&quot;</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/:([^:@\[\]]*?)$/</span>, <span class="ruby-value str">&quot;&quot;</span>)
1142
+ 642: <span class="ruby-identifier">new_port</span> =
1143
+ 643: <span class="ruby-identifier">new_authority</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/:([^:@\[\]]*?)$/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
1144
+ 644: <span class="ruby-keyword kw">end</span>
1145
+ 645:
1146
+ 646: <span class="ruby-comment cmt"># Password assigned first to ensure validity in case of nil</span>
1147
+ 647: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span> = <span class="ruby-identifier">new_password</span>
1148
+ 648: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span> = <span class="ruby-identifier">new_user</span>
1149
+ 649: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span> = <span class="ruby-identifier">new_host</span>
1150
+ 650:
1151
+ 651: <span class="ruby-comment cmt"># Port reset to allow port normalization</span>
1152
+ 652: <span class="ruby-ivar">@port</span> = <span class="ruby-keyword kw">nil</span>
1153
+ 653: <span class="ruby-ivar">@specified_port</span> = <span class="ruby-identifier">new_port</span>
1154
+ 654:
1155
+ 655: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
1156
+ 656: <span class="ruby-identifier">validate</span>()
1157
+ 657: <span class="ruby-keyword kw">end</span>
1158
1158
  </pre>
1159
1159
  </div>
1160
1160
  </div>
@@ -1179,11 +1179,11 @@ there is no <a href="URI.html#M000030">path</a> component.
1179
1179
  onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
1180
1180
  <div class="method-source-code" id="M000032-source">
1181
1181
  <pre>
1182
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 719</span>
1183
- 719: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">basename</span>
1184
- 720: <span class="ruby-comment cmt"># Path cannot be nil</span>
1185
- 721: <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>)
1186
- 722: <span class="ruby-keyword kw">end</span>
1182
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 735</span>
1183
+ 735: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">basename</span>
1184
+ 736: <span class="ruby-comment cmt"># Path cannot be nil</span>
1185
+ 737: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/;[^\/]*$/</span>, <span class="ruby-value str">&quot;&quot;</span>)
1186
+ 738: <span class="ruby-keyword kw">end</span>
1187
1187
  </pre>
1188
1188
  </div>
1189
1189
  </div>
@@ -1209,17 +1209,17 @@ more information.
1209
1209
  onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
1210
1210
  <div class="method-source-code" id="M000050-source">
1211
1211
  <pre>
1212
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1017</span>
1213
- 1017: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">display_uri</span>
1214
- 1018: <span class="ruby-identifier">display_uri</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>
1215
- 1019: <span class="ruby-keyword kw">begin</span>
1216
- 1020: <span class="ruby-identifier">display_uri</span>.<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">&quot;@host&quot;</span>,
1217
- 1021: <span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">IDNA</span>.<span class="ruby-identifier">to_unicode</span>(<span class="ruby-identifier">display_uri</span>.<span class="ruby-identifier">host</span>))
1218
- 1022: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
1219
- 1023: <span class="ruby-keyword kw">nil</span>
1220
- 1024: <span class="ruby-keyword kw">end</span>
1221
- 1025: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">display_uri</span>
1222
- 1026: <span class="ruby-keyword kw">end</span>
1212
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1033</span>
1213
+ 1033: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">display_uri</span>
1214
+ 1034: <span class="ruby-identifier">display_uri</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>
1215
+ 1035: <span class="ruby-keyword kw">begin</span>
1216
+ 1036: <span class="ruby-identifier">display_uri</span>.<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">&quot;@host&quot;</span>,
1217
+ 1037: <span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">IDNA</span>.<span class="ruby-identifier">to_unicode</span>(<span class="ruby-identifier">display_uri</span>.<span class="ruby-identifier">host</span>))
1218
+ 1038: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
1219
+ 1039: <span class="ruby-keyword kw">nil</span>
1220
+ 1040: <span class="ruby-keyword kw">end</span>
1221
+ 1041: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">display_uri</span>
1222
+ 1042: <span class="ruby-keyword kw">end</span>
1223
1223
  </pre>
1224
1224
  </div>
1225
1225
  </div>
@@ -1242,28 +1242,28 @@ Clones the <a href="URI.html">URI</a> object.
1242
1242
  onclick="toggleCode('M000054-source');return false;">[Source]</a></p>
1243
1243
  <div class="method-source-code" id="M000054-source">
1244
1244
  <pre>
1245
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1059</span>
1246
- 1059: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dup</span>
1247
- 1060: <span class="ruby-identifier">duplicated_scheme</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1248
- 1061: <span class="ruby-identifier">duplicated_user</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1249
- 1062: <span class="ruby-identifier">duplicated_password</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1250
- 1063: <span class="ruby-identifier">duplicated_host</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1251
- 1064: <span class="ruby-identifier">duplicated_port</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">specified_port</span>
1252
- 1065: <span class="ruby-identifier">duplicated_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1253
- 1066: <span class="ruby-identifier">duplicated_query</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1254
- 1067: <span class="ruby-identifier">duplicated_fragment</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fragment</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fragment</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1255
- 1068: <span class="ruby-identifier">duplicated_uri</span> = <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
1256
- 1069: <span class="ruby-identifier">duplicated_scheme</span>,
1257
- 1070: <span class="ruby-identifier">duplicated_user</span>,
1258
- 1071: <span class="ruby-identifier">duplicated_password</span>,
1259
- 1072: <span class="ruby-identifier">duplicated_host</span>,
1260
- 1073: <span class="ruby-identifier">duplicated_port</span>,
1261
- 1074: <span class="ruby-identifier">duplicated_path</span>,
1262
- 1075: <span class="ruby-identifier">duplicated_query</span>,
1263
- 1076: <span class="ruby-identifier">duplicated_fragment</span>
1264
- 1077: )
1265
- 1078: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">duplicated_uri</span>
1266
- 1079: <span class="ruby-keyword kw">end</span>
1245
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1075</span>
1246
+ 1075: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dup</span>
1247
+ 1076: <span class="ruby-identifier">duplicated_scheme</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1248
+ 1077: <span class="ruby-identifier">duplicated_user</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1249
+ 1078: <span class="ruby-identifier">duplicated_password</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1250
+ 1079: <span class="ruby-identifier">duplicated_host</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1251
+ 1080: <span class="ruby-identifier">duplicated_port</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">specified_port</span>
1252
+ 1081: <span class="ruby-identifier">duplicated_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1253
+ 1082: <span class="ruby-identifier">duplicated_query</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1254
+ 1083: <span class="ruby-identifier">duplicated_fragment</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fragment</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fragment</span>.<span class="ruby-identifier">dup</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
1255
+ 1084: <span class="ruby-identifier">duplicated_uri</span> = <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
1256
+ 1085: <span class="ruby-identifier">duplicated_scheme</span>,
1257
+ 1086: <span class="ruby-identifier">duplicated_user</span>,
1258
+ 1087: <span class="ruby-identifier">duplicated_password</span>,
1259
+ 1088: <span class="ruby-identifier">duplicated_host</span>,
1260
+ 1089: <span class="ruby-identifier">duplicated_port</span>,
1261
+ 1090: <span class="ruby-identifier">duplicated_path</span>,
1262
+ 1091: <span class="ruby-identifier">duplicated_query</span>,
1263
+ 1092: <span class="ruby-identifier">duplicated_fragment</span>
1264
+ 1093: )
1265
+ 1094: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">duplicated_uri</span>
1266
+ 1095: <span class="ruby-keyword kw">end</span>
1267
1267
  </pre>
1268
1268
  </div>
1269
1269
  </div>
@@ -1288,11 +1288,11 @@ href="URI.html">URI</a> before doing the comparison.
1288
1288
  onclick="toggleCode('M000053-source');return false;">[Source]</a></p>
1289
1289
  <div class="method-source-code" id="M000053-source">
1290
1290
  <pre>
1291
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1053</span>
1292
- 1053: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eql?</span>(<span class="ruby-identifier">uri</span>)
1293
- 1054: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>)
1294
- 1055: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>
1295
- 1056: <span class="ruby-keyword kw">end</span>
1291
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1069</span>
1292
+ 1069: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eql?</span>(<span class="ruby-identifier">uri</span>)
1293
+ 1070: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>)
1294
+ 1071: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>
1295
+ 1072: <span class="ruby-keyword kw">end</span>
1296
1296
  </pre>
1297
1297
  </div>
1298
1298
  </div>
@@ -1318,11 +1318,11 @@ href="URI.html#M000030">path</a> component.
1318
1318
  onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
1319
1319
  <div class="method-source-code" id="M000033-source">
1320
1320
  <pre>
1321
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 727</span>
1322
- 727: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extname</span>
1323
- 728: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>
1324
- 729: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">extname</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">basename</span>)
1325
- 730: <span class="ruby-keyword kw">end</span>
1321
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 743</span>
1322
+ 743: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extname</span>
1323
+ 744: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>
1324
+ 745: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">extname</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">basename</span>)
1325
+ 746: <span class="ruby-keyword kw">end</span>
1326
1326
  </pre>
1327
1327
  </div>
1328
1328
  </div>
@@ -1390,45 +1390,61 @@ An example:
1390
1390
  268: <span class="ruby-identifier">mapping</span> = {}
1391
1391
  269: <span class="ruby-identifier">variable_regexp</span> =
1392
1392
  270: <span class="ruby-node">/\{([#{Addressable::URI::CharacterClasses::UNRESERVED}]+)\}/</span>
1393
- 271: <span class="ruby-identifier">variables</span> = <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">variable_regexp</span>).<span class="ruby-identifier">flatten</span>
1394
- 272: <span class="ruby-identifier">variables</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">mapping</span>[<span class="ruby-identifier">v</span>] = <span class="ruby-value str">&quot;&quot;</span> }
1395
- 273: <span class="ruby-identifier">escaped_pattern</span> =
1396
- 274: <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-identifier">pattern</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\\\{/</span>, <span class="ruby-value str">&quot;{&quot;</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\\\}/</span>, <span class="ruby-value str">&quot;}&quot;</span>)
1397
- 275: <span class="ruby-identifier">regexp</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">escaped_pattern</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-identifier">variable_regexp</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
1398
- 276: <span class="ruby-identifier">capture_group</span> = <span class="ruby-value str">&quot;(.*)&quot;</span>
1399
- 277:
1400
- 278: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processor</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1401
- 279: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processor</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:match</span>)
1402
- 280: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">variable_regexp</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
1403
- 281: <span class="ruby-identifier">capture_group</span> = <span class="ruby-node">&quot;(#{processor.match(name)})&quot;</span>
1404
- 282: <span class="ruby-keyword kw">end</span>
1405
- 283: <span class="ruby-keyword kw">end</span>
1406
- 284:
1407
- 285: <span class="ruby-identifier">capture_group</span>
1408
- 286: <span class="ruby-keyword kw">end</span>)
1409
- 287: <span class="ruby-identifier">values</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">regexp</span>).<span class="ruby-identifier">flatten</span>
1410
- 288:
1411
- 289: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">variables</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">values</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">variables</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
1412
- 290: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">variables</span>.<span class="ruby-identifier">size</span>
1413
- 291: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">variables</span>[<span class="ruby-identifier">i</span>]
1414
- 292: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">values</span>[<span class="ruby-identifier">i</span>]
1415
- 293:
1416
- 294: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processor</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1417
- 295: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processor</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:restore</span>)
1418
- 296: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">processor</span>.<span class="ruby-identifier">restore</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
1419
- 297: <span class="ruby-keyword kw">end</span>
1420
- 298: <span class="ruby-keyword kw">end</span>
1421
- 299:
1422
- 300: <span class="ruby-identifier">mapping</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">value</span>
1423
- 301: <span class="ruby-keyword kw">end</span>
1424
- 302: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">mapping</span>
1425
- 303: <span class="ruby-keyword kw">elsif</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">pattern</span>
1426
- 304: <span class="ruby-keyword kw">return</span> {}
1427
- 305: <span class="ruby-keyword kw">else</span>
1428
- 306: <span class="ruby-comment cmt"># Pattern failed to match URI.</span>
1429
- 307: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
1430
- 308: <span class="ruby-keyword kw">end</span>
1431
- 309: <span class="ruby-keyword kw">end</span>
1393
+ 271:
1394
+ 272: <span class="ruby-comment cmt"># Get all the variables in the pattern</span>
1395
+ 273: <span class="ruby-identifier">variables</span> = <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">variable_regexp</span>).<span class="ruby-identifier">flatten</span>
1396
+ 274:
1397
+ 275: <span class="ruby-comment cmt"># Initialize all result values to the empty string</span>
1398
+ 276: <span class="ruby-identifier">variables</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">mapping</span>[<span class="ruby-identifier">v</span>] = <span class="ruby-value str">&quot;&quot;</span> }
1399
+ 277:
1400
+ 278: <span class="ruby-comment cmt"># Escape the pattern</span>
1401
+ 279: <span class="ruby-identifier">escaped_pattern</span> =
1402
+ 280: <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-identifier">pattern</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\\\{/</span>, <span class="ruby-value str">&quot;{&quot;</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\\\}/</span>, <span class="ruby-value str">&quot;}&quot;</span>)
1403
+ 281:
1404
+ 282: <span class="ruby-comment cmt"># Create a regular expression that captures the values of the</span>
1405
+ 283: <span class="ruby-comment cmt"># variables in the URI.</span>
1406
+ 284: <span class="ruby-identifier">regexp_string</span> = <span class="ruby-identifier">escaped_pattern</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-identifier">variable_regexp</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
1407
+ 285: <span class="ruby-identifier">capture_group</span> = <span class="ruby-value str">&quot;(.*)&quot;</span>
1408
+ 286:
1409
+ 287: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processor</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1410
+ 288: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processor</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:match</span>)
1411
+ 289: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">variable_regexp</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
1412
+ 290: <span class="ruby-identifier">capture_group</span> = <span class="ruby-node">&quot;(#{processor.match(name)})&quot;</span>
1413
+ 291: <span class="ruby-keyword kw">end</span>
1414
+ 292: <span class="ruby-keyword kw">end</span>
1415
+ 293:
1416
+ 294: <span class="ruby-identifier">capture_group</span>
1417
+ 295: <span class="ruby-keyword kw">end</span>
1418
+ 296:
1419
+ 297: <span class="ruby-comment cmt"># Ensure that the regular expression matches the whole URI.</span>
1420
+ 298: <span class="ruby-identifier">regexp_string</span> = <span class="ruby-node">&quot;^#{regexp_string}$&quot;</span>
1421
+ 299:
1422
+ 300: <span class="ruby-identifier">regexp</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">regexp_string</span>)
1423
+ 301: <span class="ruby-identifier">values</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-identifier">regexp</span>).<span class="ruby-identifier">flatten</span>
1424
+ 302:
1425
+ 303: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">variables</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">values</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">variables</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
1426
+ 304: <span class="ruby-comment cmt"># We have a match.</span>
1427
+ 305: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">variables</span>.<span class="ruby-identifier">size</span>
1428
+ 306: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">variables</span>[<span class="ruby-identifier">i</span>]
1429
+ 307: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">values</span>[<span class="ruby-identifier">i</span>]
1430
+ 308:
1431
+ 309: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processor</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1432
+ 310: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">processor</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:restore</span>)
1433
+ 311: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">processor</span>.<span class="ruby-identifier">restore</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
1434
+ 312: <span class="ruby-keyword kw">end</span>
1435
+ 313: <span class="ruby-keyword kw">end</span>
1436
+ 314:
1437
+ 315: <span class="ruby-identifier">mapping</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">value</span>
1438
+ 316: <span class="ruby-keyword kw">end</span>
1439
+ 317: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">mapping</span>
1440
+ 318: <span class="ruby-keyword kw">elsif</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">pattern</span>
1441
+ 319: <span class="ruby-comment cmt"># The pattern contained no variables but still matched.</span>
1442
+ 320: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">mapping</span>
1443
+ 321: <span class="ruby-keyword kw">else</span>
1444
+ 322: <span class="ruby-comment cmt"># Pattern failed to match URI.</span>
1445
+ 323: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
1446
+ 324: <span class="ruby-keyword kw">end</span>
1447
+ 325: <span class="ruby-keyword kw">end</span>
1432
1448
  </pre>
1433
1449
  </div>
1434
1450
  </div>
@@ -1452,10 +1468,10 @@ href="URI.html">URI</a>.
1452
1468
  onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
1453
1469
  <div class="method-source-code" id="M000036-source">
1454
1470
  <pre>
1455
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 743</span>
1456
- 743: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fragment</span>
1457
- 744: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@fragment</span>
1458
- 745: <span class="ruby-keyword kw">end</span>
1471
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 759</span>
1472
+ 759: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fragment</span>
1473
+ 760: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@fragment</span>
1474
+ 761: <span class="ruby-keyword kw">end</span>
1459
1475
  </pre>
1460
1476
  </div>
1461
1477
  </div>
@@ -1479,10 +1495,10 @@ href="URI.html">URI</a>.
1479
1495
  onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
1480
1496
  <div class="method-source-code" id="M000037-source">
1481
1497
  <pre>
1482
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 748</span>
1483
- 748: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fragment=</span>(<span class="ruby-identifier">new_fragment</span>)
1484
- 749: <span class="ruby-ivar">@fragment</span> = <span class="ruby-identifier">new_fragment</span>
1485
- 750: <span class="ruby-keyword kw">end</span>
1498
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 764</span>
1499
+ 764: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fragment=</span>(<span class="ruby-identifier">new_fragment</span>)
1500
+ 765: <span class="ruby-ivar">@fragment</span> = <span class="ruby-identifier">new_fragment</span>
1501
+ 766: <span class="ruby-keyword kw">end</span>
1486
1502
  </pre>
1487
1503
  </div>
1488
1504
  </div>
@@ -1506,10 +1522,10 @@ href="URI.html">URI</a>.
1506
1522
  onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
1507
1523
  <div class="method-source-code" id="M000021-source">
1508
1524
  <pre>
1509
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 585</span>
1510
- 585: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">host</span>
1511
- 586: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@host</span>
1512
- 587: <span class="ruby-keyword kw">end</span>
1525
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 601</span>
1526
+ 601: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">host</span>
1527
+ 602: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@host</span>
1528
+ 603: <span class="ruby-keyword kw">end</span>
1513
1529
  </pre>
1514
1530
  </div>
1515
1531
  </div>
@@ -1533,16 +1549,16 @@ href="URI.html">URI</a>.
1533
1549
  onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
1534
1550
  <div class="method-source-code" id="M000022-source">
1535
1551
  <pre>
1536
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 590</span>
1537
- 590: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">host=</span>(<span class="ruby-identifier">new_host</span>)
1538
- 591: <span class="ruby-ivar">@host</span> = <span class="ruby-identifier">new_host</span>
1539
- 592:
1540
- 593: <span class="ruby-comment cmt"># Reset dependant values</span>
1541
- 594: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
1542
- 595:
1543
- 596: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
1544
- 597: <span class="ruby-identifier">validate</span>()
1545
- 598: <span class="ruby-keyword kw">end</span>
1552
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 606</span>
1553
+ 606: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">host=</span>(<span class="ruby-identifier">new_host</span>)
1554
+ 607: <span class="ruby-ivar">@host</span> = <span class="ruby-identifier">new_host</span>
1555
+ 608:
1556
+ 609: <span class="ruby-comment cmt"># Reset dependant values</span>
1557
+ 610: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
1558
+ 611:
1559
+ 612: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
1560
+ 613: <span class="ruby-identifier">validate</span>()
1561
+ 614: <span class="ruby-keyword kw">end</span>
1546
1562
  </pre>
1547
1563
  </div>
1548
1564
  </div>
@@ -1566,10 +1582,10 @@ object&#8216;s state.
1566
1582
  onclick="toggleCode('M000057-source');return false;">[Source]</a></p>
1567
1583
  <div class="method-source-code" id="M000057-source">
1568
1584
  <pre>
1569
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1107</span>
1570
- 1107: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inspect</span>
1571
- 1108: <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>)
1572
- 1109: <span class="ruby-keyword kw">end</span>
1585
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1123</span>
1586
+ 1123: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inspect</span>
1587
+ 1124: <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&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>)
1588
+ 1125: <span class="ruby-keyword kw">end</span>
1573
1589
  </pre>
1574
1590
  </div>
1575
1591
  </div>
@@ -1592,14 +1608,14 @@ Returns true if the <a href="URI.html">URI</a> uses an IP-based protocol.
1592
1608
  onclick="toggleCode('M000038-source');return false;">[Source]</a></p>
1593
1609
  <div class="method-source-code" id="M000038-source">
1594
1610
  <pre>
1595
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 753</span>
1596
- 753: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ip_based?</span>
1597
- 754: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>
1598
- 755: <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>(
1599
- 756: <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>)
1600
- 757: <span class="ruby-keyword kw">end</span>
1601
- 758: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1602
- 759: <span class="ruby-keyword kw">end</span>
1611
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 769</span>
1612
+ 769: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ip_based?</span>
1613
+ 770: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>
1614
+ 771: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">ip_based_schemes</span>.<span class="ruby-identifier">include?</span>(
1615
+ 772: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">downcase</span>)
1616
+ 773: <span class="ruby-keyword kw">end</span>
1617
+ 774: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1618
+ 775: <span class="ruby-keyword kw">end</span>
1603
1619
  </pre>
1604
1620
  </div>
1605
1621
  </div>
@@ -1650,10 +1666,10 @@ Merges two URIs together.
1650
1666
  onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
1651
1667
  <div class="method-source-code" id="M000042-source">
1652
1668
  <pre>
1653
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 863</span>
1654
- 863: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">merge</span>(<span class="ruby-identifier">uri</span>)
1655
- 864: <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>
1656
- 865: <span class="ruby-keyword kw">end</span>
1669
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 879</span>
1670
+ 879: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">merge</span>(<span class="ruby-identifier">uri</span>)
1671
+ 880: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">uri</span>
1672
+ 881: <span class="ruby-keyword kw">end</span>
1657
1673
  </pre>
1658
1674
  </div>
1659
1675
  </div>
@@ -1676,10 +1692,10 @@ Destructive form of <a href="URI.html#M000042">merge</a>.
1676
1692
  onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
1677
1693
  <div class="method-source-code" id="M000044-source">
1678
1694
  <pre>
1679
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 869</span>
1680
- 869: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">uri</span>)
1681
- 870: <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>))
1682
- 871: <span class="ruby-keyword kw">end</span>
1695
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 885</span>
1696
+ 885: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">uri</span>)
1697
+ 886: <span class="ruby-identifier">replace_self</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">uri</span>))
1698
+ 887: <span class="ruby-keyword kw">end</span>
1683
1699
  </pre>
1684
1700
  </div>
1685
1701
  </div>
@@ -1709,75 +1725,75 @@ multiple times.
1709
1725
  onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
1710
1726
  <div class="method-source-code" id="M000048-source">
1711
1727
  <pre>
1712
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 940</span>
1713
- 940: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">normalize</span>
1714
- 941: <span class="ruby-identifier">normalized_scheme</span> = <span class="ruby-keyword kw">nil</span>
1715
- 942: <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>
1716
- 943: <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>
1717
- 944: <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>
1718
- 945: <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>
1719
- 946: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">parse</span>(
1720
- 947: <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>
1721
- 948: <span class="ruby-keyword kw">end</span>
1722
- 949: <span class="ruby-keyword kw">end</span>
1723
- 950: <span class="ruby-identifier">normalized_user</span> = <span class="ruby-keyword kw">nil</span>
1724
- 951: <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>
1725
- 952: <span class="ruby-identifier">normalized_password</span> = <span class="ruby-keyword kw">nil</span>
1726
- 953: <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>
1727
- 954:
1728
- 955: <span class="ruby-comment cmt"># If we are using http or https and user/password are blank,</span>
1729
- 956: <span class="ruby-comment cmt"># then we remove them</span>
1730
- 957: <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>
1731
- 958: (<span class="ruby-operator">!</span><span class="ruby-identifier">normalized_password</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">normalized_password</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;&quot;</span>)
1732
- 959: <span class="ruby-identifier">normalized_user</span> = <span class="ruby-keyword kw">nil</span>
1733
- 960: <span class="ruby-identifier">normalized_password</span> = <span class="ruby-keyword kw">nil</span>
1734
- 961: <span class="ruby-keyword kw">end</span>
1735
- 962:
1736
- 963: <span class="ruby-identifier">normalized_host</span> = <span class="ruby-keyword kw">nil</span>
1737
- 964: <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>
1738
- 965: <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>
1739
- 966: <span class="ruby-keyword kw">begin</span>
1740
- 967: <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>)
1741
- 968: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
1742
- 969: <span class="ruby-keyword kw">nil</span>
1743
- 970: <span class="ruby-keyword kw">end</span>
1744
- 971: <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>
1745
- 972: <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>]
1746
- 973: <span class="ruby-keyword kw">end</span>
1747
- 974: <span class="ruby-keyword kw">end</span>
1748
- 975:
1749
- 976: <span class="ruby-identifier">normalized_port</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">port</span>
1750
- 977: <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>
1751
- 978: <span class="ruby-identifier">normalized_port</span> = <span class="ruby-keyword kw">nil</span>
1752
- 979: <span class="ruby-keyword kw">end</span>
1753
- 980: <span class="ruby-identifier">normalized_path</span> = <span class="ruby-keyword kw">nil</span>
1754
- 981: <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>
1755
- 982: <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>
1756
- 983: <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>)
1757
- 984: <span class="ruby-keyword kw">end</span>
1758
- 985: <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>
1759
- 986: <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>)
1760
- 987: <span class="ruby-identifier">normalized_path</span> = <span class="ruby-value str">&quot;/&quot;</span>
1761
- 988: <span class="ruby-keyword kw">end</span>
1762
- 989: <span class="ruby-keyword kw">end</span>
1763
- 990:
1764
- 991: <span class="ruby-identifier">normalized_query</span> = <span class="ruby-keyword kw">nil</span>
1765
- 992: <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>
1766
- 993:
1767
- 994: <span class="ruby-identifier">normalized_fragment</span> = <span class="ruby-keyword kw">nil</span>
1768
- 995: <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>
1769
- 996: <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>(
1770
- 997: <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>(
1771
- 998: <span class="ruby-identifier">normalized_scheme</span>,
1772
- 999: <span class="ruby-identifier">normalized_user</span>,
1773
- 1000: <span class="ruby-identifier">normalized_password</span>,
1774
- 1001: <span class="ruby-identifier">normalized_host</span>,
1775
- 1002: <span class="ruby-identifier">normalized_port</span>,
1776
- 1003: <span class="ruby-identifier">normalized_path</span>,
1777
- 1004: <span class="ruby-identifier">normalized_query</span>,
1778
- 1005: <span class="ruby-identifier">normalized_fragment</span>
1779
- 1006: )))
1780
- 1007: <span class="ruby-keyword kw">end</span>
1728
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 956</span>
1729
+ 956: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">normalize</span>
1730
+ 957: <span class="ruby-identifier">normalized_scheme</span> = <span class="ruby-keyword kw">nil</span>
1731
+ 958: <span class="ruby-identifier">normalized_scheme</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1732
+ 959: <span class="ruby-identifier">normalized_scheme</span> = <span class="ruby-value str">&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>
1733
+ 960: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_scheme</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;feed&quot;</span>
1734
+ 961: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^feed:\/*http:\/*/</span>
1735
+ 962: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">parse</span>(
1736
+ 963: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/^feed:\/*(http:\/*.*)/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]).<span class="ruby-identifier">normalize</span>
1737
+ 964: <span class="ruby-keyword kw">end</span>
1738
+ 965: <span class="ruby-keyword kw">end</span>
1739
+ 966: <span class="ruby-identifier">normalized_user</span> = <span class="ruby-keyword kw">nil</span>
1740
+ 967: <span class="ruby-identifier">normalized_user</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>.<span class="ruby-identifier">strip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1741
+ 968: <span class="ruby-identifier">normalized_password</span> = <span class="ruby-keyword kw">nil</span>
1742
+ 969: <span class="ruby-identifier">normalized_password</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>.<span class="ruby-identifier">strip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1743
+ 970:
1744
+ 971: <span class="ruby-comment cmt"># If we are using http or https and user/password are blank,</span>
1745
+ 972: <span class="ruby-comment cmt"># then we remove them</span>
1746
+ 973: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_scheme</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/https?/</span> <span class="ruby-operator">&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>
1747
+ 974: (<span class="ruby-operator">!</span><span class="ruby-identifier">normalized_password</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">normalized_password</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;&quot;</span>)
1748
+ 975: <span class="ruby-identifier">normalized_user</span> = <span class="ruby-keyword kw">nil</span>
1749
+ 976: <span class="ruby-identifier">normalized_password</span> = <span class="ruby-keyword kw">nil</span>
1750
+ 977: <span class="ruby-keyword kw">end</span>
1751
+ 978:
1752
+ 979: <span class="ruby-identifier">normalized_host</span> = <span class="ruby-keyword kw">nil</span>
1753
+ 980: <span class="ruby-identifier">normalized_host</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1754
+ 981: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_host</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1755
+ 982: <span class="ruby-keyword kw">begin</span>
1756
+ 983: <span class="ruby-identifier">normalized_host</span> = <span class="ruby-constant">URI</span><span class="ruby-operator">::</span><span class="ruby-constant">IDNA</span>.<span class="ruby-identifier">to_ascii</span>(<span class="ruby-identifier">normalized_host</span>)
1757
+ 984: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
1758
+ 985: <span class="ruby-keyword kw">nil</span>
1759
+ 986: <span class="ruby-keyword kw">end</span>
1760
+ 987: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_host</span>[<span class="ruby-value">-1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;.&quot;</span>
1761
+ 988: <span class="ruby-identifier">normalized_host</span> = <span class="ruby-identifier">normalized_host</span>[<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-value">-1</span>]
1762
+ 989: <span class="ruby-keyword kw">end</span>
1763
+ 990: <span class="ruby-keyword kw">end</span>
1764
+ 991:
1765
+ 992: <span class="ruby-identifier">normalized_port</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">port</span>
1766
+ 993: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">scheme_mapping</span>[<span class="ruby-identifier">normalized_scheme</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">normalized_port</span>
1767
+ 994: <span class="ruby-identifier">normalized_port</span> = <span class="ruby-keyword kw">nil</span>
1768
+ 995: <span class="ruby-keyword kw">end</span>
1769
+ 996: <span class="ruby-identifier">normalized_path</span> = <span class="ruby-keyword kw">nil</span>
1770
+ 997: <span class="ruby-identifier">normalized_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>.<span class="ruby-identifier">strip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1771
+ 998: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_path</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1772
+ 999: <span class="ruby-identifier">normalized_path</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">normalize_path</span>(<span class="ruby-identifier">normalized_path</span>)
1773
+ 1000: <span class="ruby-keyword kw">end</span>
1774
+ 1001: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_path</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;&quot;</span>
1775
+ 1002: <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>)
1776
+ 1003: <span class="ruby-identifier">normalized_path</span> = <span class="ruby-value str">&quot;/&quot;</span>
1777
+ 1004: <span class="ruby-keyword kw">end</span>
1778
+ 1005: <span class="ruby-keyword kw">end</span>
1779
+ 1006:
1780
+ 1007: <span class="ruby-identifier">normalized_query</span> = <span class="ruby-keyword kw">nil</span>
1781
+ 1008: <span class="ruby-identifier">normalized_query</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">strip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1782
+ 1009:
1783
+ 1010: <span class="ruby-identifier">normalized_fragment</span> = <span class="ruby-keyword kw">nil</span>
1784
+ 1011: <span class="ruby-identifier">normalized_fragment</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fragment</span>.<span class="ruby-identifier">strip</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fragment</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1785
+ 1012: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(
1786
+ 1013: <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">normalized_encode</span>(<span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
1787
+ 1014: <span class="ruby-identifier">normalized_scheme</span>,
1788
+ 1015: <span class="ruby-identifier">normalized_user</span>,
1789
+ 1016: <span class="ruby-identifier">normalized_password</span>,
1790
+ 1017: <span class="ruby-identifier">normalized_host</span>,
1791
+ 1018: <span class="ruby-identifier">normalized_port</span>,
1792
+ 1019: <span class="ruby-identifier">normalized_path</span>,
1793
+ 1020: <span class="ruby-identifier">normalized_query</span>,
1794
+ 1021: <span class="ruby-identifier">normalized_fragment</span>
1795
+ 1022: )))
1796
+ 1023: <span class="ruby-keyword kw">end</span>
1781
1797
  </pre>
1782
1798
  </div>
1783
1799
  </div>
@@ -1800,10 +1816,10 @@ Destructively normalizes this <a href="URI.html">URI</a> object.
1800
1816
  onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
1801
1817
  <div class="method-source-code" id="M000049-source">
1802
1818
  <pre>
1803
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1010</span>
1804
- 1010: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">normalize!</span>
1805
- 1011: <span class="ruby-identifier">replace_self</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>)
1806
- 1012: <span class="ruby-keyword kw">end</span>
1819
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1026</span>
1820
+ 1026: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">normalize!</span>
1821
+ 1027: <span class="ruby-identifier">replace_self</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>)
1822
+ 1028: <span class="ruby-keyword kw">end</span>
1807
1823
  </pre>
1808
1824
  </div>
1809
1825
  </div>
@@ -1827,10 +1843,10 @@ href="URI.html">URI</a>.
1827
1843
  onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
1828
1844
  <div class="method-source-code" id="M000017-source">
1829
1845
  <pre>
1830
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 531</span>
1831
- 531: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">password</span>
1832
- 532: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@password</span>
1833
- 533: <span class="ruby-keyword kw">end</span>
1846
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 547</span>
1847
+ 547: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">password</span>
1848
+ 548: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@password</span>
1849
+ 549: <span class="ruby-keyword kw">end</span>
1834
1850
  </pre>
1835
1851
  </div>
1836
1852
  </div>
@@ -1854,22 +1870,22 @@ href="URI.html">URI</a>.
1854
1870
  onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
1855
1871
  <div class="method-source-code" id="M000018-source">
1856
1872
  <pre>
1857
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 536</span>
1858
- 536: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">password=</span>(<span class="ruby-identifier">new_password</span>)
1859
- 537: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">new_password</span>
1860
- 538:
1861
- 539: <span class="ruby-comment cmt"># You can't have a nil user with a non-nil password</span>
1862
- 540: <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>
1863
- 541: <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>
1864
- 542: <span class="ruby-keyword kw">end</span>
1865
- 543:
1866
- 544: <span class="ruby-comment cmt"># Reset dependant values</span>
1867
- 545: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-keyword kw">nil</span>
1868
- 546: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
1869
- 547:
1870
- 548: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
1871
- 549: <span class="ruby-identifier">validate</span>()
1872
- 550: <span class="ruby-keyword kw">end</span>
1873
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 552</span>
1874
+ 552: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">password=</span>(<span class="ruby-identifier">new_password</span>)
1875
+ 553: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">new_password</span>
1876
+ 554:
1877
+ 555: <span class="ruby-comment cmt"># You can't have a nil user with a non-nil password</span>
1878
+ 556: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@password</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
1879
+ 557: <span class="ruby-ivar">@user</span> = <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@user</span>.<span class="ruby-identifier">nil?</span>
1880
+ 558: <span class="ruby-keyword kw">end</span>
1881
+ 559:
1882
+ 560: <span class="ruby-comment cmt"># Reset dependant values</span>
1883
+ 561: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-keyword kw">nil</span>
1884
+ 562: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
1885
+ 563:
1886
+ 564: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
1887
+ 565: <span class="ruby-identifier">validate</span>()
1888
+ 566: <span class="ruby-keyword kw">end</span>
1873
1889
  </pre>
1874
1890
  </div>
1875
1891
  </div>
@@ -1893,10 +1909,10 @@ href="URI.html">URI</a>.
1893
1909
  onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
1894
1910
  <div class="method-source-code" id="M000030-source">
1895
1911
  <pre>
1896
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 708</span>
1897
- 708: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">path</span>
1898
- 709: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@path</span>
1899
- 710: <span class="ruby-keyword kw">end</span>
1912
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 724</span>
1913
+ 724: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">path</span>
1914
+ 725: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@path</span>
1915
+ 726: <span class="ruby-keyword kw">end</span>
1900
1916
  </pre>
1901
1917
  </div>
1902
1918
  </div>
@@ -1920,10 +1936,10 @@ href="URI.html">URI</a>.
1920
1936
  onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
1921
1937
  <div class="method-source-code" id="M000031-source">
1922
1938
  <pre>
1923
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 713</span>
1924
- 713: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">path=</span>(<span class="ruby-identifier">new_path</span>)
1925
- 714: <span class="ruby-ivar">@path</span> = (<span class="ruby-identifier">new_path</span> <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>)
1926
- 715: <span class="ruby-keyword kw">end</span>
1939
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 729</span>
1940
+ 729: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">path=</span>(<span class="ruby-identifier">new_path</span>)
1941
+ 730: <span class="ruby-ivar">@path</span> = (<span class="ruby-identifier">new_path</span> <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>)
1942
+ 731: <span class="ruby-keyword kw">end</span>
1927
1943
  </pre>
1928
1944
  </div>
1929
1945
  </div>
@@ -1952,20 +1968,20 @@ href="URI.html">URI</a>.
1952
1968
  onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
1953
1969
  <div class="method-source-code" id="M000027-source">
1954
1970
  <pre>
1955
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 676</span>
1956
- 676: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">port</span>
1957
- 677: <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>
1958
- 678: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>
1959
- 679: <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>]
1960
- 680: <span class="ruby-keyword kw">else</span>
1961
- 681: <span class="ruby-ivar">@port</span> = <span class="ruby-keyword kw">nil</span>
1962
- 682: <span class="ruby-keyword kw">end</span>
1963
- 683: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@port</span>
1964
- 684: <span class="ruby-keyword kw">else</span>
1965
- 685: <span class="ruby-ivar">@port</span> = <span class="ruby-ivar">@port</span>.<span class="ruby-identifier">to_i</span>
1966
- 686: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@port</span>
1967
- 687: <span class="ruby-keyword kw">end</span>
1968
- 688: <span class="ruby-keyword kw">end</span>
1971
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 692</span>
1972
+ 692: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">port</span>
1973
+ 693: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@port</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1974
+ 694: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>
1975
+ 695: <span class="ruby-ivar">@port</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">scheme_mapping</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">downcase</span>]
1976
+ 696: <span class="ruby-keyword kw">else</span>
1977
+ 697: <span class="ruby-ivar">@port</span> = <span class="ruby-keyword kw">nil</span>
1978
+ 698: <span class="ruby-keyword kw">end</span>
1979
+ 699: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@port</span>
1980
+ 700: <span class="ruby-keyword kw">else</span>
1981
+ 701: <span class="ruby-ivar">@port</span> = <span class="ruby-ivar">@port</span>.<span class="ruby-identifier">to_i</span>
1982
+ 702: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@port</span>
1983
+ 703: <span class="ruby-keyword kw">end</span>
1984
+ 704: <span class="ruby-keyword kw">end</span>
1969
1985
  </pre>
1970
1986
  </div>
1971
1987
  </div>
@@ -1989,12 +2005,12 @@ href="URI.html">URI</a>.
1989
2005
  onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
1990
2006
  <div class="method-source-code" id="M000028-source">
1991
2007
  <pre>
1992
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 691</span>
1993
- 691: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">port=</span>(<span class="ruby-identifier">new_port</span>)
1994
- 692: <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>
1995
- 693: <span class="ruby-ivar">@specified_port</span> = <span class="ruby-ivar">@port</span>
1996
- 694: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
1997
- 695: <span class="ruby-keyword kw">end</span>
2008
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 707</span>
2009
+ 707: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">port=</span>(<span class="ruby-identifier">new_port</span>)
2010
+ 708: <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">new_port</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">to_i</span>
2011
+ 709: <span class="ruby-ivar">@specified_port</span> = <span class="ruby-ivar">@port</span>
2012
+ 710: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
2013
+ 711: <span class="ruby-keyword kw">end</span>
1998
2014
  </pre>
1999
2015
  </div>
2000
2016
  </div>
@@ -2018,10 +2034,10 @@ href="URI.html">URI</a>.
2018
2034
  onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
2019
2035
  <div class="method-source-code" id="M000034-source">
2020
2036
  <pre>
2021
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 733</span>
2022
- 733: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query</span>
2023
- 734: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@query</span>
2024
- 735: <span class="ruby-keyword kw">end</span>
2037
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 749</span>
2038
+ 749: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query</span>
2039
+ 750: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@query</span>
2040
+ 751: <span class="ruby-keyword kw">end</span>
2025
2041
  </pre>
2026
2042
  </div>
2027
2043
  </div>
@@ -2045,10 +2061,10 @@ href="URI.html">URI</a>.
2045
2061
  onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
2046
2062
  <div class="method-source-code" id="M000035-source">
2047
2063
  <pre>
2048
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 738</span>
2049
- 738: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query=</span>(<span class="ruby-identifier">new_query</span>)
2050
- 739: <span class="ruby-ivar">@query</span> = <span class="ruby-identifier">new_query</span>
2051
- 740: <span class="ruby-keyword kw">end</span>
2064
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 754</span>
2065
+ 754: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query=</span>(<span class="ruby-identifier">new_query</span>)
2066
+ 755: <span class="ruby-ivar">@query</span> = <span class="ruby-identifier">new_query</span>
2067
+ 756: <span class="ruby-keyword kw">end</span>
2052
2068
  </pre>
2053
2069
  </div>
2054
2070
  </div>
@@ -2071,10 +2087,10 @@ Returns true if this <a href="URI.html">URI</a> is known to be relative.
2071
2087
  onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
2072
2088
  <div class="method-source-code" id="M000039-source">
2073
2089
  <pre>
2074
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 762</span>
2075
- 762: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">relative?</span>
2076
- 763: <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>
2077
- 764: <span class="ruby-keyword kw">end</span>
2090
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 778</span>
2091
+ 778: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">relative?</span>
2092
+ 779: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>.<span class="ruby-identifier">nil?</span>
2093
+ 780: <span class="ruby-keyword kw">end</span>
2078
2094
  </pre>
2079
2095
  </div>
2080
2096
  </div>
@@ -2100,55 +2116,55 @@ necessary.
2100
2116
  onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
2101
2117
  <div class="method-source-code" id="M000046-source">
2102
2118
  <pre>
2103
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 877</span>
2104
- 877: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">route_from</span>(<span class="ruby-identifier">uri</span>)
2105
- 878: <span class="ruby-identifier">uri</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>).<span class="ruby-identifier">normalize</span>
2106
- 879: <span class="ruby-identifier">normalized_self</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>
2107
- 880: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">relative?</span>
2108
- 881: <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>
2109
- 882: <span class="ruby-keyword kw">end</span>
2110
- 883: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">relative?</span>
2111
- 884: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Expected absolute URI, got: #{uri.to_s}&quot;</span>
2112
- 885: <span class="ruby-keyword kw">end</span>
2113
- 886: <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>
2114
- 887: <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>)
2115
- 888: <span class="ruby-keyword kw">end</span>
2116
- 889: <span class="ruby-identifier">segments</span> = <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">to_hash</span>
2117
- 890: <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>
2118
- 891: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:scheme</span>] = <span class="ruby-keyword kw">nil</span>
2119
- 892: <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>
2120
- 893: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:user</span>] = <span class="ruby-keyword kw">nil</span>
2121
- 894: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:password</span>] = <span class="ruby-keyword kw">nil</span>
2122
- 895: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>] = <span class="ruby-keyword kw">nil</span>
2123
- 896: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:port</span>] = <span class="ruby-keyword kw">nil</span>
2124
- 897: <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>
2125
- 898: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:path</span>] = <span class="ruby-keyword kw">nil</span>
2126
- 899: <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>
2127
- 900: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:query</span>] = <span class="ruby-keyword kw">nil</span>
2128
- 901: <span class="ruby-keyword kw">end</span>
2129
- 902: <span class="ruby-keyword kw">else</span>
2130
- 903: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">&quot;/&quot;</span>
2131
- 904: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:path</span>].<span class="ruby-identifier">gsub!</span>(
2132
- 905: <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;^&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>)), <span class="ruby-value str">&quot;&quot;</span>)
2133
- 906: <span class="ruby-keyword kw">end</span>
2134
- 907: <span class="ruby-keyword kw">end</span>
2135
- 908: <span class="ruby-keyword kw">end</span>
2136
- 909: <span class="ruby-keyword kw">end</span>
2137
- 910: <span class="ruby-comment cmt"># Avoid network-path references.</span>
2138
- 911: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
2139
- 912: <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>
2140
- 913: <span class="ruby-keyword kw">end</span>
2141
- 914: <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>(
2142
- 915: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:scheme</span>],
2143
- 916: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:user</span>],
2144
- 917: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:password</span>],
2145
- 918: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>],
2146
- 919: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:port</span>],
2147
- 920: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:path</span>],
2148
- 921: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:query</span>],
2149
- 922: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:fragment</span>]
2150
- 923: )
2151
- 924: <span class="ruby-keyword kw">end</span>
2119
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 893</span>
2120
+ 893: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">route_from</span>(<span class="ruby-identifier">uri</span>)
2121
+ 894: <span class="ruby-identifier">uri</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>).<span class="ruby-identifier">normalize</span>
2122
+ 895: <span class="ruby-identifier">normalized_self</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">normalize</span>
2123
+ 896: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">relative?</span>
2124
+ 897: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Expected absolute URI, got: #{self.to_s}&quot;</span>
2125
+ 898: <span class="ruby-keyword kw">end</span>
2126
+ 899: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">relative?</span>
2127
+ 900: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Expected absolute URI, got: #{uri.to_s}&quot;</span>
2128
+ 901: <span class="ruby-keyword kw">end</span>
2129
+ 902: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_self</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>
2130
+ 903: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-node">&quot;##{normalized_self.fragment}&quot;</span>)
2131
+ 904: <span class="ruby-keyword kw">end</span>
2132
+ 905: <span class="ruby-identifier">segments</span> = <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">to_hash</span>
2133
+ 906: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">scheme</span>
2134
+ 907: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:scheme</span>] = <span class="ruby-keyword kw">nil</span>
2135
+ 908: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">authority</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">authority</span>
2136
+ 909: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:user</span>] = <span class="ruby-keyword kw">nil</span>
2137
+ 910: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:password</span>] = <span class="ruby-keyword kw">nil</span>
2138
+ 911: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>] = <span class="ruby-keyword kw">nil</span>
2139
+ 912: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:port</span>] = <span class="ruby-keyword kw">nil</span>
2140
+ 913: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>
2141
+ 914: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:path</span>] = <span class="ruby-keyword kw">nil</span>
2142
+ 915: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">query</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">query</span>
2143
+ 916: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:query</span>] = <span class="ruby-keyword kw">nil</span>
2144
+ 917: <span class="ruby-keyword kw">end</span>
2145
+ 918: <span class="ruby-keyword kw">else</span>
2146
+ 919: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">&quot;/&quot;</span>
2147
+ 920: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:path</span>].<span class="ruby-identifier">gsub!</span>(
2148
+ 921: <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;^&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>)), <span class="ruby-value str">&quot;&quot;</span>)
2149
+ 922: <span class="ruby-keyword kw">end</span>
2150
+ 923: <span class="ruby-keyword kw">end</span>
2151
+ 924: <span class="ruby-keyword kw">end</span>
2152
+ 925: <span class="ruby-keyword kw">end</span>
2153
+ 926: <span class="ruby-comment cmt"># Avoid network-path references.</span>
2154
+ 927: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
2155
+ 928: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:scheme</span>] = <span class="ruby-identifier">normalized_self</span>.<span class="ruby-identifier">scheme</span>
2156
+ 929: <span class="ruby-keyword kw">end</span>
2157
+ 930: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">Addressable</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(
2158
+ 931: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:scheme</span>],
2159
+ 932: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:user</span>],
2160
+ 933: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:password</span>],
2161
+ 934: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:host</span>],
2162
+ 935: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:port</span>],
2163
+ 936: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:path</span>],
2164
+ 937: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:query</span>],
2165
+ 938: <span class="ruby-identifier">segments</span>[<span class="ruby-identifier">:fragment</span>]
2166
+ 939: )
2167
+ 940: <span class="ruby-keyword kw">end</span>
2152
2168
  </pre>
2153
2169
  </div>
2154
2170
  </div>
@@ -2174,10 +2190,10 @@ necessary.
2174
2190
  onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
2175
2191
  <div class="method-source-code" id="M000047-source">
2176
2192
  <pre>
2177
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 929</span>
2178
- 929: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">route_to</span>(<span class="ruby-identifier">uri</span>)
2179
- 930: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>).<span class="ruby-identifier">route_from</span>(<span class="ruby-keyword kw">self</span>)
2180
- 931: <span class="ruby-keyword kw">end</span>
2193
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 945</span>
2194
+ 945: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">route_to</span>(<span class="ruby-identifier">uri</span>)
2195
+ 946: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>).<span class="ruby-identifier">route_from</span>(<span class="ruby-keyword kw">self</span>)
2196
+ 947: <span class="ruby-keyword kw">end</span>
2181
2197
  </pre>
2182
2198
  </div>
2183
2199
  </div>
@@ -2201,10 +2217,10 @@ href="URI.html">URI</a>.
2201
2217
  onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
2202
2218
  <div class="method-source-code" id="M000013-source">
2203
2219
  <pre>
2204
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 499</span>
2205
- 499: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scheme</span>
2206
- 500: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@scheme</span>
2207
- 501: <span class="ruby-keyword kw">end</span>
2220
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 515</span>
2221
+ 515: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scheme</span>
2222
+ 516: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@scheme</span>
2223
+ 517: <span class="ruby-keyword kw">end</span>
2208
2224
  </pre>
2209
2225
  </div>
2210
2226
  </div>
@@ -2228,10 +2244,10 @@ href="URI.html">URI</a>.)
2228
2244
  onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
2229
2245
  <div class="method-source-code" id="M000014-source">
2230
2246
  <pre>
2231
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 504</span>
2232
- 504: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scheme=</span>(<span class="ruby-identifier">new_scheme</span>)
2233
- 505: <span class="ruby-ivar">@scheme</span> = <span class="ruby-identifier">new_scheme</span>
2234
- 506: <span class="ruby-keyword kw">end</span>
2247
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 520</span>
2248
+ 520: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scheme=</span>(<span class="ruby-identifier">new_scheme</span>)
2249
+ 521: <span class="ruby-ivar">@scheme</span> = <span class="ruby-identifier">new_scheme</span>
2250
+ 522: <span class="ruby-keyword kw">end</span>
2235
2251
  </pre>
2236
2252
  </div>
2237
2253
  </div>
@@ -2255,15 +2271,15 @@ specified in the <a href="URI.html">URI</a> string.
2255
2271
  onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
2256
2272
  <div class="method-source-code" id="M000029-source">
2257
2273
  <pre>
2258
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 698</span>
2259
- 698: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">specified_port</span>
2260
- 699: <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>
2261
- 700: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">port</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
2262
- 701: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
2263
- 702: <span class="ruby-keyword kw">else</span>
2264
- 703: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">port</span>
2265
- 704: <span class="ruby-keyword kw">end</span>
2266
- 705: <span class="ruby-keyword kw">end</span>
2274
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 714</span>
2275
+ 714: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">specified_port</span>
2276
+ 715: <span class="ruby-identifier">port</span> = <span class="ruby-ivar">@specified_port</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">to_i</span>
2277
+ 716: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">port</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
2278
+ 717: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
2279
+ 718: <span class="ruby-keyword kw">else</span>
2280
+ 719: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">port</span>
2281
+ 720: <span class="ruby-keyword kw">end</span>
2282
+ 721: <span class="ruby-keyword kw">end</span>
2267
2283
  </pre>
2268
2284
  </div>
2269
2285
  </div>
@@ -2286,19 +2302,19 @@ Returns a Hash of the <a href="URI.html">URI</a> segments.
2286
2302
  onclick="toggleCode('M000056-source');return false;">[Source]</a></p>
2287
2303
  <div class="method-source-code" id="M000056-source">
2288
2304
  <pre>
2289
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1093</span>
2290
- 1093: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_hash</span>
2291
- 1094: <span class="ruby-keyword kw">return</span> {
2292
- 1095: <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>,
2293
- 1096: <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>,
2294
- 1097: <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>,
2295
- 1098: <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>,
2296
- 1099: <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>,
2297
- 1100: <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>,
2298
- 1101: <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>,
2299
- 1102: <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>
2300
- 1103: }
2301
- 1104: <span class="ruby-keyword kw">end</span>
2305
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1109</span>
2306
+ 1109: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_hash</span>
2307
+ 1110: <span class="ruby-keyword kw">return</span> {
2308
+ 1111: <span class="ruby-identifier">:scheme</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">scheme</span>,
2309
+ 1112: <span class="ruby-identifier">:user</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>,
2310
+ 1113: <span class="ruby-identifier">:password</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>,
2311
+ 1114: <span class="ruby-identifier">:host</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host</span>,
2312
+ 1115: <span class="ruby-identifier">:port</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">specified_port</span>,
2313
+ 1116: <span class="ruby-identifier">:path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">path</span>,
2314
+ 1117: <span class="ruby-identifier">:query</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span>,
2315
+ 1118: <span class="ruby-identifier">:fragment</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fragment</span>
2316
+ 1119: }
2317
+ 1120: <span class="ruby-keyword kw">end</span>
2302
2318
  </pre>
2303
2319
  </div>
2304
2320
  </div>
@@ -2321,16 +2337,16 @@ Returns the assembled <a href="URI.html">URI</a> as a string.
2321
2337
  onclick="toggleCode('M000055-source');return false;">[Source]</a></p>
2322
2338
  <div class="method-source-code" id="M000055-source">
2323
2339
  <pre>
2324
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1082</span>
2325
- 1082: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
2326
- 1083: <span class="ruby-identifier">uri_string</span> = <span class="ruby-value str">&quot;&quot;</span>
2327
- 1084: <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>
2328
- 1085: <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>
2329
- 1086: <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>
2330
- 1087: <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>
2331
- 1088: <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>
2332
- 1089: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">uri_string</span>
2333
- 1090: <span class="ruby-keyword kw">end</span>
2340
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 1098</span>
2341
+ 1098: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
2342
+ 1099: <span class="ruby-identifier">uri_string</span> = <span class="ruby-value str">&quot;&quot;</span>
2343
+ 1100: <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>
2344
+ 1101: <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>
2345
+ 1102: <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>
2346
+ 1103: <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>
2347
+ 1104: <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>
2348
+ 1105: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">uri_string</span>
2349
+ 1106: <span class="ruby-keyword kw">end</span>
2334
2350
  </pre>
2335
2351
  </div>
2336
2352
  </div>
@@ -2354,10 +2370,10 @@ href="URI.html">URI</a>.
2354
2370
  onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
2355
2371
  <div class="method-source-code" id="M000015-source">
2356
2372
  <pre>
2357
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 509</span>
2358
- 509: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">user</span>
2359
- 510: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@user</span>
2360
- 511: <span class="ruby-keyword kw">end</span>
2373
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 525</span>
2374
+ 525: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">user</span>
2375
+ 526: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@user</span>
2376
+ 527: <span class="ruby-keyword kw">end</span>
2361
2377
  </pre>
2362
2378
  </div>
2363
2379
  </div>
@@ -2381,22 +2397,22 @@ href="URI.html">URI</a>.
2381
2397
  onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
2382
2398
  <div class="method-source-code" id="M000016-source">
2383
2399
  <pre>
2384
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 514</span>
2385
- 514: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">user=</span>(<span class="ruby-identifier">new_user</span>)
2386
- 515: <span class="ruby-ivar">@user</span> = <span class="ruby-identifier">new_user</span>
2387
- 516:
2388
- 517: <span class="ruby-comment cmt"># You can't have a nil user with a non-nil password</span>
2389
- 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>
2390
- 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>
2391
- 520: <span class="ruby-keyword kw">end</span>
2392
- 521:
2393
- 522: <span class="ruby-comment cmt"># Reset dependant values</span>
2394
- 523: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-keyword kw">nil</span>
2395
- 524: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
2396
- 525:
2397
- 526: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
2398
- 527: <span class="ruby-identifier">validate</span>()
2399
- 528: <span class="ruby-keyword kw">end</span>
2400
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 530</span>
2401
+ 530: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">user=</span>(<span class="ruby-identifier">new_user</span>)
2402
+ 531: <span class="ruby-ivar">@user</span> = <span class="ruby-identifier">new_user</span>
2403
+ 532:
2404
+ 533: <span class="ruby-comment cmt"># You can't have a nil user with a non-nil password</span>
2405
+ 534: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@password</span> <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
2406
+ 535: <span class="ruby-ivar">@user</span> = <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@user</span>.<span class="ruby-identifier">nil?</span>
2407
+ 536: <span class="ruby-keyword kw">end</span>
2408
+ 537:
2409
+ 538: <span class="ruby-comment cmt"># Reset dependant values</span>
2410
+ 539: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-keyword kw">nil</span>
2411
+ 540: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
2412
+ 541:
2413
+ 542: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
2414
+ 543: <span class="ruby-identifier">validate</span>()
2415
+ 544: <span class="ruby-keyword kw">end</span>
2400
2416
  </pre>
2401
2417
  </div>
2402
2418
  </div>
@@ -2420,21 +2436,21 @@ this <a href="URI.html">URI</a>.
2420
2436
  onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
2421
2437
  <div class="method-source-code" id="M000019-source">
2422
2438
  <pre>
2423
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 553</span>
2424
- 553: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">userinfo</span>
2425
- 554: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-keyword kw">defined?</span>(<span class="ruby-ivar">@userinfo</span>) <span class="ruby-operator">||</span> <span class="ruby-ivar">@userinfo</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
2426
- 555: <span class="ruby-identifier">current_user</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>
2427
- 556: <span class="ruby-identifier">current_password</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>
2428
- 557: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">current_user</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">current_password</span>
2429
- 558: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-keyword kw">nil</span>
2430
- 559: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">current_user</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">current_password</span>
2431
- 560: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-node">&quot;#{current_user}:#{current_password}&quot;</span>
2432
- 561: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">current_user</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">current_password</span>
2433
- 562: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-node">&quot;#{current_user}&quot;</span>
2434
- 563: <span class="ruby-keyword kw">end</span>
2435
- 564: <span class="ruby-keyword kw">end</span>
2436
- 565: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@userinfo</span>
2437
- 566: <span class="ruby-keyword kw">end</span>
2439
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 569</span>
2440
+ 569: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">userinfo</span>
2441
+ 570: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-keyword kw">defined?</span>(<span class="ruby-ivar">@userinfo</span>) <span class="ruby-operator">||</span> <span class="ruby-ivar">@userinfo</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
2442
+ 571: <span class="ruby-identifier">current_user</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span>
2443
+ 572: <span class="ruby-identifier">current_password</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>
2444
+ 573: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">current_user</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">current_password</span>
2445
+ 574: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-keyword kw">nil</span>
2446
+ 575: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">current_user</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">current_password</span>
2447
+ 576: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-node">&quot;#{current_user}:#{current_password}&quot;</span>
2448
+ 577: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">current_user</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">current_password</span>
2449
+ 578: <span class="ruby-ivar">@userinfo</span> = <span class="ruby-node">&quot;#{current_user}&quot;</span>
2450
+ 579: <span class="ruby-keyword kw">end</span>
2451
+ 580: <span class="ruby-keyword kw">end</span>
2452
+ 581: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@userinfo</span>
2453
+ 582: <span class="ruby-keyword kw">end</span>
2438
2454
  </pre>
2439
2455
  </div>
2440
2456
  </div>
@@ -2458,21 +2474,21 @@ this <a href="URI.html">URI</a>.
2458
2474
  onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
2459
2475
  <div class="method-source-code" id="M000020-source">
2460
2476
  <pre>
2461
- <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 569</span>
2462
- 569: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">userinfo=</span>(<span class="ruby-identifier">new_userinfo</span>)
2463
- 570: <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>]
2464
- 571: <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>]
2465
- 572:
2466
- 573: <span class="ruby-comment cmt"># Password assigned first to ensure validity in case of nil</span>
2467
- 574: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span> = <span class="ruby-identifier">new_password</span>
2468
- 575: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span> = <span class="ruby-identifier">new_user</span>
2469
- 576:
2470
- 577: <span class="ruby-comment cmt"># Reset dependant values</span>
2471
- 578: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
2472
- 579:
2473
- 580: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
2474
- 581: <span class="ruby-identifier">validate</span>()
2475
- 582: <span class="ruby-keyword kw">end</span>
2477
+ <span class="ruby-comment cmt"># File lib/addressable/uri.rb, line 585</span>
2478
+ 585: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">userinfo=</span>(<span class="ruby-identifier">new_userinfo</span>)
2479
+ 586: <span class="ruby-identifier">new_user</span> = <span class="ruby-identifier">new_userinfo</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/^(.*):/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
2480
+ 587: <span class="ruby-identifier">new_password</span> = <span class="ruby-identifier">new_userinfo</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/:(.*)$/</span>).<span class="ruby-identifier">flatten</span>[<span class="ruby-value">0</span>]
2481
+ 588:
2482
+ 589: <span class="ruby-comment cmt"># Password assigned first to ensure validity in case of nil</span>
2483
+ 590: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span> = <span class="ruby-identifier">new_password</span>
2484
+ 591: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">user</span> = <span class="ruby-identifier">new_user</span>
2485
+ 592:
2486
+ 593: <span class="ruby-comment cmt"># Reset dependant values</span>
2487
+ 594: <span class="ruby-ivar">@authority</span> = <span class="ruby-keyword kw">nil</span>
2488
+ 595:
2489
+ 596: <span class="ruby-comment cmt"># Ensure we haven't created an invalid URI</span>
2490
+ 597: <span class="ruby-identifier">validate</span>()
2491
+ 598: <span class="ruby-keyword kw">end</span>
2476
2492
  </pre>
2477
2493
  </div>
2478
2494
  </div>