addressable 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +3 -0
- data/coverage/-Library-Ruby-Gems-1_8-gems-rcov-0_8_1_2_0-lib-rcov_rb.html +1598 -0
- data/coverage/-Library-Ruby-Gems-1_8-gems-rspec-1_1_3-bin-spec.html +614 -0
- data/coverage/-Library-Ruby-Gems-1_8-gems-rspec-1_1_3-lib-spec_rb.html +640 -0
- data/coverage/-Library-Ruby-Gems-1_8-gems-rspec-1_1_3-plugins-mock_frameworks-rspec_rb.html +628 -0
- data/coverage/index.html +113 -5
- data/coverage/lib-addressable-uri_rb.html +176 -170
- data/coverage/lib-addressable-version_rb.html +3 -3
- data/lib/addressable/uri.rb +7 -1
- data/lib/addressable/version.rb +2 -2
- data/spec/addressable/uri_spec.rb +12 -0
- metadata +8 -29
- data/doc/classes/Addressable.html +0 -115
- data/doc/classes/Addressable/URI.html +0 -2509
- data/doc/classes/Addressable/URI/CharacterClasses.html +0 -173
- data/doc/classes/Addressable/URI/IDNA.html +0 -193
- data/doc/classes/Addressable/URI/InvalidOptionError.html +0 -117
- data/doc/classes/Addressable/URI/InvalidTemplateValue.html +0 -117
- data/doc/classes/Addressable/URI/InvalidURIError.html +0 -117
- data/doc/created.rid +0 -1
- data/doc/files/CHANGELOG.html +0 -140
- data/doc/files/LICENSE.html +0 -130
- data/doc/files/README.html +0 -133
- data/doc/files/lib/addressable/uri_rb.html +0 -110
- data/doc/files/lib/addressable/version_rb.html +0 -101
- data/doc/fr_class_index.html +0 -33
- data/doc/fr_file_index.html +0 -31
- data/doc/fr_method_index.html +0 -85
- data/doc/index.html +0 -24
- data/doc/rdoc-style.css +0 -208
- data/specdoc/index.html +0 -1486
data/coverage/index.html
CHANGED
@@ -148,7 +148,7 @@ table.report tr.dark {
|
|
148
148
|
</script>
|
149
149
|
</head>
|
150
150
|
<body><h3>C0 code coverage information</h3>
|
151
|
-
<p>Generated on
|
151
|
+
<p>Generated on Sat May 03 13:27:44 -0400 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
|
152
152
|
</p>
|
153
153
|
<hr/>
|
154
154
|
<table class='report'><thead><tr><td class='heading'>Name</td>
|
@@ -159,9 +159,117 @@ table.report tr.dark {
|
|
159
159
|
</tr>
|
160
160
|
</thead>
|
161
161
|
<tbody><tr class='light'><td>TOTAL</td>
|
162
|
-
<td class='lines_total'><tt>
|
162
|
+
<td class='lines_total'><tt>2316</tt>
|
163
163
|
</td>
|
164
|
-
<td class='lines_code'><tt>
|
164
|
+
<td class='lines_code'><tt>1540</tt>
|
165
|
+
</td>
|
166
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>58.8%</tt>
|
167
|
+
</td>
|
168
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='59'/>
|
169
|
+
<td class='uncovered' width='41'/>
|
170
|
+
</tr>
|
171
|
+
</table>
|
172
|
+
</td>
|
173
|
+
</tr>
|
174
|
+
</table>
|
175
|
+
</td>
|
176
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>62.0%</tt>
|
177
|
+
</td>
|
178
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='62'/>
|
179
|
+
<td class='uncovered' width='38'/>
|
180
|
+
</tr>
|
181
|
+
</table>
|
182
|
+
</td>
|
183
|
+
</tr>
|
184
|
+
</table>
|
185
|
+
</td>
|
186
|
+
</tr>
|
187
|
+
<tr class='dark'><td><a href='-Library-Ruby-Gems-1_8-gems-rcov-0_8_1_2_0-lib-rcov_rb.html'>/Library/Ruby/Gems/1.8/gems/rcov-0.8.1.2.0/lib/rcov.rb</a>
|
188
|
+
</td>
|
189
|
+
<td class='lines_total'><tt>988</tt>
|
190
|
+
</td>
|
191
|
+
<td class='lines_code'><tt>602</tt>
|
192
|
+
</td>
|
193
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>3.3%</tt>
|
194
|
+
</td>
|
195
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='3'/>
|
196
|
+
<td class='uncovered' width='97'/>
|
197
|
+
</tr>
|
198
|
+
</table>
|
199
|
+
</td>
|
200
|
+
</tr>
|
201
|
+
</table>
|
202
|
+
</td>
|
203
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>2.8%</tt>
|
204
|
+
</td>
|
205
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='3'/>
|
206
|
+
<td class='uncovered' width='97'/>
|
207
|
+
</tr>
|
208
|
+
</table>
|
209
|
+
</td>
|
210
|
+
</tr>
|
211
|
+
</table>
|
212
|
+
</td>
|
213
|
+
</tr>
|
214
|
+
<tr class='light'><td><a href='-Library-Ruby-Gems-1_8-gems-rspec-1_1_3-bin-spec.html'>/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/bin/spec</a>
|
215
|
+
</td>
|
216
|
+
<td class='lines_total'><tt>4</tt>
|
217
|
+
</td>
|
218
|
+
<td class='lines_code'><tt>3</tt>
|
219
|
+
</td>
|
220
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>100.0%</tt>
|
221
|
+
</td>
|
222
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
|
223
|
+
<td class='uncovered' width='0'/>
|
224
|
+
</tr>
|
225
|
+
</table>
|
226
|
+
</td>
|
227
|
+
</tr>
|
228
|
+
</table>
|
229
|
+
</td>
|
230
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>100.0%</tt>
|
231
|
+
</td>
|
232
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
|
233
|
+
<td class='uncovered' width='0'/>
|
234
|
+
</tr>
|
235
|
+
</table>
|
236
|
+
</td>
|
237
|
+
</tr>
|
238
|
+
</table>
|
239
|
+
</td>
|
240
|
+
</tr>
|
241
|
+
<tr class='dark'><td><a href='-Library-Ruby-Gems-1_8-gems-rspec-1_1_3-lib-spec_rb.html'>/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec.rb</a>
|
242
|
+
</td>
|
243
|
+
<td class='lines_total'><tt>30</tt>
|
244
|
+
</td>
|
245
|
+
<td class='lines_code'><tt>26</tt>
|
246
|
+
</td>
|
247
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>100.0%</tt>
|
248
|
+
</td>
|
249
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
|
250
|
+
<td class='uncovered' width='0'/>
|
251
|
+
</tr>
|
252
|
+
</table>
|
253
|
+
</td>
|
254
|
+
</tr>
|
255
|
+
</table>
|
256
|
+
</td>
|
257
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>100.0%</tt>
|
258
|
+
</td>
|
259
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='100'/>
|
260
|
+
<td class='uncovered' width='0'/>
|
261
|
+
</tr>
|
262
|
+
</table>
|
263
|
+
</td>
|
264
|
+
</tr>
|
265
|
+
</table>
|
266
|
+
</td>
|
267
|
+
</tr>
|
268
|
+
<tr class='light'><td><a href='-Library-Ruby-Gems-1_8-gems-rspec-1_1_3-plugins-mock_frameworks-rspec_rb.html'>/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/plugins/mock_frameworks/rspec.rb</a>
|
269
|
+
</td>
|
270
|
+
<td class='lines_total'><tt>18</tt>
|
271
|
+
</td>
|
272
|
+
<td class='lines_code'><tt>17</tt>
|
165
273
|
</td>
|
166
274
|
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>100.0%</tt>
|
167
275
|
</td>
|
@@ -186,9 +294,9 @@ table.report tr.dark {
|
|
186
294
|
</tr>
|
187
295
|
<tr class='dark'><td><a href='lib-addressable-uri_rb.html'>lib/addressable/uri.rb</a>
|
188
296
|
</td>
|
189
|
-
<td class='lines_total'><tt>
|
297
|
+
<td class='lines_total'><tt>1244</tt>
|
190
298
|
</td>
|
191
|
-
<td class='lines_code'><tt>
|
299
|
+
<td class='lines_code'><tt>884</tt>
|
192
300
|
</td>
|
193
301
|
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>100.0%</tt>
|
194
302
|
</td>
|
@@ -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
|
556
|
+
<p>Generated on Sat May 03 13:27:45 -0400 2008 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...
|
@@ -571,9 +571,9 @@ span.run100 {
|
|
571
571
|
</thead>
|
572
572
|
<tbody><tr class='light'><td><a href='lib-addressable-uri_rb.html'>lib/addressable/uri.rb</a>
|
573
573
|
</td>
|
574
|
-
<td class='lines_total'><tt>
|
574
|
+
<td class='lines_total'><tt>1244</tt>
|
575
575
|
</td>
|
576
|
-
<td class='lines_code'><tt>
|
576
|
+
<td class='lines_code'><tt>884</tt>
|
577
577
|
</td>
|
578
578
|
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>100.0%</tt>
|
579
579
|
</td>
|
@@ -693,7 +693,7 @@ span.run100 {
|
|
693
693
|
</span><span class="marked1"><a name="line93"></a> 93 host = authority.gsub(/^([^\[\]]*)@/, "").gsub(/:([^:@\[\]]*?)$/, "")
|
694
694
|
</span><span class="marked0"><a name="line94"></a> 94 port = authority.scan(/:([^:@\[\]]*?)$/).flatten[0]
|
695
695
|
</span><span class="inferred1"><a name="line95"></a> 95 end
|
696
|
-
</span><span class="marked0"><a name="line96"></a> 96 if port ==
|
696
|
+
</span><span class="marked0"><a name="line96"></a> 96 if port == ""
|
697
697
|
</span><span class="marked1"><a name="line97"></a> 97 port = nil
|
698
698
|
</span><span class="inferred0"><a name="line98"></a> 98 end
|
699
699
|
</span><span class="inferred1"><a name="line99"></a> 99
|
@@ -1670,172 +1670,178 @@ span.run100 {
|
|
1670
1670
|
</span><span class="marked0"><a name="line1070"></a>1070 return false unless uri.kind_of?(self.class)
|
1671
1671
|
</span><span class="marked1"><a name="line1071"></a>1071 return self.to_s == uri.to_s
|
1672
1672
|
</span><span class="inferred0"><a name="line1072"></a>1072 end
|
1673
|
-
</span><span class="inferred1"><a name="line1073"></a>1073
|
1674
|
-
</span><span class="inferred0"><a name="line1074"></a>1074 #
|
1675
|
-
</span><span class="
|
1676
|
-
</span><span class="marked0"><a name="line1076"></a>1076
|
1677
|
-
</span><span class="marked1"><a name="line1077"></a>1077
|
1678
|
-
</span><span class="marked0"><a name="line1078"></a>1078
|
1679
|
-
</span><span class="
|
1680
|
-
</span><span class="
|
1681
|
-
</span><span class="marked1"><a name="line1081"></a>1081
|
1682
|
-
</span><span class="marked0"><a name="line1082"></a>1082
|
1683
|
-
</span><span class="marked1"><a name="line1083"></a>1083
|
1684
|
-
</span><span class="marked0"><a name="line1084"></a>1084
|
1685
|
-
</span><span class="
|
1686
|
-
</span><span class="
|
1687
|
-
</span><span class="
|
1688
|
-
</span><span class="
|
1689
|
-
</span><span class="
|
1690
|
-
</span><span class="
|
1691
|
-
</span><span class="inferred1"><a name="line1091"></a>1091
|
1692
|
-
</span><span class="inferred0"><a name="line1092"></a>1092
|
1693
|
-
</span><span class="inferred1"><a name="line1093"></a>1093
|
1694
|
-
</span><span class="
|
1695
|
-
</span><span class="inferred1"><a name="line1095"></a>1095
|
1696
|
-
</span><span class="inferred0"><a name="line1096"></a>1096
|
1697
|
-
</span><span class="inferred1"><a name="line1097"></a>1097
|
1698
|
-
</span><span class="
|
1699
|
-
</span><span class="
|
1700
|
-
</span><span class="marked0"><a name="line1100"></a>1100
|
1701
|
-
</span><span class="
|
1702
|
-
</span><span class="
|
1703
|
-
</span><span class="
|
1704
|
-
</span><span class="marked0"><a name="line1104"></a>1104
|
1705
|
-
</span><span class="marked1"><a name="line1105"></a>1105
|
1706
|
-
</span><span class="
|
1707
|
-
</span><span class="
|
1708
|
-
</span><span class="
|
1709
|
-
</span><span class="marked1"><a name="line1109"></a>1109
|
1710
|
-
</span><span class="
|
1711
|
-
</span><span class="marked1"><a name="line1111"></a>1111
|
1712
|
-
</span><span class="
|
1713
|
-
</span><span class="
|
1714
|
-
</span><span class="
|
1715
|
-
</span><span class="marked1"><a name="line1115"></a>1115
|
1716
|
-
</span><span class="
|
1717
|
-
</span><span class="marked1"><a name="line1117"></a>1117 :
|
1718
|
-
</span><span class="marked0"><a name="line1118"></a>1118 :
|
1719
|
-
</span><span class="marked1"><a name="line1119"></a>1119
|
1720
|
-
</span><span class="marked0"><a name="line1120"></a>1120
|
1721
|
-
</span><span class="
|
1722
|
-
</span><span class="
|
1723
|
-
</span><span class="marked1"><a name="line1123"></a>1123
|
1724
|
-
</span><span class="marked0"><a name="line1124"></a>1124
|
1725
|
-
</span><span class="marked1"><a name="line1125"></a>1125
|
1726
|
-
</span><span class="
|
1727
|
-
</span><span class="inferred1"><a name="line1127"></a>1127
|
1728
|
-
</span><span class="inferred0"><a name="line1128"></a>1128 #
|
1729
|
-
</span><span class="
|
1730
|
-
</span><span class="
|
1731
|
-
</span><span class="marked1"><a name="line1131"></a>1131
|
1732
|
-
</span><span class="inferred0"><a name="line1132"></a>1132
|
1733
|
-
</span><span class="
|
1734
|
-
</span><span class="
|
1735
|
-
</span><span class="
|
1736
|
-
</span><span class="
|
1737
|
-
</span><span class="
|
1738
|
-
</span><span class="
|
1739
|
-
</span><span class="
|
1740
|
-
</span><span class="
|
1741
|
-
</span><span class="
|
1742
|
-
</span><span class="
|
1743
|
-
</span><span class="inferred1"><a name="line1143"></a>1143
|
1744
|
-
</span><span class="
|
1745
|
-
</span><span class="
|
1746
|
-
</span><span class="
|
1747
|
-
</span><span class="
|
1748
|
-
</span><span class="
|
1749
|
-
</span><span class="inferred1"><a name="line1149"></a>1149
|
1750
|
-
</span><span class="
|
1751
|
-
</span><span class="
|
1752
|
-
</span><span class="
|
1753
|
-
</span><span class="
|
1754
|
-
</span><span class="
|
1755
|
-
</span><span class="inferred1"><a name="line1155"></a>1155
|
1756
|
-
</span><span class="marked0"><a name="line1156"></a>1156
|
1757
|
-
</span><span class="inferred1"><a name="line1157"></a>1157
|
1758
|
-
</span><span class="
|
1759
|
-
</span><span class="
|
1760
|
-
</span><span class="
|
1761
|
-
</span><span class="
|
1762
|
-
</span><span class="
|
1763
|
-
</span><span class="
|
1764
|
-
</span><span class="
|
1765
|
-
</span><span class="marked1"><a name="line1165"></a>1165
|
1766
|
-
</span><span class="marked0"><a name="line1166"></a>1166
|
1767
|
-
</span><span class="
|
1768
|
-
</span><span class="
|
1769
|
-
</span><span class="
|
1770
|
-
</span><span class="
|
1771
|
-
</span><span class="
|
1772
|
-
</span><span class="marked0"><a name="line1172"></a>1172
|
1773
|
-
</span><span class="inferred1"><a name="line1173"></a>1173
|
1774
|
-
</span><span class="
|
1775
|
-
</span><span class="inferred1"><a name="line1175"></a>1175
|
1776
|
-
</span><span class="marked0"><a name="line1176"></a>1176
|
1777
|
-
</span><span class="inferred1"><a name="line1177"></a>1177
|
1778
|
-
</span><span class="marked0"><a name="line1178"></a>1178
|
1779
|
-
</span><span class="inferred1"><a name="line1179"></a>1179
|
1780
|
-
</span><span class="inferred0"><a name="line1180"></a>1180
|
1781
|
-
</span><span class="
|
1782
|
-
</span><span class="marked0"><a name="line1182"></a>1182
|
1783
|
-
</span><span class="
|
1784
|
-
</span><span class="
|
1785
|
-
</span><span class="
|
1786
|
-
</span><span class="
|
1787
|
-
</span><span class="marked1"><a name="line1187"></a>1187
|
1788
|
-
</span><span class="marked0"><a name="line1188"></a>1188
|
1789
|
-
</span><span class="marked1"><a name="line1189"></a>1189
|
1790
|
-
</span><span class="
|
1791
|
-
</span><span class="
|
1792
|
-
</span><span class="marked0"><a name="line1192"></a>1192
|
1793
|
-
</span><span class="marked1"><a name="line1193"></a>1193
|
1794
|
-
</span><span class="marked0"><a name="line1194"></a>1194
|
1795
|
-
</span><span class="
|
1796
|
-
</span><span class="marked0"><a name="line1196"></a>1196
|
1797
|
-
</span><span class="
|
1798
|
-
</span><span class="marked0"><a name="line1198"></a>1198
|
1799
|
-
</span><span class="marked1"><a name="line1199"></a>1199
|
1800
|
-
</span><span class="
|
1801
|
-
</span><span class="inferred1"><a name="line1201"></a>1201
|
1802
|
-
</span><span class="
|
1803
|
-
</span><span class="marked1"><a name="line1203"></a>1203
|
1804
|
-
</span><span class="marked0"><a name="line1204"></a>1204
|
1805
|
-
</span><span class="marked1"><a name="line1205"></a>1205
|
1806
|
-
</span><span class="
|
1807
|
-
</span><span class="
|
1808
|
-
</span><span class="inferred0"><a name="line1208"></a>1208
|
1809
|
-
</span><span class="
|
1810
|
-
</span><span class="marked0"><a name="line1210"></a>1210 if self.
|
1811
|
-
</span><span class="marked1"><a name="line1211"></a>1211
|
1812
|
-
</span><span class="marked0"><a name="line1212"></a>1212
|
1813
|
-
</span><span class="marked1"><a name="line1213"></a>1213
|
1814
|
-
</span><span class="
|
1815
|
-
</span><span class="inferred1"><a name="line1215"></a>1215
|
1816
|
-
</span><span class="
|
1817
|
-
</span><span class="
|
1818
|
-
</span><span class="
|
1819
|
-
</span><span class="
|
1820
|
-
</span><span class="
|
1821
|
-
</span><span class="
|
1822
|
-
</span><span class="inferred0"><a name="line1222"></a>1222
|
1823
|
-
</span><span class="
|
1824
|
-
</span><span class="
|
1825
|
-
</span><span class="inferred1"><a name="line1225"></a>1225
|
1826
|
-
</span><span class="
|
1827
|
-
</span><span class="marked1"><a name="line1227"></a>1227
|
1828
|
-
</span><span class="
|
1829
|
-
</span><span class="marked1"><a name="line1229"></a>1229 @
|
1830
|
-
</span><span class="marked0"><a name="line1230"></a>1230 @
|
1831
|
-
</span><span class="
|
1832
|
-
</span><span class="marked0"><a name="line1232"></a>1232 @
|
1833
|
-
</span><span class="marked1"><a name="line1233"></a>1233 @
|
1834
|
-
</span><span class="marked0"><a name="line1234"></a>1234 @
|
1835
|
-
</span><span class="marked1"><a name="line1235"></a>1235
|
1836
|
-
</span><span class="
|
1837
|
-
</span><span class="
|
1838
|
-
</span><span class="
|
1673
|
+
</span><span class="inferred1"><a name="line1073"></a>1073
|
1674
|
+
</span><span class="inferred0"><a name="line1074"></a>1074 # Returns a hash value that will make a URI equivalent to its normalized
|
1675
|
+
</span><span class="inferred1"><a name="line1075"></a>1075 # form.
|
1676
|
+
</span><span class="marked0"><a name="line1076"></a>1076 def hash
|
1677
|
+
</span><span class="marked1"><a name="line1077"></a>1077 return (self.normalize.to_s.hash * -1)
|
1678
|
+
</span><span class="marked0"><a name="line1078"></a>1078 end
|
1679
|
+
</span><span class="inferred1"><a name="line1079"></a>1079
|
1680
|
+
</span><span class="inferred0"><a name="line1080"></a>1080 # Clones the URI object.
|
1681
|
+
</span><span class="marked1"><a name="line1081"></a>1081 def dup
|
1682
|
+
</span><span class="marked0"><a name="line1082"></a>1082 duplicated_scheme = self.scheme ? self.scheme.dup : nil
|
1683
|
+
</span><span class="marked1"><a name="line1083"></a>1083 duplicated_user = self.user ? self.user.dup : nil
|
1684
|
+
</span><span class="marked0"><a name="line1084"></a>1084 duplicated_password = self.password ? self.password.dup : nil
|
1685
|
+
</span><span class="marked1"><a name="line1085"></a>1085 duplicated_host = self.host ? self.host.dup : nil
|
1686
|
+
</span><span class="marked0"><a name="line1086"></a>1086 duplicated_port = self.specified_port
|
1687
|
+
</span><span class="marked1"><a name="line1087"></a>1087 duplicated_path = self.path ? self.path.dup : nil
|
1688
|
+
</span><span class="marked0"><a name="line1088"></a>1088 duplicated_query = self.query ? self.query.dup : nil
|
1689
|
+
</span><span class="marked1"><a name="line1089"></a>1089 duplicated_fragment = self.fragment ? self.fragment.dup : nil
|
1690
|
+
</span><span class="marked0"><a name="line1090"></a>1090 duplicated_uri = Addressable::URI.new(
|
1691
|
+
</span><span class="inferred1"><a name="line1091"></a>1091 duplicated_scheme,
|
1692
|
+
</span><span class="inferred0"><a name="line1092"></a>1092 duplicated_user,
|
1693
|
+
</span><span class="inferred1"><a name="line1093"></a>1093 duplicated_password,
|
1694
|
+
</span><span class="inferred0"><a name="line1094"></a>1094 duplicated_host,
|
1695
|
+
</span><span class="inferred1"><a name="line1095"></a>1095 duplicated_port,
|
1696
|
+
</span><span class="inferred0"><a name="line1096"></a>1096 duplicated_path,
|
1697
|
+
</span><span class="inferred1"><a name="line1097"></a>1097 duplicated_query,
|
1698
|
+
</span><span class="inferred0"><a name="line1098"></a>1098 duplicated_fragment
|
1699
|
+
</span><span class="inferred1"><a name="line1099"></a>1099 )
|
1700
|
+
</span><span class="marked0"><a name="line1100"></a>1100 return duplicated_uri
|
1701
|
+
</span><span class="inferred1"><a name="line1101"></a>1101 end
|
1702
|
+
</span><span class="inferred0"><a name="line1102"></a>1102
|
1703
|
+
</span><span class="inferred1"><a name="line1103"></a>1103 # Returns the assembled URI as a string.
|
1704
|
+
</span><span class="marked0"><a name="line1104"></a>1104 def to_s
|
1705
|
+
</span><span class="marked1"><a name="line1105"></a>1105 uri_string = ""
|
1706
|
+
</span><span class="marked0"><a name="line1106"></a>1106 uri_string << "#{self.scheme}:" if self.scheme != nil
|
1707
|
+
</span><span class="marked1"><a name="line1107"></a>1107 uri_string << "//#{self.authority}" if self.authority != nil
|
1708
|
+
</span><span class="marked0"><a name="line1108"></a>1108 uri_string << self.path.to_s
|
1709
|
+
</span><span class="marked1"><a name="line1109"></a>1109 uri_string << "?#{self.query}" if self.query != nil
|
1710
|
+
</span><span class="marked0"><a name="line1110"></a>1110 uri_string << "##{self.fragment}" if self.fragment != nil
|
1711
|
+
</span><span class="marked1"><a name="line1111"></a>1111 return uri_string
|
1712
|
+
</span><span class="inferred0"><a name="line1112"></a>1112 end
|
1713
|
+
</span><span class="inferred1"><a name="line1113"></a>1113
|
1714
|
+
</span><span class="inferred0"><a name="line1114"></a>1114 # Returns a Hash of the URI segments.
|
1715
|
+
</span><span class="marked1"><a name="line1115"></a>1115 def to_hash
|
1716
|
+
</span><span class="inferred0"><a name="line1116"></a>1116 return {
|
1717
|
+
</span><span class="marked1"><a name="line1117"></a>1117 :scheme => self.scheme,
|
1718
|
+
</span><span class="marked0"><a name="line1118"></a>1118 :user => self.user,
|
1719
|
+
</span><span class="marked1"><a name="line1119"></a>1119 :password => self.password,
|
1720
|
+
</span><span class="marked0"><a name="line1120"></a>1120 :host => self.host,
|
1721
|
+
</span><span class="marked1"><a name="line1121"></a>1121 :port => self.specified_port,
|
1722
|
+
</span><span class="marked0"><a name="line1122"></a>1122 :path => self.path,
|
1723
|
+
</span><span class="marked1"><a name="line1123"></a>1123 :query => self.query,
|
1724
|
+
</span><span class="marked0"><a name="line1124"></a>1124 :fragment => self.fragment
|
1725
|
+
</span><span class="marked1"><a name="line1125"></a>1125 }
|
1726
|
+
</span><span class="marked0"><a name="line1126"></a>1126 end
|
1727
|
+
</span><span class="inferred1"><a name="line1127"></a>1127
|
1728
|
+
</span><span class="inferred0"><a name="line1128"></a>1128 # Returns a string representation of the URI object's state.
|
1729
|
+
</span><span class="marked1"><a name="line1129"></a>1129 def inspect
|
1730
|
+
</span><span class="marked0"><a name="line1130"></a>1130 sprintf("#<%s:%#0x URI:%s>", self.class.to_s, self.object_id, self.to_s)
|
1731
|
+
</span><span class="marked1"><a name="line1131"></a>1131 end
|
1732
|
+
</span><span class="inferred0"><a name="line1132"></a>1132
|
1733
|
+
</span><span class="inferred1"><a name="line1133"></a>1133 # This module handles internationalized domain names. When Ruby has an
|
1734
|
+
</span><span class="inferred0"><a name="line1134"></a>1134 # implementation of nameprep, stringprep, punycode, etc, this
|
1735
|
+
</span><span class="inferred1"><a name="line1135"></a>1135 # module should contain an actual implementation of IDNA instead of
|
1736
|
+
</span><span class="inferred0"><a name="line1136"></a>1136 # returning nil if libidn can't be used.
|
1737
|
+
</span><span class="marked1"><a name="line1137"></a>1137 module IDNA
|
1738
|
+
</span><span class="inferred0"><a name="line1138"></a>1138 # Returns the ascii representation of the label.
|
1739
|
+
</span><span class="marked1"><a name="line1139"></a>1139 def self.to_ascii(label)
|
1740
|
+
</span><span class="marked0"><a name="line1140"></a>1140 return nil if label.nil?
|
1741
|
+
</span><span class="marked1"><a name="line1141"></a>1141 if self.use_libidn?
|
1742
|
+
</span><span class="marked0"><a name="line1142"></a>1142 return IDN::Idna.toASCII(label)
|
1743
|
+
</span><span class="inferred1"><a name="line1143"></a>1143 else
|
1744
|
+
</span><span class="marked0"><a name="line1144"></a>1144 raise NotImplementedError,
|
1745
|
+
</span><span class="inferred1"><a name="line1145"></a>1145 "There is no available pure-ruby implementation. " +
|
1746
|
+
</span><span class="inferred0"><a name="line1146"></a>1146 "Install libidn bindings."
|
1747
|
+
</span><span class="inferred1"><a name="line1147"></a>1147 end
|
1748
|
+
</span><span class="inferred0"><a name="line1148"></a>1148 end
|
1749
|
+
</span><span class="inferred1"><a name="line1149"></a>1149
|
1750
|
+
</span><span class="inferred0"><a name="line1150"></a>1150 # Returns the unicode representation of the label.
|
1751
|
+
</span><span class="marked1"><a name="line1151"></a>1151 def self.to_unicode(label)
|
1752
|
+
</span><span class="marked0"><a name="line1152"></a>1152 return nil if label.nil?
|
1753
|
+
</span><span class="marked1"><a name="line1153"></a>1153 if self.use_libidn?
|
1754
|
+
</span><span class="marked0"><a name="line1154"></a>1154 return IDN::Idna.toUnicode(label)
|
1755
|
+
</span><span class="inferred1"><a name="line1155"></a>1155 else
|
1756
|
+
</span><span class="marked0"><a name="line1156"></a>1156 raise NotImplementedError,
|
1757
|
+
</span><span class="inferred1"><a name="line1157"></a>1157 "There is no available pure-ruby implementation. " +
|
1758
|
+
</span><span class="inferred0"><a name="line1158"></a>1158 "Install libidn bindings."
|
1759
|
+
</span><span class="inferred1"><a name="line1159"></a>1159 end
|
1760
|
+
</span><span class="inferred0"><a name="line1160"></a>1160 end
|
1761
|
+
</span><span class="inferred1"><a name="line1161"></a>1161
|
1762
|
+
</span><span class="marked0"><a name="line1162"></a>1162 private
|
1763
|
+
</span><span class="inferred1"><a name="line1163"></a>1163 # Determines if the libidn bindings are available and able to be used.
|
1764
|
+
</span><span class="marked0"><a name="line1164"></a>1164 def self.use_libidn?
|
1765
|
+
</span><span class="marked1"><a name="line1165"></a>1165 if !defined?(@use_libidn) || @use_libidn.nil?
|
1766
|
+
</span><span class="marked0"><a name="line1166"></a>1166 begin
|
1767
|
+
</span><span class="marked1"><a name="line1167"></a>1167 require 'rubygems'
|
1768
|
+
</span><span class="inferred0"><a name="line1168"></a>1168 rescue LoadError
|
1769
|
+
</span><span class="marked1"><a name="line1169"></a>1169 nil
|
1770
|
+
</span><span class="inferred0"><a name="line1170"></a>1170 end
|
1771
|
+
</span><span class="marked1"><a name="line1171"></a>1171 begin
|
1772
|
+
</span><span class="marked0"><a name="line1172"></a>1172 require 'idn'
|
1773
|
+
</span><span class="inferred1"><a name="line1173"></a>1173 rescue LoadError
|
1774
|
+
</span><span class="marked0"><a name="line1174"></a>1174 nil
|
1775
|
+
</span><span class="inferred1"><a name="line1175"></a>1175 end
|
1776
|
+
</span><span class="marked0"><a name="line1176"></a>1176 @use_libidn = !!(defined?(IDN::Idna))
|
1777
|
+
</span><span class="inferred1"><a name="line1177"></a>1177 end
|
1778
|
+
</span><span class="marked0"><a name="line1178"></a>1178 return @use_libidn
|
1779
|
+
</span><span class="inferred1"><a name="line1179"></a>1179 end
|
1780
|
+
</span><span class="inferred0"><a name="line1180"></a>1180 end
|
1781
|
+
</span><span class="inferred1"><a name="line1181"></a>1181
|
1782
|
+
</span><span class="marked0"><a name="line1182"></a>1182 private
|
1783
|
+
</span><span class="inferred1"><a name="line1183"></a>1183 # Resolves paths to their simplest form.
|
1784
|
+
</span><span class="marked0"><a name="line1184"></a>1184 def self.normalize_path(path)
|
1785
|
+
</span><span class="inferred1"><a name="line1185"></a>1185 # Section 5.2.4 of RFC 3986
|
1786
|
+
</span><span class="inferred0"><a name="line1186"></a>1186
|
1787
|
+
</span><span class="marked1"><a name="line1187"></a>1187 return nil if path.nil?
|
1788
|
+
</span><span class="marked0"><a name="line1188"></a>1188 normalized_path = path.dup
|
1789
|
+
</span><span class="marked1"><a name="line1189"></a>1189 previous_state = normalized_path.dup
|
1790
|
+
</span><span class="inferred0"><a name="line1190"></a>1190 begin
|
1791
|
+
</span><span class="marked1"><a name="line1191"></a>1191 previous_state = normalized_path.dup
|
1792
|
+
</span><span class="marked0"><a name="line1192"></a>1192 normalized_path.gsub!(/\/\.\//, "/")
|
1793
|
+
</span><span class="marked1"><a name="line1193"></a>1193 normalized_path.gsub!(/\/\.$/, "/")
|
1794
|
+
</span><span class="marked0"><a name="line1194"></a>1194 parent = normalized_path.scan(/\/([^\/]+)\/\.\.\//).flatten[0]
|
1795
|
+
</span><span class="marked1"><a name="line1195"></a>1195 if parent != "." && parent != ".."
|
1796
|
+
</span><span class="marked0"><a name="line1196"></a>1196 normalized_path.gsub!(/\/#{parent}\/\.\.\//, "/")
|
1797
|
+
</span><span class="inferred1"><a name="line1197"></a>1197 end
|
1798
|
+
</span><span class="marked0"><a name="line1198"></a>1198 parent = normalized_path.scan(/\/([^\/]+)\/\.\.$/).flatten[0]
|
1799
|
+
</span><span class="marked1"><a name="line1199"></a>1199 if parent != "." && parent != ".."
|
1800
|
+
</span><span class="marked0"><a name="line1200"></a>1200 normalized_path.gsub!(/\/#{parent}\/\.\.$/, "/")
|
1801
|
+
</span><span class="inferred1"><a name="line1201"></a>1201 end
|
1802
|
+
</span><span class="marked0"><a name="line1202"></a>1202 normalized_path.gsub!(/^\.\.?\/?/, "")
|
1803
|
+
</span><span class="marked1"><a name="line1203"></a>1203 normalized_path.gsub!(/^\/\.\.?\//, "/")
|
1804
|
+
</span><span class="marked0"><a name="line1204"></a>1204 end until previous_state == normalized_path
|
1805
|
+
</span><span class="marked1"><a name="line1205"></a>1205 return normalized_path
|
1806
|
+
</span><span class="inferred0"><a name="line1206"></a>1206 end
|
1807
|
+
</span><span class="inferred1"><a name="line1207"></a>1207
|
1808
|
+
</span><span class="inferred0"><a name="line1208"></a>1208 # Ensures that the URI is valid.
|
1809
|
+
</span><span class="marked1"><a name="line1209"></a>1209 def validate
|
1810
|
+
</span><span class="marked0"><a name="line1210"></a>1210 if self.scheme != nil &&
|
1811
|
+
</span><span class="marked1"><a name="line1211"></a>1211 (self.host == nil || self.host == "") &&
|
1812
|
+
</span><span class="marked0"><a name="line1212"></a>1212 (self.path == nil || self.path == "")
|
1813
|
+
</span><span class="marked1"><a name="line1213"></a>1213 raise InvalidURIError,
|
1814
|
+
</span><span class="inferred0"><a name="line1214"></a>1214 "Absolute URI missing hierarchical segment."
|
1815
|
+
</span><span class="inferred1"><a name="line1215"></a>1215 end
|
1816
|
+
</span><span class="marked0"><a name="line1216"></a>1216 if self.host == nil
|
1817
|
+
</span><span class="marked1"><a name="line1217"></a>1217 if self.specified_port != nil ||
|
1818
|
+
</span><span class="marked0"><a name="line1218"></a>1218 self.user != nil ||
|
1819
|
+
</span><span class="marked1"><a name="line1219"></a>1219 self.password != nil
|
1820
|
+
</span><span class="marked0"><a name="line1220"></a>1220 raise InvalidURIError, "Hostname not supplied."
|
1821
|
+
</span><span class="inferred1"><a name="line1221"></a>1221 end
|
1822
|
+
</span><span class="inferred0"><a name="line1222"></a>1222 end
|
1823
|
+
</span><span class="inferred1"><a name="line1223"></a>1223 end
|
1824
|
+
</span><span class="inferred0"><a name="line1224"></a>1224
|
1825
|
+
</span><span class="inferred1"><a name="line1225"></a>1225 # Replaces the internal state of self with the specified URI's state.
|
1826
|
+
</span><span class="inferred0"><a name="line1226"></a>1226 # Used in destructive operations to avoid massive code repetition.
|
1827
|
+
</span><span class="marked1"><a name="line1227"></a>1227 def replace_self(uri)
|
1828
|
+
</span><span class="inferred0"><a name="line1228"></a>1228 # Reset dependant values
|
1829
|
+
</span><span class="marked1"><a name="line1229"></a>1229 @userinfo = nil
|
1830
|
+
</span><span class="marked0"><a name="line1230"></a>1230 @authority = nil
|
1831
|
+
</span><span class="inferred1"><a name="line1231"></a>1231
|
1832
|
+
</span><span class="marked0"><a name="line1232"></a>1232 @scheme = uri.scheme
|
1833
|
+
</span><span class="marked1"><a name="line1233"></a>1233 @user = uri.user
|
1834
|
+
</span><span class="marked0"><a name="line1234"></a>1234 @password = uri.password
|
1835
|
+
</span><span class="marked1"><a name="line1235"></a>1235 @host = uri.host
|
1836
|
+
</span><span class="marked0"><a name="line1236"></a>1236 @specified_port = uri.instance_variable_get("@specified_port")
|
1837
|
+
</span><span class="marked1"><a name="line1237"></a>1237 @port = @specified_port.to_s.to_i
|
1838
|
+
</span><span class="marked0"><a name="line1238"></a>1238 @path = uri.path
|
1839
|
+
</span><span class="marked1"><a name="line1239"></a>1239 @query = uri.query
|
1840
|
+
</span><span class="marked0"><a name="line1240"></a>1240 @fragment = uri.fragment
|
1841
|
+
</span><span class="marked1"><a name="line1241"></a>1241 return self
|
1842
|
+
</span><span class="inferred0"><a name="line1242"></a>1242 end
|
1843
|
+
</span><span class="inferred1"><a name="line1243"></a>1243 end
|
1844
|
+
</span><span class="inferred0"><a name="line1244"></a>1244 end
|
1839
1845
|
</span></pre><hr/>
|
1840
1846
|
<p>Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'>rcov code coverage analysis tool for Ruby</a>
|
1841
1847
|
version 0.8.1.2.</p>
|