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