class Tapioca::Commands::Annotations
def fetch_annotations(project_gems)
def fetch_annotations(project_gems) say("Fetching gem annotations from central repository... ", [:blue, :bold]) fetchable_gems = T.let(Hash.new { |h, k| h[k] = [] }, T::Hash[GemInfo, T::Array[String]]) project_gems.each_with_object(fetchable_gems) do |gem_info, hash| @indexes.each do |uri, index| T.must(hash[gem_info]) << uri if index.has_gem?(gem_info.name) end end if fetchable_gems.empty? say(" Nothing to do") return [] end say("\n") fetched_gems = fetchable_gems.select { |gem_info, repo_uris| fetch_annotation(repo_uris, gem_info) } say("\nDone", :green) fetched_gems.keys.map(&:name).sort end