rubygems-update 2.0.12 → 2.0.13
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.
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
|