Sparkle: Align with PageMatch
This inlines the `PRIORITY` and `#match?` logic from `PageMatch` into `Sparkle` instead of subclassing `PageMatch`. `Sparkle` doesn't really make sense as a subclass of `PageMatch` (since it functions in a completely different manner), so it's better to simply copy over these parts of `PageMatch`. This also helps to separate the strategies, so any changes to `PRIORITY` or `#match?` in `PageMatch` won't affect `Sparkle`.
This commit is contained in:
parent
cc5cd4bf59
commit
3933b866b6
@ -11,9 +11,27 @@ module Homebrew
|
|||||||
# its contents as a Sparkle appcast in XML format.
|
# its contents as a Sparkle appcast in XML format.
|
||||||
#
|
#
|
||||||
# @api private
|
# @api private
|
||||||
class Sparkle < PageMatch
|
class Sparkle
|
||||||
extend T::Sig
|
extend T::Sig
|
||||||
|
|
||||||
|
# A priority of zero causes livecheck to skip the strategy. We only
|
||||||
|
# apply {Sparkle} using `strategy :sparkle` in a `livecheck` block,
|
||||||
|
# as we can't automatically determine when this can be successfully
|
||||||
|
# applied to a URL without fetching the content.
|
||||||
|
PRIORITY = 0
|
||||||
|
|
||||||
|
# The `Regexp` used to determine if the strategy applies to the URL.
|
||||||
|
URL_MATCH_REGEX = %r{^https?://}i.freeze
|
||||||
|
|
||||||
|
# Whether the strategy can be applied to the provided URL.
|
||||||
|
# The strategy will technically match any HTTP URL but is
|
||||||
|
# only usable with a `livecheck` block containing a regex
|
||||||
|
# or block.
|
||||||
|
sig { params(url: String).returns(T::Boolean) }
|
||||||
|
def self.match?(url)
|
||||||
|
URL_MATCH_REGEX.match?(url)
|
||||||
|
end
|
||||||
|
|
||||||
Item = Struct.new(:title, :url, :bundle_version, :short_version, :version, keyword_init: true) do
|
Item = Struct.new(:title, :url, :bundle_version, :short_version, :version, keyword_init: true) do
|
||||||
extend T::Sig
|
extend T::Sig
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user