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.
440 441 442 |
# File 'cask/cask_loader.rb', line 440 def self.default_path(token) Tap.default_cask_tap.cask_dir/"#{token.to_s.downcase}.rb" 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.
454 455 456 457 458 |
# File 'cask/cask_loader.rb', line 454 def self.find_cask_in_tap(token, tap) filename = "#{token}.rb" Tap.cask_files_by_name(tap).fetch(filename, 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.
408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 |
# File 'cask/cask_loader.rb', line 408 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.
404 405 406 |
# File 'cask/cask_loader.rb', line 404 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.
400 401 402 |
# File 'cask/cask_loader.rb', line 400 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.
444 445 446 447 448 449 450 451 452 |
# File 'cask/cask_loader.rb', line 444 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 |