Module: Homebrew::API::Cask Private
- Extended by:
- Cachable
- Defined in:
- api/cask.rb
Overview
This module is part of a private API. This module may only be used in the Homebrew/brew repository. Third parties should avoid using this module if possible, as it may be removed or changed without warning.
Helper functions for using the cask JSON API.
Class Method Summary collapse
-
.all_casks ⇒ Hash
private
-
.all_renames ⇒ Hash{String => String}
private
-
.download_and_cache_data! ⇒ Boolean
private
-
.fetch(token) ⇒ Hash
private
-
.source_download(cask) ⇒ ::Cask::Cask
private
-
.write_names(regenerate: false) ⇒ void
private
Methods included from Cachable
Class Method Details
.all_casks ⇒ Hash
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
64 65 66 67 68 69 70 71 |
# File 'api/cask.rb', line 64 def all_casks unless cache.key?("casks") json_updated = download_and_cache_data! write_names(regenerate: json_updated) end cache.fetch("casks") end |
.all_renames ⇒ Hash{String => String}
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
74 75 76 77 78 79 80 81 |
# File 'api/cask.rb', line 74 def all_renames unless cache.key?("renames") json_updated = download_and_cache_data! write_names(regenerate: json_updated) end cache.fetch("renames") end |
.download_and_cache_data! ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'api/cask.rb', line 45 def download_and_cache_data! json_casks, updated = Homebrew::API.fetch_json_api_file "cask.jws.json" cache["renames"] = {} cache["casks"] = json_casks.to_h do |json_cask| token = json_cask.delete("token") json_cask.fetch("old_tokens", []).each do |old_token| cache["renames"][old_token] = token end [token, json_cask] end updated end |
.fetch(token) ⇒ Hash
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
19 20 21 |
# File 'api/cask.rb', line 19 def fetch(token) Homebrew::API.fetch "cask/#{token}.json" end |
.source_download(cask) ⇒ ::Cask::Cask
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'api/cask.rb', line 24 def source_download(cask) path = cask.ruby_source_path.to_s || "Casks/#{cask.token}.rb" sha256 = cask.ruby_source_checksum[:sha256] checksum = Checksum.new(sha256) if sha256 git_head = cask.tap_git_head || "HEAD" tap = cask.tap&.full_name || "Homebrew/homebrew-cask" download = Homebrew::API::Download.new( "https://raw.githubusercontent.com/#{tap}/#{git_head}/#{path}", checksum, mirrors: [ "#{HOMEBREW_API_DEFAULT_DOMAIN}/cask-source/#{File.basename(path)}", ], cache: HOMEBREW_CACHE_API_SOURCE/"#{tap}/#{git_head}/Cask", ) download.fetch ::Cask::CaskLoader::FromPathLoader.new(download.symlink_location) .load(config: cask.config) end |
.write_names(regenerate: false) ⇒ void
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
This method returns an undefined value.
84 85 86 87 88 |
# File 'api/cask.rb', line 84 def write_names(regenerate: false) download_and_cache_data! unless cache.key?("casks") Homebrew::API.write_names_file(all_casks.keys, "cask", regenerate: regenerate) end |