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