rubygems-update 0.9.5 → 1.0.0
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.
- data/ChangeLog +135 -0
- data/Rakefile +3 -1
- data/lib/rubygems.rb +27 -38
- data/lib/rubygems/commands/install_command.rb +2 -0
- data/lib/rubygems/commands/mirror_command.rb +8 -2
- data/lib/rubygems/commands/query_command.rb +3 -1
- data/lib/rubygems/commands/server_command.rb +3 -3
- data/lib/rubygems/commands/unpack_command.rb +11 -4
- data/lib/rubygems/commands/update_command.rb +114 -108
- data/lib/rubygems/defaults.rb +46 -0
- data/lib/rubygems/dependency_installer.rb +13 -2
- data/lib/rubygems/indexer.rb +1 -1
- data/lib/rubygems/install_update_options.rb +7 -0
- data/lib/rubygems/installer.rb +66 -11
- data/lib/rubygems/package.rb +2 -1
- data/lib/rubygems/platform.rb +24 -30
- data/lib/rubygems/remote_fetcher.rb +7 -3
- data/lib/rubygems/require_paths_builder.rb +15 -0
- data/lib/rubygems/rubygems_version.rb +1 -1
- data/lib/rubygems/security.rb +1 -1
- data/lib/rubygems/server.rb +18 -3
- data/lib/rubygems/source_index.rb +20 -23
- data/lib/rubygems/source_info_cache.rb +3 -3
- data/lib/rubygems/specification.rb +64 -31
- data/lib/rubygems/uninstaller.rb +1 -1
- data/lib/rubygems/validator.rb +3 -2
- data/lib/rubygems/version.rb +10 -3
- data/setup.rb +30 -6
- data/test/gemutilities.rb +23 -13
- data/test/gemutilities.rbc +0 -0
- data/test/mockgemui.rbc +0 -0
- data/test/test_gem.rb +46 -76
- data/test/test_gem.rbc +0 -0
- data/test/test_gem_commands_build_command.rb +12 -12
- data/test/test_gem_commands_dependency_command.rb +10 -10
- data/test/test_gem_commands_mirror_command.rb +9 -4
- data/test/test_gem_commands_query_command.rb +7 -3
- data/test/test_gem_commands_server_command.rb +27 -0
- data/test/test_gem_commands_unpack_command.rb +20 -2
- data/test/test_gem_format.rb +1 -1
- data/test/test_gem_indexer.rb +5 -5
- data/test/test_gem_install_update_options.rb +1 -1
- data/test/test_gem_installer.rb +149 -60
- data/test/test_gem_platform.rb +19 -0
- data/test/test_gem_remote_fetcher.rb +19 -2
- data/test/test_gem_server.rb +44 -1
- data/test/test_gem_source_index.rb +2 -2
- data/test/test_gem_specification.rb +300 -168
- data/test/test_gem_version.rb +15 -0
- data/test/test_kernel.rb +19 -19
- metadata +46 -42
- data/lib/rubygems/remote_installer.rb +0 -195
- data/test/test_gem_remote_installer.rb +0 -161
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), 'gemutilities')
|
3
|
+
require 'rubygems/commands/server_command'
|
4
|
+
|
5
|
+
class TestGemCommandsServerCommand < RubyGemTestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
super
|
9
|
+
|
10
|
+
@cmd = Gem::Commands::ServerCommand.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_handle_options
|
14
|
+
@cmd.send :handle_options, %w[-p 8808 --no-daemon]
|
15
|
+
|
16
|
+
assert_equal false, @cmd.options[:daemon]
|
17
|
+
assert_equal @gemhome, @cmd.options[:gemdir]
|
18
|
+
assert_equal 8808, @cmd.options[:port]
|
19
|
+
|
20
|
+
@cmd.send :handle_options, %w[-p 9999 -d /nonexistent --daemon]
|
21
|
+
|
22
|
+
assert_equal true, @cmd.options[:daemon]
|
23
|
+
assert_equal '/nonexistent', @cmd.options[:gemdir]
|
24
|
+
assert_equal 9999, @cmd.options[:port]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
@@ -7,7 +7,9 @@ class TestGemCommandsUnpackCommand < RubyGemTestCase
|
|
7
7
|
def setup
|
8
8
|
super
|
9
9
|
|
10
|
-
@
|
10
|
+
Dir.chdir @tempdir do
|
11
|
+
@cmd = Gem::Commands::UnpackCommand.new
|
12
|
+
end
|
11
13
|
end
|
12
14
|
|
13
15
|
def test_execute
|
@@ -15,13 +17,29 @@ class TestGemCommandsUnpackCommand < RubyGemTestCase
|
|
15
17
|
|
16
18
|
@cmd.options[:args] = %w[a]
|
17
19
|
|
20
|
+
use_ui @ui do
|
21
|
+
Dir.chdir @tempdir do
|
22
|
+
@cmd.execute
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
assert File.exist?(File.join(@tempdir, 'a-2'))
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_execute_with_target_option
|
30
|
+
util_make_gems
|
31
|
+
|
32
|
+
target = 'with_target'
|
33
|
+
@cmd.options[:args] = %w[a]
|
34
|
+
@cmd.options[:target] = target
|
35
|
+
|
18
36
|
use_ui @ui do
|
19
37
|
Dir.chdir @tempdir do
|
20
38
|
@cmd.execute
|
21
39
|
end
|
22
40
|
end
|
23
41
|
|
24
|
-
assert File.exist?(File.join(@tempdir, 'a-
|
42
|
+
assert File.exist?(File.join(@tempdir, target, 'a-2'))
|
25
43
|
end
|
26
44
|
|
27
45
|
def test_execute_exact_match
|
data/test/test_gem_format.rb
CHANGED
data/test/test_gem_indexer.rb
CHANGED
@@ -53,16 +53,16 @@ class TestGemIndexer < RubyGemTestCase
|
|
53
53
|
assert_indexed quickdir, "index"
|
54
54
|
assert_indexed quickdir, "index.rz"
|
55
55
|
|
56
|
-
assert_indexed quickdir, "#{@
|
57
|
-
assert_indexed quickdir, "#{@
|
58
|
-
assert_indexed quickdir, "#{@
|
56
|
+
assert_indexed quickdir, "#{@a1.full_name}.gemspec.rz"
|
57
|
+
assert_indexed quickdir, "#{@a2.full_name}.gemspec.rz"
|
58
|
+
assert_indexed quickdir, "#{@b2.full_name}.gemspec.rz"
|
59
59
|
assert_indexed quickdir, "#{@c1_2.full_name}.gemspec.rz"
|
60
60
|
|
61
61
|
assert_indexed quickdir, "#{@pl1.original_name}.gemspec.rz"
|
62
62
|
deny_indexed quickdir, "#{@pl1.full_name}.gemspec.rz"
|
63
63
|
|
64
|
-
assert_indexed marshal_quickdir, "#{@
|
65
|
-
assert_indexed marshal_quickdir, "#{@
|
64
|
+
assert_indexed marshal_quickdir, "#{@a1.full_name}.gemspec.rz"
|
65
|
+
assert_indexed marshal_quickdir, "#{@a2.full_name}.gemspec.rz"
|
66
66
|
|
67
67
|
deny_indexed quickdir, "#{@c1_2.full_name}.gemspec"
|
68
68
|
deny_indexed marshal_quickdir, "#{@c1_2.full_name}.gemspec"
|
@@ -16,7 +16,7 @@ class TestGemInstallUpdateOptions < RubyGemTestCase
|
|
16
16
|
@cmd.add_install_update_options
|
17
17
|
|
18
18
|
args = %w[-i /install_to --rdoc --ri -E -f -t -w -P HighSecurity
|
19
|
-
--ignore-dependencies --include-dependencies]
|
19
|
+
--ignore-dependencies --format-exec --include-dependencies]
|
20
20
|
|
21
21
|
assert @cmd.handles?(args)
|
22
22
|
end
|
data/test/test_gem_installer.rb
CHANGED
@@ -9,11 +9,13 @@ require File.join(File.expand_path(File.dirname(__FILE__)), 'gemutilities')
|
|
9
9
|
require 'rubygems/installer'
|
10
10
|
|
11
11
|
class Gem::Installer
|
12
|
+
attr_accessor :gem_dir
|
13
|
+
|
12
14
|
attr_writer :format
|
13
|
-
attr_writer :gem_dir
|
14
15
|
attr_writer :gem_home
|
15
16
|
attr_writer :env_shebang
|
16
17
|
attr_writer :ignore_dependencies
|
18
|
+
attr_writer :format_executable
|
17
19
|
attr_writer :security_policy
|
18
20
|
attr_writer :spec
|
19
21
|
attr_writer :wrappers
|
@@ -37,11 +39,11 @@ class TestGemInstaller < RubyGemTestCase
|
|
37
39
|
@installer.spec = @spec
|
38
40
|
end
|
39
41
|
|
40
|
-
def util_gem_dir(version = '
|
42
|
+
def util_gem_dir(version = '2')
|
41
43
|
File.join @gemhome, "gems", "a-#{version}" # HACK
|
42
44
|
end
|
43
45
|
|
44
|
-
def util_gem_bindir(version = '
|
46
|
+
def util_gem_bindir(version = '2')
|
45
47
|
File.join util_gem_dir(version), "bin"
|
46
48
|
end
|
47
49
|
|
@@ -49,18 +51,19 @@ class TestGemInstaller < RubyGemTestCase
|
|
49
51
|
File.join @gemhome, "bin"
|
50
52
|
end
|
51
53
|
|
52
|
-
def util_make_exec(version = '
|
54
|
+
def util_make_exec(version = '2', shebang = "#!/usr/bin/ruby")
|
53
55
|
@spec.executables = ["my_exec"]
|
54
56
|
|
55
57
|
FileUtils.mkdir_p util_gem_bindir(version)
|
56
|
-
exec_file =
|
57
|
-
File.
|
58
|
+
exec_file = @installer.formatted_program_filename "my_exec"
|
59
|
+
exec_path = File.join util_gem_bindir(version), exec_file
|
60
|
+
File.open exec_path, 'w' do |f|
|
58
61
|
f.puts shebang
|
59
62
|
end
|
60
63
|
end
|
61
64
|
|
62
65
|
def test_app_script_text
|
63
|
-
util_make_exec '
|
66
|
+
util_make_exec '2', ''
|
64
67
|
|
65
68
|
expected = <<-EOF
|
66
69
|
#!#{Gem.ruby}
|
@@ -144,15 +147,15 @@ load 'my_exec'
|
|
144
147
|
end
|
145
148
|
|
146
149
|
def test_ensure_dependency
|
147
|
-
dep = Gem::Dependency.new 'a', '>=
|
150
|
+
dep = Gem::Dependency.new 'a', '>= 2'
|
148
151
|
assert @installer.ensure_dependency(@spec, dep)
|
149
152
|
|
150
|
-
dep = Gem::Dependency.new 'b', '>
|
153
|
+
dep = Gem::Dependency.new 'b', '> 2'
|
151
154
|
e = assert_raise Gem::InstallError do
|
152
155
|
@installer.ensure_dependency @spec, dep
|
153
156
|
end
|
154
157
|
|
155
|
-
assert_equal 'a requires b (>
|
158
|
+
assert_equal 'a requires b (> 2)', e.message
|
156
159
|
end
|
157
160
|
|
158
161
|
def test_expand_and_validate_gem_dir
|
@@ -226,7 +229,32 @@ load 'my_exec'
|
|
226
229
|
"You may need to remove this file if you broke the test once"
|
227
230
|
end
|
228
231
|
|
229
|
-
def
|
232
|
+
def test_generate_bin_bindir
|
233
|
+
@installer.wrappers = true
|
234
|
+
|
235
|
+
@spec.executables = ["my_exec"]
|
236
|
+
@spec.bindir = '.'
|
237
|
+
|
238
|
+
exec_file = @installer.formatted_program_filename "my_exec"
|
239
|
+
exec_path = File.join util_gem_dir(@spec.version), exec_file
|
240
|
+
File.open exec_path, 'w' do |f|
|
241
|
+
f.puts '#!/usr/bin/ruby'
|
242
|
+
end
|
243
|
+
|
244
|
+
@installer.gem_dir = util_gem_dir
|
245
|
+
|
246
|
+
@installer.generate_bin
|
247
|
+
|
248
|
+
assert_equal true, File.directory?(util_inst_bindir)
|
249
|
+
installed_exec = File.join(util_inst_bindir, "my_exec")
|
250
|
+
assert_equal true, File.exist?(installed_exec)
|
251
|
+
assert_equal(0100755, File.stat(installed_exec).mode) unless win_platform?
|
252
|
+
|
253
|
+
wrapper = File.read installed_exec
|
254
|
+
assert_match %r|generated by RubyGems|, wrapper
|
255
|
+
end
|
256
|
+
|
257
|
+
def test_generate_bin_script
|
230
258
|
@installer.wrappers = true
|
231
259
|
util_make_exec
|
232
260
|
@installer.gem_dir = util_gem_dir
|
@@ -241,7 +269,36 @@ load 'my_exec'
|
|
241
269
|
assert_match %r|generated by RubyGems|, wrapper
|
242
270
|
end
|
243
271
|
|
244
|
-
def
|
272
|
+
def test_generate_bin_script_format
|
273
|
+
@installer.format_executable = true
|
274
|
+
@installer.wrappers = true
|
275
|
+
util_make_exec
|
276
|
+
@installer.gem_dir = util_gem_dir
|
277
|
+
|
278
|
+
Gem::Installer.exec_format = 'foo-%s-bar'
|
279
|
+
@installer.generate_bin
|
280
|
+
assert_equal true, File.directory?(util_inst_bindir)
|
281
|
+
installed_exec = File.join util_inst_bindir, 'foo-my_exec-bar'
|
282
|
+
assert_equal true, File.exist?(installed_exec)
|
283
|
+
ensure
|
284
|
+
Gem::Installer.exec_format = nil
|
285
|
+
end
|
286
|
+
|
287
|
+
def test_generate_bin_script_format_disabled
|
288
|
+
@installer.wrappers = true
|
289
|
+
util_make_exec
|
290
|
+
@installer.gem_dir = util_gem_dir
|
291
|
+
|
292
|
+
Gem::Installer.exec_format = 'foo-%s-bar'
|
293
|
+
@installer.generate_bin
|
294
|
+
assert_equal true, File.directory?(util_inst_bindir)
|
295
|
+
installed_exec = File.join util_inst_bindir, 'my_exec'
|
296
|
+
assert_equal true, File.exist?(installed_exec)
|
297
|
+
ensure
|
298
|
+
Gem::Installer.exec_format = nil
|
299
|
+
end
|
300
|
+
|
301
|
+
def test_generate_bin_script_install_dir
|
245
302
|
@installer.wrappers = true
|
246
303
|
@spec.executables = ["my_exec"]
|
247
304
|
|
@@ -265,13 +322,13 @@ load 'my_exec'
|
|
265
322
|
assert_match %r|generated by RubyGems|, wrapper
|
266
323
|
end
|
267
324
|
|
268
|
-
def
|
325
|
+
def test_generate_bin_script_no_execs
|
269
326
|
@installer.wrappers = true
|
270
327
|
@installer.generate_bin
|
271
328
|
assert_equal false, File.exist?(util_inst_bindir)
|
272
329
|
end
|
273
330
|
|
274
|
-
def
|
331
|
+
def test_generate_bin_script_no_perms
|
275
332
|
@installer.wrappers = true
|
276
333
|
util_make_exec
|
277
334
|
|
@@ -286,7 +343,30 @@ load 'my_exec'
|
|
286
343
|
File.chmod 0700, util_inst_bindir unless $DEBUG
|
287
344
|
end
|
288
345
|
|
289
|
-
def
|
346
|
+
def test_generate_bin_script_no_shebang
|
347
|
+
@installer.wrappers = true
|
348
|
+
@spec.executables = ["my_exec"]
|
349
|
+
|
350
|
+
gem_dir = File.join @gemhome, 'gems', @spec.full_name
|
351
|
+
gem_bindir = File.join gem_dir, 'bin'
|
352
|
+
FileUtils.mkdir_p gem_bindir
|
353
|
+
File.open File.join(gem_bindir, "my_exec"), 'w' do |f|
|
354
|
+
f.puts "blah blah blah"
|
355
|
+
end
|
356
|
+
|
357
|
+
@installer.generate_bin
|
358
|
+
|
359
|
+
installed_exec = File.join @gemhome, 'bin', 'my_exec'
|
360
|
+
assert_equal true, File.exist?(installed_exec)
|
361
|
+
assert_equal 0100755, File.stat(installed_exec).mode unless win_platform?
|
362
|
+
|
363
|
+
wrapper = File.read installed_exec
|
364
|
+
assert_match %r|generated by RubyGems|, wrapper
|
365
|
+
# HACK some gems don't have #! in their executables, restore 2008/06
|
366
|
+
#assert_no_match %r|generated by RubyGems|, wrapper
|
367
|
+
end
|
368
|
+
|
369
|
+
def test_generate_bin_symlink
|
290
370
|
return if win_platform? #Windows FS do not support symlinks
|
291
371
|
|
292
372
|
@installer.wrappers = false
|
@@ -301,13 +381,13 @@ load 'my_exec'
|
|
301
381
|
File.readlink(installed_exec))
|
302
382
|
end
|
303
383
|
|
304
|
-
def
|
384
|
+
def test_generate_bin_symlink_no_execs
|
305
385
|
@installer.wrappers = false
|
306
386
|
@installer.generate_bin
|
307
387
|
assert_equal false, File.exist?(util_inst_bindir)
|
308
388
|
end
|
309
389
|
|
310
|
-
def
|
390
|
+
def test_generate_bin_symlink_no_perms
|
311
391
|
@installer.wrappers = false
|
312
392
|
util_make_exec
|
313
393
|
@installer.gem_dir = util_gem_dir
|
@@ -323,7 +403,7 @@ load 'my_exec'
|
|
323
403
|
File.chmod 0700, util_inst_bindir unless $DEBUG
|
324
404
|
end
|
325
405
|
|
326
|
-
def
|
406
|
+
def test_generate_bin_symlink_update_newer
|
327
407
|
return if win_platform? #Windows FS do not support symlinks
|
328
408
|
|
329
409
|
@installer.wrappers = false
|
@@ -338,22 +418,22 @@ load 'my_exec'
|
|
338
418
|
@spec = Gem::Specification.new do |s|
|
339
419
|
s.files = ['lib/code.rb']
|
340
420
|
s.name = "a"
|
341
|
-
s.version = "
|
421
|
+
s.version = "3"
|
342
422
|
s.summary = "summary"
|
343
423
|
s.description = "desc"
|
344
424
|
s.require_path = 'lib'
|
345
425
|
end
|
346
426
|
|
347
|
-
util_make_exec '
|
348
|
-
@installer.gem_dir = File.join util_gem_dir('
|
427
|
+
util_make_exec '3'
|
428
|
+
@installer.gem_dir = File.join util_gem_dir('3')
|
349
429
|
@installer.generate_bin
|
350
430
|
installed_exec = File.join(util_inst_bindir, "my_exec")
|
351
|
-
assert_equal(File.join(util_gem_bindir('
|
431
|
+
assert_equal(File.join(util_gem_bindir('3'), "my_exec"),
|
352
432
|
File.readlink(installed_exec),
|
353
433
|
"Ensure symlink moved to latest version")
|
354
434
|
end
|
355
435
|
|
356
|
-
def
|
436
|
+
def test_generate_bin_symlink_update_older
|
357
437
|
return if win_platform? #Windows FS do not support symlinks
|
358
438
|
|
359
439
|
@installer.wrappers = false
|
@@ -368,25 +448,25 @@ load 'my_exec'
|
|
368
448
|
spec = Gem::Specification.new do |s|
|
369
449
|
s.files = ['lib/code.rb']
|
370
450
|
s.name = "a"
|
371
|
-
s.version = "
|
451
|
+
s.version = "1"
|
372
452
|
s.summary = "summary"
|
373
453
|
s.description = "desc"
|
374
454
|
s.require_path = 'lib'
|
375
455
|
end
|
376
456
|
|
377
|
-
util_make_exec '
|
378
|
-
@installer.gem_dir = util_gem_dir('
|
457
|
+
util_make_exec '1'
|
458
|
+
@installer.gem_dir = util_gem_dir('1')
|
379
459
|
@installer.spec = spec
|
380
460
|
|
381
461
|
@installer.generate_bin
|
382
462
|
|
383
463
|
installed_exec = File.join(util_inst_bindir, "my_exec")
|
384
|
-
assert_equal(File.join(util_gem_dir('
|
464
|
+
assert_equal(File.join(util_gem_dir('2'), "bin", "my_exec"),
|
385
465
|
File.readlink(installed_exec),
|
386
466
|
"Ensure symlink not moved")
|
387
467
|
end
|
388
468
|
|
389
|
-
def
|
469
|
+
def test_generate_bin_symlink_update_remove_wrapper
|
390
470
|
return if win_platform? #Windows FS do not support symlinks
|
391
471
|
|
392
472
|
@installer.wrappers = true
|
@@ -400,25 +480,25 @@ load 'my_exec'
|
|
400
480
|
@spec = Gem::Specification.new do |s|
|
401
481
|
s.files = ['lib/code.rb']
|
402
482
|
s.name = "a"
|
403
|
-
s.version = "
|
483
|
+
s.version = "3"
|
404
484
|
s.summary = "summary"
|
405
485
|
s.description = "desc"
|
406
486
|
s.require_path = 'lib'
|
407
487
|
end
|
408
488
|
|
409
489
|
@installer.wrappers = false
|
410
|
-
util_make_exec '
|
411
|
-
@installer.gem_dir = util_gem_dir '
|
490
|
+
util_make_exec '3'
|
491
|
+
@installer.gem_dir = util_gem_dir '3'
|
412
492
|
@installer.generate_bin
|
413
493
|
installed_exec = File.join(util_inst_bindir, "my_exec")
|
414
|
-
assert_equal(File.join(util_gem_dir('
|
494
|
+
assert_equal(File.join(util_gem_dir('3'), "bin", "my_exec"),
|
415
495
|
File.readlink(installed_exec),
|
416
496
|
"Ensure symlink moved to latest version")
|
417
497
|
end
|
418
498
|
|
419
|
-
def
|
420
|
-
|
421
|
-
|
499
|
+
def test_generate_bin_symlink_win32
|
500
|
+
old_win_platform = Gem.win_platform?
|
501
|
+
Gem.win_platform = true
|
422
502
|
@installer.wrappers = false
|
423
503
|
util_make_exec
|
424
504
|
@installer.gem_dir = util_gem_dir
|
@@ -431,16 +511,13 @@ load 'my_exec'
|
|
431
511
|
installed_exec = File.join(util_inst_bindir, "my_exec")
|
432
512
|
assert_equal true, File.exist?(installed_exec)
|
433
513
|
|
434
|
-
assert_match(/Unable to use symlinks on
|
514
|
+
assert_match(/Unable to use symlinks on Windows, installing wrapper/i,
|
435
515
|
@ui.error)
|
436
|
-
|
437
|
-
expected_mode = win_platform? ? 0100644 : 0100755
|
438
|
-
assert_equal expected_mode, File.stat(installed_exec).mode
|
439
516
|
|
440
517
|
wrapper = File.read installed_exec
|
441
518
|
assert_match(/generated by RubyGems/, wrapper)
|
442
519
|
ensure
|
443
|
-
|
520
|
+
Gem.win_platform = old_win_platform
|
444
521
|
end
|
445
522
|
|
446
523
|
def test_generate_bin_uses_default_shebang
|
@@ -457,6 +534,19 @@ load 'my_exec'
|
|
457
534
|
assert_match(/#{default_shebang}/, shebang_line)
|
458
535
|
end
|
459
536
|
|
537
|
+
def test_initialize
|
538
|
+
spec = quick_gem 'a' do |s| s.platform = Gem::Platform.new 'mswin32' end
|
539
|
+
gem = File.join @tempdir, "#{spec.full_name}.gem"
|
540
|
+
|
541
|
+
util_build_gem spec
|
542
|
+
FileUtils.mv File.join(@gemhome, 'cache', "#{spec.full_name}.gem"),
|
543
|
+
@tempdir
|
544
|
+
|
545
|
+
installer = Gem::Installer.new gem
|
546
|
+
|
547
|
+
assert_equal File.join(@gemhome, 'gems', spec.full_name), installer.gem_dir
|
548
|
+
end
|
549
|
+
|
460
550
|
def test_install
|
461
551
|
util_setup_gem
|
462
552
|
|
@@ -521,7 +611,7 @@ load 'my_exec'
|
|
521
611
|
installer.install
|
522
612
|
end
|
523
613
|
|
524
|
-
gem_dir = File.join(@gemhome, 'gems', 'old_ruby_required-
|
614
|
+
gem_dir = File.join(@gemhome, 'gems', 'old_ruby_required-1')
|
525
615
|
assert File.exist?(gem_dir)
|
526
616
|
end
|
527
617
|
|
@@ -608,8 +698,8 @@ load 'my_exec'
|
|
608
698
|
end
|
609
699
|
|
610
700
|
def test_install_wrong_rubygems_version
|
611
|
-
spec = quick_gem 'old_rubygems_required', '
|
612
|
-
s.required_rubygems_version = '< 0
|
701
|
+
spec = quick_gem 'old_rubygems_required', '1' do |s|
|
702
|
+
s.required_rubygems_version = '< 0'
|
613
703
|
end
|
614
704
|
|
615
705
|
util_build_gem spec
|
@@ -621,21 +711,21 @@ load 'my_exec'
|
|
621
711
|
e = assert_raise Gem::InstallError do
|
622
712
|
@installer.install
|
623
713
|
end
|
624
|
-
assert_equal 'old_rubygems_required requires RubyGems version < 0
|
714
|
+
assert_equal 'old_rubygems_required requires RubyGems version < 0',
|
625
715
|
e.message
|
626
716
|
end
|
627
717
|
end
|
628
718
|
|
629
719
|
def test_installation_satisfies_dependency_eh
|
630
|
-
dep = Gem::Dependency.new 'a', '>=
|
720
|
+
dep = Gem::Dependency.new 'a', '>= 2'
|
631
721
|
assert @installer.installation_satisfies_dependency?(dep)
|
632
722
|
|
633
|
-
dep = Gem::Dependency.new 'a', '>
|
723
|
+
dep = Gem::Dependency.new 'a', '> 2'
|
634
724
|
assert ! @installer.installation_satisfies_dependency?(dep)
|
635
725
|
end
|
636
726
|
|
637
727
|
def test_shebang
|
638
|
-
util_make_exec '
|
728
|
+
util_make_exec '2', "#!/usr/bin/ruby"
|
639
729
|
|
640
730
|
shebang = @installer.shebang 'my_exec'
|
641
731
|
|
@@ -643,7 +733,7 @@ load 'my_exec'
|
|
643
733
|
end
|
644
734
|
|
645
735
|
def test_shebang_arguments
|
646
|
-
util_make_exec '
|
736
|
+
util_make_exec '2', "#!/usr/bin/ruby -ws"
|
647
737
|
|
648
738
|
shebang = @installer.shebang 'my_exec'
|
649
739
|
|
@@ -651,14 +741,14 @@ load 'my_exec'
|
|
651
741
|
end
|
652
742
|
|
653
743
|
def test_shebang_empty
|
654
|
-
util_make_exec '
|
744
|
+
util_make_exec '2', ''
|
655
745
|
|
656
746
|
shebang = @installer.shebang 'my_exec'
|
657
747
|
assert_equal "#!#{Gem.ruby}", shebang
|
658
748
|
end
|
659
749
|
|
660
750
|
def test_shebang_env
|
661
|
-
util_make_exec '
|
751
|
+
util_make_exec '2', "#!/usr/bin/env ruby"
|
662
752
|
|
663
753
|
shebang = @installer.shebang 'my_exec'
|
664
754
|
|
@@ -666,7 +756,7 @@ load 'my_exec'
|
|
666
756
|
end
|
667
757
|
|
668
758
|
def test_shebang_env_arguments
|
669
|
-
util_make_exec '
|
759
|
+
util_make_exec '2', "#!/usr/bin/env ruby -ws"
|
670
760
|
|
671
761
|
shebang = @installer.shebang 'my_exec'
|
672
762
|
|
@@ -674,7 +764,7 @@ load 'my_exec'
|
|
674
764
|
end
|
675
765
|
|
676
766
|
def test_shebang_env_shebang
|
677
|
-
util_make_exec '
|
767
|
+
util_make_exec '2', ''
|
678
768
|
@installer.env_shebang = true
|
679
769
|
|
680
770
|
shebang = @installer.shebang 'my_exec'
|
@@ -682,7 +772,7 @@ load 'my_exec'
|
|
682
772
|
end
|
683
773
|
|
684
774
|
def test_shebang_nested
|
685
|
-
util_make_exec '
|
775
|
+
util_make_exec '2', "#!/opt/local/ruby/bin/ruby"
|
686
776
|
|
687
777
|
shebang = @installer.shebang 'my_exec'
|
688
778
|
|
@@ -690,7 +780,7 @@ load 'my_exec'
|
|
690
780
|
end
|
691
781
|
|
692
782
|
def test_shebang_nested_arguments
|
693
|
-
util_make_exec '
|
783
|
+
util_make_exec '2', "#!/opt/local/ruby/bin/ruby -ws"
|
694
784
|
|
695
785
|
shebang = @installer.shebang 'my_exec'
|
696
786
|
|
@@ -698,7 +788,7 @@ load 'my_exec'
|
|
698
788
|
end
|
699
789
|
|
700
790
|
def test_shebang_version
|
701
|
-
util_make_exec '
|
791
|
+
util_make_exec '2', "#!/usr/bin/ruby18"
|
702
792
|
|
703
793
|
shebang = @installer.shebang 'my_exec'
|
704
794
|
|
@@ -706,7 +796,7 @@ load 'my_exec'
|
|
706
796
|
end
|
707
797
|
|
708
798
|
def test_shebang_version_arguments
|
709
|
-
util_make_exec '
|
799
|
+
util_make_exec '2', "#!/usr/bin/ruby18 -ws"
|
710
800
|
|
711
801
|
shebang = @installer.shebang 'my_exec'
|
712
802
|
|
@@ -714,7 +804,7 @@ load 'my_exec'
|
|
714
804
|
end
|
715
805
|
|
716
806
|
def test_shebang_version_env
|
717
|
-
util_make_exec '
|
807
|
+
util_make_exec '2', "#!/usr/bin/env ruby18"
|
718
808
|
|
719
809
|
shebang = @installer.shebang 'my_exec'
|
720
810
|
|
@@ -722,7 +812,7 @@ load 'my_exec'
|
|
722
812
|
end
|
723
813
|
|
724
814
|
def test_shebang_version_env_arguments
|
725
|
-
util_make_exec '
|
815
|
+
util_make_exec '2', "#!/usr/bin/env ruby18 -ws"
|
726
816
|
|
727
817
|
shebang = @installer.shebang 'my_exec'
|
728
818
|
|
@@ -756,7 +846,7 @@ load 'my_exec'
|
|
756
846
|
end
|
757
847
|
|
758
848
|
def old_ruby_required
|
759
|
-
spec = quick_gem 'old_ruby_required', '
|
849
|
+
spec = quick_gem 'old_ruby_required', '1' do |s|
|
760
850
|
s.required_ruby_version = '= 1.4.6'
|
761
851
|
end
|
762
852
|
|
@@ -793,4 +883,3 @@ load 'my_exec'
|
|
793
883
|
|
794
884
|
end
|
795
885
|
|
796
|
-
|