aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bundler/index.rb
diff options
context:
space:
mode:
authorHiroshi SHIBATA <hsbt@ruby-lang.org>2022-11-12 06:00:58 +0900
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2022-11-12 07:40:31 +0900
commit0a9d51ee9d2b3d0111832e5ea1c8195a16e2f99b (patch)
tree4ecad2ecbcbb06893f20fe900e04b3d982b420e1 /lib/bundler/index.rb
parent14a1394bcd85c90c9f14f687fd4a80ba5b96b437 (diff)
downloadruby-0a9d51ee9d2b3d0111832e5ea1c8195a16e2f99b.tar.gz
Migrate our resolver engine to PubGrub
https://github.com/rubygems/rubygems/pull/5960 Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
Diffstat (limited to 'lib/bundler/index.rb')
-rw-r--r--lib/bundler/index.rb18
1 files changed, 5 insertions, 13 deletions
diff --git a/lib/bundler/index.rb b/lib/bundler/index.rb
index ed16c90a3a..0301986ca9 100644
--- a/lib/bundler/index.rb
+++ b/lib/bundler/index.rb
@@ -70,7 +70,7 @@ module Bundler
case query
when Gem::Specification, RemoteSpecification, LazySpecification, EndpointSpecification then search_by_spec(query)
when String then specs_by_name(query)
- when Gem::Dependency then search_by_dependency(query)
+ when Array then specs_by_name_and_version(*query)
else
raise "You can't search for a #{query.inspect}."
end
@@ -157,20 +157,12 @@ module Bundler
private
- def specs_by_name(name)
- @specs[name].values
+ def specs_by_name_and_version(name, version)
+ specs_by_name(name).select {|spec| spec.version == version }
end
- def search_by_dependency(dependency)
- @cache[dependency] ||= begin
- specs = specs_by_name(dependency.name)
- found = specs.select do |spec|
- next true if spec.source.is_a?(Source::Gemspec)
- dependency.matches_spec?(spec)
- end
-
- found
- end
+ def specs_by_name(name)
+ @specs[name].values
end
EMPTY_SEARCH = [].freeze