summaryrefslogtreecommitdiff
path: root/lib/rubygems/resolver/git_set.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/resolver/git_set.rb')
-rw-r--r--lib/rubygems/resolver/git_set.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/rubygems/resolver/git_set.rb b/lib/rubygems/resolver/git_set.rb
index c912e367d9..ed809c124f 100644
--- a/lib/rubygems/resolver/git_set.rb
+++ b/lib/rubygems/resolver/git_set.rb
@@ -11,6 +11,12 @@
class Gem::Resolver::GitSet < Gem::Resolver::Set
##
+ # The root directory for git gems in this set. This is usually Gem.dir, the
+ # installation directory for regular gems.
+
+ attr_accessor :root_dir
+
+ ##
# Contains repositories needing submodules
attr_reader :need_submodules # :nodoc:
@@ -30,6 +36,7 @@ class Gem::Resolver::GitSet < Gem::Resolver::Set
@git = ENV['git'] || 'git'
@need_submodules = {}
@repositories = {}
+ @root_dir = Gem.dir
@specs = {}
end
@@ -57,6 +64,7 @@ class Gem::Resolver::GitSet < Gem::Resolver::Set
@repositories.each do |name, (repository, reference)|
source = Gem::Source::Git.new name, repository, reference
+ source.root_dir = @root_dir
source.specs.each do |spec|
git_spec = Gem::Resolver::GitSpecification.new self, spec, source
@@ -66,5 +74,20 @@ class Gem::Resolver::GitSet < Gem::Resolver::Set
end
end
+ def pretty_print q # :nodoc:
+ q.group 2, '[GitSet', ']' do
+ next if @repositories.empty?
+ q.breakable
+
+ repos = @repositories.map do |name, (repository, reference)|
+ "#{name}: #{repository}@#{reference}"
+ end
+
+ q.seplist repos do |repo|
+ q.text repo
+ end
+ end
+ end
+
end