mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Revert to_formulae_and_casks sig change
This commit is contained in:
parent
ff7f70d8b6
commit
6b56c2ee5f
@ -70,29 +70,26 @@ module Homebrew
|
||||
method: T.nilable(Symbol),
|
||||
uniq: T::Boolean,
|
||||
warn: T::Boolean,
|
||||
).returns(T::Array[T.any(Formula, Cask::Cask)])
|
||||
).returns(T::Array[T.any(Formula, Keg, Cask::Cask)])
|
||||
}
|
||||
def to_formulae_and_casks(
|
||||
only: parent.only_formula_or_cask, ignore_unavailable: false, method: nil, uniq: true, warn: false
|
||||
)
|
||||
@to_formulae_and_casks ||= T.let(
|
||||
{}, T.nilable(T::Hash[T.nilable(Symbol), T::Array[T.any(Formula, Cask::Cask)]])
|
||||
)
|
||||
@to_formulae_and_casks[only] ||= T.cast(
|
||||
downcased_unique_named.flat_map do |name|
|
||||
options = { warn: }.compact
|
||||
load_formula_or_cask(name, only:, method:, **options)
|
||||
rescue FormulaUnreadableError, FormulaClassUnavailableError,
|
||||
TapFormulaUnreadableError, TapFormulaClassUnavailableError,
|
||||
Cask::CaskUnreadableError
|
||||
# Need to rescue before `*UnavailableError` (superclass of this)
|
||||
# The formula/cask was found, but there's a problem with its implementation
|
||||
raise
|
||||
rescue NoSuchKegError, FormulaUnavailableError, Cask::CaskUnavailableError, FormulaOrCaskUnavailableError
|
||||
ignore_unavailable ? [] : raise
|
||||
end.freeze,
|
||||
T::Array[T.any(Formula, Cask::Cask)],
|
||||
{}, T.nilable(T::Hash[T.nilable(Symbol), T::Array[T.any(Formula, Keg, Cask::Cask)]])
|
||||
)
|
||||
@to_formulae_and_casks[only] ||= downcased_unique_named.flat_map do |name|
|
||||
options = { warn: }.compact
|
||||
load_formula_or_cask(name, only:, method:, **options)
|
||||
rescue FormulaUnreadableError, FormulaClassUnavailableError,
|
||||
TapFormulaUnreadableError, TapFormulaClassUnavailableError,
|
||||
Cask::CaskUnreadableError
|
||||
# Need to rescue before `*UnavailableError` (superclass of this)
|
||||
# The formula/cask was found, but there's a problem with its implementation
|
||||
raise
|
||||
rescue NoSuchKegError, FormulaUnavailableError, Cask::CaskUnavailableError, FormulaOrCaskUnavailableError
|
||||
ignore_unavailable ? [] : raise
|
||||
end.freeze
|
||||
|
||||
if uniq
|
||||
@to_formulae_and_casks.fetch(only).uniq.freeze
|
||||
@ -123,7 +120,7 @@ module Homebrew
|
||||
def to_formulae_and_casks_with_taps
|
||||
formulae_and_casks_with_taps, formulae_and_casks_without_taps =
|
||||
to_formulae_and_casks.partition do |formula_or_cask|
|
||||
formula_or_cask.tap&.installed?
|
||||
T.cast(formula_or_cask, T.any(Formula, Cask::Cask)).tap&.installed?
|
||||
end
|
||||
|
||||
return formulae_and_casks_with_taps if formulae_and_casks_without_taps.empty?
|
||||
|
@ -81,7 +81,7 @@ module Homebrew
|
||||
end
|
||||
end
|
||||
else
|
||||
T.absurd(formula_or_cask)
|
||||
raise "Invalid type: #{formula_or_cask.class}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -65,7 +65,7 @@ module Homebrew
|
||||
description = formula_or_cask.desc.presence || Formatter.warning("[no description]")
|
||||
desc[formula_or_cask.full_name] = "(#{formula_or_cask.name.join(", ")}) #{description}"
|
||||
else
|
||||
T.absurd(formula_or_cask)
|
||||
raise TypeError, "Unsupported formula_or_cask type: #{formula_or_cask.class}"
|
||||
end
|
||||
end
|
||||
Descriptions.new(desc).print
|
||||
|
@ -29,7 +29,8 @@ module Homebrew
|
||||
return
|
||||
end
|
||||
|
||||
formulae_or_casks = args.named.to_formulae_and_casks
|
||||
# to_formulae_and_casks is typed to possibly return Kegs (but won't without explicitly asking)
|
||||
formulae_or_casks = T.cast(args.named.to_formulae_and_casks, T::Array[T.any(Formula, Cask::Cask)])
|
||||
homepages = formulae_or_casks.map do |formula_or_cask|
|
||||
puts "Opening homepage for #{name_of(formula_or_cask)}"
|
||||
formula_or_cask.homepage
|
||||
|
@ -99,7 +99,9 @@ module Homebrew
|
||||
else
|
||||
args.named.to_formulae_and_casks(only: :cask, method: :resolve)
|
||||
end
|
||||
full_cask_names = cask_names.map(&:full_name).sort(&tap_and_name_comparison)
|
||||
# The cast is because `Keg`` does not define `full_name`
|
||||
full_cask_names = T.cast(cask_names, T::Array[T.any(Formula, Cask::Cask)])
|
||||
.map(&:full_name).sort(&tap_and_name_comparison)
|
||||
full_cask_names = Formatter.columns(full_cask_names) unless args.public_send(:"1?")
|
||||
puts full_cask_names if full_cask_names.present?
|
||||
end
|
||||
|
@ -79,14 +79,16 @@ module DependenciesHelpers
|
||||
end
|
||||
|
||||
sig {
|
||||
params(formulae_or_casks: T::Array[T.any(Formula, Cask::Cask)]).returns(T::Array[T.any(Formula, CaskDependent)])
|
||||
params(formulae_or_casks: T::Array[T.any(Formula, Keg, Cask::Cask)])
|
||||
.returns(T::Array[T.any(Formula, CaskDependent)])
|
||||
}
|
||||
def dependents(formulae_or_casks)
|
||||
formulae_or_casks.map do |formula_or_cask|
|
||||
if formula_or_cask.is_a?(Formula)
|
||||
formula_or_cask
|
||||
case formula_or_cask
|
||||
when Formula then formula_or_cask
|
||||
when Cask::Cask then CaskDependent.new(formula_or_cask)
|
||||
else
|
||||
CaskDependent.new(formula_or_cask)
|
||||
raise TypeError, "Unsupported type: #{formula_or_cask.class}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user