Load tap migration renames from the API
These would not get loaded from the API at all meaning these were not loadable by the old names when the core formula or cask tap was not installed. We assume that most users don't have those core taps tapped which means this is broken for most everyone.
This commit is contained in:
parent
fda555d7e6
commit
10aa981209
@ -84,7 +84,7 @@ module Cask
|
|||||||
# Loads a cask from a path.
|
# Loads a cask from a path.
|
||||||
class FromPathLoader < AbstractContentLoader
|
class FromPathLoader < AbstractContentLoader
|
||||||
sig {
|
sig {
|
||||||
params(ref: T.any(String, Pathname, Cask, URI::Generic), warn: T::Boolean)
|
overridable.params(ref: T.any(String, Pathname, Cask, URI::Generic), warn: T::Boolean)
|
||||||
.returns(T.nilable(T.attached_class))
|
.returns(T.nilable(T.attached_class))
|
||||||
}
|
}
|
||||||
def self.try_new(ref, warn: false)
|
def self.try_new(ref, warn: false)
|
||||||
@ -152,7 +152,7 @@ module Cask
|
|||||||
# Loads a cask from a URI.
|
# Loads a cask from a URI.
|
||||||
class FromURILoader < FromPathLoader
|
class FromURILoader < FromPathLoader
|
||||||
sig {
|
sig {
|
||||||
params(ref: T.any(String, Pathname, Cask, URI::Generic), warn: T::Boolean)
|
override.params(ref: T.any(String, Pathname, Cask, URI::Generic), warn: T::Boolean)
|
||||||
.returns(T.nilable(T.attached_class))
|
.returns(T.nilable(T.attached_class))
|
||||||
}
|
}
|
||||||
def self.try_new(ref, warn: false)
|
def self.try_new(ref, warn: false)
|
||||||
@ -199,17 +199,23 @@ module Cask
|
|||||||
attr_reader :tap
|
attr_reader :tap
|
||||||
|
|
||||||
sig {
|
sig {
|
||||||
params(ref: T.any(String, Pathname, Cask, URI::Generic), warn: T::Boolean)
|
override(allow_incompatible: true) # rubocop:todo Sorbet/AllowIncompatibleOverride
|
||||||
.returns(T.nilable(T.attached_class))
|
.params(ref: T.any(String, Pathname, Cask, URI::Generic), warn: T::Boolean)
|
||||||
|
.returns(T.nilable(T.any(T.attached_class, FromAPILoader)))
|
||||||
}
|
}
|
||||||
def self.try_new(ref, warn: false)
|
def self.try_new(ref, warn: false)
|
||||||
ref = ref.to_s
|
ref = ref.to_s
|
||||||
|
|
||||||
return unless (token_tap_type = CaskLoader.tap_cask_token_type(ref, warn:))
|
return unless (token_tap_type = CaskLoader.tap_cask_token_type(ref, warn:))
|
||||||
|
|
||||||
token, tap, = token_tap_type
|
token, tap, type = token_tap_type
|
||||||
|
|
||||||
|
if type == :migration && tap.core_cask_tap? && (loader = FromAPILoader.try_new(token))
|
||||||
|
loader
|
||||||
|
else
|
||||||
new("#{tap}/#{token}")
|
new("#{tap}/#{token}")
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
sig { params(tapped_token: String).void }
|
sig { params(tapped_token: String).void }
|
||||||
def initialize(tapped_token)
|
def initialize(tapped_token)
|
||||||
@ -441,8 +447,8 @@ module Cask
|
|||||||
# if the same token exists in multiple taps.
|
# if the same token exists in multiple taps.
|
||||||
class FromNameLoader < FromTapLoader
|
class FromNameLoader < FromTapLoader
|
||||||
sig {
|
sig {
|
||||||
params(ref: T.any(String, Pathname, Cask, URI::Generic), warn: T::Boolean)
|
override.params(ref: T.any(String, Pathname, Cask, URI::Generic), warn: T::Boolean)
|
||||||
.returns(T.nilable(T.attached_class))
|
.returns(T.nilable(T.any(T.attached_class, FromAPILoader)))
|
||||||
}
|
}
|
||||||
def self.try_new(ref, warn: false)
|
def self.try_new(ref, warn: false)
|
||||||
return unless ref.is_a?(String)
|
return unless ref.is_a?(String)
|
||||||
@ -473,7 +479,7 @@ module Cask
|
|||||||
# Loader which loads a cask from the installed cask file.
|
# Loader which loads a cask from the installed cask file.
|
||||||
class FromInstalledPathLoader < FromPathLoader
|
class FromInstalledPathLoader < FromPathLoader
|
||||||
sig {
|
sig {
|
||||||
params(ref: T.any(String, Pathname, Cask, URI::Generic), warn: T::Boolean)
|
override.params(ref: T.any(String, Pathname, Cask, URI::Generic), warn: T::Boolean)
|
||||||
.returns(T.nilable(T.attached_class))
|
.returns(T.nilable(T.attached_class))
|
||||||
}
|
}
|
||||||
def self.try_new(ref, warn: false)
|
def self.try_new(ref, warn: false)
|
||||||
@ -489,7 +495,7 @@ module Cask
|
|||||||
# Pseudo-loader which raises an error when trying to load the corresponding cask.
|
# Pseudo-loader which raises an error when trying to load the corresponding cask.
|
||||||
class NullLoader < FromPathLoader
|
class NullLoader < FromPathLoader
|
||||||
sig {
|
sig {
|
||||||
params(ref: T.any(String, Pathname, Cask, URI::Generic), warn: T::Boolean)
|
override.params(ref: T.any(String, Pathname, Cask, URI::Generic), warn: T::Boolean)
|
||||||
.returns(T.nilable(T.attached_class))
|
.returns(T.nilable(T.attached_class))
|
||||||
}
|
}
|
||||||
def self.try_new(ref, warn: false)
|
def self.try_new(ref, warn: false)
|
||||||
|
|||||||
@ -759,7 +759,7 @@ module Formulary
|
|||||||
|
|
||||||
sig {
|
sig {
|
||||||
params(ref: T.any(String, Pathname, URI::Generic), from: Symbol, warn: T::Boolean)
|
params(ref: T.any(String, Pathname, URI::Generic), from: Symbol, warn: T::Boolean)
|
||||||
.returns(T.nilable(T.attached_class))
|
.returns(T.nilable(FormulaLoader))
|
||||||
}
|
}
|
||||||
def self.try_new(ref, from: T.unsafe(nil), warn: false)
|
def self.try_new(ref, from: T.unsafe(nil), warn: false)
|
||||||
ref = ref.to_s
|
ref = ref.to_s
|
||||||
@ -776,8 +776,12 @@ module Formulary
|
|||||||
{}
|
{}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if type == :migration && tap.core_tap? && (loader = FromAPILoader.try_new(name))
|
||||||
|
loader
|
||||||
|
else
|
||||||
new(name, path, tap:, **options)
|
new(name, path, tap:, **options)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
sig { params(name: String, path: Pathname, tap: Tap, alias_name: String).void }
|
sig { params(name: String, path: Pathname, tap: Tap, alias_name: String).void }
|
||||||
def initialize(name, path, tap:, alias_name: T.unsafe(nil))
|
def initialize(name, path, tap:, alias_name: T.unsafe(nil))
|
||||||
@ -811,7 +815,7 @@ module Formulary
|
|||||||
class FromNameLoader < FromTapLoader
|
class FromNameLoader < FromTapLoader
|
||||||
sig {
|
sig {
|
||||||
params(ref: T.any(String, Pathname, URI::Generic), from: Symbol, warn: T::Boolean)
|
params(ref: T.any(String, Pathname, URI::Generic), from: Symbol, warn: T::Boolean)
|
||||||
.returns(T.nilable(T.attached_class))
|
.returns(T.nilable(FormulaLoader))
|
||||||
}
|
}
|
||||||
def self.try_new(ref, from: T.unsafe(nil), warn: false)
|
def self.try_new(ref, from: T.unsafe(nil), warn: false)
|
||||||
return unless ref.is_a?(String)
|
return unless ref.is_a?(String)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user