Module: Homebrew::API::Internal Private
- Extended by:
- Cachable
- Defined in:
- api/internal.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 JSON internal API.
Class Method Summary collapse
- .cask_endpoint ⇒ String private
- .cask_hashes ⇒ Hash{String => Hash{String => T.untyped}} private
- .cask_renames ⇒ Hash{String => String} private
- .cask_tap_migrations ⇒ Hash{String => String} private
- .fetch_cask_api!(download_queue: nil, stale_seconds: Homebrew::EnvConfig.api_auto_update_secs.to_i) ⇒ Array<(Hash{String => T.untyped}, Boolean)> private
- .fetch_formula_api!(download_queue: nil, stale_seconds: Homebrew::EnvConfig.api_auto_update_secs.to_i) ⇒ Array<(Hash{String => T.untyped}, Boolean)> private
- .formula_aliases ⇒ Hash{String => String} private
- .formula_arrays ⇒ Hash{String => Array<(String, Integer, [String, nil])>} private
- .formula_endpoint ⇒ String private
- .formula_renames ⇒ Hash{String => String} private
- .formula_stub(name) ⇒ Homebrew::FormulaStub private
- .formula_tap_migrations ⇒ Hash{String => String} private
- .write_cask_names(regenerate: false) ⇒ void private
- .write_formula_names_and_aliases(regenerate: false) ⇒ void private
Methods included from Cachable
Class Method Details
.cask_endpoint ⇒ 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.
24 25 26 |
# File 'api/internal.rb', line 24 def self.cask_endpoint "internal/cask.#{SimulateSystem.current_tag}.jws.json" end |
.cask_hashes ⇒ Hash{String => Hash{String => T.untyped}}
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.
147 148 149 150 151 152 153 154 |
# File 'api/internal.rb', line 147 def self.cask_hashes unless cache.key?("cask_hashes") updated = download_and_cache_cask_data! write_cask_names(regenerate: updated) end cache["cask_hashes"] end |
.cask_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.
157 158 159 160 161 162 163 164 |
# File 'api/internal.rb', line 157 def self.cask_renames unless cache.key?("cask_renames") updated = download_and_cache_cask_data! write_cask_names(regenerate: updated) end cache["cask_renames"] end |
.cask_tap_migrations ⇒ 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.
167 168 169 170 171 172 173 174 |
# File 'api/internal.rb', line 167 def self.cask_tap_migrations unless cache.key?("cask_tap_migrations") updated = download_and_cache_cask_data! write_cask_names(regenerate: updated) end cache["cask_tap_migrations"] end |
.fetch_cask_api!(download_queue: nil, stale_seconds: Homebrew::EnvConfig.api_auto_update_secs.to_i) ⇒ Array<(Hash{String => T.untyped}, 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.
61 62 63 64 |
# File 'api/internal.rb', line 61 def self.fetch_cask_api!(download_queue: nil, stale_seconds: Homebrew::EnvConfig.api_auto_update_secs.to_i) json_contents, updated = (Homebrew::API.fetch_json_api_file cask_endpoint, stale_seconds:, download_queue:) [T.cast(json_contents, T::Hash[String, T.untyped]), updated] end |
.fetch_formula_api!(download_queue: nil, stale_seconds: Homebrew::EnvConfig.api_auto_update_secs.to_i) ⇒ Array<(Hash{String => T.untyped}, 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.
52 53 54 55 |
# File 'api/internal.rb', line 52 def self.fetch_formula_api!(download_queue: nil, stale_seconds: Homebrew::EnvConfig.api_auto_update_secs.to_i) json_contents, updated = (Homebrew::API.fetch_json_api_file formula_endpoint, stale_seconds:, download_queue:) [T.cast(json_contents, T::Hash[String, T.untyped]), updated] end |
.formula_aliases ⇒ 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.
117 118 119 120 121 122 123 124 |
# File 'api/internal.rb', line 117 def self.formula_aliases unless cache.key?("formula_aliases") updated = download_and_cache_formula_data! write_formula_names_and_aliases(regenerate: updated) end cache["formula_aliases"] end |
.formula_arrays ⇒ Hash{String => Array<(String, Integer, [String, nil])>}
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.
107 108 109 110 111 112 113 114 |
# File 'api/internal.rb', line 107 def self.formula_arrays unless cache.key?("formula_arrays") updated = download_and_cache_formula_data! write_formula_names_and_aliases(regenerate: updated) end cache["formula_arrays"] end |
.formula_endpoint ⇒ 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.
19 20 21 |
# File 'api/internal.rb', line 19 def self.formula_endpoint "internal/formula.#{SimulateSystem.current_tag}.jws.json" end |
.formula_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.
127 128 129 130 131 132 133 134 |
# File 'api/internal.rb', line 127 def self.formula_renames unless cache.key?("formula_renames") updated = download_and_cache_formula_data! write_formula_names_and_aliases(regenerate: updated) end cache["formula_renames"] end |
.formula_stub(name) ⇒ Homebrew::FormulaStub
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.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'api/internal.rb', line 29 def self.formula_stub(name) return cache["formula_stubs"][name] if cache.key?("formula_stubs") && cache["formula_stubs"].key?(name) stub_array = formula_arrays[name] raise "No formula stub found for #{name}" unless stub_array stub = Homebrew::FormulaStub.new( name: name, pkg_version: PkgVersion.parse(stub_array[0]), rebuild: stub_array[1], sha256: stub_array[2], ) cache["formula_stubs"] ||= {} cache["formula_stubs"][name] = stub stub end |
.formula_tap_migrations ⇒ 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.
137 138 139 140 141 142 143 144 |
# File 'api/internal.rb', line 137 def self.formula_tap_migrations unless cache.key?("formula_tap_migrations") updated = download_and_cache_formula_data! write_formula_names_and_aliases(regenerate: updated) end cache["formula_tap_migrations"] end |
.write_cask_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.
100 101 102 103 104 |
# File 'api/internal.rb', line 100 def self.write_cask_names(regenerate: false) download_and_cache_cask_data! unless cache.key?("cask_hashes") Homebrew::API.write_names_file!(cask_hashes.keys, "cask", regenerate:) end |
.write_formula_names_and_aliases(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.
92 93 94 95 96 97 |
# File 'api/internal.rb', line 92 def self.write_formula_names_and_aliases(regenerate: false) download_and_cache_formula_data! unless cache.key?("formula_arrays") Homebrew::API.write_names_file!(formula_arrays.keys, "formula", regenerate:) Homebrew::API.write_aliases_file!(formula_aliases, "formula", regenerate:) end |