Merge pull request #2420 from tmacedo/rubygems_2_compatibility
core: compatibility with rubygems 2.x
This commit is contained in:
commit
63005fc1c6
|
@ -1,6 +1,10 @@
|
||||||
require "rubygems"
|
require "rubygems"
|
||||||
require "rubygems/dependency_installer"
|
require "rubygems/dependency_installer"
|
||||||
require "rubygems/format"
|
begin
|
||||||
|
require "rubygems/format"
|
||||||
|
rescue LoadError
|
||||||
|
# rubygems 2.x
|
||||||
|
end
|
||||||
|
|
||||||
require "log4r"
|
require "log4r"
|
||||||
|
|
||||||
|
@ -26,8 +30,13 @@ module VagrantPlugins
|
||||||
if plugin_name =~ /\.gem$/
|
if plugin_name =~ /\.gem$/
|
||||||
# If we're installing from a gem file, determine the name
|
# If we're installing from a gem file, determine the name
|
||||||
# based on the spec in the file.
|
# 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
|
find_plugin_name = pkg.spec.name
|
||||||
|
version = pkg.spec.version
|
||||||
end
|
end
|
||||||
|
|
||||||
# Install the gem
|
# Install the gem
|
||||||
|
|
|
@ -126,6 +126,10 @@ module VagrantPlugins
|
||||||
|
|
||||||
if prune_specs.length > 0
|
if prune_specs.length > 0
|
||||||
env[:gem_helper].with_environment do
|
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|
|
prune_specs.each do |prune_spec|
|
||||||
uninstaller = Gem::Uninstaller.new(prune_spec.name, {
|
uninstaller = Gem::Uninstaller.new(prune_spec.name, {
|
||||||
:all => true,
|
:all => true,
|
||||||
|
|
Loading…
Reference in New Issue