compatibility with rubygems 2.x

This commit is contained in:
Tiago Macedo 2013-10-25 11:27:17 +02:00
parent eb6256316c
commit 2d66d94ebe
2 changed files with 15 additions and 2 deletions

View File

@ -1,6 +1,10 @@
require "rubygems"
require "rubygems/dependency_installer"
require "rubygems/format"
begin
require "rubygems/format"
rescue LoadError
# rubygems 2.x
end
require "log4r"
@ -26,8 +30,13 @@ module VagrantPlugins
if plugin_name =~ /\.gem$/
# If we're installing from a gem file, determine the name
# based on the spec in the file.
pkg = Gem::Format.from_file_by_path(plugin_name)
pkg = if defined?(Gem::Format)
Gem::Format.from_file_by_path(plugin_name)
else
Gem::Package.new(plugin_name)
end
find_plugin_name = pkg.spec.name
version = pkg.spec.version
end
# Install the gem

View File

@ -126,6 +126,10 @@ module VagrantPlugins
if prune_specs.length > 0
env[:gem_helper].with_environment do
# due to a bug in rubygems 2.0, we need to load the specifications before removing any
Gem::Specification.to_a
prune_specs.each do |prune_spec|
uninstaller = Gem::Uninstaller.new(prune_spec.name, {
:all => true,