diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-11-30 23:27:52 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-11-30 23:27:52 +0000 |
commit | 73fc703f7cbb2e6dfd50897d26b37fe8e76064e3 (patch) | |
tree | 0296426c8ac01331f2d33dde54fd9f1e183ea974 /lib/rubygems/resolver | |
parent | 6727297dfecddaef6b1166a7f442db2a22929c65 (diff) | |
download | ruby-73fc703f7cbb2e6dfd50897d26b37fe8e76064e3.tar.gz |
* lib/rubygems: Update to RubyGems master 66e5c39. Notable changes:
Implement gem.deps.rb (Gemfile) .lock support
Fixed `gem uninstall` for a relative directory in GEM_HOME.
* test/rubygems: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/resolver')
-rw-r--r-- | lib/rubygems/resolver/best_set.rb | 10 | ||||
-rw-r--r-- | lib/rubygems/resolver/git_set.rb | 23 | ||||
-rw-r--r-- | lib/rubygems/resolver/index_set.rb | 24 | ||||
-rw-r--r-- | lib/rubygems/resolver/lock_set.rb | 18 | ||||
-rw-r--r-- | lib/rubygems/resolver/vendor_set.rb | 15 |
5 files changed, 89 insertions, 1 deletions
diff --git a/lib/rubygems/resolver/best_set.rb b/lib/rubygems/resolver/best_set.rb index 533a0db58f..fa6c9f84c0 100644 --- a/lib/rubygems/resolver/best_set.rb +++ b/lib/rubygems/resolver/best_set.rb @@ -17,5 +17,15 @@ class Gem::Resolver::BestSet < Gem::Resolver::ComposedSet end end + def pretty_print q # :nodoc: + q.group 2, '[BestSet', ']' do + q.breakable + q.text 'sets:' + + q.breakable + q.pp @sets + end + end + end 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 diff --git a/lib/rubygems/resolver/index_set.rb b/lib/rubygems/resolver/index_set.rb index 0ba3c78a44..a6ef56bb7f 100644 --- a/lib/rubygems/resolver/index_set.rb +++ b/lib/rubygems/resolver/index_set.rb @@ -46,5 +46,29 @@ class Gem::Resolver::IndexSet < Gem::Resolver::Set res end + def pretty_print q # :nodoc: + q.group 2, '[IndexSet', ']' do + q.breakable + q.text 'sources:' + q.breakable + q.pp @f.sources + + q.breakable + q.text 'specs:' + + q.breakable + + names = @all.values.map do |tuples| + tuples.map do |_, tuple| + tuple.full_name + end + end.flatten + + q.seplist names do |name| + q.text name + end + end + end + end diff --git a/lib/rubygems/resolver/lock_set.rb b/lib/rubygems/resolver/lock_set.rb index 6885e70945..ef5395597d 100644 --- a/lib/rubygems/resolver/lock_set.rb +++ b/lib/rubygems/resolver/lock_set.rb @@ -9,7 +9,7 @@ class Gem::Resolver::LockSet < Gem::Resolver::Set # Creates a new LockSet from the given +source+ def initialize source - @source = source + @source = Gem::Source::Lock.new source @specs = [] end @@ -56,5 +56,21 @@ class Gem::Resolver::LockSet < Gem::Resolver::Set found.source.fetch_spec tuple end + def pretty_print q # :nodoc: + q.group 2, '[LockSet', ']' do + q.breakable + q.text 'source:' + + q.breakable + q.pp @source + + q.breakable + q.text 'specs:' + + q.breakable + q.pp @specs.map { |spec| spec.full_name } + end + end + end diff --git a/lib/rubygems/resolver/vendor_set.rb b/lib/rubygems/resolver/vendor_set.rb index c8826005a7..339492f690 100644 --- a/lib/rubygems/resolver/vendor_set.rb +++ b/lib/rubygems/resolver/vendor_set.rb @@ -64,5 +64,20 @@ class Gem::Resolver::VendorSet < Gem::Resolver::Set @specs.fetch key end + def pretty_print q # :nodoc: + q.group 2, '[VendorSet', ']' do + next if @directories.empty? + q.breakable + + dirs = @directories.map do |spec, directory| + "#{spec.full_name}: #{directory}" + end + + q.seplist dirs do |dir| + q.text dir + end + end + end + end |