diff options
| author | Josh Hagins | 2016-10-19 11:54:30 -0400 | 
|---|---|---|
| committer | Josh Hagins | 2016-10-23 21:48:11 -0400 | 
| commit | 44f1354d63d8c95a61bb12353838c03e9abbebb6 (patch) | |
| tree | 2f712312035cde470366ac9a40707029504c6517 | |
| parent | 512a0c950e828fe07e629a629ba4d7b2fb8c2a6d (diff) | |
| download | brew-44f1354d63d8c95a61bb12353838c03e9abbebb6.tar.bz2 | |
hbc/qualified_token: simplify token parsing
- Stop supporting archaic "user-repo/token" syntax
- Move regex for parsing tapped Cask token to tap_constants
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/qualified_token.rb | 36 | ||||
| -rw-r--r-- | Library/Homebrew/tap_constants.rb | 2 | 
2 files changed, 7 insertions, 31 deletions
diff --git a/Library/Homebrew/cask/lib/hbc/qualified_token.rb b/Library/Homebrew/cask/lib/hbc/qualified_token.rb index 8868bd65d..21fe99682 100644 --- a/Library/Homebrew/cask/lib/hbc/qualified_token.rb +++ b/Library/Homebrew/cask/lib/hbc/qualified_token.rb @@ -1,37 +1,11 @@  module Hbc    module QualifiedToken -    REPO_PREFIX = "homebrew-".freeze - -    # per https://github.com/Homebrew/homebrew/blob/4c7bc9ec3bca729c898ee347b6135ba692ee0274/Library/Homebrew/cmd/tap.rb#L121 -    USER_REGEX = /[a-z0-9_\-]+/ - -    # per https://github.com/Homebrew/homebrew/blob/4c7bc9ec3bca729c898ee347b6135ba692ee0274/Library/Homebrew/cmd/tap.rb#L121 -    REPO_REGEX = /(?:#{REPO_PREFIX})?\w+/ - -    # per https://github.com/caskroom/homebrew-cask/blob/master/CONTRIBUTING.md#generating-a-token-for-the-cask -    TOKEN_REGEX = /[a-z0-9\-]+/ - -    TAP_REGEX = %r{#{USER_REGEX}[/\-]#{REPO_REGEX}} - -    QUALIFIED_TOKEN_REGEX = %r{#{TAP_REGEX}/#{TOKEN_REGEX}} -      def self.parse(arg) -      return nil unless arg.is_a?(String) && arg.downcase =~ /^#{QUALIFIED_TOKEN_REGEX}$/ -      path_elements = arg.downcase.split("/") -      if path_elements.count == 2 -        # eg phinze-cask/google-chrome. -        # Not certain this form is needed, but it was supported in the past. -        token = path_elements[1] -        dash_elements = path_elements[0].split("-") -        repo = dash_elements.pop -        dash_elements.pop if dash_elements.count > 1 && dash_elements[-1] + "-" == REPO_PREFIX -        user = dash_elements.join("-") -      else -        # eg caskroom/cask/google-chrome -        # per https://github.com/Homebrew/brew/blob/master/docs/brew-tap.md -        user, repo, token = path_elements -      end -      repo.sub!(/^#{REPO_PREFIX}/, "") +      return nil unless arg.is_a?(String) +      return nil unless arg.downcase =~ HOMEBREW_TAP_CASK_REGEX +      # eg caskroom/cask/google-chrome +      # per https://github.com/Homebrew/brew/blob/master/docs/brew-tap.md +      user, repo, token = arg.downcase.split("/")        odebug "[user, repo, token] might be [#{user}, #{repo}, #{token}]"        [user, repo, token]      end diff --git a/Library/Homebrew/tap_constants.rb b/Library/Homebrew/tap_constants.rb index 12de02f49..671081370 100644 --- a/Library/Homebrew/tap_constants.rb +++ b/Library/Homebrew/tap_constants.rb @@ -1,5 +1,7 @@  # match taps' formulae, e.g. someuser/sometap/someformula  HOMEBREW_TAP_FORMULA_REGEX = %r{^([\w-]+)/([\w-]+)/([\w+-.@]+)$} +# match taps' casks, e.g. someuser/sometap/somecask +HOMEBREW_TAP_CASK_REGEX = %r{^([\w-]+)/([\w-]+)/([a-z0-9\-]+)$}  # match taps' directory paths, e.g. HOMEBREW_LIBRARY/Taps/someuser/sometap  HOMEBREW_TAP_DIR_REGEX = %r{#{Regexp.escape(HOMEBREW_LIBRARY.to_s)}/Taps/([\w-]+)/([\w-]+)}  # match taps' formula paths, e.g. HOMEBREW_LIBRARY/Taps/someuser/sometap/someformula  | 
