diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 5bac71b555..005d0b38ae 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -3278,6 +3278,7 @@ class Formula def livecheck(&block) return @livecheck unless block + include Homebrew::Livecheck::Constants @livecheckable = true @livecheck.instance_eval(&block) end diff --git a/Library/Homebrew/livecheck.rb b/Library/Homebrew/livecheck.rb index 0b83bfbc21..07d2787472 100644 --- a/Library/Homebrew/livecheck.rb +++ b/Library/Homebrew/livecheck.rb @@ -1,6 +1,8 @@ # typed: true # frozen_string_literal: true +require "livecheck/constants" + # The {Livecheck} class implements the DSL methods used in a formula's, cask's # or resource's `livecheck` block and stores related instance variables. Most # of these methods also return the related instance variable when no argument @@ -142,13 +144,6 @@ class Livecheck end end - # Returns a placeholder string that will be replaced with a formula's latest - # version in livecheck URLs for its resources. - # @return String - def latest_version - "" - end - delegate version: :@package_or_resource delegate arch: :@package_or_resource private :version, :arch diff --git a/Library/Homebrew/livecheck/constants.rb b/Library/Homebrew/livecheck/constants.rb new file mode 100644 index 0000000000..f203ab67b5 --- /dev/null +++ b/Library/Homebrew/livecheck/constants.rb @@ -0,0 +1,14 @@ +# typed: true +# frozen_string_literal: true + +module Homebrew + module Livecheck + # The {Constants} module provides constants that are intended to be used + # in `livecheck` block values (e.g. `url`, `regex`). + module Constants + # A placeholder string used in resource `livecheck` block URLs that will + # be replaced with the latest version from the main formula check. + LATEST_VERSION = "" + end + end +end diff --git a/Library/Homebrew/livecheck/livecheck.rb b/Library/Homebrew/livecheck/livecheck.rb index b7f820485a..bd3e7d4ec7 100644 --- a/Library/Homebrew/livecheck/livecheck.rb +++ b/Library/Homebrew/livecheck/livecheck.rb @@ -1,6 +1,7 @@ # typed: true # frozen_string_literal: true +require "livecheck/constants" require "livecheck/error" require "livecheck/livecheck_version" require "livecheck/skip_conditions" @@ -877,7 +878,7 @@ module Homebrew checked_urls = [] # rubocop:disable Metrics/BlockLength urls.each_with_index do |original_url, i| - url = original_url.gsub(//, formula_latest) + url = original_url.gsub(Constants::LATEST_VERSION, formula_latest) # Only preprocess the URL when it's appropriate url = preprocess_url(url) unless STRATEGY_SYMBOLS_TO_SKIP_PREPROCESS_URL.include?(livecheck_strategy)