def install(name)
gemrc_opts = Gem.configuration['gem'].split(' ')
destination = if gemrc_opts.include?('--user-install')
Gem.user_dir
elsif File.writable?(Gem.dir)
Gem.dir
else
Gem.user_dir
end
installer = Gem::DependencyInstaller.new(:install_dir => destination)
installer.install(name)
rescue Errno::EACCES
raise CommandError,
"Insufficient permissions to install #{ Pry::Helpers::Text.green(name) }."
rescue Gem::GemNotFoundException
raise CommandError,
"Gem #{ Pry::Helpers::Text.green(name) } not found. Aborting installation."
else
Gem.refresh
end