Skip to content

Commit

Permalink
Merge pull request #14623 from dduugg/type-api
Browse files Browse the repository at this point in the history
Enabling typing in Homebrew::API module
  • Loading branch information
MikeMcQuaid authored Feb 14, 2023
2 parents 70db4bc + 95742f4 commit 72071f2
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 12 deletions.
16 changes: 7 additions & 9 deletions Library/Homebrew/api.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# typed: false
# typed: true
# frozen_string_literal: true

require "api/analytics"
Expand All @@ -15,12 +15,10 @@ module API

extend Cachable

module_function

HOMEBREW_CACHE_API = (HOMEBREW_CACHE/"api").freeze

sig { params(endpoint: String).returns(Hash) }
def fetch(endpoint)
def self.fetch(endpoint)
return cache[endpoint] if cache.present? && cache.key?(endpoint)

api_url = "#{Homebrew::EnvConfig.api_domain}/#{endpoint}"
Expand All @@ -37,8 +35,8 @@ def fetch(endpoint)
raise ArgumentError, "Invalid JSON file: #{Tty.underline}#{api_url}#{Tty.reset}"
end

sig { params(endpoint: String, target: Pathname).returns(Hash) }
def fetch_json_api_file(endpoint, target:)
sig { params(endpoint: String, target: Pathname).returns(T.any(Array, Hash)) }
def self.fetch_json_api_file(endpoint, target:)
retry_count = 0
url = "#{Homebrew::EnvConfig.api_domain}/#{endpoint}"
default_url = "#{HOMEBREW_API_DEFAULT_DOMAIN}/#{endpoint}"
Expand All @@ -61,7 +59,7 @@ def fetch_json_api_file(endpoint, target:)
begin
begin
args = curl_args.dup
args.prepend("--time-cond", target) if target.exist? && !target.empty?
args.prepend("--time-cond", target.to_s) if target.exist? && !target.empty?
unless skip_download
ohai "Downloading #{url}" if $stdout.tty?
# Disable retries here, we handle them ourselves below.
Expand Down Expand Up @@ -97,7 +95,7 @@ def fetch_json_api_file(endpoint, target:)
end

sig { params(filepath: String, repo: String, git_head: T.nilable(String)).returns(String) }
def fetch_file_source(filepath, repo:, git_head: nil)
def self.fetch_file_source(filepath, repo:, git_head: nil)
git_head ||= "master"
endpoint = "#{git_head}/#{filepath}"
return cache[endpoint] if cache.present? && cache.key?(endpoint)
Expand All @@ -110,7 +108,7 @@ def fetch_file_source(filepath, repo:, git_head: nil)
end

sig { params(json: Hash).returns(Hash) }
def merge_variations(json)
def self.merge_variations(json)
if (bottle_tag = ::Utils::Bottles.tag.to_s.presence) &&
(variations = json["variations"].presence) &&
(variation = variations[bottle_tag].presence)
Expand Down
2 changes: 1 addition & 1 deletion Library/Homebrew/api/analytics.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# typed: false
# typed: true
# frozen_string_literal: true

module Homebrew
Expand Down
2 changes: 1 addition & 1 deletion Library/Homebrew/api/cask.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# typed: false
# typed: true
# frozen_string_literal: true

module Homebrew
Expand Down
2 changes: 1 addition & 1 deletion Library/Homebrew/api/formula.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# typed: false
# typed: true
# frozen_string_literal: true

module Homebrew
Expand Down
7 changes: 7 additions & 0 deletions Library/Homebrew/env_config.rbi
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# typed: strict

module Homebrew::EnvConfig
# This is necessary due to https://github.com/sorbet/sorbet/issues/6726
sig { returns(String) }
def self.api_auto_update_secs; end
end

0 comments on commit 72071f2

Please sign in to comment.