rubygems-update 2.0.12 → 2.0.13
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rubygems-update might be problematic. Click here for more details.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.txt +11 -0
- data/Rakefile +3 -9
- data/lib/rubygems.rb +1 -1
- data/lib/rubygems/server.rb +13 -5
- data/lib/rubygems/source.rb +6 -1
- data/lib/rubygems/spec_fetcher.rb +6 -1
- data/lib/rubygems/version.rb +1 -1
- data/test/rubygems/test_gem_server.rb +105 -1
- data/test/rubygems/test_gem_source.rb +10 -0
- data/test/rubygems/test_gem_spec_fetcher.rb +12 -0
- data/test/rubygems/test_gem_version.rb +4 -5
- metadata +3 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 672e26d53486f4b660b82364228bbf1e64a741f3
|
4
|
+
data.tar.gz: 7031ade701291c825bd52031ee4d8b48672a0ece
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1e8bc34b7aeec617109c9c46a20f2f467ec7229b9589a25c0dd3025f93d89b0be14f6442fe6639732ca80d01d185cede621d6fcd39a2a398d0b80a4938d472d
|
7
|
+
data.tar.gz: 826e04d509384a7006df87f49e9ff912762bddd45f40e461323b630ed9891e8e7003317ccd628a0a548bc0fbad21c336490aa718755b4ef13eef87e14668f437
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
# coding: UTF-8
|
2
2
|
|
3
|
+
=== 2.0.13 / 2013-10-24
|
4
|
+
|
5
|
+
Bug fixes:
|
6
|
+
|
7
|
+
* Use class check instead of :version method check when creating Gem::Version
|
8
|
+
objects. Fixes #674 by jkanywhere.
|
9
|
+
* Allow installation of gems when the home directory does not exist. Issue
|
10
|
+
#689 by Laurence Rowe
|
11
|
+
* Fix updating gems which have multiple platforms. Issue #693 by Ookami
|
12
|
+
Kenrou.
|
13
|
+
|
3
14
|
=== 2.0.12 / 2013-10-14
|
4
15
|
|
5
16
|
Bug fixes:
|
data/Rakefile
CHANGED
@@ -118,14 +118,6 @@ task :package do
|
|
118
118
|
end
|
119
119
|
end
|
120
120
|
|
121
|
-
desc "Upload release to rubyforge"
|
122
|
-
task :upload_to_rubyforge do
|
123
|
-
v = hoe.version
|
124
|
-
sh "rubyforge add_release rubygems rubygems #{v} pkg/rubygems-update-#{v}.gem"
|
125
|
-
sh "rubyforge add_file rubygems rubygems #{v} pkg/rubygems-#{v}.zip"
|
126
|
-
sh "rubyforge add_file rubygems rubygems #{v} pkg/rubygems-#{v}.tgz"
|
127
|
-
end
|
128
|
-
|
129
121
|
desc "Upload release to gemcutter S3"
|
130
122
|
task :upload_to_gemcutter do
|
131
123
|
v = hoe.version
|
@@ -133,7 +125,9 @@ task :upload_to_gemcutter do
|
|
133
125
|
end
|
134
126
|
|
135
127
|
desc "Upload release to rubyforge and gemcutter"
|
136
|
-
task :upload => [:
|
128
|
+
task :upload => [:upload_to_gemcutter]
|
129
|
+
|
130
|
+
Rake::Task['publish_docs'].clear
|
137
131
|
|
138
132
|
# Misc Tasks ---------------------------------------------------------
|
139
133
|
|
data/lib/rubygems.rb
CHANGED
data/lib/rubygems/server.rb
CHANGED
@@ -445,7 +445,7 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
|
|
445
445
|
@spec_dirs = @gem_dirs.map { |gem_dir| File.join gem_dir, 'specifications' }
|
446
446
|
@spec_dirs.reject! { |spec_dir| !File.directory? spec_dir }
|
447
447
|
|
448
|
-
|
448
|
+
reset_gems
|
449
449
|
|
450
450
|
@have_rdoc_4_plus = nil
|
451
451
|
end
|
@@ -470,7 +470,7 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
|
|
470
470
|
end
|
471
471
|
|
472
472
|
def latest_specs(req, res)
|
473
|
-
|
473
|
+
reset_gems
|
474
474
|
|
475
475
|
res['content-type'] = 'application/x-gzip'
|
476
476
|
|
@@ -531,7 +531,7 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
|
|
531
531
|
end
|
532
532
|
|
533
533
|
def quick(req, res)
|
534
|
-
|
534
|
+
reset_gems
|
535
535
|
|
536
536
|
res['content-type'] = 'text/plain'
|
537
537
|
add_date res
|
@@ -567,7 +567,8 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
|
|
567
567
|
end
|
568
568
|
|
569
569
|
def root(req, res)
|
570
|
-
|
570
|
+
reset_gems
|
571
|
+
|
571
572
|
add_date res
|
572
573
|
|
573
574
|
raise WEBrick::HTTPStatus::NotFound, "`#{req.path}' not found." unless
|
@@ -697,6 +698,13 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
|
|
697
698
|
res.body = template.result binding
|
698
699
|
end
|
699
700
|
|
701
|
+
##
|
702
|
+
# Updates the server to use the latest installed gems.
|
703
|
+
|
704
|
+
def reset_gems # :nodoc:
|
705
|
+
Gem::Specification.dirs = @gem_dirs
|
706
|
+
end
|
707
|
+
|
700
708
|
##
|
701
709
|
# Returns true and prepares http response, if rdoc for the requested gem
|
702
710
|
# name pattern was found.
|
@@ -787,7 +795,7 @@ div.method-source-code pre { color: #ffdead; overflow: hidden; }
|
|
787
795
|
end
|
788
796
|
|
789
797
|
def specs(req, res)
|
790
|
-
|
798
|
+
reset_gems
|
791
799
|
|
792
800
|
add_date res
|
793
801
|
|
data/lib/rubygems/source.rb
CHANGED
@@ -63,7 +63,12 @@ class Gem::Source
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def update_cache?
|
66
|
-
@update_cache ||=
|
66
|
+
@update_cache ||=
|
67
|
+
begin
|
68
|
+
File.stat(Gem.user_home).uid == Process.uid
|
69
|
+
rescue Errno::ENOENT
|
70
|
+
false
|
71
|
+
end
|
67
72
|
end
|
68
73
|
|
69
74
|
def fetch_spec(name)
|
@@ -39,7 +39,12 @@ class Gem::SpecFetcher
|
|
39
39
|
|
40
40
|
def initialize
|
41
41
|
@dir = File.join Gem.user_home, '.gem', 'specs'
|
42
|
-
@update_cache =
|
42
|
+
@update_cache =
|
43
|
+
begin
|
44
|
+
File.stat(Gem.user_home).uid == Process.uid
|
45
|
+
rescue Errno::EACCES, Errno::ENOENT
|
46
|
+
false
|
47
|
+
end
|
43
48
|
|
44
49
|
@specs = {}
|
45
50
|
@latest_specs = {}
|
data/lib/rubygems/version.rb
CHANGED
@@ -174,7 +174,7 @@ class Gem::Version
|
|
174
174
|
# REFACTOR: There's no real reason this should be separate from #initialize.
|
175
175
|
|
176
176
|
def self.create input
|
177
|
-
if input
|
177
|
+
if self === input then # check yourself before you wreck yourself
|
178
178
|
input
|
179
179
|
elsif input.nil? then
|
180
180
|
nil
|
@@ -85,6 +85,30 @@ class TestGemServer < Gem::TestCase
|
|
85
85
|
Marshal.load(@res.body)
|
86
86
|
end
|
87
87
|
|
88
|
+
def test_latest_specs_gemdirs
|
89
|
+
data = StringIO.new "GET /latest_specs.#{Gem.marshal_version} HTTP/1.0\r\n\r\n"
|
90
|
+
dir = "#{@gemhome}2"
|
91
|
+
|
92
|
+
spec = quick_spec 'z', 9
|
93
|
+
|
94
|
+
specs_dir = File.join dir, 'specifications'
|
95
|
+
FileUtils.mkdir_p specs_dir
|
96
|
+
|
97
|
+
open File.join(specs_dir, spec.spec_name), 'w' do |io|
|
98
|
+
io.write spec.to_ruby
|
99
|
+
end
|
100
|
+
|
101
|
+
server = Gem::Server.new dir, process_based_port, false
|
102
|
+
|
103
|
+
@req.parse data
|
104
|
+
|
105
|
+
server.latest_specs @req, @res
|
106
|
+
|
107
|
+
assert_equal 200, @res.status
|
108
|
+
|
109
|
+
assert_equal [['z', v(9), Gem::Platform::RUBY]], Marshal.load(@res.body)
|
110
|
+
end
|
111
|
+
|
88
112
|
def test_latest_specs_gz
|
89
113
|
data = StringIO.new "GET /latest_specs.#{Gem.marshal_version}.gz HTTP/1.0\r\n\r\n"
|
90
114
|
@req.parse data
|
@@ -120,8 +144,41 @@ class TestGemServer < Gem::TestCase
|
|
120
144
|
assert_equal 2, @server.server.listeners.length
|
121
145
|
end
|
122
146
|
|
147
|
+
def test_quick_gemdirs
|
148
|
+
data = StringIO.new "GET /quick/Marshal.4.8/z-9.gemspec.rz HTTP/1.0\r\n\r\n"
|
149
|
+
dir = "#{@gemhome}2"
|
150
|
+
|
151
|
+
server = Gem::Server.new dir, process_based_port, false
|
152
|
+
|
153
|
+
@req.parse data
|
154
|
+
|
155
|
+
server.quick @req, @res
|
156
|
+
|
157
|
+
assert_equal 404, @res.status
|
158
|
+
|
159
|
+
spec = quick_spec 'z', 9
|
160
|
+
|
161
|
+
specs_dir = File.join dir, 'specifications'
|
162
|
+
|
163
|
+
FileUtils.mkdir_p specs_dir
|
164
|
+
|
165
|
+
open File.join(specs_dir, spec.spec_name), 'w' do |io|
|
166
|
+
io.write spec.to_ruby
|
167
|
+
end
|
168
|
+
|
169
|
+
data.rewind
|
170
|
+
|
171
|
+
req = WEBrick::HTTPRequest.new :Logger => nil
|
172
|
+
res = WEBrick::HTTPResponse.new :HTTPVersion => '1.0'
|
173
|
+
req.parse data
|
174
|
+
|
175
|
+
server.quick req, res
|
176
|
+
|
177
|
+
assert_equal 200, res.status
|
178
|
+
end
|
179
|
+
|
123
180
|
def test_quick_missing
|
124
|
-
data = StringIO.new "GET /quick/z-9.gemspec.rz HTTP/1.0\r\n\r\n"
|
181
|
+
data = StringIO.new "GET /quick/Marshal.4.8/z-9.gemspec.rz HTTP/1.0\r\n\r\n"
|
125
182
|
@req.parse data
|
126
183
|
|
127
184
|
@server.quick @req, @res
|
@@ -188,6 +245,29 @@ class TestGemServer < Gem::TestCase
|
|
188
245
|
assert_equal 'text/html', @res['content-type']
|
189
246
|
end
|
190
247
|
|
248
|
+
def test_root_gemdirs
|
249
|
+
data = StringIO.new "GET / HTTP/1.0\r\n\r\n"
|
250
|
+
dir = "#{@gemhome}2"
|
251
|
+
|
252
|
+
spec = quick_spec 'z', 9
|
253
|
+
|
254
|
+
specs_dir = File.join dir, 'specifications'
|
255
|
+
FileUtils.mkdir_p specs_dir
|
256
|
+
|
257
|
+
open File.join(specs_dir, spec.spec_name), 'w' do |io|
|
258
|
+
io.write spec.to_ruby
|
259
|
+
end
|
260
|
+
|
261
|
+
server = Gem::Server.new dir, process_based_port, false
|
262
|
+
|
263
|
+
@req.parse data
|
264
|
+
|
265
|
+
server.root @req, @res
|
266
|
+
|
267
|
+
assert_equal 200, @res.status
|
268
|
+
assert_match 'z 9', @res.body
|
269
|
+
end
|
270
|
+
|
191
271
|
def test_specs
|
192
272
|
data = StringIO.new "GET /specs.#{Gem.marshal_version} HTTP/1.0\r\n\r\n"
|
193
273
|
@req.parse data
|
@@ -203,6 +283,30 @@ class TestGemServer < Gem::TestCase
|
|
203
283
|
Marshal.load(@res.body)
|
204
284
|
end
|
205
285
|
|
286
|
+
def test_specs_gemdirs
|
287
|
+
data = StringIO.new "GET /specs.#{Gem.marshal_version} HTTP/1.0\r\n\r\n"
|
288
|
+
dir = "#{@gemhome}2"
|
289
|
+
|
290
|
+
spec = quick_spec 'z', 9
|
291
|
+
|
292
|
+
specs_dir = File.join dir, 'specifications'
|
293
|
+
FileUtils.mkdir_p specs_dir
|
294
|
+
|
295
|
+
open File.join(specs_dir, spec.spec_name), 'w' do |io|
|
296
|
+
io.write spec.to_ruby
|
297
|
+
end
|
298
|
+
|
299
|
+
server = Gem::Server.new dir, process_based_port, false
|
300
|
+
|
301
|
+
@req.parse data
|
302
|
+
|
303
|
+
server.specs @req, @res
|
304
|
+
|
305
|
+
assert_equal 200, @res.status
|
306
|
+
|
307
|
+
assert_equal [['z', v(9), Gem::Platform::RUBY]], Marshal.load(@res.body)
|
308
|
+
end
|
309
|
+
|
206
310
|
def test_specs_gz
|
207
311
|
data = StringIO.new "GET /specs.#{Gem.marshal_version}.gz HTTP/1.0\r\n\r\n"
|
208
312
|
@req.parse data
|
@@ -184,5 +184,15 @@ class TestGemSource < Gem::TestCase
|
|
184
184
|
end
|
185
185
|
end
|
186
186
|
|
187
|
+
def test_update_cache_eh
|
188
|
+
assert @source.update_cache?
|
189
|
+
end
|
190
|
+
|
191
|
+
def test_update_cache_eh_home_nonexistent
|
192
|
+
FileUtils.rmdir Gem.user_home
|
193
|
+
|
194
|
+
refute @source.update_cache?
|
195
|
+
end
|
196
|
+
|
187
197
|
end
|
188
198
|
|
@@ -52,6 +52,18 @@ class TestGemSpecFetcher < Gem::TestCase
|
|
52
52
|
['x', Gem::Version.new(1), 'ruby']]
|
53
53
|
end
|
54
54
|
|
55
|
+
def test_initialize_unwritable_home_dir
|
56
|
+
skip 'chmod not supported' if Gem.win_platform?
|
57
|
+
|
58
|
+
FileUtils.chmod 0000, Gem.user_home
|
59
|
+
|
60
|
+
begin
|
61
|
+
assert Gem::SpecFetcher.new
|
62
|
+
ensure
|
63
|
+
FileUtils.chmod 0755, Gem.user_home
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
55
67
|
def test_spec_for_dependency_all
|
56
68
|
d = "#{@gem_repo}#{Gem::MARSHAL_SPEC_DIR}"
|
57
69
|
@fetcher.data["#{d}#{@a1.spec_name}.rz"] = util_zip(Marshal.dump(@a1))
|
@@ -23,14 +23,13 @@ class TestGemVersion < Gem::TestCase
|
|
23
23
|
assert_bumped_version_equal "6", "5"
|
24
24
|
end
|
25
25
|
|
26
|
-
#
|
27
|
-
#
|
26
|
+
# A Gem::Version is already a Gem::Version and therefore not transformed by
|
27
|
+
# Gem::Version.create
|
28
28
|
|
29
29
|
def test_class_create
|
30
|
-
|
31
|
-
def fake.version; "1.0" end
|
30
|
+
real = Gem::Version.new(1.0)
|
32
31
|
|
33
|
-
assert_same
|
32
|
+
assert_same real, Gem::Version.create(real)
|
34
33
|
assert_nil Gem::Version.create(nil)
|
35
34
|
assert_equal v("5.1"), Gem::Version.create("5.1")
|
36
35
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubygems-update
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Weirich
|
@@ -32,7 +32,7 @@ cert_chain:
|
|
32
32
|
KDyY1VIazVgoC8XvR4h/95/iScPiuglzA+DBG1hip1xScAtw05BrXyUNrc9CEMYU
|
33
33
|
wgF94UVoHRp6ywo8I7NP3HcwFQDFNEZPNGXsng==
|
34
34
|
-----END CERTIFICATE-----
|
35
|
-
date: 2013-10-
|
35
|
+
date: 2013-10-25 00:00:00.000000000 Z
|
36
36
|
dependencies:
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: minitest
|
@@ -457,7 +457,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
457
457
|
version: '0'
|
458
458
|
requirements: []
|
459
459
|
rubyforge_project: rubygems-update
|
460
|
-
rubygems_version: 2.1.
|
460
|
+
rubygems_version: 2.1.9
|
461
461
|
signing_key:
|
462
462
|
specification_version: 4
|
463
463
|
summary: RubyGems is a package management framework for Ruby
|
metadata.gz.sig
CHANGED
Binary file
|