Module: Cask::CaskLoader Private
- Extended by:
- Context
- Defined in:
- cask/cask_loader.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.
Loads a cask from various sources.
Defined Under Namespace
Modules: ILoader Classes: AbstractContentLoader, FromAPILoader, FromContentLoader, FromDefaultTapPathLoader, FromInstanceLoader, FromPathLoader, FromTapLoader, FromTapPathLoader, FromURILoader, NullLoader
Class Method Summary collapse
-
.default_path(token) ⇒ Object
private
-
.find_cask_in_tap(token, tap) ⇒ Object
private
-
.for(ref, need_path: false, warn: true) ⇒ Object
private
-
.load(ref, config: nil, warn: true) ⇒ Object
private
-
.path(ref) ⇒ Object
private
-
.tap_paths(token, warn: true) ⇒ Object
private
Methods included from Context
current, current=, debug?, quiet?, verbose?, with_context
Class Method Details
.default_path(token) ⇒ 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.
448 449 450 |
# File 'cask/cask_loader.rb', line 448 def self.default_path(token) find_cask_in_tap(token.to_s.downcase, CoreCaskTap.instance) end |
.find_cask_in_tap(token, tap) ⇒ 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.
462 463 464 465 466 467 |
# File 'cask/cask_loader.rb', line 462 def self.find_cask_in_tap(token, tap) filename = "#{token}.rb" Tap.cask_files_by_name(tap) .fetch(token, tap.cask_dir/filename) end |
.for(ref, need_path: false, warn: true) ⇒ 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.
416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 |
# File 'cask/cask_loader.rb', line 416 def self.for(ref, need_path: false, warn: true) [ FromInstanceLoader, FromContentLoader, FromURILoader, FromAPILoader, FromTapLoader, FromTapPathLoader, FromPathLoader, FromDefaultTapPathLoader, ].each do |loader_class| if loader_class.can_load?(ref) $stderr.puts "#{$PROGRAM_NAME} (#{loader_class}): loading #{ref}" if debug? return loader_class.new(ref) end end case (possible_tap_casks = tap_paths(ref, warn: warn)).count when 1 return FromTapPathLoader.new(possible_tap_casks.first) when 2..Float::INFINITY loaders = possible_tap_casks.map(&FromTapPathLoader.method(:new)) raise TapCaskAmbiguityError.new(ref, loaders) end possible_installed_cask = Cask.new(ref) return FromPathLoader.new(possible_installed_cask.installed_caskfile) if possible_installed_cask.installed? NullLoader.new(ref) end |
.load(ref, config: nil, warn: true) ⇒ 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.
412 413 414 |
# File 'cask/cask_loader.rb', line 412 def self.load(ref, config: nil, warn: true) self.for(ref, warn: warn).load(config: config) end |
.path(ref) ⇒ 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.
408 409 410 |
# File 'cask/cask_loader.rb', line 408 def self.path(ref) self.for(ref, need_path: true).path end |
.tap_paths(token, warn: true) ⇒ 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.
452 453 454 455 456 457 458 459 460 |
# File 'cask/cask_loader.rb', line 452 def self.tap_paths(token, warn: true) token = token.to_s.downcase Tap.map do |tap| new_token = tap.cask_renames[token] opoo "Cask #{token} was renamed to #{new_token}." if new_token && warn find_cask_in_tap(new_token || token, tap) end.select(&:exist?) end |