Maintenance of Ruby 2.0.0 ended on February 24, 2016. Read more
The global rubygems pool, available via the rubygems.org API. Returns instances of APISpecification.
Return an array of APISpecification
objects matching DependencyRequest
req.
# File rubygems/dependency_resolver.rb, line 127
def find_all(req)
res = []
versions(req.name).each do |ver|
if req.dependency.match? req.name, ver[:number]
res << APISpecification.new(self, ver)
end
end
res
end
A hint run by the resolver to allow the Set to fetch data for
DependencyRequests reqs.
# File rubygems/dependency_resolver.rb, line 142
def prefetch(reqs)
names = reqs.map { |r| r.dependency.name }
needed = names.find_all { |d| !@data.key?(d) }
return if needed.empty?
uri = @dep_uri + "?gems=#{needed.sort.join ','}"
str = Gem::RemoteFetcher.fetcher.fetch_path uri
Marshal.load(str).each do |ver|
@data[ver[:name]] << ver
end
end
Return data for all versions of the gem name.
# File rubygems/dependency_resolver.rb, line 109
def versions(name)
if @data.key?(name)
return @data[name]
end
uri = @dep_uri + "?gems=#{name}"
str = Gem::RemoteFetcher.fetcher.fetch_path uri
Marshal.load(str).each do |ver|
@data[ver[:name]] << ver
end
@data[name]
end