summaryrefslogtreecommitdiff
path: root/lib/rubygems/resolver/git_set.rb
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-11-21 23:27:30 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-11-21 23:27:30 +0000
commit5307d803f5cce7b14a6afd1d51f6d53ec85ca87d (patch)
treeaac2997a9ff000fbf2f1f9f27077bb7b2403f2c9 /lib/rubygems/resolver/git_set.rb
parentb1529a30e08040b717adef8ac1fa8be1c060e7e1 (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.rb33
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