Class: CoreCaskTap Private

Inherits:
AbstractCoreTap show all
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 homebrew-cask.

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

Methods inherited from AbstractCoreTap

#ensure_installed!, ensure_installed!, #formula_file_to_name, instance, #should_report_analytics?

Methods inherited from Tap

#alias_dir, #alias_file_to_name, #alias_files, #alias_reverse_table, #alias_table, #aliases, all, #allow_bump?, #audit_exception, #audit_exceptions, #autobump, #cask_dir, #cask_file?, #cask_reverse_renames, #clear_cache, cmd_directories, #command_dir, #command_files, #config, #contents, #core_tap?, #custom_remote?, default_cask_tap, #default_remote, each, #ensure_installed!, fetch, #fix_remote_configuration, #formula_dir, #formula_file?, #formula_file_to_name, #formula_files, #formula_files_by_name, #formula_names, #formula_renames, #formula_reverse_renames, from_path, #git?, #git_branch, #git_head, #git_last_commit, #install, install_default_cask_tap_if_necessary, installed, #installed?, #issues_url, #link_completions_and_manpages, names, #new_formula_path, #official?, #potential_formula_dirs, #prefix_to_versioned_formulae_names, #private?, #pypi_formula_mappings, #relative_cask_path, #remote, #remote_repo, #repo_var_suffix, #reverse_tap_migrations_renames, #shallow?, #should_report_analytics?, #style_exceptions, #synced_versions_formulae, tap_migration_oldnames, #to_hash, #uninstall, untapped_official_taps, with_cask_token, with_formula_name

Methods included from Cachable

#cache, #clear_cache

Methods included from Enumerable

#compact_blank, #exclude?

Constructor Details

#initializevoid

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.



1344
1345
1346
# File 'tap.rb', line 1344

def initialize
  super "Homebrew", "cask"
end

Instance Method Details

#cask_filesArray<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.

Returns:



1360
1361
1362
1363
1364
# File 'tap.rb', line 1360

def cask_files
  return super if Homebrew::EnvConfig.no_install_from_api?

  cask_files_by_name.values
end

#cask_files_by_nameHash{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.

Returns:



1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
# File 'tap.rb', line 1374

def cask_files_by_name
  return super if Homebrew::EnvConfig.no_install_from_api?

  @cask_files_by_name ||= Homebrew::API::Cask.all_casks.each_with_object({}) do |item, hash|
    name, cask_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]
    new_path = path/cask_hash["ruby_source_path"]
    hash[name] = new_path if existing_path.nil? || existing_path.to_s.length < new_path.to_s.length
  end
end

#cask_renamesHash{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.

Returns:



1387
1388
1389
1390
1391
1392
1393
# File 'tap.rb', line 1387

def cask_renames
  @cask_renames ||= if Homebrew::EnvConfig.no_install_from_api?
    super
  else
    Homebrew::API::Cask.all_renames
  end
end

#cask_tokensArray<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.

Returns:



1367
1368
1369
1370
1371
# File 'tap.rb', line 1367

def cask_tokens
  return super if Homebrew::EnvConfig.no_install_from_api?

  Homebrew::API::Cask.all_casks.keys
end

#core_cask_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.

Returns:

  • (Boolean)


1349
1350
1351
# File 'tap.rb', line 1349

def core_cask_tap?
  true
end

#new_cask_path(token) ⇒ 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.

Parameters:

Returns:



1354
1355
1356
1357
# File 'tap.rb', line 1354

def new_cask_path(token)
  cask_subdir = token[0].to_s
  cask_dir/cask_subdir/"#{token.downcase}.rb"
end

#tap_migrationsHash

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.

Returns:



1396
1397
1398
1399
1400
1401
1402
1403
1404
# File 'tap.rb', line 1396

def tap_migrations
  @tap_migrations ||= if Homebrew::EnvConfig.no_install_from_api?
    super
  else
    migrations, = Homebrew::API.fetch_json_api_file "cask_tap_migrations.jws.json",
                                                    stale_seconds: TAP_MIGRATIONS_STALE_SECONDS
    migrations
  end
end

#to_internal_api_hashHash{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.

Returns:



1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
# File 'tap.rb', line 1407

def to_internal_api_hash
  casks_api_hash = cask_tokens.to_h do |token|
    cask = Cask::CaskLoader.load(token)
    cask_hash = cask.to_hash_with_variations(hash_method: :to_internal_api_hash)
    [token, cask_hash]
  end

  {
    "tap_git_head"   => git_head,
    "renames"        => cask_renames,
    "tap_migrations" => tap_migrations,
    "casks"          => casks_api_hash,
  }
end