123456789_123456789_123456789_123456789_123456789_

Module: Gem::InstallerUninstallerUtils

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Included In:
Defined in: lib/rubygems/installer_uninstaller_utils.rb

Overview

Helper methods for both Installer and Uninstaller

Instance Method Summary

Instance Method Details

#plugin_stub_dir_for(spec, plugins_dir) (private)

[ GitHub ]

  
# File 'lib/rubygems/installer_uninstaller_utils.rb', line 36

def plugin_stub_dir_for(spec, plugins_dir)
  full_spec = spec.to_spec
  return plugins_dir unless Gem::ContentAddress.content_addressed?(full_spec)

  File.join plugins_dir, full_spec.ruby_abi
end

#regenerate_plugins_for(spec, plugins_dir)

[ GitHub ]

  
# File 'lib/rubygems/installer_uninstaller_utils.rb', line 7

def regenerate_plugins_for(spec, plugins_dir)
  plugins = spec.plugins
  return if plugins.empty?

  require "pathname"

  plugin_script_dir = plugin_stub_dir_for(spec, plugins_dir)

  FileUtils.mkdir_p plugin_script_dir
  remove_plugins_for(spec, plugins_dir)

  plugins.each do |plugin|
    plugin_script_path = File.join plugin_script_dir, "#{spec.name}_plugin#{File.extname(plugin)}"

    File.open plugin_script_path, "wb" do |file|
      file.puts "require_relative '#{Pathname.new(plugin).relative_path_from(Pathname.new(plugin_script_dir))}'"
    end

    verbose plugin_script_path
  end
end

#remove_plugins_for(spec, plugins_dir)

[ GitHub ]

  
# File 'lib/rubygems/installer_uninstaller_utils.rb', line 29

def remove_plugins_for(spec, plugins_dir)
  FileUtils.rm_f Gem::Util.glob_files_in_dir("#{spec.name}#{Gem.plugin_suffix_pattern}", plugins_dir)
  FileUtils.rm_f Gem::Util.glob_files_in_dir("#{spec.name}#{Gem.plugin_suffix_pattern}", ruby_abi_plugin_dir_for(spec, plugins_dir))
end

#ruby_abi_plugin_dir_for(spec, plugins_dir) (private)

[ GitHub ]

  
# File 'lib/rubygems/installer_uninstaller_utils.rb', line 43

def ruby_abi_plugin_dir_for(spec, plugins_dir)
  full_spec = spec.to_spec
  ruby_abi = Gem::ContentAddress.content_addressed?(full_spec) ? full_spec.ruby_abi : Gem.ruby_abi
  File.join plugins_dir, ruby_abi
end