diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-11-21 23:27:30 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-11-21 23:27:30 +0000 |
commit | 5307d803f5cce7b14a6afd1d51f6d53ec85ca87d (patch) | |
tree | aac2997a9ff000fbf2f1f9f27077bb7b2403f2c9 /lib/rubygems/resolver/git_set.rb | |
parent | b1529a30e08040b717adef8ac1fa8be1c060e7e1 (diff) |
* lib/rubygems: Update to RubyGems master 50a8210. Important changes
in this commit:
RubyGems now automatically checks for gem.deps.rb or Gemfile when
running ruby executables. This behavior is similar to `bundle exec
rake`. This change may be reverted before Ruby 2.1.0 if too many bugs
are found.
* test/rubygems: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/resolver/git_set.rb')
-rw-r--r-- | lib/rubygems/resolver/git_set.rb | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/lib/rubygems/resolver/git_set.rb b/lib/rubygems/resolver/git_set.rb index 3c38d3dca0..c912e367d9 100644 --- a/lib/rubygems/resolver/git_set.rb +++ b/lib/rubygems/resolver/git_set.rb @@ -42,38 +42,27 @@ class Gem::Resolver::GitSet < Gem::Resolver::Set # Finds all git gems matching +req+ def find_all req - @repositories.keys.select do |name| - name == req.name - end.map do |name| - @specs[name] || load_spec(name) - end.select do |spec| + prefetch nil + + specs.values.select do |spec| req.matches_spec? spec end end - def load_spec name - repository, reference = @repositories[name] - - source = Gem::Source::Git.new name, repository, reference - - spec = source.load_spec name - - git_spec = - Gem::Resolver::GitSpecification.new self, spec, source - - @specs[name] = git_spec - end - ## # Prefetches specifications from the git repositories in this set. def prefetch reqs - names = reqs.map { |req| req.name } + return unless @specs.empty? + + @repositories.each do |name, (repository, reference)| + source = Gem::Source::Git.new name, repository, reference - @repositories.each_key do |name| - next unless names.include? name + source.specs.each do |spec| + git_spec = Gem::Resolver::GitSpecification.new self, spec, source - load_spec name + @specs[spec.name] = git_spec + end end end |