diff options
Diffstat (limited to 'lib/rubygems/request_set.rb')
-rw-r--r-- | lib/rubygems/request_set.rb | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/lib/rubygems/request_set.rb b/lib/rubygems/request_set.rb index d6337e32d8..54e4d9dee4 100644 --- a/lib/rubygems/request_set.rb +++ b/lib/rubygems/request_set.rb @@ -67,6 +67,7 @@ class Gem::RequestSet @dependency_names = {} @development = false @git_set = nil + @install_dir = Gem.dir @requests = [] @sets = [] @soft_missing = false @@ -143,7 +144,11 @@ class Gem::RequestSet # dependencies file are not used. See Gem::Installer for other +options+. def install_from_gemdeps options, &block - load_gemdeps options[:gemdeps], options[:without_groups] + gemdeps = options[:gemdeps] + + @install_dir = options[:install_dir] || Gem.dir + + load_gemdeps gemdeps, options[:without_groups] resolve @@ -154,7 +159,12 @@ class Gem::RequestSet puts " #{s}" end else - install options, &block + installed = install options, &block + + lockfile = Gem::RequestSet::Lockfile.new self, gemdeps + lockfile.write + + installed end end @@ -194,6 +204,11 @@ class Gem::RequestSet @git_set = Gem::Resolver::GitSet.new @vendor_set = Gem::Resolver::VendorSet.new + @git_set.root_dir = @install_dir + + lockfile = Gem::RequestSet::Lockfile.new self, path + lockfile.parse + gf = Gem::RequestSet::GemDependencyAPI.new self, path gf.without_groups = without_groups if without_groups gf.load @@ -264,3 +279,4 @@ class Gem::RequestSet end require 'rubygems/request_set/gem_dependency_api' +require 'rubygems/request_set/lockfile' |