diff --git a/Library/Homebrew/version.rb b/Library/Homebrew/version.rb index 65cbb679af..7b76ed791f 100644 --- a/Library/Homebrew/version.rb +++ b/Library/Homebrew/version.rb @@ -2,6 +2,7 @@ # frozen_string_literal: true require "pkg_version" +require "version/head" require "version/null" require "version/parser" @@ -676,34 +677,3 @@ class Version version.scan(SCAN_PATTERN).map { |token| Token.create(T.cast(token, String)) } end end - -# A formula's HEAD version. -# @see https://docs.brew.sh/Formula-Cookbook#unstable-versions-head Unstable versions (head) -# -# @api private -class HeadVersion < Version - extend T::Sig - - sig { returns(T.nilable(String)) } - attr_reader :commit - - def initialize(*) - super - @commit = @version[/^HEAD-(.+)$/, 1] - end - - sig { params(commit: T.nilable(String)).void } - def update_commit(commit) - @commit = commit - @version = if commit - "HEAD-#{commit}" - else - "HEAD" - end - end - - sig { returns(T::Boolean) } - def head? - true - end -end diff --git a/Library/Homebrew/version/head.rb b/Library/Homebrew/version/head.rb new file mode 100644 index 0000000000..60be8cf504 --- /dev/null +++ b/Library/Homebrew/version/head.rb @@ -0,0 +1,36 @@ +# typed: true +# frozen_string_literal: true + +class Version + # A formula's HEAD version. + # @see https://docs.brew.sh/Formula-Cookbook#unstable-versions-head Unstable versions (head) + # + # @api private + class HeadVersion < Version + extend T::Sig + + sig { returns(T.nilable(String)) } + attr_reader :commit + + def initialize(*) + super + @commit = @version[/^HEAD-(.+)$/, 1] + end + + sig { params(commit: T.nilable(String)).void } + def update_commit(commit) + @commit = commit + @version = if commit + "HEAD-#{commit}" + else + "HEAD" + end + end + + sig { returns(T::Boolean) } + def head? + true + end + end + +end