diff options
author | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2022-11-12 06:00:58 +0900 |
---|---|---|
committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2022-11-12 07:40:31 +0900 |
commit | 0a9d51ee9d2b3d0111832e5ea1c8195a16e2f99b (patch) | |
tree | 4ecad2ecbcbb06893f20fe900e04b3d982b420e1 /lib/bundler/index.rb | |
parent | 14a1394bcd85c90c9f14f687fd4a80ba5b96b437 (diff) | |
download | ruby-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.rb | 18 |
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 |