diff --git a/Library/Homebrew/version.rb b/Library/Homebrew/version.rb index 159d3cb2a3..2e0bc85a53 100644 --- a/Library/Homebrew/version.rb +++ b/Library/Homebrew/version.rb @@ -146,6 +146,15 @@ class Version end end + SCAN_PATTERN = Regexp.union( + AlphaToken::PATTERN, + BetaToken::PATTERN, + RCToken::PATTERN, + PatchToken::PATTERN, + NumericToken::PATTERN, + StringToken::PATTERN + ) + def self.new_with_scheme(value, scheme) if Class === scheme && scheme.ancestors.include?(Version) scheme.new(value) @@ -221,16 +230,7 @@ class Version end def tokenize - @version.scan( - Regexp.union( - AlphaToken::PATTERN, - BetaToken::PATTERN, - RCToken::PATTERN, - PatchToken::PATTERN, - NumericToken::PATTERN, - StringToken::PATTERN - ) - ).map! do |token| + @version.scan(SCAN_PATTERN).map! do |token| case token when /\A#{AlphaToken::PATTERN}\z/o then AlphaToken when /\A#{BetaToken::PATTERN}\z/o then BetaToken