blob: 763fb6fd1088a4982348b5a85a6ebbf25f8b06b9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
--- vagrant-1.3.5/plugins/commands/plugin/action/install_gem.rb
+++ vagrant-1.3.5/plugins/commands/plugin/action/install_gem.rb
@@ -1,6 +1,10 @@
require "rubygems"
require "rubygems/dependency_installer"
-require "rubygems/format"
+begin
+ require "rubygems/format"
+rescue LoadError
+ # rubygems 2.0
+end
require "log4r"
@@ -26,8 +30,13 @@
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
--- vagrant-1.3.5/plugins/commands/plugin/action/prune_gems.rb
+++ vagrant-1.3.5/plugins/commands/plugin/action/prune_gems.rb
@@ -126,6 +126,10 @@
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,
|