Class: Formulary::TapLoader Private
- Inherits:
-
FormulaLoader
- Object
- FormulaLoader
- Formulary::TapLoader
- Defined in:
- formulary.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 tapped formulae.
Instance Attribute Summary
Attributes inherited from FormulaLoader
#alias_path, #name, #path, #tap
Instance Method Summary collapse
-
#formula_name_path(tapped_name, warn:) ⇒ Object
private
-
#get_formula(spec, alias_path: nil, force_bottle: false, flags: [], ignore_errors: false) ⇒ Object
private
-
#initialize(tapped_name, from:, warn:) ⇒ TapLoader
constructor
private
A new instance of TapLoader.
-
#load_file(flags:, ignore_errors:) ⇒ Object
private
Methods inherited from FormulaLoader
Methods included from Context
current, current=, #debug?, #quiet?, #verbose?, #with_context
Constructor Details
#initialize(tapped_name, from:, warn:) ⇒ TapLoader
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 a new instance of TapLoader.
607 608 609 610 |
# File 'formulary.rb', line 607 def initialize(tapped_name, from:, warn:) name, path, tap = formula_name_path(tapped_name, warn: warn) super name, path, tap: tap end |
Instance Method Details
#formula_name_path(tapped_name, warn:) ⇒ 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.
612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 |
# File 'formulary.rb', line 612 def formula_name_path(tapped_name, warn:) user, repo, name = tapped_name.split("/", 3).map(&:downcase) tap = Tap.fetch user, repo path = find_formula_from_name(name, tap) unless path.file? if (possible_alias = tap.alias_dir/name).file? path = possible_alias.resolved_path name = path.basename(".rb").to_s elsif (new_name = tap.formula_renames[name].presence) && (new_path = find_formula_from_name(new_name, tap)).file? old_name = name path = new_path name = new_name new_name = tap.core_tap? ? name : "#{tap}/#{name}" elsif (new_tap_name = tap.tap_migrations[name].presence) new_tap_user, new_tap_repo, = new_tap_name.split("/") new_tap_name = "#{new_tap_user}/#{new_tap_repo}" new_tap = Tap.fetch new_tap_name new_tap.ensure_installed! new_tapped_name = "#{new_tap_name}/#{name}" name, path = formula_name_path(new_tapped_name, warn: false) old_name = tapped_name new_name = new_tap.core_tap? ? name : new_tapped_name end opoo "Formula #{old_name} was renamed to #{new_name}." if warn && old_name && new_name end [name, path, tap] end |
#get_formula(spec, alias_path: nil, force_bottle: false, flags: [], ignore_errors: false) ⇒ 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.
644 645 646 647 648 649 650 651 652 |
# File 'formulary.rb', line 644 def get_formula(spec, alias_path: nil, force_bottle: false, flags: [], ignore_errors: false) super rescue FormulaUnreadableError => e raise TapFormulaUnreadableError.new(tap, name, e.formula_error), "", e.backtrace rescue FormulaClassUnavailableError => e raise TapFormulaClassUnavailableError.new(tap, name, e.path, e.class_name, e.class_list), "", e.backtrace rescue FormulaUnavailableError => e raise TapFormulaUnavailableError.new(tap, name), "", e.backtrace end |
#load_file(flags:, ignore_errors:) ⇒ 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.
654 655 656 657 658 659 |
# File 'formulary.rb', line 654 def load_file(flags:, ignore_errors:) super rescue MethodDeprecatedError => e e.issues_url = tap.issues_url || tap.to_s raise end |