зеркало из https://github.com/github/ruby.git
[rubygems/rubygems] Install plugins to user directory
Fixes the `Gem::FilePermissionError` without the privilege. Initialize `@plugins_dir` to the user gem directory, when installing with `--user` option. https://github.com/rubygems/rubygems/commit/21a71ac769
This commit is contained in:
Родитель
6c71033ac3
Коммит
ebf008b9ae
|
@ -184,6 +184,7 @@ class Gem::Installer
|
|||
if options[:user_install]
|
||||
@gem_home = Gem.user_dir
|
||||
@bin_dir = Gem.bindir gem_home unless options[:bin_dir]
|
||||
@plugins_dir = Gem.plugindir(gem_home)
|
||||
check_that_user_bin_dir_is_in_path
|
||||
end
|
||||
end
|
||||
|
|
|
@ -776,6 +776,28 @@ gem 'other', version
|
|||
assert File.exist?(plugin_path), 'plugin not written to install_dir'
|
||||
end
|
||||
|
||||
def test_generate_plugins_with_user_install
|
||||
spec = quick_gem 'a' do |s|
|
||||
write_file File.join(@tempdir, 'lib', 'rubygems_plugin.rb') do |io|
|
||||
io.write "puts __FILE__"
|
||||
end
|
||||
|
||||
s.files += %w[lib/rubygems_plugin.rb]
|
||||
end
|
||||
|
||||
util_build_gem spec
|
||||
|
||||
File.chmod(0555, Gem.plugindir)
|
||||
system_path = File.join(Gem.plugindir, 'a_plugin.rb')
|
||||
user_path = File.join(Gem.plugindir(Gem.user_dir), 'a_plugin.rb')
|
||||
installer = util_installer spec, Gem.dir, :user
|
||||
|
||||
assert_equal spec, installer.install
|
||||
|
||||
assert !File.exist?(system_path), 'plugin not written to user plugins_dir'
|
||||
assert File.exist?(user_path), 'plugin not written to user plugins_dir'
|
||||
end
|
||||
|
||||
def test_keeps_plugins_up_to_date
|
||||
# NOTE: version a-2 is already installed by setup hooks
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче