Class: Cask::CaskLoader::FromAPILoader Private
- Includes:
- ILoader
- 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 the JSON API.
Instance Attribute Summary collapse
- #from_json ⇒ Hash{String => T.untyped}? readonly private
- #path ⇒ Pathname readonly private
- #token ⇒ String readonly private
Class Method Summary collapse
Instance Method Summary collapse
- #initialize(token, from_json: T.unsafe(nil), path: nil, from_installed_caskfile: false, from_internal_json: false) ⇒ void constructor private
- #load(config:) ⇒ Object private
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(token, from_json: T.unsafe(nil), path: nil, from_installed_caskfile: false, from_internal_json: 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.
358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 |
# File 'cask/cask_loader.rb', line 358 def initialize(token, from_json: T.unsafe(nil), path: nil, from_installed_caskfile: false, from_internal_json: false) @token = token.sub(%r{^homebrew/(?:homebrew-)?cask/}i, "") @sourcefile_path = if path path elsif from_json from_internal_json ? Homebrew::API::Internal.cached_cask_json_file_path : Homebrew::API::Cask.cached_json_file_path else Homebrew::API.cached_cask_json_file_path end @path = path || CaskLoader.default_path(@token) @from_json = from_json @from_installed_caskfile = from_installed_caskfile @from_internal_json = from_internal_json end |
Instance Attribute Details
#from_json ⇒ Hash{String => T.untyped}? (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.
328 329 330 |
# File 'cask/cask_loader.rb', line 328 def from_json @from_json end |
#path ⇒ Pathname (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.
325 326 327 |
# File 'cask/cask_loader.rb', line 325 def path @path end |
#token ⇒ String (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.
322 323 324 |
# File 'cask/cask_loader.rb', line 322 def token @token 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.
334 335 336 337 338 339 340 341 342 343 344 345 346 347 |
# File 'cask/cask_loader.rb', line 334 def self.try_new(ref, warn: false) return if Homebrew::EnvConfig.no_install_from_api? return unless ref.is_a?(String) return unless (token = ref[HOMEBREW_DEFAULT_TAP_CASK_REGEX, :token]) if Homebrew::API.cask_tokens.exclude?(token) && !Homebrew::API.cask_renames.key?(token) return end ref = "#{CoreCaskTap.instance}/#{token}" token, tap, = CaskLoader.tap_cask_token_type(ref, warn:) new("#{tap}/#{token}") end |
Instance Method Details
#load(config:) ⇒ 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.
374 375 376 377 378 379 380 381 382 383 384 385 386 |
# File 'cask/cask_loader.rb', line 374 def load(config:) if (api_source = from_json) if @from_internal_json load_from_internal_json(config:, api_source:) else load_from_json(config:, api_source:) end elsif Homebrew::EnvConfig.use_internal_api? load_from_internal_api(config:) else load_from_api(config:) end end |