Class: CoreTap Private
- Inherits:
-
AbstractCoreTap
- Object
- Tap
- AbstractCoreTap
- CoreTap
- Defined in:
- tap.rb
Overview
This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.
A specialized Tap class for the core formulae.
Constant Summary
Constants inherited from Tap
Tap::HOMEBREW_TAP_JSON_FILES, Tap::TAP_DIRECTORY
Instance Attribute Summary
Attributes inherited from Tap
#full_name, #git_repo, #name, #path, #repo, #user
Instance Method Summary collapse
- #alias_dir ⇒ Pathname private
- #alias_file_to_name(file) ⇒ String private
- #alias_table ⇒ Hash{String => String} private
- #audit_exceptions ⇒ Hash private
- #autobump ⇒ Array<String> private
- #core_tap? ⇒ Boolean private
- #ensure_installed! ⇒ void private
- #formula_dir ⇒ Pathname private
- #formula_files ⇒ Array<Pathname> private
- #formula_files_by_name ⇒ Hash{String => Pathname} private
- #formula_names ⇒ Array<String> private
- #formula_renames ⇒ Hash{String => String} private
- #initialize ⇒ void constructor private
-
#install(quiet: false, clone_target: nil, custom_remote: false, verify: false, force: false) ⇒ Object
private
CoreTap never allows shallow clones (on request from GitHub).
- #linuxbrew_core? ⇒ Boolean private
- #new_formula_path(name) ⇒ Pathname private
- #pypi_formula_mappings ⇒ Hash private
- #remote ⇒ String? private
- #style_exceptions ⇒ Hash private
- #synced_versions_formulae ⇒ Array<Array<String>> private
- #tap_migrations ⇒ Hash private
- #to_internal_api_hash ⇒ Hash{String => T.untyped} private
- #uninstall(manual: false) ⇒ void private
Methods inherited from AbstractCoreTap
ensure_installed!, #formula_file_to_name, instance, #should_report_analytics?
Methods inherited from Tap
#alias_files, #alias_reverse_table, #aliases, all, #allow_bump?, #audit_exception, #cask_dir, #cask_file?, #cask_files, #cask_files_by_name, #cask_renames, #cask_reverse_renames, #cask_tokens, #clear_cache, cmd_directories, #command_dir, #command_files, #config, #contents, #core_cask_tap?, #custom_remote?, default_cask_tap, #default_remote, each, fetch, #fix_remote_configuration, #formula_file?, #formula_file_to_name, #formula_reverse_renames, from_path, #git?, #git_branch, #git_head, #git_last_commit, install_default_cask_tap_if_necessary, installed, #installed?, #issues_url, #link_completions_and_manpages, names, #new_cask_path, #official?, #potential_formula_dirs, #prefix_to_versioned_formulae_names, #private?, #relative_cask_path, #remote_repo, #repo_var_suffix, #reverse_tap_migrations_renames, #shallow?, #should_report_analytics?, tap_migration_oldnames, #to_hash, untapped_official_taps, with_cask_token, with_formula_name
Methods included from Cachable
Methods included from Enumerable
Constructor Details
#initialize ⇒ 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.
1134 1135 1136 |
# File 'tap.rb', line 1134 def initialize super "Homebrew", "core" end |
Instance Method Details
#alias_dir ⇒ Pathname
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.
1207 1208 1209 1210 1211 1212 |
# File 'tap.rb', line 1207 def alias_dir @alias_dir ||= begin ensure_installed! super end end |
#alias_file_to_name(file) ⇒ 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.
1279 1280 1281 |
# File 'tap.rb', line 1279 def alias_file_to_name(file) file.basename.to_s end |
#alias_table ⇒ 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.
1284 1285 1286 1287 1288 1289 1290 |
# File 'tap.rb', line 1284 def alias_table @alias_table ||= if Homebrew::EnvConfig.no_install_from_api? super else Homebrew::API::Formula.all_aliases end end |
#audit_exceptions ⇒ 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.
1247 1248 1249 1250 1251 1252 |
# File 'tap.rb', line 1247 def audit_exceptions @audit_exceptions ||= begin ensure_installed! super end end |
#autobump ⇒ Array<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.
1239 1240 1241 1242 1243 1244 |
# File 'tap.rb', line 1239 def autobump @autobump ||= begin ensure_installed! super end end |
#core_tap? ⇒ 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.
1176 1177 1178 |
# File 'tap.rb', line 1176 def core_tap? true end |
#ensure_installed! ⇒ 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.
1139 1140 1141 1142 1143 |
# File 'tap.rb', line 1139 def ensure_installed! return if ENV["HOMEBREW_TESTS"] super end |
#formula_dir ⇒ Pathname
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.
1186 1187 1188 1189 1190 1191 |
# File 'tap.rb', line 1186 def formula_dir @formula_dir ||= begin ensure_installed! super end end |
#formula_files ⇒ Array<Pathname>
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.
1293 1294 1295 1296 1297 |
# File 'tap.rb', line 1293 def formula_files return super if Homebrew::EnvConfig.no_install_from_api? formula_files_by_name.values end |
#formula_files_by_name ⇒ Hash{String => Pathname}
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.
1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 |
# File 'tap.rb', line 1307 def formula_files_by_name return super if Homebrew::EnvConfig.no_install_from_api? @formula_files_by_name ||= begin tap_path = path.to_s Homebrew::API::Formula.all_formulae.each_with_object({}) do |item, hash| name, formula_hash = item # If there's more than one item with the same path: use the longer one to prioritise more specific results. existing_path = hash[name] # Pathname equivalent is slow in a tight loop new_path = File.join(tap_path, formula_hash.fetch("ruby_source_path")) hash[name] = Pathname(new_path) if existing_path.nil? || existing_path.to_s.length < new_path.length end end end |
#formula_names ⇒ Array<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.
1300 1301 1302 1303 1304 |
# File 'tap.rb', line 1300 def formula_names return super if Homebrew::EnvConfig.no_install_from_api? Homebrew::API::Formula.all_formulae.keys 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.
1215 1216 1217 1218 1219 1220 1221 1222 |
# File 'tap.rb', line 1215 def formula_renames @formula_renames ||= if Homebrew::EnvConfig.no_install_from_api? ensure_installed! super else Homebrew::API::Formula.all_renames end end |
#install(quiet: false, clone_target: nil, custom_remote: false, verify: false, force: false) ⇒ Object
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.
CoreTap never allows shallow clones (on request from GitHub).
1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 |
# File 'tap.rb', line 1153 def install(quiet: false, clone_target: nil, custom_remote: false, verify: false, force: false) remote = Homebrew::EnvConfig.core_git_remote # set by HOMEBREW_CORE_GIT_REMOTE requested_remote = clone_target || remote # The remote will changed again on `brew update` since remotes for homebrew/core are mismatched raise TapCoreRemoteMismatchError.new(name, remote, requested_remote) if requested_remote != remote if remote != default_remote $stderr.puts "HOMEBREW_CORE_GIT_REMOTE set: using #{remote} as the Homebrew/homebrew-core Git remote." end super(quiet:, clone_target: remote, custom_remote:, force:) end |
#linuxbrew_core? ⇒ 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.
1181 1182 1183 |
# File 'tap.rb', line 1181 def linuxbrew_core? remote_repo.to_s.end_with?("/linuxbrew-core") || remote_repo == "Linuxbrew/homebrew-core" end |
#new_formula_path(name) ⇒ Pathname
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.
1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 |
# File 'tap.rb', line 1194 def new_formula_path(name) formula_subdir = if name.start_with?("lib") "lib" else name[0].to_s end return super unless (formula_dir/formula_subdir).directory? formula_dir/formula_subdir/"#{name.downcase}.rb" end |
#pypi_formula_mappings ⇒ 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.
1263 1264 1265 1266 1267 1268 |
# File 'tap.rb', line 1263 def pypi_formula_mappings @pypi_formula_mappings ||= begin ensure_installed! super end end |
#remote ⇒ 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.
1146 1147 1148 1149 1150 |
# File 'tap.rb', line 1146 def remote return super if Homebrew::EnvConfig.no_install_from_api? Homebrew::EnvConfig.core_git_remote end |
#style_exceptions ⇒ 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.
1255 1256 1257 1258 1259 1260 |
# File 'tap.rb', line 1255 def style_exceptions @style_exceptions ||= begin ensure_installed! super end end |
#synced_versions_formulae ⇒ Array<Array<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.
1271 1272 1273 1274 1275 1276 |
# File 'tap.rb', line 1271 def synced_versions_formulae @synced_versions_formulae ||= begin ensure_installed! super end end |
#tap_migrations ⇒ 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.
1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 |
# File 'tap.rb', line 1225 def tap_migrations @tap_migrations ||= if Homebrew::EnvConfig.no_install_from_api? ensure_installed! super elsif Homebrew::API.internal_json_v3? Homebrew::API::Formula.tap_migrations else migrations, = Homebrew::API.fetch_json_api_file "formula_tap_migrations.jws.json", stale_seconds: TAP_MIGRATIONS_STALE_SECONDS migrations end end |
#to_internal_api_hash ⇒ 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.
1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 |
# File 'tap.rb', line 1324 def to_internal_api_hash formulae_api_hash = formula_names.to_h do |name| formula = Formulary.factory(name) formula_hash = formula.to_hash_with_variations(hash_method: :to_internal_api_hash) [name, formula_hash] end { "tap_git_head" => git_head, "aliases" => alias_table, "renames" => formula_renames, "tap_migrations" => tap_migrations, "formulae" => formulae_api_hash, } end |
#uninstall(manual: 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.
1169 1170 1171 1172 1173 |
# File 'tap.rb', line 1169 def uninstall(manual: false) raise "Tap#uninstall is not available for CoreTap" if Homebrew::EnvConfig.no_install_from_api? super end |