class Bundler::RubyGemsGemInstaller

def install

def install
  pre_install_checks
  run_pre_install_hooks
  spec.loaded_from = spec_file
  # Completely remove any previous gem files
  strict_rm_rf gem_dir
  strict_rm_rf spec.extension_dir
  SharedHelpers.filesystem_access(gem_dir, :create) do
    FileUtils.mkdir_p gem_dir, mode: 0o755
  end
  SharedHelpers.filesystem_access(gem_dir, :write) do
    extract_files
  end
  build_extensions if spec.extensions.any?
  write_build_info_file
  run_post_build_hooks
  SharedHelpers.filesystem_access(bin_dir, :write) do
    generate_bin
  end
  generate_plugins
  write_spec
  SharedHelpers.filesystem_access("#{gem_home}/cache", :write) do
    write_cache_file
  end
  say spec.post_install_message unless spec.post_install_message.nil?
  run_post_install_hooks
  spec
end