diff options
| -rw-r--r-- | Library/Homebrew/cmd/tap.rb | 4 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/update.rb | 14 | ||||
| -rw-r--r-- | Library/Homebrew/global.rb | 5 | ||||
| -rw-r--r-- | Library/Homebrew/tap_constants.rb | 8 | ||||
| -rw-r--r-- | Library/Homebrew/test/testing_env.rb | 2 | 
5 files changed, 19 insertions, 14 deletions
| diff --git a/Library/Homebrew/cmd/tap.rb b/Library/Homebrew/cmd/tap.rb index b24c70e87..80ebcd81e 100644 --- a/Library/Homebrew/cmd/tap.rb +++ b/Library/Homebrew/cmd/tap.rb @@ -107,7 +107,7 @@ module Homebrew extend self    end    def tap_args -    ARGV.first =~ %r{^([\w-]+)/(homebrew-)?([\w-]+)$} +    ARGV.first =~ HOMEBREW_TAP_ARGS_REGEX      raise "Invalid tap name" unless $1 && $3      [$1, $3]    end @@ -122,7 +122,7 @@ module Homebrew extend self    def tap_ref(path)      case path.to_s -    when %r{^#{HOMEBREW_LIBRARY}/Taps/([\w-]+)/([\w-]+)/(.+)} +    when HOMEBREW_TAP_PATH_REGEX        "#$1/#$2/#{File.basename($3, '.rb')}"      when %r{^#{HOMEBREW_LIBRARY}/Formula/(.+)}        "Homebrew/homebrew/#{File.basename($1, '.rb')}" diff --git a/Library/Homebrew/cmd/update.rb b/Library/Homebrew/cmd/update.rb index 45f8251ba..88804c6cf 100644 --- a/Library/Homebrew/cmd/update.rb +++ b/Library/Homebrew/cmd/update.rb @@ -218,9 +218,9 @@ class Report < Hash    def tapped_formula_for key      fetch(key, []).select do |path| -      case path.relative_path_from(HOMEBREW_REPOSITORY).to_s -      when %r{^Library/Taps/([\w-]+/[\w-]+/.*)} -        valid_formula_location?($1) +      case path.to_s +      when HOMEBREW_TAP_PATH_REGEX +        valid_formula_location?("#{$1}/#{$2}/#{$3}")        else          false        end @@ -247,11 +247,11 @@ class Report < Hash    def select_formula key      fetch(key, []).map do |path| -      case path.relative_path_from(HOMEBREW_REPOSITORY).to_s -      when %r{^Library/Formula} +      case path.to_s +      when Regexp.new(HOMEBREW_LIBRARY + "/Formula")          path.basename(".rb").to_s -      when %r{^Library/Taps/([\w-]+)/(homebrew-)?([\w-]+)/(.*)\.rb} -        "#$1/#$3/#{path.basename(".rb")}" +      when HOMEBREW_TAP_PATH_REGEX +        "#$1/#{$2.sub("homebrew-", "")}/#{path.basename(".rb")}"        end      end.compact.sort    end diff --git a/Library/Homebrew/global.rb b/Library/Homebrew/global.rb index 5e4446196..5c1155f33 100644 --- a/Library/Homebrew/global.rb +++ b/Library/Homebrew/global.rb @@ -85,10 +85,7 @@ HOMEBREW_USER_AGENT = "Homebrew #{HOMEBREW_VERSION} (Ruby #{RUBY_VERSION}-#{RUBY  HOMEBREW_CURL_ARGS = '-f#LA' -HOMEBREW_TAP_FORMULA_REGEX = %r{^([\w-]+)/([\w-]+)/([\w-]+)$} -HOMEBREW_TAP_DIR_REGEX = %r{#{HOMEBREW_LIBRARY}/Taps/([\w-]+)/([\w-]+)} -HOMEBREW_TAP_PATH_REGEX = Regexp.new(HOMEBREW_TAP_DIR_REGEX.source \ -                                     + %r{/(.*)}.source) +require 'tap_constants'  module Homebrew extend self    include FileUtils diff --git a/Library/Homebrew/tap_constants.rb b/Library/Homebrew/tap_constants.rb new file mode 100644 index 000000000..1757ab80e --- /dev/null +++ b/Library/Homebrew/tap_constants.rb @@ -0,0 +1,8 @@ +# match expressions when taps are given as ARGS, e.g. someuser/sometap +HOMEBREW_TAP_ARGS_REGEX = %r{^([\w-]+)/(homebrew-)?([\w-]+)$} +# match taps' formula, e.g. someuser/sometap/someformula +HOMEBREW_TAP_FORMULA_REGEX = %r{^([\w-]+)/([\w-]+)/([\w-]+)$} +# match taps' directory path, e.g. HOMEBREW_LIBRARY/Taps/someuser/sometap +HOMEBREW_TAP_DIR_REGEX = %r{#{HOMEBREW_LIBRARY}/Taps/([\w-]+)/([\w-]+)} +# match taps' formula path, e.g. HOMEBREW_LIBRARY/Taps/someuser/sometap/someformula +HOMEBREW_TAP_PATH_REGEX = Regexp.new(HOMEBREW_TAP_DIR_REGEX.source + %r{/(.*)}.source) diff --git a/Library/Homebrew/test/testing_env.rb b/Library/Homebrew/test/testing_env.rb index 64f1ccfd3..2fb78b974 100644 --- a/Library/Homebrew/test/testing_env.rb +++ b/Library/Homebrew/test/testing_env.rb @@ -27,7 +27,7 @@ HOMEBREW_WWW           = 'http://example.com'  HOMEBREW_CURL_ARGS     = '-fsLA'  HOMEBREW_VERSION       = '0.9-test' -HOMEBREW_TAP_FORMULA_REGEX = %r{^([\w-]+)/([\w-]+)/([\w-]+)$} +require 'tap_constants'  RUBY_BIN = Pathname.new(RbConfig::CONFIG['bindir'])  RUBY_PATH = RUBY_BIN + RbConfig::CONFIG['ruby_install_name'] + RbConfig::CONFIG['EXEEXT'] | 
