addressable 1.0.1 → 1.0.2

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