aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/request_set
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/request_set')
-rw-r--r--lib/rubygems/request_set/gem_dependency_api.rb9
-rw-r--r--lib/rubygems/request_set/lockfile.rb8
2 files changed, 15 insertions, 2 deletions
diff --git a/lib/rubygems/request_set/gem_dependency_api.rb b/lib/rubygems/request_set/gem_dependency_api.rb
index 24179dd1ed..9aad5ab5d3 100644
--- a/lib/rubygems/request_set/gem_dependency_api.rb
+++ b/lib/rubygems/request_set/gem_dependency_api.rb
@@ -596,8 +596,17 @@ Gem dependencies file #{@path} requires #{name} more than once.
groups = gem_group spec.name, {}
+ self_dep = Gem::Dependency.new spec.name, spec.version
+
+ add_dependencies groups, [self_dep]
add_dependencies groups, spec.runtime_dependencies
+ @dependencies[spec.name] = '!'
+
+ spec.dependencies.each do |dep|
+ @dependencies[dep.name] = dep.requirement
+ end
+
groups << development_group
add_dependencies groups, spec.development_dependencies
diff --git a/lib/rubygems/request_set/lockfile.rb b/lib/rubygems/request_set/lockfile.rb
index 2901dba871..918aa971e5 100644
--- a/lib/rubygems/request_set/lockfile.rb
+++ b/lib/rubygems/request_set/lockfile.rb
@@ -168,8 +168,12 @@ class Gem::RequestSet::Lockfile
dest = File.expand_path(dest)
base = File.expand_path(base)
- if dest.index(base) == 0
- return dest[base.size+1..-1]
+ if dest.index(base) == 0 then
+ offset = dest[base.size+1..-1]
+
+ return '.' unless offset
+
+ offset
else
dest
end