Document CaskLoader.

This commit is contained in:
Markus Reiter 2020-08-24 22:50:29 +02:00
parent f54f3ba96d
commit 5c47f531a0

View File

@ -4,7 +4,11 @@ require "cask/cask"
require "uri" require "uri"
module Cask module Cask
# Loads a cask from various sources.
#
# @api private
module CaskLoader module CaskLoader
# Loads a cask from a string.
class FromContentLoader class FromContentLoader
attr_reader :content attr_reader :content
@ -36,6 +40,7 @@ module Cask
end end
end end
# Loads a cask from a path.
class FromPathLoader < FromContentLoader class FromPathLoader < FromContentLoader
def self.can_load?(ref) def self.can_load?(ref)
path = Pathname(ref) path = Pathname(ref)
@ -76,6 +81,7 @@ module Cask
end end
end end
# Loads a cask from a URI.
class FromURILoader < FromPathLoader class FromURILoader < FromPathLoader
def self.can_load?(ref) def self.can_load?(ref)
uri_regex = ::URI::DEFAULT_PARSER.make_regexp uri_regex = ::URI::DEFAULT_PARSER.make_regexp
@ -109,6 +115,7 @@ module Cask
end end
end end
# Loads a cask from a tap path.
class FromTapPathLoader < FromPathLoader class FromTapPathLoader < FromPathLoader
def self.can_load?(ref) def self.can_load?(ref)
super && !Tap.from_path(ref).nil? super && !Tap.from_path(ref).nil?
@ -128,6 +135,7 @@ module Cask
end end
end end
# Loads a cask from a specific tap.
class FromTapLoader < FromTapPathLoader class FromTapLoader < FromTapPathLoader
def self.can_load?(ref) def self.can_load?(ref)
ref.to_s.match?(HOMEBREW_TAP_CASK_REGEX) ref.to_s.match?(HOMEBREW_TAP_CASK_REGEX)
@ -145,6 +153,7 @@ module Cask
end end
end end
# Loads a cask from an existing {Cask} instance.
class FromInstanceLoader class FromInstanceLoader
attr_reader :cask attr_reader :cask
@ -161,6 +170,7 @@ module Cask
end end
end end
# Pseudo-loader which raises an error when trying to load the corresponding cask.
class NullLoader < FromPathLoader class NullLoader < FromPathLoader
def self.can_load?(*) def self.can_load?(*)
true true