rubygems-update 2.3.0 → 2.4.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/CONTRIBUTING +14 -2
- data/History.txt +63 -0
- data/Rakefile +68 -91
- data/lib/rubygems.rb +5 -3
- data/lib/rubygems/command_manager.rb +1 -0
- data/lib/rubygems/commands/contents_command.rb +23 -2
- data/lib/rubygems/commands/install_command.rb +8 -0
- data/lib/rubygems/commands/open_command.rb +1 -8
- data/lib/rubygems/commands/uninstall_command.rb +9 -1
- data/lib/rubygems/commands/update_command.rb +1 -1
- data/lib/rubygems/core_ext/kernel_gem.rb +8 -1
- data/lib/rubygems/core_ext/kernel_require.rb +12 -22
- data/lib/rubygems/defaults.rb +17 -5
- data/lib/rubygems/dependency.rb +7 -1
- data/lib/rubygems/dependency_installer.rb +3 -0
- data/lib/rubygems/ext/ext_conf_builder.rb +13 -11
- data/lib/rubygems/install_update_options.rb +13 -0
- data/lib/rubygems/installer.rb +36 -20
- data/lib/rubygems/installer_test_case.rb +2 -0
- data/lib/rubygems/local_remote_options.rb +1 -1
- data/lib/rubygems/name_tuple.rb +1 -1
- data/lib/rubygems/request_set.rb +14 -3
- data/lib/rubygems/request_set/gem_dependency_api.rb +12 -0
- data/lib/rubygems/request_set/lockfile.rb +3 -1
- data/lib/rubygems/resolver.rb +15 -0
- data/lib/rubygems/resolver/best_set.rb +28 -0
- data/lib/rubygems/resolver/conflict.rb +45 -7
- data/lib/rubygems/resolver/git_specification.rb +24 -0
- data/lib/rubygems/resolver/lock_specification.rb +22 -0
- data/lib/rubygems/source.rb +2 -0
- data/lib/rubygems/source/git.rb +1 -1
- data/lib/rubygems/source/installed.rb +2 -1
- data/lib/rubygems/specification.rb +16 -15
- data/lib/rubygems/test_case.rb +9 -5
- data/test/rubygems/test_gem.rb +72 -2
- data/test/rubygems/test_gem_commands_contents_command.rb +46 -3
- data/test/rubygems/test_gem_commands_install_command.rb +32 -0
- data/test/rubygems/test_gem_commands_uninstall_command.rb +18 -0
- data/test/rubygems/test_gem_dependency.rb +23 -0
- data/test/rubygems/test_gem_dependency_installer.rb +17 -0
- data/test/rubygems/test_gem_ext_builder.rb +12 -1
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +2 -2
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +24 -8
- data/test/rubygems/test_gem_install_update_options.rb +16 -0
- data/test/rubygems/test_gem_installer.rb +52 -0
- data/test/rubygems/test_gem_local_remote_options.rb +13 -0
- data/test/rubygems/test_gem_package.rb +3 -1
- data/test/rubygems/test_gem_package_tar_header.rb +2 -0
- data/test/rubygems/test_gem_package_tar_reader.rb +11 -1
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +17 -2
- data/test/rubygems/test_gem_package_tar_writer.rb +1 -0
- data/test/rubygems/test_gem_remote_fetcher.rb +24 -0
- data/test/rubygems/test_gem_request_set.rb +74 -4
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +9 -1
- data/test/rubygems/test_gem_request_set_lockfile.rb +3 -1
- data/test/rubygems/test_gem_requirement.rb +8 -0
- data/test/rubygems/test_gem_resolver.rb +39 -0
- data/test/rubygems/test_gem_resolver_best_set.rb +57 -0
- data/test/rubygems/test_gem_resolver_conflict.rb +22 -10
- data/test/rubygems/test_gem_resolver_git_specification.rb +12 -0
- data/test/rubygems/test_gem_source_git.rb +6 -2
- data/test/rubygems/test_gem_source_installed.rb +8 -0
- data/test/rubygems/test_gem_source_lock.rb +2 -2
- data/test/rubygems/test_gem_source_vendor.rb +4 -0
- data/test/rubygems/test_kernel.rb +6 -0
- data/test/rubygems/test_require.rb +60 -0
- metadata +5 -5
- metadata.gz.sig +0 -0
data/lib/rubygems/test_case.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
begin
|
4
4
|
gem 'minitest', '~> 4.0'
|
5
|
-
rescue NoMethodError
|
5
|
+
rescue NoMethodError, Gem::LoadError
|
6
6
|
# for ruby tests
|
7
7
|
end
|
8
8
|
|
@@ -218,8 +218,11 @@ class Gem::TestCase < MiniTest::Unit::TestCase
|
|
218
218
|
def setup
|
219
219
|
super
|
220
220
|
|
221
|
-
@orig_gem_home
|
222
|
-
@orig_gem_path
|
221
|
+
@orig_gem_home = ENV['GEM_HOME']
|
222
|
+
@orig_gem_path = ENV['GEM_PATH']
|
223
|
+
@orig_gem_vendor = ENV['GEM_VENDOR']
|
224
|
+
|
225
|
+
ENV['GEM_VENDOR'] = nil
|
223
226
|
|
224
227
|
@current_dir = Dir.pwd
|
225
228
|
@fetcher = nil
|
@@ -347,8 +350,9 @@ class Gem::TestCase < MiniTest::Unit::TestCase
|
|
347
350
|
|
348
351
|
FileUtils.rm_rf @tempdir unless ENV['KEEP_FILES']
|
349
352
|
|
350
|
-
ENV['GEM_HOME']
|
351
|
-
ENV['GEM_PATH']
|
353
|
+
ENV['GEM_HOME'] = @orig_gem_home
|
354
|
+
ENV['GEM_PATH'] = @orig_gem_path
|
355
|
+
ENV['GEM_VENDOR'] = @orig_gem_vendor
|
352
356
|
|
353
357
|
Gem.ruby = @orig_ruby if @orig_ruby
|
354
358
|
|
data/test/rubygems/test_gem.rb
CHANGED
@@ -75,6 +75,21 @@ class TestGem < Gem::TestCase
|
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
78
|
+
def test_self_install
|
79
|
+
spec_fetcher do |f|
|
80
|
+
f.gem 'a', 1
|
81
|
+
f.spec 'a', 2
|
82
|
+
end
|
83
|
+
|
84
|
+
gemhome2 = "#{@gemhome}2"
|
85
|
+
|
86
|
+
installed = Gem.install 'a', '= 1', :install_dir => gemhome2
|
87
|
+
|
88
|
+
assert_equal %w[a-1], installed.map { |spec| spec.full_name }
|
89
|
+
|
90
|
+
assert_path_exists File.join(gemhome2, 'gems', 'a-1')
|
91
|
+
end
|
92
|
+
|
78
93
|
def test_require_missing
|
79
94
|
save_loaded_features do
|
80
95
|
assert_raises ::LoadError do
|
@@ -216,6 +231,45 @@ class TestGem < Gem::TestCase
|
|
216
231
|
end
|
217
232
|
end
|
218
233
|
|
234
|
+
def test_default_path
|
235
|
+
orig_vendordir = RbConfig::CONFIG['vendordir']
|
236
|
+
RbConfig::CONFIG['vendordir'] = File.join @tempdir, 'vendor'
|
237
|
+
|
238
|
+
FileUtils.rm_rf Gem.user_home
|
239
|
+
|
240
|
+
expected = [Gem.default_dir]
|
241
|
+
|
242
|
+
assert_equal expected, Gem.default_path
|
243
|
+
ensure
|
244
|
+
RbConfig::CONFIG['vendordir'] = orig_vendordir
|
245
|
+
end
|
246
|
+
|
247
|
+
def test_default_path_user_home
|
248
|
+
orig_vendordir = RbConfig::CONFIG['vendordir']
|
249
|
+
RbConfig::CONFIG['vendordir'] = File.join @tempdir, 'vendor'
|
250
|
+
|
251
|
+
expected = [Gem.user_dir, Gem.default_dir]
|
252
|
+
|
253
|
+
assert_equal expected, Gem.default_path
|
254
|
+
ensure
|
255
|
+
RbConfig::CONFIG['vendordir'] = orig_vendordir
|
256
|
+
end
|
257
|
+
|
258
|
+
def test_default_path_vendor_dir
|
259
|
+
orig_vendordir = RbConfig::CONFIG['vendordir']
|
260
|
+
RbConfig::CONFIG['vendordir'] = File.join @tempdir, 'vendor'
|
261
|
+
|
262
|
+
FileUtils.mkdir_p Gem.vendor_dir
|
263
|
+
|
264
|
+
FileUtils.rm_rf Gem.user_home
|
265
|
+
|
266
|
+
expected = [Gem.default_dir, Gem.vendor_dir]
|
267
|
+
|
268
|
+
assert_equal expected, Gem.default_path
|
269
|
+
ensure
|
270
|
+
RbConfig::CONFIG['vendordir'] = orig_vendordir
|
271
|
+
end
|
272
|
+
|
219
273
|
def test_self_default_sources
|
220
274
|
assert_equal %w[https://rubygems.org/], Gem.default_sources
|
221
275
|
end
|
@@ -968,6 +1022,21 @@ class TestGem < Gem::TestCase
|
|
968
1022
|
end
|
969
1023
|
end
|
970
1024
|
|
1025
|
+
def test_self_vendor_dir
|
1026
|
+
expected =
|
1027
|
+
File.join RbConfig::CONFIG['vendordir'], 'gems',
|
1028
|
+
RbConfig::CONFIG['ruby_version']
|
1029
|
+
|
1030
|
+
assert_equal expected, Gem.vendor_dir
|
1031
|
+
end
|
1032
|
+
|
1033
|
+
def test_self_vendor_dir_ENV_GEM_VENDOR
|
1034
|
+
ENV['GEM_VENDOR'] = File.join @tempdir, 'vendor', 'gems'
|
1035
|
+
|
1036
|
+
assert_equal ENV['GEM_VENDOR'], Gem.vendor_dir
|
1037
|
+
refute Gem.vendor_dir.frozen?
|
1038
|
+
end
|
1039
|
+
|
971
1040
|
def test_load_plugins
|
972
1041
|
skip 'Insecure operation - chdir' if RUBY_VERSION <= "1.8.7"
|
973
1042
|
plugin_path = File.join "lib", "rubygems_plugin.rb"
|
@@ -1268,15 +1337,16 @@ class TestGem < Gem::TestCase
|
|
1268
1337
|
end
|
1269
1338
|
|
1270
1339
|
def test_use_gemdeps
|
1340
|
+
gem_deps_file = 'gem.deps.rb'.untaint
|
1271
1341
|
spec = util_spec 'a', 1
|
1272
1342
|
|
1273
1343
|
refute spec.activated?
|
1274
1344
|
|
1275
|
-
open
|
1345
|
+
open gem_deps_file, 'w' do |io|
|
1276
1346
|
io.write 'gem "a"'
|
1277
1347
|
end
|
1278
1348
|
|
1279
|
-
Gem.use_gemdeps
|
1349
|
+
Gem.use_gemdeps gem_deps_file
|
1280
1350
|
|
1281
1351
|
assert spec.activated?
|
1282
1352
|
end
|
@@ -9,8 +9,8 @@ class TestGemCommandsContentsCommand < Gem::TestCase
|
|
9
9
|
@cmd = Gem::Commands::ContentsCommand.new
|
10
10
|
end
|
11
11
|
|
12
|
-
def gem name
|
13
|
-
spec = quick_gem name do |gem|
|
12
|
+
def gem name, version = 2
|
13
|
+
spec = quick_gem name, version do |gem|
|
14
14
|
gem.files = %W[lib/#{name}.rb Rakefile]
|
15
15
|
end
|
16
16
|
write_file File.join(*%W[gems #{spec.full_name} lib #{name}.rb])
|
@@ -135,6 +135,40 @@ class TestGemCommandsContentsCommand < Gem::TestCase
|
|
135
135
|
assert_equal "", @ui.error
|
136
136
|
end
|
137
137
|
|
138
|
+
def test_execute_show_install_dir
|
139
|
+
@cmd.options[:args] = %w[foo]
|
140
|
+
@cmd.options[:show_install_dir] = true
|
141
|
+
|
142
|
+
gem 'foo'
|
143
|
+
|
144
|
+
use_ui @ui do
|
145
|
+
@cmd.execute
|
146
|
+
end
|
147
|
+
|
148
|
+
expected = File.join @gemhome, 'gems', 'foo-2'
|
149
|
+
|
150
|
+
assert_equal "#{expected}\n", @ui.output
|
151
|
+
assert_equal "", @ui.error
|
152
|
+
end
|
153
|
+
|
154
|
+
def test_execute_show_install_dir_version
|
155
|
+
@cmd.options[:args] = %w[foo]
|
156
|
+
@cmd.options[:show_install_dir] = true
|
157
|
+
@cmd.options[:version] = Gem::Requirement.new '= 1'
|
158
|
+
|
159
|
+
gem 'foo', 1
|
160
|
+
gem 'foo', 2
|
161
|
+
|
162
|
+
use_ui @ui do
|
163
|
+
@cmd.execute
|
164
|
+
end
|
165
|
+
|
166
|
+
expected = File.join @gemhome, 'gems', 'foo-1'
|
167
|
+
|
168
|
+
assert_equal "#{expected}\n", @ui.output
|
169
|
+
assert_equal "", @ui.error
|
170
|
+
end
|
171
|
+
|
138
172
|
def test_execute_no_prefix
|
139
173
|
@cmd.options[:args] = %w[foo]
|
140
174
|
@cmd.options[:prefix] = false
|
@@ -183,13 +217,22 @@ lib/foo.rb
|
|
183
217
|
assert @cmd.options[:prefix]
|
184
218
|
assert_empty @cmd.options[:specdirs]
|
185
219
|
assert_nil @cmd.options[:version]
|
220
|
+
refute @cmd.options[:show_install_dir]
|
186
221
|
|
187
|
-
@cmd.send :handle_options, %w[
|
222
|
+
@cmd.send :handle_options, %w[
|
223
|
+
-l
|
224
|
+
-s
|
225
|
+
foo
|
226
|
+
--version 0.0.2
|
227
|
+
--no-prefix
|
228
|
+
--show-install-dir
|
229
|
+
]
|
188
230
|
|
189
231
|
assert @cmd.options[:lib_only]
|
190
232
|
refute @cmd.options[:prefix]
|
191
233
|
assert_equal %w[foo], @cmd.options[:specdirs]
|
192
234
|
assert_equal Gem::Requirement.new('0.0.2'), @cmd.options[:version]
|
235
|
+
assert @cmd.options[:show_install_dir]
|
193
236
|
end
|
194
237
|
|
195
238
|
end
|
@@ -565,6 +565,11 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
565
565
|
end
|
566
566
|
|
567
567
|
def test_install_gem_ignore_dependencies_both
|
568
|
+
done_installing = false
|
569
|
+
Gem.done_installing do
|
570
|
+
done_installing = true
|
571
|
+
end
|
572
|
+
|
568
573
|
spec = quick_spec 'a', 2
|
569
574
|
|
570
575
|
util_build_gem spec
|
@@ -576,6 +581,8 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
576
581
|
@cmd.install_gem 'a', '>= 0'
|
577
582
|
|
578
583
|
assert_equal %w[a-2], @cmd.installed_specs.map { |s| s.full_name }
|
584
|
+
|
585
|
+
assert done_installing, 'documentation was not generated'
|
579
586
|
end
|
580
587
|
|
581
588
|
def test_install_gem_ignore_dependencies_remote
|
@@ -729,6 +736,31 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
729
736
|
assert !File.exist?("#{@gemdeps}.lock")
|
730
737
|
end
|
731
738
|
|
739
|
+
def test_execute_installs_from_a_gemdeps_with_conservative
|
740
|
+
spec_fetcher do |fetcher|
|
741
|
+
fetcher.gem 'a', 2
|
742
|
+
fetcher.clear
|
743
|
+
fetcher.gem 'a', 1
|
744
|
+
end
|
745
|
+
|
746
|
+
File.open @gemdeps, "w" do |f|
|
747
|
+
f << "gem 'a'"
|
748
|
+
end
|
749
|
+
|
750
|
+
@cmd.handle_options %w[--conservative]
|
751
|
+
@cmd.options[:gemdeps] = @gemdeps
|
752
|
+
|
753
|
+
use_ui @ui do
|
754
|
+
assert_raises Gem::MockGemUi::SystemExitException, @ui.error do
|
755
|
+
@cmd.execute
|
756
|
+
end
|
757
|
+
end
|
758
|
+
|
759
|
+
assert_equal %w[], @cmd.installed_specs.map { |spec| spec.full_name }
|
760
|
+
|
761
|
+
assert_match "Using a (1)", @ui.output
|
762
|
+
end
|
763
|
+
|
732
764
|
def test_execute_installs_from_a_gemdeps
|
733
765
|
spec_fetcher do |fetcher|
|
734
766
|
fetcher.gem 'a', 2
|
@@ -239,6 +239,24 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
|
239
239
|
assert_equal nil, @cmd.options[:install_dir]
|
240
240
|
assert_equal true, @cmd.options[:user_install]
|
241
241
|
assert_equal Gem::Requirement.default, @cmd.options[:version]
|
242
|
+
assert_equal false, @cmd.options[:vendor]
|
243
|
+
end
|
244
|
+
|
245
|
+
def test_handle_options_vendor
|
246
|
+
use_ui @ui do
|
247
|
+
@cmd.handle_options %w[--vendor]
|
248
|
+
end
|
249
|
+
|
250
|
+
assert @cmd.options[:vendor]
|
251
|
+
assert_equal Gem.vendor_dir, @cmd.options[:install_dir]
|
252
|
+
|
253
|
+
assert_empty @ui.output
|
254
|
+
|
255
|
+
expected = <<-EXPECTED
|
256
|
+
WARNING: Use your OS package manager to uninstall vendor gems
|
257
|
+
EXPECTED
|
258
|
+
|
259
|
+
assert_equal expected, @ui.error
|
242
260
|
end
|
243
261
|
|
244
262
|
end
|
@@ -266,6 +266,29 @@ class TestGemDependency < Gem::TestCase
|
|
266
266
|
assert dep('a', '= 1').specific?
|
267
267
|
end
|
268
268
|
|
269
|
+
def test_to_spec
|
270
|
+
util_spec 'a', '1'
|
271
|
+
a_2 = util_spec 'a', '2'
|
272
|
+
|
273
|
+
a_dep = dep 'a', '>= 0'
|
274
|
+
|
275
|
+
assert_equal a_2, a_dep.to_spec
|
276
|
+
end
|
277
|
+
|
278
|
+
def test_to_spec_prerelease
|
279
|
+
a_1 = util_spec 'a', '1'
|
280
|
+
a_1_1_a = util_spec 'a', '1.1.a'
|
281
|
+
|
282
|
+
a_dep = dep 'a', '>= 0'
|
283
|
+
|
284
|
+
assert_equal a_1, a_dep.to_spec
|
285
|
+
|
286
|
+
a_pre_dep = dep 'a', '>= 0'
|
287
|
+
a_pre_dep.prerelease = true
|
288
|
+
|
289
|
+
assert_equal a_1_1_a, a_pre_dep.to_spec
|
290
|
+
end
|
291
|
+
|
269
292
|
def test_to_specs_suggests_other_versions
|
270
293
|
a = util_spec 'a', '1.0', 'b' => '>= 1.0'
|
271
294
|
|
@@ -554,6 +554,23 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
554
554
|
assert_equal %w[a-1 e-1], inst.installed_gems.map { |s| s.full_name }
|
555
555
|
end
|
556
556
|
|
557
|
+
def test_install_no_document
|
558
|
+
util_setup_gems
|
559
|
+
|
560
|
+
done_installing_called = false
|
561
|
+
|
562
|
+
Gem.done_installing do |dep_installer, specs|
|
563
|
+
done_installing_called = true
|
564
|
+
assert_empty dep_installer.document
|
565
|
+
end
|
566
|
+
|
567
|
+
inst = Gem::DependencyInstaller.new :domain => :local, :document => []
|
568
|
+
|
569
|
+
inst.install @a1_gem
|
570
|
+
|
571
|
+
assert done_installing_called
|
572
|
+
end
|
573
|
+
|
557
574
|
def test_install_env_shebang
|
558
575
|
util_setup_gems
|
559
576
|
|
@@ -132,6 +132,17 @@ install:
|
|
132
132
|
assert_path_exists File.join @spec.gem_dir, 'lib', 'a', 'b.rb'
|
133
133
|
end
|
134
134
|
|
135
|
+
def test_build_extensions_with_gemhome_with_space
|
136
|
+
new_gemhome = File.join @tempdir, 'gem home'
|
137
|
+
File.rename(@gemhome, new_gemhome)
|
138
|
+
@gemhome = new_gemhome
|
139
|
+
Gem.use_paths(@gemhome)
|
140
|
+
@spec = util_spec 'a'
|
141
|
+
@builder = Gem::Ext::Builder.new @spec, ''
|
142
|
+
|
143
|
+
test_build_extensions
|
144
|
+
end
|
145
|
+
|
135
146
|
def test_build_extensions_install_ext_only
|
136
147
|
class << Gem
|
137
148
|
alias orig_install_extension_in_lib install_extension_in_lib
|
@@ -226,7 +237,7 @@ install:
|
|
226
237
|
|
227
238
|
gem_make_out = File.join @spec.extension_dir, 'gem_make.out'
|
228
239
|
|
229
|
-
assert_match %r%#{Regexp.escape Gem.ruby} extconf\.rb%,
|
240
|
+
assert_match %r%#{Regexp.escape Gem.ruby}.* extconf\.rb%,
|
230
241
|
File.read(gem_make_out)
|
231
242
|
assert_match %r%: No such file%,
|
232
243
|
File.read(gem_make_out)
|
@@ -33,7 +33,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
33
33
|
assert_same result, output
|
34
34
|
end
|
35
35
|
|
36
|
-
assert_match(/^#{Gem.ruby} extconf.rb/, output[0])
|
36
|
+
assert_match(/^#{Gem.ruby}.* extconf.rb/, output[0])
|
37
37
|
assert_equal "creating Makefile\n", output[1]
|
38
38
|
assert_contains_make_command 'clean', output[2]
|
39
39
|
assert_contains_make_command '', output[4]
|
@@ -106,7 +106,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
106
106
|
|
107
107
|
assert_equal 'extconf failed, exit code 1', error.message
|
108
108
|
|
109
|
-
|
109
|
+
assert_match(/^#{Gem.ruby}.* extconf.rb/, output[0])
|
110
110
|
assert_path_exists File.join @dest_path, 'mkmf.log'
|
111
111
|
end
|
112
112
|
|
@@ -28,14 +28,30 @@ class TestGemImpossibleDependenciesError < Gem::TestCase
|
|
28
28
|
|
29
29
|
expected = <<-EXPECTED
|
30
30
|
rye-0.9.8 requires net-ssh (>= 2.0.13) but it conflicted:
|
31
|
-
Activated net-ssh-2.6.5
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
net-ssh
|
37
|
-
|
38
|
-
|
31
|
+
Activated net-ssh-2.6.5
|
32
|
+
which does not match conflicting dependency (~> 2.2.2)
|
33
|
+
|
34
|
+
Conflicting dependency chains:
|
35
|
+
rye (= 0.9.8), 0.9.8 activated depends on
|
36
|
+
net-ssh (>= 2.0.13), 2.6.5 activated
|
37
|
+
|
38
|
+
versus:
|
39
|
+
rye (= 0.9.8), 0.9.8 activated depends on
|
40
|
+
net-ssh (>= 2.0.13), 2.6.5 activated depends on
|
41
|
+
net-ssh (~> 2.2.2)
|
42
|
+
|
43
|
+
Activated net-ssh-2.2.2
|
44
|
+
which does not match conflicting dependency (>= 2.6.5)
|
45
|
+
|
46
|
+
Conflicting dependency chains:
|
47
|
+
rye (= 0.9.8), 0.9.8 activated depends on
|
48
|
+
net-ssh (>= 2.0.13), 2.2.2 activated
|
49
|
+
|
50
|
+
versus:
|
51
|
+
rye (= 0.9.8), 0.9.8 activated depends on
|
52
|
+
net-ssh (>= 2.0.13), 2.2.2 activated depends on
|
53
|
+
net-ssh (>= 2.6.5)
|
54
|
+
|
39
55
|
EXPECTED
|
40
56
|
|
41
57
|
assert_equal expected, error.message
|
@@ -17,6 +17,7 @@ class TestGemInstallUpdateOptions < Gem::InstallerTestCase
|
|
17
17
|
def test_add_install_update_options
|
18
18
|
args = %w[
|
19
19
|
--document
|
20
|
+
--build-root build_root
|
20
21
|
--format-exec
|
21
22
|
--ignore-dependencies
|
22
23
|
--rdoc
|
@@ -25,6 +26,7 @@ class TestGemInstallUpdateOptions < Gem::InstallerTestCase
|
|
25
26
|
-f
|
26
27
|
-i /install_to
|
27
28
|
-w
|
29
|
+
--vendor
|
28
30
|
]
|
29
31
|
|
30
32
|
args.concat %w[-P HighSecurity] if defined?(OpenSSL::SSL)
|
@@ -32,6 +34,12 @@ class TestGemInstallUpdateOptions < Gem::InstallerTestCase
|
|
32
34
|
assert @cmd.handles?(args)
|
33
35
|
end
|
34
36
|
|
37
|
+
def test_build_root
|
38
|
+
@cmd.handle_options %w[--build-root build_root]
|
39
|
+
|
40
|
+
assert_equal File.expand_path('build_root'), @cmd.options[:build_root]
|
41
|
+
end
|
42
|
+
|
35
43
|
def test_doc
|
36
44
|
@cmd.handle_options %w[--doc]
|
37
45
|
|
@@ -147,4 +155,12 @@ class TestGemInstallUpdateOptions < Gem::InstallerTestCase
|
|
147
155
|
ensure
|
148
156
|
FileUtils.chmod 0755, @gemhome
|
149
157
|
end
|
158
|
+
|
159
|
+
def test_vendor
|
160
|
+
@cmd.handle_options %w[--vendor]
|
161
|
+
|
162
|
+
assert @cmd.options[:vendor]
|
163
|
+
assert_equal Gem.vendor_dir, @cmd.options[:install_dir]
|
164
|
+
end
|
165
|
+
|
150
166
|
end
|