livecheck: remove module_function
This commit is contained in:
parent
4482e25cb2
commit
f877fc5058
@ -622,7 +622,7 @@ module Cask
|
||||
if referenced_cask
|
||||
skip_info = Homebrew::Livecheck::SkipConditions.referenced_skip_information(
|
||||
referenced_cask,
|
||||
Homebrew::Livecheck.cask_name(cask),
|
||||
Homebrew::Livecheck.package_or_resource_name(cask),
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@ -13,18 +13,18 @@ module Homebrew
|
||||
# command. These methods print the requested livecheck information
|
||||
# for formulae.
|
||||
module Livecheck
|
||||
module_function
|
||||
|
||||
GITEA_INSTANCES = T.let(%w[
|
||||
codeberg.org
|
||||
gitea.com
|
||||
opendev.org
|
||||
tildegit.org
|
||||
].freeze, T::Array[String])
|
||||
private_constant :GITEA_INSTANCES
|
||||
|
||||
GOGS_INSTANCES = T.let(%w[
|
||||
lolg.it
|
||||
].freeze, T::Array[String])
|
||||
private_constant :GOGS_INSTANCES
|
||||
|
||||
STRATEGY_SYMBOLS_TO_SKIP_PREPROCESS_URL = T.let([
|
||||
:extract_plist,
|
||||
@ -36,6 +36,7 @@ module Homebrew
|
||||
:xml,
|
||||
:yaml,
|
||||
].freeze, T::Array[Symbol])
|
||||
private_constant :STRATEGY_SYMBOLS_TO_SKIP_PREPROCESS_URL
|
||||
|
||||
UNSTABLE_VERSION_KEYWORDS = T.let(%w[
|
||||
alpha
|
||||
@ -47,9 +48,10 @@ module Homebrew
|
||||
preview
|
||||
rc
|
||||
].freeze, T::Array[String])
|
||||
private_constant :UNSTABLE_VERSION_KEYWORDS
|
||||
|
||||
sig { returns(T::Hash[T::Class[T.anything], String]) }
|
||||
def livecheck_strategy_names
|
||||
private_class_method def self.livecheck_strategy_names
|
||||
return T.must(@livecheck_strategy_names) if defined?(@livecheck_strategy_names)
|
||||
|
||||
# Cache demodulized strategy names, to avoid repeating this work
|
||||
@ -66,7 +68,7 @@ module Homebrew
|
||||
# Uses `formulae_and_casks_to_check` to identify taps in use other than
|
||||
# homebrew/core and homebrew/cask and loads strategies from them.
|
||||
sig { params(formulae_and_casks_to_check: T::Array[T.any(Formula, Cask::Cask)]).void }
|
||||
def load_other_tap_strategies(formulae_and_casks_to_check)
|
||||
def self.load_other_tap_strategies(formulae_and_casks_to_check)
|
||||
other_taps = {}
|
||||
formulae_and_casks_to_check.each do |formula_or_cask|
|
||||
next if formula_or_cask.tap.blank?
|
||||
@ -95,7 +97,7 @@ module Homebrew
|
||||
debug: T::Boolean,
|
||||
).returns(T.nilable(T::Array[T.untyped]))
|
||||
}
|
||||
def resolve_livecheck_reference(
|
||||
def self.resolve_livecheck_reference(
|
||||
formula_or_cask,
|
||||
first_formula_or_cask = formula_or_cask,
|
||||
references = [],
|
||||
@ -170,7 +172,7 @@ module Homebrew
|
||||
verbose: T::Boolean,
|
||||
).void
|
||||
}
|
||||
def run_checks(
|
||||
def self.run_checks(
|
||||
formulae_and_casks_to_check,
|
||||
full_name: false, handle_name_conflict: false, check_resources: false, json: false, newer_only: false,
|
||||
extract_plist: false, debug: false, quiet: false, verbose: false
|
||||
@ -432,7 +434,7 @@ module Homebrew
|
||||
end
|
||||
|
||||
sig { params(package_or_resource: T.any(Formula, Cask::Cask, Resource), full_name: T::Boolean).returns(String) }
|
||||
def package_or_resource_name(package_or_resource, full_name: false)
|
||||
def self.package_or_resource_name(package_or_resource, full_name: false)
|
||||
case package_or_resource
|
||||
when Formula
|
||||
formula_name(package_or_resource, full_name:)
|
||||
@ -448,14 +450,14 @@ module Homebrew
|
||||
# Returns the fully-qualified name of a cask if the `full_name` argument is
|
||||
# provided; returns the name otherwise.
|
||||
sig { params(cask: Cask::Cask, full_name: T::Boolean).returns(String) }
|
||||
def cask_name(cask, full_name: false)
|
||||
private_class_method def self.cask_name(cask, full_name: false)
|
||||
full_name ? cask.full_name : cask.token
|
||||
end
|
||||
|
||||
# Returns the fully-qualified name of a formula if the `full_name` argument is
|
||||
# provided; returns the name otherwise.
|
||||
sig { params(formula: Formula, full_name: T::Boolean).returns(String) }
|
||||
def formula_name(formula, full_name: false)
|
||||
private_class_method def self.formula_name(formula, full_name: false)
|
||||
full_name ? formula.full_name : formula.name
|
||||
end
|
||||
|
||||
@ -468,7 +470,7 @@ module Homebrew
|
||||
verbose: T::Boolean,
|
||||
).returns(T::Hash[Symbol, T.untyped])
|
||||
}
|
||||
def status_hash(package_or_resource, status_str, messages = nil, full_name: false, verbose: false)
|
||||
def self.status_hash(package_or_resource, status_str, messages = nil, full_name: false, verbose: false)
|
||||
formula = package_or_resource if package_or_resource.is_a?(Formula)
|
||||
cask = package_or_resource if package_or_resource.is_a?(Cask::Cask)
|
||||
resource = package_or_resource if package_or_resource.is_a?(Resource)
|
||||
@ -494,7 +496,7 @@ module Homebrew
|
||||
|
||||
# Formats and prints the livecheck result for a formula/cask/resource.
|
||||
sig { params(info: T::Hash[Symbol, T.untyped], verbose: T::Boolean, ambiguous_cask: T::Boolean).void }
|
||||
def print_latest_version(info, verbose: false, ambiguous_cask: false)
|
||||
private_class_method def self.print_latest_version(info, verbose: false, ambiguous_cask: false)
|
||||
package_or_resource_s = info[:resource].present? ? " " : ""
|
||||
package_or_resource_s += "#{Tty.blue}#{info[:formula] || info[:cask] || info[:resource]}#{Tty.reset}"
|
||||
package_or_resource_s += " (cask)" if ambiguous_cask
|
||||
@ -517,7 +519,7 @@ module Homebrew
|
||||
|
||||
# Prints the livecheck result for the resources of a given Formula.
|
||||
sig { params(info: T::Array[T::Hash[Symbol, T.untyped]], verbose: T::Boolean).void }
|
||||
def print_resources_info(info, verbose: false)
|
||||
private_class_method def self.print_resources_info(info, verbose: false)
|
||||
info.each do |r_info|
|
||||
if r_info[:status] && r_info[:messages]
|
||||
SkipConditions.print_skip_information(r_info)
|
||||
@ -533,7 +535,7 @@ module Homebrew
|
||||
package_or_resource: T.any(Formula, Cask::Cask, Resource),
|
||||
).returns(T.nilable(String))
|
||||
}
|
||||
def livecheck_url_to_string(livecheck_url, package_or_resource)
|
||||
def self.livecheck_url_to_string(livecheck_url, package_or_resource)
|
||||
case livecheck_url
|
||||
when String
|
||||
livecheck_url
|
||||
@ -548,7 +550,7 @@ module Homebrew
|
||||
|
||||
# Returns an Array containing the formula/cask/resource URLs that can be used by livecheck.
|
||||
sig { params(package_or_resource: T.any(Formula, Cask::Cask, Resource)).returns(T::Array[String]) }
|
||||
def checkable_urls(package_or_resource)
|
||||
def self.checkable_urls(package_or_resource)
|
||||
urls = []
|
||||
|
||||
case package_or_resource
|
||||
@ -573,7 +575,7 @@ module Homebrew
|
||||
|
||||
# Preprocesses and returns the URL used by livecheck.
|
||||
sig { params(url: String).returns(String) }
|
||||
def preprocess_url(url)
|
||||
def self.preprocess_url(url)
|
||||
begin
|
||||
uri = Addressable::URI.parse url
|
||||
rescue Addressable::URI::InvalidURIError
|
||||
@ -617,7 +619,7 @@ module Homebrew
|
||||
# contains a `stable`/`url` or `head` URL `using: :homebrew_curl` that
|
||||
# shares the same root domain.
|
||||
sig { params(formula_or_cask: T.any(Formula, Cask::Cask), url: String).returns(T::Boolean) }
|
||||
def use_homebrew_curl?(formula_or_cask, url)
|
||||
def self.use_homebrew_curl?(formula_or_cask, url)
|
||||
url_root_domain = Addressable::URI.parse(url)&.domain
|
||||
return false if url_root_domain.blank?
|
||||
|
||||
@ -655,7 +657,7 @@ module Homebrew
|
||||
debug: T::Boolean,
|
||||
).returns(T.nilable(T::Hash[Symbol, T.untyped]))
|
||||
}
|
||||
def latest_version(
|
||||
def self.latest_version(
|
||||
formula_or_cask,
|
||||
referenced_formula_or_cask: nil,
|
||||
livecheck_references: [],
|
||||
@ -674,13 +676,12 @@ module Homebrew
|
||||
livecheck_strategy_block = livecheck.strategy_block || referenced_livecheck&.strategy_block
|
||||
livecheck_throttle = livecheck.throttle || referenced_livecheck&.throttle
|
||||
|
||||
livecheck_url_string = livecheck_url_to_string(
|
||||
livecheck_url,
|
||||
referenced_formula_or_cask || formula_or_cask,
|
||||
)
|
||||
referenced_package = referenced_formula_or_cask || formula_or_cask
|
||||
|
||||
livecheck_url_string = livecheck_url_to_string(livecheck_url, referenced_package) if livecheck_url
|
||||
|
||||
urls = [livecheck_url_string] if livecheck_url_string
|
||||
urls ||= checkable_urls(referenced_formula_or_cask || formula_or_cask)
|
||||
urls ||= checkable_urls(referenced_package)
|
||||
|
||||
if debug
|
||||
if formula
|
||||
@ -751,7 +752,7 @@ module Homebrew
|
||||
|
||||
homebrew_curl = case strategy_name
|
||||
when "PageMatch", "HeaderMatch"
|
||||
use_homebrew_curl?((referenced_formula_or_cask || formula_or_cask), url)
|
||||
use_homebrew_curl?(referenced_package, url)
|
||||
end
|
||||
puts "Homebrew curl?: Yes" if debug && homebrew_curl.present?
|
||||
|
||||
@ -888,7 +889,7 @@ module Homebrew
|
||||
verbose: T::Boolean,
|
||||
).returns(T::Hash[Symbol, T.untyped])
|
||||
}
|
||||
def resource_version(
|
||||
def self.resource_version(
|
||||
resource,
|
||||
formula_latest,
|
||||
json: false,
|
||||
|
||||
@ -1,11 +0,0 @@
|
||||
# typed: strict
|
||||
|
||||
module Homebrew
|
||||
module Livecheck
|
||||
include ::Kernel
|
||||
|
||||
module SkipConditions
|
||||
include ::Kernel
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -6,8 +6,6 @@ module Homebrew
|
||||
# The `Livecheck::SkipConditions` module primarily contains methods that
|
||||
# check for various formula/cask/resource conditions where a check should be skipped.
|
||||
module SkipConditions
|
||||
module_function
|
||||
|
||||
sig {
|
||||
params(
|
||||
package_or_resource: T.any(Formula, Cask::Cask, Resource),
|
||||
@ -16,7 +14,12 @@ module Homebrew
|
||||
verbose: T::Boolean,
|
||||
).returns(T::Hash[Symbol, T.untyped])
|
||||
}
|
||||
def package_or_resource_skip(package_or_resource, livecheckable, full_name: false, verbose: false)
|
||||
private_class_method def self.package_or_resource_skip(
|
||||
package_or_resource,
|
||||
livecheckable,
|
||||
full_name: false,
|
||||
verbose: false
|
||||
)
|
||||
formula = package_or_resource if package_or_resource.is_a?(Formula)
|
||||
|
||||
if (stable_url = formula&.stable&.url)
|
||||
@ -53,7 +56,7 @@ module Homebrew
|
||||
verbose: T::Boolean,
|
||||
).returns(T::Hash[Symbol, T.untyped])
|
||||
}
|
||||
def formula_head_only(formula, _livecheckable, full_name: false, verbose: false)
|
||||
private_class_method def self.formula_head_only(formula, _livecheckable, full_name: false, verbose: false)
|
||||
return {} if !formula.head_only? || formula.any_version_installed?
|
||||
|
||||
Livecheck.status_hash(
|
||||
@ -73,7 +76,7 @@ module Homebrew
|
||||
verbose: T::Boolean,
|
||||
).returns(T::Hash[Symbol, T.untyped])
|
||||
}
|
||||
def formula_deprecated(formula, livecheckable, full_name: false, verbose: false)
|
||||
private_class_method def self.formula_deprecated(formula, livecheckable, full_name: false, verbose: false)
|
||||
return {} if !formula.deprecated? || livecheckable
|
||||
|
||||
Livecheck.status_hash(formula, "deprecated", full_name:, verbose:)
|
||||
@ -87,7 +90,7 @@ module Homebrew
|
||||
verbose: T::Boolean,
|
||||
).returns(T::Hash[Symbol, T.untyped])
|
||||
}
|
||||
def formula_disabled(formula, livecheckable, full_name: false, verbose: false)
|
||||
private_class_method def self.formula_disabled(formula, livecheckable, full_name: false, verbose: false)
|
||||
return {} if !formula.disabled? || livecheckable
|
||||
|
||||
Livecheck.status_hash(formula, "disabled", full_name:, verbose:)
|
||||
@ -101,7 +104,7 @@ module Homebrew
|
||||
verbose: T::Boolean,
|
||||
).returns(T::Hash[Symbol, T.untyped])
|
||||
}
|
||||
def formula_versioned(formula, livecheckable, full_name: false, verbose: false)
|
||||
private_class_method def self.formula_versioned(formula, livecheckable, full_name: false, verbose: false)
|
||||
return {} if !formula.versioned_formula? || livecheckable
|
||||
|
||||
Livecheck.status_hash(formula, "versioned", full_name:, verbose:)
|
||||
@ -115,7 +118,7 @@ module Homebrew
|
||||
verbose: T::Boolean,
|
||||
).returns(T::Hash[Symbol, T.untyped])
|
||||
}
|
||||
def cask_deprecated(cask, livecheckable, full_name: false, verbose: false)
|
||||
private_class_method def self.cask_deprecated(cask, livecheckable, full_name: false, verbose: false)
|
||||
return {} if !cask.deprecated? || livecheckable
|
||||
|
||||
Livecheck.status_hash(cask, "deprecated", full_name:, verbose:)
|
||||
@ -129,7 +132,7 @@ module Homebrew
|
||||
verbose: T::Boolean,
|
||||
).returns(T::Hash[Symbol, T.untyped])
|
||||
}
|
||||
def cask_disabled(cask, livecheckable, full_name: false, verbose: false)
|
||||
private_class_method def self.cask_disabled(cask, livecheckable, full_name: false, verbose: false)
|
||||
return {} if !cask.disabled? || livecheckable
|
||||
|
||||
Livecheck.status_hash(cask, "disabled", full_name:, verbose:)
|
||||
@ -144,7 +147,13 @@ module Homebrew
|
||||
extract_plist: T::Boolean,
|
||||
).returns(T::Hash[Symbol, T.untyped])
|
||||
}
|
||||
def cask_extract_plist(cask, _livecheckable, full_name: false, verbose: false, extract_plist: false)
|
||||
private_class_method def self.cask_extract_plist(
|
||||
cask,
|
||||
_livecheckable,
|
||||
full_name: false,
|
||||
verbose: false,
|
||||
extract_plist: false
|
||||
)
|
||||
return {} if extract_plist || cask.livecheck.strategy != :extract_plist
|
||||
|
||||
Livecheck.status_hash(
|
||||
@ -164,7 +173,7 @@ module Homebrew
|
||||
verbose: T::Boolean,
|
||||
).returns(T::Hash[Symbol, T.untyped])
|
||||
}
|
||||
def cask_version_latest(cask, livecheckable, full_name: false, verbose: false)
|
||||
private_class_method def self.cask_version_latest(cask, livecheckable, full_name: false, verbose: false)
|
||||
return {} if !(cask.present? && cask.version&.latest?) || livecheckable
|
||||
|
||||
Livecheck.status_hash(cask, "latest", full_name:, verbose:)
|
||||
@ -178,7 +187,7 @@ module Homebrew
|
||||
verbose: T::Boolean,
|
||||
).returns(T::Hash[Symbol, T.untyped])
|
||||
}
|
||||
def cask_url_unversioned(cask, livecheckable, full_name: false, verbose: false)
|
||||
private_class_method def self.cask_url_unversioned(cask, livecheckable, full_name: false, verbose: false)
|
||||
return {} if !(cask.present? && cask.url&.unversioned?) || livecheckable
|
||||
|
||||
Livecheck.status_hash(cask, "unversioned", full_name:, verbose:)
|
||||
@ -192,6 +201,7 @@ module Homebrew
|
||||
:formula_disabled,
|
||||
:formula_versioned,
|
||||
].freeze, T::Array[Symbol])
|
||||
private_constant :FORMULA_CHECKS
|
||||
|
||||
# Skip conditions for casks.
|
||||
CASK_CHECKS = T.let([
|
||||
@ -202,11 +212,13 @@ module Homebrew
|
||||
:cask_version_latest,
|
||||
:cask_url_unversioned,
|
||||
].freeze, T::Array[Symbol])
|
||||
private_constant :CASK_CHECKS
|
||||
|
||||
# Skip conditions for resources.
|
||||
RESOURCE_CHECKS = T.let([
|
||||
:package_or_resource_skip,
|
||||
].freeze, T::Array[Symbol])
|
||||
private_constant :RESOURCE_CHECKS
|
||||
|
||||
# If a formula/cask/resource should be skipped, we return a hash from
|
||||
# `Livecheck#status_hash`, which contains a `status` type and sometimes
|
||||
@ -219,7 +231,7 @@ module Homebrew
|
||||
extract_plist: T::Boolean,
|
||||
).returns(T::Hash[Symbol, T.untyped])
|
||||
}
|
||||
def skip_information(package_or_resource, full_name: false, verbose: false, extract_plist: true)
|
||||
def self.skip_information(package_or_resource, full_name: false, verbose: false, extract_plist: true)
|
||||
livecheckable = package_or_resource.livecheckable?
|
||||
|
||||
checks = case package_or_resource
|
||||
@ -257,7 +269,7 @@ module Homebrew
|
||||
extract_plist: T::Boolean,
|
||||
).returns(T.nilable(T::Hash[Symbol, T.untyped]))
|
||||
}
|
||||
def referenced_skip_information(
|
||||
def self.referenced_skip_information(
|
||||
livecheck_package_or_resource,
|
||||
original_package_or_resource_name,
|
||||
full_name: false,
|
||||
@ -299,7 +311,7 @@ module Homebrew
|
||||
|
||||
# Prints default livecheck output in relation to skip conditions.
|
||||
sig { params(skip_hash: T::Hash[Symbol, T.untyped]).void }
|
||||
def print_skip_information(skip_hash)
|
||||
def self.print_skip_information(skip_hash)
|
||||
return unless skip_hash.is_a?(Hash)
|
||||
|
||||
name = if skip_hash[:formula].is_a?(String)
|
||||
|
||||
@ -65,23 +65,21 @@ RSpec.describe Homebrew::Livecheck do
|
||||
end
|
||||
end
|
||||
|
||||
describe "::formula_name" do
|
||||
it "returns the name of the formula" do
|
||||
expect(livecheck.formula_name(f)).to eq("test")
|
||||
describe "::package_or_resource_name" do
|
||||
it "returns the name of a formula" do
|
||||
expect(livecheck.package_or_resource_name(f)).to eq("test")
|
||||
end
|
||||
|
||||
it "returns the full name" do
|
||||
expect(livecheck.formula_name(f, full_name: true)).to eq("test")
|
||||
end
|
||||
end
|
||||
|
||||
describe "::cask_name" do
|
||||
it "returns the token of the cask" do
|
||||
expect(livecheck.cask_name(c)).to eq("test")
|
||||
it "returns the full name of a formula" do
|
||||
expect(livecheck.package_or_resource_name(f, full_name: true)).to eq("test")
|
||||
end
|
||||
|
||||
it "returns the full name of the cask" do
|
||||
expect(livecheck.cask_name(c, full_name: true)).to eq("test")
|
||||
it "returns the token of a cask" do
|
||||
expect(livecheck.package_or_resource_name(c)).to eq("test")
|
||||
end
|
||||
|
||||
it "returns the full name of a cask" do
|
||||
expect(livecheck.package_or_resource_name(c, full_name: true)).to eq("test")
|
||||
end
|
||||
end
|
||||
|
||||
@ -169,9 +167,6 @@ RSpec.describe Homebrew::Livecheck do
|
||||
end
|
||||
|
||||
it "returns nil when not given a string or valid symbol" do
|
||||
expect(livecheck.livecheck_url_to_string(nil, f_livecheck_url)).to be_nil
|
||||
expect(livecheck.livecheck_url_to_string(nil, c_livecheck_url)).to be_nil
|
||||
expect(livecheck.livecheck_url_to_string(nil, r_livecheck_url)).to be_nil
|
||||
expect(livecheck.livecheck_url_to_string(:invalid_symbol, f_livecheck_url)).to be_nil
|
||||
expect(livecheck.livecheck_url_to_string(:invalid_symbol, c_livecheck_url)).to be_nil
|
||||
expect(livecheck.livecheck_url_to_string(:invalid_symbol, r_livecheck_url)).to be_nil
|
||||
|
||||
@ -650,10 +650,6 @@ RSpec.describe Homebrew::Livecheck::SkipConditions do
|
||||
expect { skip_conditions.print_skip_information({}) }
|
||||
.to not_to_output.to_stdout
|
||||
.and not_to_output.to_stderr
|
||||
|
||||
expect { skip_conditions.print_skip_information(nil) }
|
||||
.to not_to_output.to_stdout
|
||||
.and not_to_output.to_stderr
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user