addressable 2.1.2 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +65 -61
- data/LICENSE +1 -1
- data/README +12 -2
- data/Rakefile +0 -32
- data/lib/addressable/template.rb +1 -1
- data/lib/addressable/uri.rb +186 -89
- data/lib/addressable/version.rb +3 -3
- data/spec/addressable/uri_spec.rb +204 -11
- data/tasks/gem.rake +16 -0
- data/tasks/rdoc.rake +0 -3
- data/tasks/rubyforge.rake +1 -1
- data/tasks/yard.rake +26 -0
- metadata +64 -17
data/lib/addressable/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding:utf-8
|
2
2
|
#--
|
3
|
-
# Addressable, Copyright (c) 2006-
|
3
|
+
# Addressable, Copyright (c) 2006-2010 Bob Aman
|
4
4
|
#
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining
|
6
6
|
# a copy of this software and associated documentation files (the
|
@@ -27,8 +27,8 @@ if !defined?(Addressable::VERSION)
|
|
27
27
|
module Addressable
|
28
28
|
module VERSION #:nodoc:
|
29
29
|
MAJOR = 2
|
30
|
-
MINOR =
|
31
|
-
TINY =
|
30
|
+
MINOR = 2
|
31
|
+
TINY = 0
|
32
32
|
|
33
33
|
STRING = [MAJOR, MINOR, TINY].join('.')
|
34
34
|
end
|
@@ -163,6 +163,10 @@ describe Addressable::URI, "when created from nil components" do
|
|
163
163
|
@uri = Addressable::URI.new
|
164
164
|
end
|
165
165
|
|
166
|
+
it "should have a nil site value" do
|
167
|
+
@uri.site.should == nil
|
168
|
+
end
|
169
|
+
|
166
170
|
it "should have an empty path" do
|
167
171
|
@uri.path.should == ""
|
168
172
|
end
|
@@ -171,9 +175,16 @@ describe Addressable::URI, "when created from nil components" do
|
|
171
175
|
@uri.to_s.should == ""
|
172
176
|
end
|
173
177
|
|
174
|
-
it "should
|
175
|
-
|
176
|
-
|
178
|
+
it "should raise an error if the scheme is set to whitespace" do
|
179
|
+
(lambda do
|
180
|
+
@uri.scheme = "\t \n"
|
181
|
+
end).should raise_error(Addressable::URI::InvalidURIError)
|
182
|
+
end
|
183
|
+
|
184
|
+
it "should raise an error if the scheme is set to all digits" do
|
185
|
+
(lambda do
|
186
|
+
@uri.scheme = "123"
|
187
|
+
end).should raise_error(Addressable::URI::InvalidURIError)
|
177
188
|
end
|
178
189
|
|
179
190
|
it "should raise an error if set into an invalid state" do
|
@@ -210,6 +221,10 @@ describe Addressable::URI, "when created from string components" do
|
|
210
221
|
)
|
211
222
|
end
|
212
223
|
|
224
|
+
it "should have a site value of 'http://example.com'" do
|
225
|
+
@uri.site.should == "http://example.com"
|
226
|
+
end
|
227
|
+
|
213
228
|
it "should be equal to the equivalent parsed URI" do
|
214
229
|
@uri.should == Addressable::URI.parse("http://example.com")
|
215
230
|
end
|
@@ -252,6 +267,10 @@ describe Addressable::URI, "when created with an authority and no port" do
|
|
252
267
|
@uri.port.should == nil
|
253
268
|
@uri.inferred_port.should == nil
|
254
269
|
end
|
270
|
+
|
271
|
+
it "should have a site value of '//user@example.com'" do
|
272
|
+
@uri.site.should == "//user@example.com"
|
273
|
+
end
|
255
274
|
end
|
256
275
|
|
257
276
|
describe Addressable::URI, "when created with both a userinfo and a user" do
|
@@ -264,19 +283,35 @@ end
|
|
264
283
|
|
265
284
|
describe Addressable::URI, "when created with a path that hasn't been " +
|
266
285
|
"prefixed with a '/' but a host specified" do
|
267
|
-
|
268
|
-
Addressable::URI.new(
|
286
|
+
before do
|
287
|
+
@uri = Addressable::URI.new(
|
269
288
|
:scheme => "http", :host => "example.com", :path => "path"
|
270
|
-
)
|
289
|
+
)
|
290
|
+
end
|
291
|
+
|
292
|
+
it "should prefix a '/' to the path" do
|
293
|
+
@uri.should == Addressable::URI.parse("http://example.com/path")
|
294
|
+
end
|
295
|
+
|
296
|
+
it "should have a site value of 'http://example.com'" do
|
297
|
+
@uri.site.should == "http://example.com"
|
271
298
|
end
|
272
299
|
end
|
273
300
|
|
274
301
|
describe Addressable::URI, "when created with a path that hasn't been " +
|
275
302
|
"prefixed with a '/' but no host specified" do
|
276
|
-
|
277
|
-
Addressable::URI.new(
|
303
|
+
before do
|
304
|
+
@uri = Addressable::URI.new(
|
278
305
|
:scheme => "http", :path => "path"
|
279
|
-
)
|
306
|
+
)
|
307
|
+
end
|
308
|
+
|
309
|
+
it "should not prefix a '/' to the path" do
|
310
|
+
@uri.should == Addressable::URI.parse("http:path")
|
311
|
+
end
|
312
|
+
|
313
|
+
it "should have a site value of 'http:'" do
|
314
|
+
@uri.site.should == "http:"
|
280
315
|
end
|
281
316
|
end
|
282
317
|
|
@@ -733,6 +768,27 @@ describe Addressable::URI, "when parsed from " +
|
|
733
768
|
@uri.join!(@uri).to_s.should == "http://example.com"
|
734
769
|
end
|
735
770
|
|
771
|
+
it "should be equivalent to http://EXAMPLE.com" do
|
772
|
+
@uri.should == Addressable::URI.parse("http://EXAMPLE.com")
|
773
|
+
end
|
774
|
+
|
775
|
+
it "should be equivalent to http://EXAMPLE.com:80/" do
|
776
|
+
@uri.should == Addressable::URI.parse("http://EXAMPLE.com:80/")
|
777
|
+
end
|
778
|
+
|
779
|
+
it "should have the same hash as http://example.com" do
|
780
|
+
@uri.hash.should == Addressable::URI.parse("http://example.com").hash
|
781
|
+
end
|
782
|
+
|
783
|
+
it "should have the same hash as http://EXAMPLE.com after assignment" do
|
784
|
+
@uri.host = "EXAMPLE.com"
|
785
|
+
@uri.hash.should == Addressable::URI.parse("http://EXAMPLE.com").hash
|
786
|
+
end
|
787
|
+
|
788
|
+
it "should have a different hash from http://EXAMPLE.com" do
|
789
|
+
@uri.hash.should_not == Addressable::URI.parse("http://EXAMPLE.com").hash
|
790
|
+
end
|
791
|
+
|
736
792
|
# Section 6.2.3 of RFC 3986
|
737
793
|
it "should be equivalent to http://example.com/" do
|
738
794
|
@uri.should == Addressable::URI.parse("http://example.com/")
|
@@ -897,6 +953,12 @@ describe Addressable::URI, "when parsed from " +
|
|
897
953
|
@uri.query.should == "x=y"
|
898
954
|
end
|
899
955
|
|
956
|
+
it "should raise an error if the site value is set to something bogus" do
|
957
|
+
(lambda do
|
958
|
+
@uri.site = 42
|
959
|
+
end).should raise_error(TypeError)
|
960
|
+
end
|
961
|
+
|
900
962
|
it "should raise an error if the request URI is set to something bogus" do
|
901
963
|
(lambda do
|
902
964
|
@uri.request_uri = 42
|
@@ -994,6 +1056,42 @@ describe Addressable::URI, "when parsed from " +
|
|
994
1056
|
it "should have the same hash as an equal URI" do
|
995
1057
|
@uri.hash.should == Addressable::URI.parse("http://example.com/").hash
|
996
1058
|
end
|
1059
|
+
|
1060
|
+
it "should be equivalent to http://EXAMPLE.com" do
|
1061
|
+
@uri.should == Addressable::URI.parse("http://EXAMPLE.com")
|
1062
|
+
end
|
1063
|
+
|
1064
|
+
it "should be equivalent to http://EXAMPLE.com:80/" do
|
1065
|
+
@uri.should == Addressable::URI.parse("http://EXAMPLE.com:80/")
|
1066
|
+
end
|
1067
|
+
|
1068
|
+
it "should have the same hash as http://example.com/" do
|
1069
|
+
@uri.hash.should == Addressable::URI.parse("http://example.com/").hash
|
1070
|
+
end
|
1071
|
+
|
1072
|
+
it "should have the same hash as http://example.com after assignment" do
|
1073
|
+
@uri.path = ""
|
1074
|
+
@uri.hash.should == Addressable::URI.parse("http://example.com").hash
|
1075
|
+
end
|
1076
|
+
|
1077
|
+
it "should have the same hash as http://example.com/? after assignment" do
|
1078
|
+
@uri.query = ""
|
1079
|
+
@uri.hash.should == Addressable::URI.parse("http://example.com/?").hash
|
1080
|
+
end
|
1081
|
+
|
1082
|
+
it "should have the same hash as http://example.com/? after assignment" do
|
1083
|
+
@uri.query_values = {}
|
1084
|
+
@uri.hash.should == Addressable::URI.parse("http://example.com/?").hash
|
1085
|
+
end
|
1086
|
+
|
1087
|
+
it "should have the same hash as http://example.com/# after assignment" do
|
1088
|
+
@uri.fragment = ""
|
1089
|
+
@uri.hash.should == Addressable::URI.parse("http://example.com/#").hash
|
1090
|
+
end
|
1091
|
+
|
1092
|
+
it "should have a different hash from http://example.com" do
|
1093
|
+
@uri.hash.should_not == Addressable::URI.parse("http://example.com").hash
|
1094
|
+
end
|
997
1095
|
end
|
998
1096
|
|
999
1097
|
describe Addressable::URI, "when parsed from " +
|
@@ -1953,10 +2051,10 @@ describe Addressable::URI, "when parsed from " +
|
|
1953
2051
|
end
|
1954
2052
|
|
1955
2053
|
describe Addressable::URI, "when parsed from " +
|
1956
|
-
"'ssh+svn://developername@
|
2054
|
+
"'ssh+svn://developername@RUBYFORGE.ORG/var/svn/project'" do
|
1957
2055
|
before do
|
1958
2056
|
@uri = Addressable::URI.parse(
|
1959
|
-
"ssh+svn://developername@
|
2057
|
+
"ssh+svn://developername@RUBYFORGE.ORG/var/svn/project"
|
1960
2058
|
)
|
1961
2059
|
end
|
1962
2060
|
|
@@ -1968,6 +2066,10 @@ describe Addressable::URI, "when parsed from " +
|
|
1968
2066
|
@uri.normalized_scheme.should == "svn+ssh"
|
1969
2067
|
end
|
1970
2068
|
|
2069
|
+
it "should have a normalized site of 'svn+ssh'" do
|
2070
|
+
@uri.normalized_site.should == "svn+ssh://developername@rubyforge.org"
|
2071
|
+
end
|
2072
|
+
|
1971
2073
|
it "should not be considered to be ip-based" do
|
1972
2074
|
@uri.should_not be_ip_based
|
1973
2075
|
end
|
@@ -2195,6 +2297,22 @@ describe Addressable::URI, "when parsed from " +
|
|
2195
2297
|
"bogus%21://user:pass@example.com/path/to/resource?query=x#fragment"
|
2196
2298
|
end
|
2197
2299
|
|
2300
|
+
it "should have the correct site segment after assignment" do
|
2301
|
+
@uri.site = "https://newuser:newpass@example.com:443"
|
2302
|
+
@uri.scheme.should == "https"
|
2303
|
+
@uri.authority.should == "newuser:newpass@example.com:443"
|
2304
|
+
@uri.user.should == "newuser"
|
2305
|
+
@uri.password.should == "newpass"
|
2306
|
+
@uri.userinfo.should == "newuser:newpass"
|
2307
|
+
@uri.normalized_userinfo.should == "newuser:newpass"
|
2308
|
+
@uri.host.should == "example.com"
|
2309
|
+
@uri.port.should == 443
|
2310
|
+
@uri.inferred_port.should == 443
|
2311
|
+
@uri.to_s.should ==
|
2312
|
+
"https://newuser:newpass@example.com:443" +
|
2313
|
+
"/path/to/resource?query=x#fragment"
|
2314
|
+
end
|
2315
|
+
|
2198
2316
|
it "should have the correct authority segment after assignment" do
|
2199
2317
|
@uri.authority = "newuser:newpass@example.com:80"
|
2200
2318
|
@uri.authority.should == "newuser:newpass@example.com:80"
|
@@ -2255,6 +2373,20 @@ describe Addressable::URI, "when parsed from " +
|
|
2255
2373
|
"http://user:pass@example.com/newpath/to/resource?query=x#fragment"
|
2256
2374
|
end
|
2257
2375
|
|
2376
|
+
it "should have the correct scheme and authority after nil assignment" do
|
2377
|
+
@uri.site = nil
|
2378
|
+
@uri.scheme.should == nil
|
2379
|
+
@uri.authority.should == nil
|
2380
|
+
@uri.to_s.should == "/path/to/resource?query=x#fragment"
|
2381
|
+
end
|
2382
|
+
|
2383
|
+
it "should have the correct scheme and authority after assignment" do
|
2384
|
+
@uri.site = "file://"
|
2385
|
+
@uri.scheme.should == "file"
|
2386
|
+
@uri.authority.should == ""
|
2387
|
+
@uri.to_s.should == "file:///path/to/resource?query=x#fragment"
|
2388
|
+
end
|
2389
|
+
|
2258
2390
|
it "should have the correct path after nil assignment" do
|
2259
2391
|
@uri.path = nil
|
2260
2392
|
@uri.path.should == ""
|
@@ -2343,12 +2475,14 @@ describe Addressable::URI, "when parsed from " +
|
|
2343
2475
|
it "should have the correct values after a merge" do
|
2344
2476
|
@uri.merge(:authority => "foo:bar@baz:42").to_s.should ==
|
2345
2477
|
"http://foo:bar@baz:42/path/to/resource?query=x#fragment"
|
2478
|
+
# Ensure the operation was not destructive
|
2346
2479
|
@uri.to_s.should ==
|
2347
2480
|
"http://user:pass@example.com/path/to/resource?query=x#fragment"
|
2348
2481
|
end
|
2349
2482
|
|
2350
2483
|
it "should have the correct values after a destructive merge" do
|
2351
2484
|
@uri.merge!(:authority => "foo:bar@baz:42")
|
2485
|
+
# Ensure the operation was destructive
|
2352
2486
|
@uri.to_s.should ==
|
2353
2487
|
"http://foo:bar@baz:42/path/to/resource?query=x#fragment"
|
2354
2488
|
end
|
@@ -2359,6 +2493,12 @@ describe Addressable::URI, "when parsed from " +
|
|
2359
2493
|
end).should raise_error(Addressable::URI::InvalidURIError)
|
2360
2494
|
end
|
2361
2495
|
|
2496
|
+
it "should fail to merge with bogus values" do
|
2497
|
+
(lambda do
|
2498
|
+
@uri.merge(:authority => "bar@baz:bogus")
|
2499
|
+
end).should raise_error(Addressable::URI::InvalidURIError)
|
2500
|
+
end
|
2501
|
+
|
2362
2502
|
it "should fail to merge with bogus parameters" do
|
2363
2503
|
(lambda do
|
2364
2504
|
@uri.merge(42)
|
@@ -2388,6 +2528,36 @@ describe Addressable::URI, "when parsed from " +
|
|
2388
2528
|
end
|
2389
2529
|
end
|
2390
2530
|
|
2531
|
+
describe Addressable::URI, "when parsed from " +
|
2532
|
+
"'http://example.com/?q&&x=b'" do
|
2533
|
+
before do
|
2534
|
+
@uri = Addressable::URI.parse("http://example.com/?q&&x=b")
|
2535
|
+
end
|
2536
|
+
|
2537
|
+
it "should have a query of 'q&&x=b'" do
|
2538
|
+
@uri.query.should == "q&&x=b"
|
2539
|
+
end
|
2540
|
+
|
2541
|
+
it "should have query_values of {'q' => true, 'x' => 'b'}" do
|
2542
|
+
@uri.query_values.should == {'q' => true, 'x' => 'b'}
|
2543
|
+
end
|
2544
|
+
end
|
2545
|
+
|
2546
|
+
describe Addressable::URI, "when parsed from " +
|
2547
|
+
"'http://example.com/?q='" do
|
2548
|
+
before do
|
2549
|
+
@uri = Addressable::URI.parse("http://example.com/?q=")
|
2550
|
+
end
|
2551
|
+
|
2552
|
+
it "should have a query of 'q='" do
|
2553
|
+
@uri.query.should == "q="
|
2554
|
+
end
|
2555
|
+
|
2556
|
+
it "should have query_values of {'q' => ''}" do
|
2557
|
+
@uri.query_values.should == {'q' => ''}
|
2558
|
+
end
|
2559
|
+
end
|
2560
|
+
|
2391
2561
|
describe Addressable::URI, "when parsed from " +
|
2392
2562
|
"'http://user@example.com'" do
|
2393
2563
|
before do
|
@@ -2661,6 +2831,14 @@ describe Addressable::URI, "when parsed from " +
|
|
2661
2831
|
@uri.host.should == nil
|
2662
2832
|
end
|
2663
2833
|
|
2834
|
+
it "should have a site of nil" do
|
2835
|
+
@uri.site.should == nil
|
2836
|
+
end
|
2837
|
+
|
2838
|
+
it "should have a normalized_site of nil" do
|
2839
|
+
@uri.normalized_site.should == nil
|
2840
|
+
end
|
2841
|
+
|
2664
2842
|
it "should have a path of ''" do
|
2665
2843
|
@uri.path.should == ""
|
2666
2844
|
end
|
@@ -3864,6 +4042,21 @@ describe Addressable::URI, "when assigning query values" do
|
|
3864
4042
|
}
|
3865
4043
|
@uri.query.should == "a=a&b[c]&b[d]=d"
|
3866
4044
|
end
|
4045
|
+
|
4046
|
+
it "should correctly assign {}" do
|
4047
|
+
@uri.query_values = {}
|
4048
|
+
@uri.query.should == ''
|
4049
|
+
end
|
4050
|
+
|
4051
|
+
it "should correctly assign nil" do
|
4052
|
+
@uri.query_values = nil
|
4053
|
+
@uri.query.should == nil
|
4054
|
+
end
|
4055
|
+
|
4056
|
+
it "should correctly sort {'ab' => 'c', :ab => 'a', :a => 'x'}" do
|
4057
|
+
@uri.query_values = {'ab' => 'c', :ab => 'a', :a => 'x'}
|
4058
|
+
@uri.query.should == "a=x&ab=a&ab=c"
|
4059
|
+
end
|
3867
4060
|
end
|
3868
4061
|
|
3869
4062
|
describe Addressable::URI, "when assigning path values" do
|
data/tasks/gem.rake
CHANGED
@@ -21,6 +21,7 @@ namespace :gem do
|
|
21
21
|
s.add_development_dependency("rake", ">= 0.7.3")
|
22
22
|
s.add_development_dependency("rspec", ">= 1.0.8")
|
23
23
|
s.add_development_dependency("launchy", ">= 0.3.2")
|
24
|
+
s.add_development_dependency("diff-lcs", ">= 1.1.2")
|
24
25
|
|
25
26
|
s.require_path = "lib"
|
26
27
|
|
@@ -36,6 +37,21 @@ namespace :gem do
|
|
36
37
|
p.need_zip = true
|
37
38
|
end
|
38
39
|
|
40
|
+
desc "Generates .gemspec file"
|
41
|
+
task :gemspec do
|
42
|
+
spec_string = GEM_SPEC.to_ruby
|
43
|
+
|
44
|
+
begin
|
45
|
+
Thread.new { eval("$SAFE = 3\n#{spec_string}", binding) }.join
|
46
|
+
rescue
|
47
|
+
abort "unsafe gemspec: #{$!}"
|
48
|
+
else
|
49
|
+
File.open("#{GEM_SPEC.name}.gemspec", 'w') do |file|
|
50
|
+
file.write spec_string
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
39
55
|
desc "Show information about the gem"
|
40
56
|
task :debug do
|
41
57
|
puts GEM_SPEC.to_ruby
|
data/tasks/rdoc.rake
CHANGED
data/tasks/rubyforge.rake
CHANGED
data/tasks/yard.rake
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require "rake"
|
2
|
+
|
3
|
+
begin
|
4
|
+
require "yard"
|
5
|
+
require "yard/rake/yardoc_task"
|
6
|
+
|
7
|
+
namespace :doc do
|
8
|
+
desc "Generate Yardoc documentation"
|
9
|
+
YARD::Rake::YardocTask.new do |yardoc|
|
10
|
+
yardoc.name = "yard"
|
11
|
+
yardoc.options = ["--verbose"]
|
12
|
+
yardoc.files = [
|
13
|
+
"lib/**/*.rb", "ext/**/*.c", "README", "CHANGELOG", "LICENSE"
|
14
|
+
]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
task "clobber" => ["doc:clobber_yard"]
|
19
|
+
|
20
|
+
desc "Alias to doc:yard"
|
21
|
+
task "doc" => "doc:yard"
|
22
|
+
rescue LoadError
|
23
|
+
# If yard isn't available, it's not the end of the world
|
24
|
+
desc "Alias to doc:rdoc"
|
25
|
+
task "doc" => "doc:rdoc"
|
26
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: addressable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 7
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 2
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 2.2.0
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Bob Aman
|
@@ -9,39 +15,73 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date: 2010-
|
18
|
+
date: 2010-08-09 00:00:00 -07:00
|
13
19
|
default_executable:
|
14
20
|
dependencies:
|
15
21
|
- !ruby/object:Gem::Dependency
|
16
22
|
name: rake
|
17
|
-
|
18
|
-
|
19
|
-
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
20
26
|
requirements:
|
21
27
|
- - ">="
|
22
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 5
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
- 7
|
33
|
+
- 3
|
23
34
|
version: 0.7.3
|
24
|
-
|
35
|
+
type: :development
|
36
|
+
version_requirements: *id001
|
25
37
|
- !ruby/object:Gem::Dependency
|
26
38
|
name: rspec
|
27
|
-
|
28
|
-
|
29
|
-
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
30
42
|
requirements:
|
31
43
|
- - ">="
|
32
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 7
|
46
|
+
segments:
|
47
|
+
- 1
|
48
|
+
- 0
|
49
|
+
- 8
|
33
50
|
version: 1.0.8
|
34
|
-
|
51
|
+
type: :development
|
52
|
+
version_requirements: *id002
|
35
53
|
- !ruby/object:Gem::Dependency
|
36
54
|
name: launchy
|
37
|
-
|
38
|
-
|
39
|
-
|
55
|
+
prerelease: false
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
40
58
|
requirements:
|
41
59
|
- - ">="
|
42
60
|
- !ruby/object:Gem::Version
|
61
|
+
hash: 23
|
62
|
+
segments:
|
63
|
+
- 0
|
64
|
+
- 3
|
65
|
+
- 2
|
43
66
|
version: 0.3.2
|
44
|
-
|
67
|
+
type: :development
|
68
|
+
version_requirements: *id003
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: diff-lcs
|
71
|
+
prerelease: false
|
72
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
hash: 23
|
78
|
+
segments:
|
79
|
+
- 1
|
80
|
+
- 1
|
81
|
+
- 2
|
82
|
+
version: 1.1.2
|
83
|
+
type: :development
|
84
|
+
version_requirements: *id004
|
45
85
|
description: |
|
46
86
|
Addressable is a replacement for the URI implementation that is part of
|
47
87
|
Ruby's standard library. It more closely conforms to the relevant RFCs and
|
@@ -70,6 +110,7 @@ files:
|
|
70
110
|
- tasks/rdoc.rake
|
71
111
|
- tasks/rubyforge.rake
|
72
112
|
- tasks/spec.rake
|
113
|
+
- tasks/yard.rake
|
73
114
|
- website/index.html
|
74
115
|
- CHANGELOG
|
75
116
|
- LICENSE
|
@@ -86,21 +127,27 @@ rdoc_options:
|
|
86
127
|
require_paths:
|
87
128
|
- lib
|
88
129
|
required_ruby_version: !ruby/object:Gem::Requirement
|
130
|
+
none: false
|
89
131
|
requirements:
|
90
132
|
- - ">="
|
91
133
|
- !ruby/object:Gem::Version
|
134
|
+
hash: 3
|
135
|
+
segments:
|
136
|
+
- 0
|
92
137
|
version: "0"
|
93
|
-
version:
|
94
138
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
|
+
none: false
|
95
140
|
requirements:
|
96
141
|
- - ">="
|
97
142
|
- !ruby/object:Gem::Version
|
143
|
+
hash: 3
|
144
|
+
segments:
|
145
|
+
- 0
|
98
146
|
version: "0"
|
99
|
-
version:
|
100
147
|
requirements: []
|
101
148
|
|
102
149
|
rubyforge_project: addressable
|
103
|
-
rubygems_version: 1.3.
|
150
|
+
rubygems_version: 1.3.7
|
104
151
|
signing_key:
|
105
152
|
specification_version: 3
|
106
153
|
summary: URI Implementation
|