Merge FromTapPathLoader into FromPathLoader.
This commit is contained in:
parent
dc21095731
commit
889854b0b3
@ -114,9 +114,8 @@ module Cask
|
||||
path = Pathname(path).expand_path
|
||||
|
||||
@token = path.basename(path.extname).to_s
|
||||
|
||||
@path = path
|
||||
@tap = Homebrew::API.tap_from_source_download(path)
|
||||
@tap = Tap.from_path(path) || Homebrew::API.tap_from_source_download(path)
|
||||
end
|
||||
|
||||
def load(config:)
|
||||
@ -195,27 +194,8 @@ module Cask
|
||||
end
|
||||
end
|
||||
|
||||
# Loads a cask from a tap path.
|
||||
class FromTapPathLoader < FromPathLoader
|
||||
sig {
|
||||
params(ref: T.any(String, Pathname, Cask, URI::Generic), warn: T::Boolean)
|
||||
.returns(T.nilable(T.attached_class))
|
||||
}
|
||||
def self.try_new(ref, warn: false)
|
||||
return unless (loader = super)
|
||||
|
||||
loader unless Tap.from_path(ref).nil?
|
||||
end
|
||||
|
||||
sig { params(path: T.any(Pathname, String)).void }
|
||||
def initialize(path)
|
||||
super(path)
|
||||
@tap = Tap.from_path(path)
|
||||
end
|
||||
end
|
||||
|
||||
# Loads a cask from a specific tap.
|
||||
class FromTapLoader < FromTapPathLoader
|
||||
class FromTapLoader < FromPathLoader
|
||||
sig {
|
||||
params(ref: T.any(String, Pathname, Cask, URI::Generic), warn: T::Boolean)
|
||||
.returns(T.nilable(T.attached_class))
|
||||
@ -265,7 +245,7 @@ module Cask
|
||||
end
|
||||
|
||||
# Loads a cask from the default tap path.
|
||||
class FromDefaultTapPathLoader < FromTapPathLoader
|
||||
class FromDefaultTapPathLoader < FromPathLoader
|
||||
sig {
|
||||
params(ref: T.any(String, Pathname, Cask, URI::Generic), warn: T::Boolean)
|
||||
.returns(T.nilable(T.attached_class))
|
||||
@ -484,13 +464,13 @@ module Cask
|
||||
|
||||
# Loader which tries loading casks from tap paths, failing
|
||||
# if the same token exists in multiple taps.
|
||||
class FromAmbiguousTapPathLoader < FromTapPathLoader
|
||||
class FromAmbiguousTapPathLoader < FromPathLoader
|
||||
def self.try_new(ref, warn: false)
|
||||
case (possible_tap_casks = CaskLoader.tap_paths(ref)).count
|
||||
when 1
|
||||
new(possible_tap_casks.first)
|
||||
when 2..Float::INFINITY
|
||||
loaders = possible_tap_casks.map(&FromTapPathLoader.method(:new))
|
||||
loaders = possible_tap_casks.map(&FromPathLoader.method(:new))
|
||||
raise TapCaskAmbiguityError.new(ref, loaders)
|
||||
end
|
||||
end
|
||||
@ -572,7 +552,6 @@ module Cask
|
||||
FromURILoader,
|
||||
FromAPILoader,
|
||||
FromTapLoader,
|
||||
FromTapPathLoader,
|
||||
FromPathLoader,
|
||||
FromDefaultTapPathLoader,
|
||||
FromAmbiguousTapPathLoader,
|
||||
|
||||
@ -56,7 +56,7 @@ module Cask
|
||||
CaskLoader.load(token, config: config)
|
||||
rescue TapCaskAmbiguityError
|
||||
tap_path = CaskLoader.tap_paths(token).first
|
||||
CaskLoader::FromTapPathLoader.new(tap_path).load(config: config)
|
||||
CaskLoader::FromPathLoader.new(tap_path).load(config: config)
|
||||
rescue
|
||||
# Don't blow up because of a single unavailable cask.
|
||||
nil
|
||||
|
||||
@ -37,13 +37,13 @@ describe Cask::CaskLoader, :cask do
|
||||
|
||||
it "warns when using the short token" do
|
||||
expect do
|
||||
expect(described_class.for("version-newest")).to be_a Cask::CaskLoader::FromTapPathLoader
|
||||
expect(described_class.for("version-newest")).to be_a Cask::CaskLoader::FromPathLoader
|
||||
end.to output(/version-newest was renamed to version-latest/).to_stderr
|
||||
end
|
||||
|
||||
it "warns when using the full token" do
|
||||
expect do
|
||||
expect(described_class.for("homebrew/cask/version-newest")).to be_a Cask::CaskLoader::FromTapPathLoader
|
||||
expect(described_class.for("homebrew/cask/version-newest")).to be_a Cask::CaskLoader::FromPathLoader
|
||||
end.to output(/version-newest was renamed to version-latest/).to_stderr
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user