aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTsukasa OMOTO2014-05-14 16:43:52 +0900
committerJack Nagel2014-05-14 11:12:51 -0500
commit724a7f84d853e978b694555ee61198c75fe409b1 (patch)
tree0fb6cb7d9801b6e83ae9695800e0da17a0c9b2b4
parenta224d96687c14076c1924360ca5f04d4c668e830 (diff)
downloadhomebrew-724a7f84d853e978b694555ee61198c75fe409b1.tar.bz2
Taps: cleanup regexps around Taps
Closes #29139. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
-rw-r--r--Library/Homebrew/cmd/tap.rb4
-rw-r--r--Library/Homebrew/cmd/update.rb14
-rw-r--r--Library/Homebrew/global.rb5
-rw-r--r--Library/Homebrew/tap_constants.rb8
-rw-r--r--Library/Homebrew/test/testing_env.rb2
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']