Class: Cask::CaskLoader::FromTapLoader Private

Inherits:
FromPathLoader show all
Defined in:
cask/cask_loader.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.

Loads a cask from a specific tap.

Direct Known Subclasses

FromNameLoader

Instance Attribute Summary collapse

Attributes inherited from FromPathLoader

#path, #token

Attributes inherited from AbstractContentLoader

#content

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from FromPathLoader

invalid_path?

Methods included from Utils::Output::Mixin

#odebug, #odeprecated, #odie, #odisabled, #ofail, #oh1, #oh1_title, #ohai, #ohai_title, #onoe, #opoo, #opoo_outside_github_actions, #pretty_deprecated, #pretty_disabled, #pretty_duration, #pretty_installed, #pretty_outdated, #pretty_uninstalled

Constructor Details

#initialize(tapped_token) ⇒ 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.

Parameters:



314
315
316
317
318
319
320
321
322
# File 'cask/cask_loader.rb', line 314

def initialize(tapped_token)
  tap_with_token = Tap.with_cask_token(tapped_token)
  raise "unexpected nil Tap.with_cask_token" unless tap_with_token

  tap, token = tap_with_token
  cask = CaskLoader.find_cask_in_tap(token, tap)
  super cask
  @tap = T.let(tap, Tap)
end

Instance Attribute Details

#tapTap (readonly)

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:



292
293
294
# File 'cask/cask_loader.rb', line 292

def tap
  @tap
end

Class Method Details

.try_new(ref, warn: false) ⇒ T.attached_class, ...

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:



299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'cask/cask_loader.rb', line 299

def self.try_new(ref, warn: false)
  ref = ref.to_s

  return unless (token_tap_type = CaskLoader.tap_cask_token_type(ref, warn:))

  token, tap, type = token_tap_type

  if type == :migration && tap.core_cask_tap? && (loader = FromAPILoader.try_new(token))
    loader
  else
    new("#{tap}/#{token}")
  end
end

Instance Method Details

#load(config:) ⇒ 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.

Parameters:

Returns:

Raises:



325
326
327
328
329
# File 'cask/cask_loader.rb', line 325

def load(config:)
  raise TapCaskUnavailableError.new(tap, token) unless tap.installed?

  super
end