aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/request_set.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/request_set.rb')
-rw-r--r--lib/rubygems/request_set.rb20
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'